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

C - гоночная машина, едет очень быстро, но ломается через каждые 50 миль. C++ - гоночная машина с двигателем повышенной мощности с кучей прибамбасов, ломается реже - через каждые 250 миль, но уж когда ломается - никто не может выяснить причину. Java - семейный микроавтобус. Легко управлять, едет не очень быстро, безопасен. C# - модель семейного микроавтобуса от конкурентов. После этой машины садиться за руль микроавтобуса-конкурента запрещается. Ocaml - очень сексуальная европейская машина. Не так быстра, как C, но никогда не ломается, так что получается доехать дальше и за меньшее время. Однако, так как машина французская, рычаги управления находятся в непривычных местах. Haskell - невероятно элегантная и красивая машина. Ходят слухи, что этот автомобиль может передвигаться даже по чрезвычайно странной местности. Сев за руль этой машины, понимаешь, что в действительности она не едет по дороге; вместо этого, автомобиль создает копии себя и дороги, и на каждой последующей копии машина перемещена чуть дальше вперед. Предполагается, что машина может передвигаться и более традиционным способом, но чтобы понять как, нужно очень хорошо знать математику. [Монада-версия:]Haskell - это в действительности не машина; это абстрактный механизм, для которого дается детальное описание, как выглядел бы процесс езды, если бы он происходил в действительности. Для того, чтобы действительно поехать, надо абстрактную машину поместить внутрь другой, конкретной машины. Ответа на вопрос, как работает конкретная машина, не предполагается. Также можно взять несколько абстрактных машин и сделать одну абстрактную машину, которую можно поместить внутрь конкретной машины и совершить несколько поездок одну за другой. Lisp - выглядит, как автомобиль, но немного подправив, можно превратить в неплохой самолет или подводную лодку. Prolog - полностью автоматическая модель: рассказываете, как выглядит место назначения, и машина сама довозит вас туда. Однако часто проще доехать самому, чем описать место назначения. Perl - считается крутой машиной, но с непонятной инструкцией водителя. И даже если вы разберетесь, как управлять собственной perl-машиной, чужую такую же водить все равно не сможете. Python - отличная машина для начинающих; можно водить даже без водительский прав. Если нет необходимости ехать очень быстро или по сложной местности, другая машина может никогда и не понадобиться. Smalltalk - маленький автомобиль, изначально спроектированный для обучения вождению, но опытные водители также любят погонять на нем. Едет не очень быстро, но зато можно взять любую часть и заменить, чтобы приблизить машину к своему идеалу автомобиля. Еще странная вещь: водитель не управляет машиной; машине отсылаются сообщения с просьбой отправиться в определенное место, и она либо едет туда, либо отвечает, что не понимает запроса. Ruby - машина, получившаяся в результате столкновения трех автомобилей: Perl, Python и Smalltalk. Японский механик подобрал лучшие части от каждой машины и собрал вместе Erlang - целый флот автомобилей, которые действуют сообща для прибытия на место назначения. Требуется практика, чтобы научиться управлять сразу несколькими машинами; но зато потом можно ездить по непроходимой для других машин местности. К тому же, в случае флота машин поломка пары автомобилей не будет существенной помехой. Fortran - довольно примитивная машина; может ехать очень быстро, но только по идеально ровным дорогам. Существует мнение, что тот, кто научился управлять этой машиной, никогда не сможет водить какую-либо другую модель. Cobol - считается автомобилем, но не один уважающий себя водитель не признается, что когда-либо водил эту машину. Forth - набор для сборки автомобиля. Ваша машина может быть совершенно самобытной, не похожей на другие автомобили. Однако ехать она сможет только задним ходом. Assembly Language - просто двигатель; машину надо построить самому и вручную подавать топливо во время движения, но при определенном навыке можно ехать с поистине адской скоростью. Eiffel - машина с инструктором (имеющим французский акцент) в комплекте. Инструктор поможет быстро находить и исправлять свои ошибки, но не смейте спорить с ним, а не то он разозлится и вышвырнет вас из машины. Источник: http://www.cs.caltech.edu/~mvanier/hacking/rants/cars.html Перевод: http://kit.habrahabr.ru/



Опубликовал admin
18 Авг, Суббота 2007г.



Программирование для чайников.