Home » Типы программирования и образ мышления

Типы программирования и образ мышления

Один из самых давних расколов в программировании — это статическая и динамическая типизация. За всю свою карьеру я слышал миллион аргументов с обеих сторон, но очень немногие из них хоть кого-то в чем-то убедили. Рационализация, маскирующаяся под разум, редко бывает в вопросах веры. Всадник всегда оправдывает путь слона.

Это не значит, что нет людей, которые сменили лагерь. На самом деле такие люди обычно громче всех выкрикивают оправдания. Часто с обаянием живучего всеядного, внезапно ставшего веганом, или традиционного банкира, которому повезло на криптовалюте. Чем короче вера, тем ярче пламя.

Лично я беззастенчиво предпочитаю динамическую типизацию. Вот почему я так сильно люблю Руби. Он использует все преимущества динамической типизации, чтобы обеспечить поэтичный синтаксис, который приводит к такому красивому коду. Для меня Ruby с явной статической типизацией был бы подобен салату с шариком мороженого. Они просто не идут вместе.

Я также признаюсь, что в прошлом придерживался евангелистской позиции динамической типизации. Вплоть до страдания от недуга Единого Истинного Предложения. Рассматривая отсутствие энтузиазма в отношении динамической типизации как отражение отсутствия образования, опыта или, возможно, даже компетентности.

О, какая глупость.

Это как пытаться убедить интроверта в том, что ему бы очень понравились вечеринки, если бы он немного расслабился. Что на самом деле очень весело находиться в переполненных комнатах, часами кричать, чтобы общаться, потому что как насчет этого VIBE!

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

Могли бы вы представить, если бы все изобразительное искусство было выполнено в стиле кубизма? Или реализм? Или все романы написаны в кратком, прямом духе Хемингуэя? Какая бы скука все это быстро стало!

Это разрушило бы магию программирования. Это уникальный сплав искусства и инженерии.

Read more:  Язык программирования 2023 года переходит на C#

Но мне потребовалось некоторое время, чтобы прийти к этим выводам. Я выздоравливающий растворитель. Поэтому, когда я вижу, как люди крестят свое сердце, не веря, что кому-то и где угодно может понравиться JavaScript, а не TypeScript, я улыбаюсь и вспоминаю дни, когда я узнавал их рвение в зеркале.

Это не значит, что все подходы к программированию сводятся к одинаковому, но разному мышлению. У этого релятивизма есть пределы. Но динамическая и статическая типизация определена в своих пределах. То же самое касается функционального и объектно-ориентированного программирования. Полюсы по обеим этим осям показали, что на протяжении десятилетий поставляют отличное программное обеспечение (и ужасные вещи тоже!).

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

Я не двуличный. Мне не нравится статическая типизация, и объекты оживляют мой внутренний взор. Но я стал ценить тот факт, что другие освещают свое творчество с такой же интенсивностью, как и я, используя ограничения функционального программирования и явно прописанные типы.

Пока мне не приходится пачкать свой Ruby подсказками типов или писать весь интерфейсный код на TypeScript, я могу так счастливо сосуществовать с теми, кто обожает Go или терпеть не может JavaScript. Да здравствует разница!

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.