Выбор языка программирования — вопрос религии

в 18:14, , рубрики: религия, философия, Чулан, языки программирования, метки: , ,

Начну, пожалуй, с короткой истории, поясняющей суть заголовка.

Однажды я пришел к Учителю и сказал ему: «О, учитель, помоги мне развеять мои сомнения. Я слышал множество различных легенд и мифов о языках программирования: кто-то восхваляет одни и распинает другие, кто-то делает тоже самое, но с точностью до наоборот, а для третьих существует только один Язык. Какой же из них мне выбрать?»
Учитель ответил мне: «Все они правы и неправы одновременно. Большинство из услышанных тобой историй — чистая правда, ибо не бывает двух одинаковых языков программирования, как не бывает двух одинаковых людей. Поэтому вопрос выбора — это вопрос веры и ничего больше. Возьми для себя тот язык, который тебе по сердцу, и проживи с ним рука об руку всю свою жизнь. Но будь осторожен: если ты выберешь его неискренно, твой Язык не вознесет тебя к небесам, а столкнет в пропасть».

Disclaimer: если данный пост оскорбляет ваши религиозные или иные чувства, Автор глубоко сожалеет об этом, и просит прощения.

Итак.

C — это христианство. Оно возникло давно, и в основе лежит Бога-Отца Денниса Ритчи и Бог-Сына Брайана Кернигана (некоторые могут ставить на его место Кена Томпсона, но мне кажется, что именно Керниган больше подходит на эту роль, так как K&R до сих пор является Библией этого языка). Bell Labs, естественно, занимает пост Святого Духа.

C++ — это католицизм. Сегодня «плюсы» можно назвать самым популярным и распространенным языком программирования, во многом благодаря усилиям Папы — Бьёрна Страуструпа — и огромной церкви различных фирм и одиночных программистов. Сюда же стоит отнести финансовое преимущество C++ над всеми остальными языками, а так же сходство Крестовых походов и любимое сленговое название «Си два креста» одного из моих учителей.

C# — это протестантизм. Данное направление христианства возникло сравнительно недавно, в результате революции, возглавляемом Мартином-Майкрософтом Лютером. Оно отказалось от торговли индульгенциями за совершенные грехи с использованием указателей и массивов.

Objective-C — это баптизм. Основу сравнения этой религии Автор видит в афроамериканской культуре пения госпелов и танцев во время службы. Во главе всей этой пестрой церкви стоит небезызвестная компания Apple, лицом которой выступает Стив Джобс — без сомнения, Мартин Лютер Кинг нашей современной IT-эпохи.

Java — это буддизм. Сначала на место олицетворяющей религии для этого языка Автор хотел поставить синтоизм, но учитывая то, что второй в период своего становления испытал значительное влияние первого, на первый план вышел как раз буддизм. Но сразу оговоримся, что буддизм стоит рассматривать именно в японском смысле, об этом говорит хотя бы «Компания восходящего солнца» — Sun Microsystems.

Pascal — это православие. Многие читатели могут подумать: «Постойте, но православие — это все же христианство, а его здесь представляет Си!» Всё так, но давайте посмотрим с другой стороны. Паскаль особенно популярен у нас в России, так же как были популярны в СССР его отец Алгол и ныне забытая дочь Модула-2. Славяне-староверы помнят так же Аду и Оберон, а интеллигенции ближе по душе Фортран.

Assembler — это язычество. Оно появилось раньше всех остальных, и является самой «животной» религией. Пантеон богов различается от территории и культуры, но в большинстве культов есть Бог Солнца ADD и Бог Тьмы SUB, Бог Огня MUL и Бог Воды DIV, а также Бог Плодородия MOV.

Basic — это атеизм. Этот выбор не хочется комментировать, кроме, пожалуй, старой фразы: «лучше верить хоть в какого-нибудь Бога, чем не верить вообще».

P.S. В процессе написания топика Автор натолкнулся на имеющийся здесь перевод другой статьи на эту же тему, но все же решил не отчаиваться, и опубликовать свое небольшое исследование.
Внимательный читатель заметит, что про ислам не сказано ничего, но Автор так и не смог выбрать между Python, Ruby и BrainFuck.

Автор: Witold

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js