August 14, 2006
Снова про языки программирования
Сегодня RSS со страницы Пола Грэма вывалил кучу разных ссылок на его старые заметки и статьи. Среди них была и такая (http://www.paulgraham.com/fix.html).
Позволю себе перевести её:
Кевин Келлегер предложил интересный способ сравнивать языки проргаммирования: описывать каждый в терминах проблемы, которую он решает. Интересно то, как много языков можно описать таким образом и как удачно.
Algol: Ассемблер слишком низкоуровневый.
Pascal: В Алголе нет достаточного количества типов данных.
Modula: Паскаль слишком слаб (wimpy) для программирования систем.
Simula: Алгол не достаточно хорош для моделирования (simulations).
Smalltalk: В симуле не всё является объектом.
Fortran: Ассемблер слишком низкоуровневый.
Cobol: Фортран просто ужасен! (scary)
PL/1: В Фортране недостаточно типов данных.
Ada: В каждом из существующих языков чего-то не хватает.
Basic: Фортран ужасен!
APL: Фортран недостаточно хорош для операций с массивами.
J: Для АПЛа нужен свой набор символов (character set).
C: Ассемблер слишком низкоуровневый.
C++: С слишком низкоуровневый.
Java: С++ это ошибка природы (kludge). И Майкрософт пытается нас раздавить.
C#: Джава подконтролтьна Sun.
Lisp: Машины Тьюринга - это неудобный способ описывать вычисления.
Scheme: MacLisp - это ошибка (kludge)!
T: Scheme не поддерживает библиотек.
Common Lisp: Слишком много диалектов Лиспа.
Dylan: Схема не поддерживает библиотек и синтаксис Лиспа просто ужасен.
Perl: Командные языки оболочки (shell scripts) не достаточно похожи на настоящие языки программирования.
Python: Перл - это ошибка.
Ruby: Перл - это ошибка, а синтаксис Лиспа просто ужасен.
Prolog: Программирование - не достаточно похоже на логику.