Если бы языки программирования были машинами

8 ноября 2009, 15:41
Ada – это танк, уродливый и брутальный, но он никогда не сломается. Все могут смеяться, что вы до сих пор используете этот язык, но в зоне военных действий он куда эффективнее, чем спорткар Assembler – это голый двигатель, без каких либо надстроек. Вам нужно вручную построить машину и завести её, но только если вы будете крайне аккуратны, она заработает и покажет всем раз и навсегда, чего это всё стоило. Assembler – вы и есть машина Basic – это простенькая машина для коротких поездок в ближайший магазинчик. Пользовался популярностью среди начинающих водителей, но потом был полностью переделан производителем для длительных путешествий и оригинал напоминает лишь отдалённо. CarsС – это спортивная машина, которая ездит очень быстро, но при этом ломается каждые пятьдесят километров. Cobol – слывёт автомобилем, но никто хоть раз проехав на нём не назовёт это машиной. С# - это любимый семейный универсал, однажды его поводив, вы уже никогда не воспользуетесь автомобилями других производителей. С++ - это проапгрейженый новым функционалом гоночный автомобиль, теперь он ломается только каждые 250 километров, но при этом понять, что сломалось, становится практически невозможным. Eiffel –это автомобиль сразу вместе с инструктором с французским акцентом. На первых шагах он поможет вам побыстрее со всем разобраться и учиться на ошибках, но лучше не пытаться с ним спорить – иначе он вас оскорбит и выкинет из машины. Erlang – это не один автомобиль, а целый корпоративный парк машин, которые все вместе призваны довезти вас до конечной точки. Сначала это может быть неудобно когда вы одновременно в нескольких машинах, но, привыкнув, вы сможете проехать где угодно и как угодно, и по-другому вам ездить уже не захочется. Кстати, так как у вас в распоряжении сразу парк машин, неважно будет, если какая-нибудь из них сломается. Forth – это машина собранная вручную из набора деталей. Она не выглядит и не ведёт себя как какая-либо другая машина. Правда, ездит она только задним ходом. Fortran – довольно примитивная машина. Ездит она очень быстро, но только по идеальной прямой. Говорят, те, кто смог освоить управление данной машиной, другие водить уже не сможет. Java – это семейный универсал, не очень быстрый, легкоуправляемый и безопасный. Haskell – это на редкость красивая и элегантная машина, которая передвигается весьма своеобразным путём. На самом деле вы даже не едете по дороге в этой машине – она, скорее, создаёт копии себя и дороги, и каждая последующая итерация машины оказывается чуть дальше, чем предыдущая. В принципе, наверное, можно ездить и более простым способом, но вам не хватит знания математики, чтобы определить, как это сделать. Haskell – это вообще не машина в действительности. Это некая абстрактная машина, которой мы задаём детальное описание процесса езды, и затем помещаем её в какую-то реальную машину. А уж как ездит эта реальная машина нас не особо волнует. Можно помещать и несколько абстрактных машин в одну реальную ля реализации нескольких поездок. Lisp – выглядит как машина, но при желании может быть переделана в субмарину или самолёт. Lisp – вряд ли это вообще машина на первый взгляд, но если присмотреться, то вы заметите на улицах несколько человек, управляющих данными машинами. Когда вы решите узнать больше о данных машинах, вы обнаружите, что данные машины могут сами делать другие машины. Правда, ваши знакомые смеются над этим, поскольку уж больно убого смотрятся эти самые машины. Вот и стоит один Lisp автомобиль у вас в гараже в надежде когда-нибудь выйти на свет божий. Mathematica – хорошо спроектированная машина, позаимствовавшая многое от Lisp без каких-либо стеснений. Она может провести вычисления для того, чтобы наиболее эффективно добраться до необходимой точки, правда стоить это будет немало. Matlab – машина для новичков, которые ездят по тому же покрытию, что и машины Mathematica. Но стоит вам съехать с колеи, как даже самая простая машина данного класса, становится фактически неуправляемой, да и большинство водителей уже не считает её за автомобиль вообще. Ocaml – это сексуальная европейская машина. Не такая быстрая как C, но она не ломается и поэтому довозит быстрее. Проблема только в том, что она французская, а это значит что всё органы управления у неё не на своём месте. Perl – довольно симпатичная машина, но инструкция по эксплуатации у неё абсолютно нечеловеческая. Если вы осилили разобраться как управлять данной машиной, понять другие авто вы уже не сможете. PHP – это Винермобиль Оскара Майера. Выглядит жутко и управляется с трудом, но почти каждый всё равно ещё хочет его водить. Prolog – полностью автоматическая система. Вы просто задаёте пункт назначения, и машина доставляет вас сама. Правда, задать пункт назначение не проще, чем доехать, управляя машиной самостоятельно. Prolog – машина с уникальной системой навигации. Она проезжает улицу до конца и если не находит точки назначения возвращается и исследует следующую улицу. Python – отличная машина для начинающих, чтобы водить её даже не надо обладать водительскими правами. Если вы не хотите ездить действительно быстро или в каких-то сложных условиях, то другая машина вам не понадобится. Ruby – это машина, которая получилась в результате аварии Perl, Smalltalk и Python автомобилей. Японский механик собрал из трёх машин одну, и она стала ездить, причём, по мнению многих водителей лучше, чем её составные части. Проблема только в том, что органы управления могут дублироваться, а то и триплироваться, что делает процесс управление более сложным, чем кажется на первый взгляд. По слухам идёт работа над редизайном данной модели. Smalltalk – маленькая машина, спроектированная для тех, кто только учится водить. При этом управлять ею нравится и куда более искушённым водителям. Она не очень быстра, но вы можете проапгрейдить тот или иной элемент для своих нужд. Странность в ней только одна – вы фактически не управляете машиной, а лишь посылаете сообщение машине о своём желании проехать куда-то, а она либо довозит вас, либо выдаём ошибку том, что не поняла вашего запроса. Visual Basic – машина управляет вами. Перевод. Оригинал на сайте cs.calltech.edu:
подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение