Народы Вестероса как языки программирования






Ланнистеры как C# - богаты, холёны, под крылом Майкрософта. Идеальны в крупняке, платят за всё (лицензии, ажур и т.д.), везде роскошь. Но за каждым новым фреймворком прячется боль
php был списан со счетов раз за разом - и каждый раз воскрешается: то ларавель, то симфони, то WordPress. Как и железнорождённые, он устаревший и суровый, но живучий в своих водах. Его не любят, но его боятся и уважают - потому что он повсюду
Хотя если проводить такую параллель - то и Белые ходоки - это php. Когда-то давно мёртвый, но каждый раз восстаёт. Бесформенный, хаотичный, но работает. Ты думаешь, что он исчез, но потом кто-то делает сайт на WordPress, и вот он снова у порога. И все время тянется к северянам....
Дотракийцы как C: быстрые, мощные, дикие и не признают сборщик мусора. Память уважают, но обращаться с ней умеют не все. Код на C выглядит как боевой крик. Один неверный шаг и segmentation fault. Но если нужно сделать что-то жёсткое - других не зовут.
Python это Таргариены. Красиво, модно, динамично. Иногда чувствуешь, будто это магия, а не код. Можно оживить драконов (машинное обучение, нейросети, всякое модное). Но если перегреется - может сжечь всё к чертям. Одной строчкой можно сделать как шедевр, так и кошмар.
Старки - Java. Благородны, правильны, живут по правилам, у них всё строго по ООП. Все знают, что «зима близко», но почему-то продолжают использовать. Поддерживают огромные корпоративные проекты и носят дженерики как семейный герб. Вроде бы всё чинно, но когда нужно что-то изменить....
ЗАДАЧА: Прострелить себе ногу. Реализация на разных языках программирования:
C: Вы простреливаете себе ногу.
C++: Вы случайно создаете дюжину копий объекта «вы» и всем им простреливаете ногу. Срочная медицинская помощь оказывается невозможной, так как вы не можете разобраться, где настоящие копии, а где — те, что только указывают на них и говорят: «А вот он я!»
Java: После импорта java.awt.right.foot.* и java.awt.gun.right.hand.* и написания классов и методов, необходимых для этих классов, вы забываете, что вы, чёрт возьми, хотели сделать.
C#: Вы пытаетесь прострелить себе ногу, но осознаете, что для этого вам нужен 5 диск MSDN с хелпом и Visual Studio .NET… и в любом случае решетка C# не дает прострелить вам ногу, так как тот код, который вы пишете для Mono, Microsoft уже запатентовала.
SQL: INSERT INTO нога (ступня) SELECT патроны AS пуля FROM пистолет WHERE курок = 'СПУЩЕН'; COMMIT;
SQL v2: SELECT @ammo:=bullet FROM gun WHERE trigger = ‘PULLED’; INSERT INTO leg (foot) VALUES (@ammo);
Delphi: Вы залезаете на форумы и слезно умоляете дать вам компонент для прострела ноги. После компиляции нога опухает, и её масса превышает массу тела.
JavaScript: Вы прочитали 3 книги, изучили 10 наглядных примеров, разработали потрясающий интерфейс и теперь, кажется, готовы к тому, чтобы выстрелить себе в ногу. Потом в процессе стрельбы обнаруживаете, что пули имеют радиус действия, равный длине ствола, и испаряются прямо на выходе.
CSS: Вы стреляете с одной руки в правую ногу, потом меняете руку, чтобы выстрелить в другую ногу, и обнаруживаете, что пистолет превратился в банан.
node.JS: Вы начинаете асинхронно стрелять из асинхронных рук в асинхронные ноги, асинхронно не попадаете и запутываетесь в этой каше.
Objective-C/Cocoa: Вы строите стильный интерфейс, соответствующий всем канонам Apple. Вы два раза копируете и ногу, и пистолет, чтобы они работали
Pascal: Компилятор не позволит вам прострелить себе ногу.
Basic: Вы простреливаете себе ногу из водяного пистолета. В расширенных реализациях языка продолжайте, пока вся нижняя часть тела не промокнет. ...
Visual Basic: На самом деле вы будете только выглядеть, как будто ваша нога прострелена. Однако в процессе реализации вы получите столько удовольствия, что подобные мелочи вас не озаботят.