Идеальный язык программирования: какой он? | SHIFU.IO
Переводы
Язык программирования, который я хочу
Перевод 04.12.2017

Автор: Tomek Wałkuski


Будучи инженером-программистом и бизнес-ориентированным человеком, я всегда стараюсь быть прагматичным. Вот почему я думаю, что Ruby and Rails в 2017 все ещё отличный выбор для запуска нового проекта. В конце концов, выбор технологии не имеет значения (если вы не в какой-то особой нише) - все дело в пользе и создании коммерческой ценности.


Тем не менее, это не мешает мне экспериментировать с другими технологиями, в поисках других крутых вещей или новых концепций, которыми я могу дополнить мой ежедневный инструментарий Ruby. Я играл с большим количеством языков программирования: Ada, Clojure, Scala, Go, Elixir и Rust. Благодаря этому я смог составить список функций, которые впечатлили меня больше всего, не говоря уже о том, что мои навыки программирования значительно улучшились.


Мой идеальный язык был бы статически типизирован. Ada, Scala и Rust показали мне все преимущества программирования с "типами". Если проще, эти фичи неоценимы при разработке интерфейсов и даже при реализации из типовых сигнатур! Кроме того, я не думаю, что типы заменяют тесты.


Одна из проблем, которую я испытывал со Scala, было множество вариантов моделирования одной вещи. Вот где Go сияет: возможно, иногда это кажется слишком простым, но иногда разработчику нужно выразить код одним способом. На мой взгляд, это большое преимущество при работе в командах по более крупным проектам.


Ещё мне сильно не понравилось злоупотребление syntax shortcuts и операторами шифрования в Scala. Более подробный и читаемый язык, такой как Ada, говорил со мной больше и лучше. Clojure показал мне, насколько важна и полезна неизменность. Это сильно повлияло на мой стиль проектирования структур данных и манипуляций вокруг них.


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


Как пользователь Vim и Emacs, я не смог привыкнуть к IDE. Я понимаю, что они, безусловно, полезны, но я не хочу, чтобы меня принуждали к чему-либо...


REPL всегда была одной из самых значительных частей моего ежедневного рабочего процесса. Я не могу себе представить код без фазы эксперимента или сеанса отладки в консоли позже. Это недочет одной из моих недавних игрушек - Rust, он его не ещё не поддерживает.


Это подводит меня к вопросу: какой язык я должен назвать «самым любимым». После того, как я подумал, я бы выбрал ... Rust. Более прагматичный, чем Ada, более строгий, чем Clojure, лучше Scala, умнее Go и просто статически-типизированный как Elixir, достаточно высокого уровня, чтобы удовлетворить мои потребности в программировании общего назначения.


Дисклеймер: я считаю, что все упомянутые здесь языки великолепны. Цель этого поста - просто упомянуть то, что я хотел бы видеть в своем идеальном языке.*


 


Перевод 04.12.2017