Что должен знать программист: Языки программирования

Feb 19, 2012 14:33


Программисты придумали и реализовали множество языков программированиядля решения различных задач. Языки программирования общего назначения могут быть использованы для решения любой задачи ( Read more... )

languages, programming, rant, books

Leave a comment

gark_87 February 26 2012, 17:58:24 UTC
Я в этих высоких материях ничего не понимаю, можете, пожалуйста, пояснить на примере? А то мне казалось, что при командной разработке(а сольное программирование, вроде как, скорее исключение, чем правило) выгода от знания многих языков стремится к нулю(причем стремится к нулю слева =) ).

Вот есть, предположим, команда из Антона, Бориса, Виктора, Василисы и Васисуалия. Пишут они все проект на Java.
Антон, кроме Java, владеет AWK, Perl, Erlang и Haskell.
Борис, соответственно, sed и Python.
Виктор, Василиса и Васисуалий знают только Java(пусть для равновесия знают лучше, чем Антон с Борисом) и счастливы, ибо проект их на Java. Ну не читали они этот пост и не в курсе, что должны знать несколько языков. =)

Понадобилось этой команде текстовые файлы обрабатывать(нужно два десятка "простых для языка не-общего назначения" скриптов). Причем один раз написать и забыть - не вариант: из постановки задачи понятно, что написанное придется изменять постоянно, чтобы успеть за изменениями реального мира.
Антон и Борис на пару пришли бы к какому-то консенсусу(например, Python).
Но что делать с Виктором, Василисой и Васисуалием?
Даже если научить их Python-у в рабочее время, что будет через год, когда Виктора уволят за пьянство, Василиса уйдет в декрет, а Васисуалия сманят работать в Гугл? Учить пришедших Глеба, Галину и Герасима Python-у или сразу искать двуязычных программистов?

Разве в реальном мире в данном случае не выберут Java(пусть Антону и Борису будет не так удобно, как хотелось бы, зато все смогут читать и модифицировать код)?
Тогда получается, что знание дополнительных языков Антону и Борису в настоящем ничего, кроме чувства внутреннего дискомфорта, не дает. Польза от расширения кругозора довольно эфемерна. Да и расширять его можно множеством других способов.

Нет, это не значит, что я автоматом не возьму его на должность программиста, но это сильно сужает область задач, которые ему можно поручить именно в силу того, что при таком подходе он не сможет найти оптимальное решение многим задачам.
Значит ли это, что у Антона и Бориса будут какие-то свои "особые" задачи, к которым "всякие Васисуалии" допущены не будут? А как много таких "особых" задач? А то терзают смутные сомнения, что их хватит только Антону и бедный Борис будет продолжать чувствовать внутренний дискомфорт, сочиняя очередные "2 строчки для AWK" на Java, хотя с этими "особыми" задачами справился бы на ура.
Да и потом, если эти задачи "особые", то значит есть задачи "неособые"(для тех, кто знает один язык). Что как-то слабо вяжется с Однако, в современном мире получается так, что каждый программист должен знать несколько языков программирования.

Reply

elizarov February 28 2012, 12:06:32 UTC
Обычно, даже при командной разработке корпоративных приложений, команде по факту приходится использовать множество языков начиная от языка командной оболочки и системы сборки, до SQL и Java. Поэтому знание множеста языков безусловно нужно всей команде дла начала просто чтобы понимать друг-друга. Дальнейшие знания расширяют гругозор программиста и позволяют ему более эффективно решать поставленные задачи не обязательно за счет использования каких-то экзотических языков, а в первую очередь именно за счет более широкого кругозора.

Если, условно, Антона руководитель попросил подготовить какой-нибудь отчет с анализов результатов каких-нибудь тестов, то Антон, имея более широкий круг знаний и владея более широким кругом инструментов, подготовил его, условно за три часа, а Виктор на аналогичное задание в прошлый раз потратил два дня. Поэтому Виктору больше таких заданий поручать не будут, а Антону будут поручать и другие исследовательские и аналитические задачи и он будет быстрее расти по каръерной лестнице.

Да и даже код на Java Антон будет делать быстрей и качественней, ибо более широкий кругозор позволит ему видеть больше стандартных шаблонов в кодезадаче. Ему не придется изобретать каждый раз решение -- он чаще будет делать их на основе известных ему из другий областей решений похожих задач.

Reply


Leave a comment

Up