mOleg писал(а):
Ох. Ну, представь, ты устроился на новую работу, и от тебя требуют разобраться в не очень сложной программе, и что то исправить уже завтра (т.к. надо уже вчера), и ты видишь, что тебе не только программу, а еще и язык на котором она написана изучить. И, скажем, ты кроме Си, Паскаля, Бейсика ничего не знаешь (а это вполне стандартный вариант), а тебе надо править код в Лиспе, Прологе, Форте. (Коих идеология вообще непривычна, нетривиальна, незнакома).
Я лично наблюдаю, что даже ассемблер часто вводит в ступор.
И, как говорил Иосиф Виссарионович: "Других писателей у меня для вас нет!".
А вот это действительно важный вопрос для обсуждения.
Такая позиция действительно имеет место, особенно со стороны среднего-высшего руководства. Вакансии обычно описывают как "требуется программист на Си/java/(далее по списку)", и далеко не всегда можно понять, что вообще на этом языке надо писать. С веб-программированием может быть чуть проще, хотя тоже не всегда, к тому же для веб-программирования часто уточняют, будет это фронт-энд, бэнк-энд, базы, интерфейсы и т.п.
Вот теперь рассматриваем ситуацию. Взяли нового программиста, он подтвердил, что знает Си, ему дают программу на сопровождение... и он при понимании отдельных элементов программы впадает в ступор просто чуть позже, поскольку ни архитектура программы, ни алгоритмы ему неизвестны. Хорошо, если переменная названа NumberOfUsers, а если ProcessingMode? Что туда писать? Когда? Зачем? В итоге получается, что стиль 90-х годов, когда программы были маленькие, и было достаточно указать Бейсик/Си/Паскаль (а дальше программист "дозревал" в проекте), уже все сильнее и сильнее показывает свою несостоятельность. Вопрос не в понимании синтаксиса, а уже больше в понимании предметной области и архитектуры проекта. В embedded уже давно существует мнение, что лучше взять инженера с пониманием программирования, чем чистого программиста, игнорирующего электронику и решающего все проблемы только на уровне компилятора. Почему так? Потому что язык программирования - это очевидно средство решения задачи, а если путь решения непонятен, то его и бесполезно выражать на любом языке.
Теперь из этого следует вполне рабочая линия поведения. Форт вместо Си - это бесполезно, поскольку не дает ответа на актуальные вопросы организации работ. Действительно, взяли фортера, а он ударился в переписывание всего подряд на Форте и на остальных смотрит как носитель тайного знания на дикарей. Тем более что могут полезть всякие религиозные вещи вроде того, что плавающая точка никому не нужна, вместо файлов будем использовать блоки, и прочие управляторы имени Дейкстры. С точки зрения продвижения по срокам и задачам - полный негатив, а главное - нет контроля и управляемости всего процесса. Для управляемости обычно и стремятся использовать что-то понятное, потому что для Си программисту труднее приводить какие-то завиральные аргументы.
Что полезно - это именно решение задач, как они видны на более высоком уровне управления. Например,
1. "Форт - это наш язык, для которого можно выпустить внутреннюю документацию, поэтому процесс адаптации к нашему оборудованию и софту можно организовать эффективнее".
2. "Форт - это язык для обработки скриптов, на котором можно писать понятные фразы, в том числе по-русски, чтобы было понятно смежным специалистам, руководству и заказчикам"
Если вести в эту сторону, общий эффект от Форта становится положительным. Конечно, нужно забыть про "детские болезни" по типу ранних линуксоидов, мечтавших, что они сейчас будут на работе играть, пить пиво и покрикивать на бухгалтерию, а ими все будут восхищаться. Задачи, опять-таки, внезапно станут практическими и сложными помимо фортовской части.