Мнение менеджера об использовании сложных языков
От: Gaperton http://gaperton.livejournal.com
Дата: 13.02.07 14:51
Оценка: 238 (22) +15 -3 :)
Здравствуйте, remark, Вы писали:

Давайте я отвечу, штоли, как представитель того самого менеджмента, который считает, что "не надо использовать сложные языки". Если кратко — тезисы, с которыми вы спорите, неверны, так же как и ваши ответы. Я постараюсь прояснить точку зрения менеджмента, насколько она представляется мне. По пунктам.

R>Я с ним согласен. То, что появится какой-то _простой_ язык, на котором можно будет научиться профессионально программировать на двух недельных курсах, и после этого создавать какие-то реальные приложения — это полная утопия и миф, который поддерживают компании, которые хотят впаривать якобы такие языки,


Да, это миф.

R> и их поддерживают тупые менеждеры, которые верят, что они смогут понанимать дешёвых, неопытных программистов и таким образом достигнут высокой эффективности вложений.


Не все менеджеры тупы. Тупые менеджеры все-таки подвергаются негативному естественному отбору.

Есть один маленький факт, который понимает любой нормальный менеджер, и который почему-то проходит мимо большинства разработчиков. Он ломает вашу стройную картину.

Он состоит в том, что основу профессионализма инженера составляет знание нюансов и понимание проблематики предметной области. Именно из этого складывается "цена замены сотрудника" — время, которое он тратит на вникание в предметную область и текущие работы. Без глубокого понимания проблематики задач вы никогда не станете хорошим архитектором, и будете посредственным инженером, которого можно легко заменить другим без влияния на результат, не принимая во внимание, на каком языке вы пишете.

На втором месте — только на втором! — стоит понимание нюансов применяемых технологий, знание их сильных и слабых сторон. Этому люди учатся сравнительно быстро — даже по первости это максимум год-два, и готово. При большом опыте период обучения сильно сокращается. Проблематика предметной области — здесь надо вкалывать не менее 3-4 лет, чтобы начало доходить, что к чему.

Ну а язык, язык... На язык вообще плевать. Основное требование к языку — он не должен отвлекать профессионала на возню со всякой ерундой, не имеющей отношения к сути решаемых проблем. Другими словами, он должен быть 1) прост и лаконичен, 2) близок к предметной области, 3) не допускать дурацких ошибок 4) позволять давать "литературные" описания.  При этом, при приеме на работу в идеале должно быть неважно, знает кандидат наш язык или нет. Люди с большим опытом встречаются и так достаточно редко.

Для каждой области, язык, понятное дело, лучше подходит свой. Пишем оперсистему или драйвер — нам лучше всего подойдет С. Пишем бухгалтерию — 1С рулит. Базы данных SQL. Простые клиенты — Java, Javascript или С# — вообще дофига вариантов. Сервер или бизнес-логика — Java.

Использовать С++ для описания бизнес-логики? Зачем? Проблемы и так достаточно сложны, чтобы добавлять к ним ownership policy, пулы объектов, счетчики ссылок, крэши, утечки памяти, и прочий bullshit.

R>Никого же не удивляет, что очень сложно строить мосты и небоскрёбы, и что этим занимаются только опытные профессионалы. Никого не удивляет, что лекарства создают только профессионалы. Никого не удивляет, что пособие по анатомии для докторов на порядок сложнее и детализированнее любой книги по программированию. Кто готов жить в доме/летать на самолёте/принимать лекарства/..., которые сделал некто, кто прошёл некие двух-недельные курсы по некой новомодной очень-простой-для-дебилов методике.


R>Вобщем _реальный_ язык программирования всегда будет сложным и создавать системы на нём смогут только профессионалы и тут ничего не поделать.


R>К сожалению в области создания ПО сейчас сложилась очень нездоровая ситуация, когда многие (причём и люди очень высокого звена) считают, что не надо использовать _сложные_ языки и не надо нанимать опытных профессионалов, всё тоже для них смогут сделать студенты на новом разрекламированном языке.


Да, сложные системы делают профессионалы. Только профессионалы не в языках программирования, а в предметных областях. Так же как и мосты проектируют отнють не художники, в совершенстве освоившие технику карандаша по бумаге. Язык программирования — инструмент. Инструмент должен быть прост и удобен. Программа пишется для человека. Она должна быть проста, лаконична, и понятна. В идеале — программа должна быть исполняемой спецификацией, свободной от разнообразных мистических пассов.

Не надо использовать сложные языки. Не надо нанимать профессионалов в сложных языках, которые пишут сложные программы. Надо нанимать профессионалов.


14.02.07 23:57: Ветка выделена из темы Сложный язык для сложных срограмм.
Автор: remark
Дата: 28.01.07
— IT
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.