metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-11-02 05:15 am

Сложность языков программирования

Power and Complexity in a Programming Language

Похоже, что чем больше мощности и выразительности добавляется в язык программирования, тем более сложным он становится. Чем более сложным становится язык, тем труднее программистам понимать, читать и поддерживать его. И чем более сложный язык, тем более вероятно, что он будет сведен к его подмножеству, что уменьшит переносимость его между программистами. Один програмист может знать одно подмножество языка и другой - другое. Хорошим примером этого видимо является С++.

Я бы еще добавил, что сложность вносит стандартная библиотека и API к операционной системе. Вот, например, C# весьма простой и понятый язык. Но .NET фреймворк, особенно в новых версиях - это же ад, его в голове удержать невозможно, особенно с учетом тысяч мелких классов и интерфейсов с одним-двумя методами.
Жаба с ее фреймворками на каждый случай жизни - туда же.

Интересно, как в этом плане пришелся бы Haskell? Сам язык вроде не сильно сложный, а вот используемые в нем концепции - кошмарный ад, а мощность и лаконичность языка порождают вот такие алгоритмы. Хотя насчет последнего - интересно было бы взглянуть на аналогичный алгоритм на другом языке, может там окажется на две страницы еще менее понятного трэша.

[identity profile] fas-tm.livejournal.com 2009-11-02 09:32 am (UTC)(link)
Может потому что программисты пишущие на языке программирования X никому сегодня ненужны ??? Все же пишут сейчас на фреймворках/с помощью библиотек/etc. Если не брать STL/bost/etc, С++ тоже понятный вполне :) Упрощение и унификация это хорошо, но швейцарским ножем нельзя пилить дерево. А бензопилой наду уметь пользоваться и иметь опыт :)

[identity profile] metaclass.livejournal.com 2009-11-02 09:36 am (UTC)(link)
Оно конечно правильно, если не заглядывать в исходный код этих библиотек. Там же ад внутри, сразу вызывающий синдром Not Invented Here :)