Знаю я одного программиста, который тоже начинал с работы в шахте. Ему так надоело отлаживать программы на микроконтроллере с двумя светодиодами, посматривая на датчик метана, что он занялся формальной верификацией на Coq.
Я несколько раз менял стек технологий. Примерно в такой последовательности C/Asm, Perl, C++, Haskell, Scheme, Scala. И совсем не мидл.
Самые высокооплачиваемые языкы — Scala, Solidity и Haskell. Выбирать надо из них, а не из почти одинаковых Java и C#.
Наличие Ethernet и механических не сенсорных кнопок к тачпаду там заказать можно?
Rust не только позволит использовать менее аккуратных программистов, но и сократить их требуемое количество, так как предоставляет более высокоуровневые абстракции, чем чистый C, и лаконичнее, чем C++. Что касается требуемой квалификации, то она будет выше, чем для
Использование машинного обучения для программирования уперается в сложность корректной постановке задачи и сложность проверки правильности решения. Я бы не стал доверять нейросетям, генерирующие код не прошедшие верификацию, а типы и пред-/пост-условия для верификации должны быть описаны программистом.
Вещь ответственная. Лучше брать что-то очень надежное — Idris, Haskell. А если критична производительность — Rust или Ivory.
У jvm он длинный, даже по сравнению со всеми остальными.
Go мне не нравится — он не функциональный и соглашения о возврате ошибок там идиотские. Думаю, что PureScript нам хватит.
Всем.
Нет статической типизации, плохая поддержка ФП, не слишком удобный синтаксис. Да и холодный старт в среднем на пару секунд дольше, чем у ноды.
В функциональном стиле всекие пометки вершин и ребер приходится таскать за собой в отдельных структурах данных, а в императивном — можно хранить в самом графе. Хотя отделение пометок от графа иногда удобнее и обычно делает код понятнее, снижает эффективность.
В Elm реализован очень приятный подход model-updater-view, который позволяет забыть об DOM и джаваскрипте, как о страшном сне. PureScript от этого мусора пока не изолирует.
Я планирую применить PureScript в AWS Lambda (сервис для serverless-приложений от Амазон), но пока руки не дошли. Ранее я писал AWS Lambda на Scala, но у него слишком долгий холодный старт — до 30 секунд, а у ноды не больше
Только во внутреннем, для разработчиков. В том, что отдаем заказчику фронтеты написан достаточно давно, а интергироваться в существующий js оказалось слишком сложно. Собираемся новое на Elm делать, но пока все задачи по поддержке старого.
Внутреннее пишу я, хоть я и бэкендер. Фронтендеры мне с версткой только помогают — Elm-код они вполне хорошо воспринимают, несмотря на отсутствие опыта.
Для фронтенда, тем более функционального, js не нужен. Есть отличный функциональный язык Elm, который полностью спасает от джаваскриптовых заморочек.
Кстати, в области функциональных языков конкуренция не такая сильная и часто можно устроиться и без большого опыта. Так что входить в профессию лучше со Scala, Haskell или, если фронтенд, ELM.
Вместо костылей в существующем языке, лучше (проще и надежнее) использовать изначально типилированные языки, транслирующиеся в js. Проще всего взять ELM. Но есть еще PureScript с более развитой системой типов. А можно вообще взять Idris с полной поддержкой зависимых типов.
Чего только не придумают, что бы просто на Scala не перейти.
Проблема энтерпрайза — часто меняющиеся плохо сформулированные бизнестребования и сжатые сроки. Остальное вторично.
Посмотрите на Alfresco www.alfresco.com
Будет предложение, появятся и вакансии. Вакансии зависят от менеджеров, которые очень боятся новых малоизвестных технологий.
Но важнее то, что человек освоевший Rust, Scala или F#, даже если ему придется работать на популярных языках, будет писать лучший код, по сравнению с тем, кто знает только C++, Java или C#. Дизайн новых языков к этому приучает.
Если все двигается в сторону частного образования, нафига вообще государство?
У частного образования есть существенный недостаток — оно вынуждено подстраиваться под сиюминутные потребности индустрии. То есть учить условному пхп вместо математики. На выходе получаются дешевые эникейщики, которые, конечно, могут сразу начать работать, но дорасти до создания новых технологий не способны.