Если бы языки программирования были армиями
Глупые бездельники, рассеянные мыслители в камуфляже, исполнительные умники и ещё с десяток типичных языков программирования.
Ev. Safronov / Shutterstock
Йозеф Круз
(Josef Cruz)
об авторе
Предприниматель, программист, муж, отец. Редактор блога Better Person на Medium и топовый автор разделов Technology и Artificial Intelligence. Целыми днями учится новому в интернете и делится знаниями с людьми со всего света.
Когда я программирую, то предпочитаю ни на что не отвлекаться. Так и выживаю в ежедневной схватке с кодом, слушая в наушниках свою любимую Тейлор Свифт.
Но иногда я вовсе не прочь переключиться и проветрить мозги. Например, написать о чём-то забавном, как в этой статье. Надеюсь, что она развлечёт коллег-программистов.
PHP
Это призывная армия, которая на 99% состоит из пушечного мяса. Не выполнять приказы командира здесь в порядке вещей. Равно как и лезть с саблями на вражеские танки.
Солдатам, которые увольняются из рядов этой армии, обычно стыдно вспоминать о службе.
JavaScript
Самопровозглашённое воинское формирование, которое состоит из реально сложных чуваков, упорно называющих себя армией.
Такое войско никогда не сражается без поддержки. Его наёмники примыкают к более мощным отрядам, а после завершения кампании беспардонно возглавляют строй.
Легко догадаться, что основным силам такая поддержка обычно приносит больше неприятностей, чем пользы.
C#
Эффективная, хорошо экипированная и, можно даже сказать, элитная армия. К сожалению, чтобы служить в ней, придётся присягнуть на верность ненавистной оружейной корпорации. Нарушивших присягу ждёт расстрел — и это ещё самое мягкое из возможных наказаний.
Basic
Приказы здесь простые. Каждый из них пронумерован, чтобы солдаты точно не запутались.
К сожалению, служат здесь не самые смышлёные кадры. Передвигаться туда-сюда и стрелять во всё, что видят, — это они пожалуйста. А вот научиться делать что-то ещё — нет уж, увольте.
Assembler
Вместо оружия здешние солдаты таскают на себе отдельные детали и монтажные инструменты. Если есть время перед боем, то они могут смастерить из этого добра танк или истребитель F-16. Только вот часто всё путают — и их F-16 в итоге летает вверх ногами, стреляет взбитыми сливками или вовсе взрывается в воздухе.
Ada
Хорошо организованная армия с современной техникой. К сожалению, солдаты здесь отказываются выполнять противоречивые приказы, что делает их непригодными для реальных боевых действий.
Java
В этой армии действует строгая иерархия. Это идеальные войска для проведения парадов. А вот реальные бои уже успевают закончиться, пока приказы из штаба доходят до рядовых.
Perl
Называть это армией — большое преувеличение. «Партизаны» — куда более подходящее слово. Эти диверсанты и мастера отвлекающих манёвров в обычных сражениях почти что бесполезны.
Visual Basic
Эта армия годится разве что для игры в пейнтбол — хотя кому-то мил и он. В реальном бою такие солдаты сдаются первыми.
Fortran
В прошлом мощная и боеспособная армия, которую сегодня критикуют за устаревшее вооружение и консервативные методы ведения боя.
Её тактика хороша для ролевиков-реконструкторов и клубов исторического фехтования. А вот на реальном побоище этой армии вставят по самые операторы ввода-вывода.
Pascal
Больше похож на кадетское училище, чем на настоящую армию. Время от времени «курсанты» решают ввязаться в реальную битву. И тогда обычно обнаруживают, что теория согласуется с практикой только в теории.
Lisp
Верхушка этой армии утверждает, что можно победить в любом сражении, и даже пытается доказать это математически. К сожалению, приказы командования здесь слишком сложные и солдаты не очень хорошо их выполняют. А время от времени им даже приходится стирать память.
Python
Это очень хорошая армия, которая даже выиграла несколько сражений. Насколько она велика, не знают даже в штабе. Однако практика показывает, что армия эта больше подходит для поддержки основных сил, чем для самостоятельных боевых действий.
Prolog
Военнослужащие постоянно пытаются угадать, что же приказал командир. Если он подбодрит их должным образом, солдаты начинают обдумывать, что же следует сделать в той или иной ситуации. К сожалению, иногда они получают несколько приказов сразу. И, что ещё хуже, начав размышлять, они могут и не закончить.
Haskell
Солдаты этой армии предпочли бы заниматься умственным трудом, а не сражаться на поле боя. Они выполняют приказы только тогда, когда командир проверяет результаты выполнения, и исполнительны ровно в той мере, чтобы формально его удовлетворить.
У каждого солдата здесь своя специализация. И он откажется исполнять приказ, если тот предназначен для кого-то другого или просто безграмотно сформулирован. Чтобы понять некоторые приказы, нужно иметь высшее образование.
Cobol
Если солдата не бесит служба в этой армии, то, скорее всего, с ним что-то не так. После увольнения военнослужащие до конца своих дней сталкиваются с психологическими проблемами и редко возвращаются к нормальной жизни.
5GL
Эти розовощёкие наивные камикадзе хоть в лепёшку разобьются, но навредить смогут разве что своей собственной армии.
Forth
Вооружение и припасы доставляются солдатам в огромных контейнерах, из которых они могут брать только то, что лежит сверху. Это не очень удобно, ведь чтобы достать паёк, им сначала надо извлечь танк, два грузовика и пачку презервативов.
С другой стороны, если сверху положить боеприпасы, то их можно будет копировать и вынимать из контейнера бесконечно.
C
Армия, в которой каждый солдат «знает, как лучше» и делает всё по-своему. Такой подход может оказаться весьма эффективным, если солдаты найдут общий язык перед битвой. В противном случае они расстреляют друг друга быстрее, чем это сделает их противник.
C++
Эта армия похожа на C, но с более сложной организационной структурой. Самое главное здесь — это отдавать честь начальству.
Солдаты сами модифицируют своё оружие и придумывают новое, пытаясь при этом убедить сослуживцев применять их поделки. Как думаете, часто им это удаётся? К тому же такое изобретательство серьёзно затягивает военные кампании.
Что дальше?
Дальше — больше, больше лёгкого и смешного. Приглашаем представить, что языки программирования стали детьми, позабавиться с кодингом на эмодзи, заглянуть в комментарии разработчиков, посмеяться и поплакать над программистской долей.