[icon] Boris Smilga - [профессиональное] проклятие сложности
View:Recent Entries.
View:Archive.
View:Friends.
View:User Info.

Current Music:Чик Кореа, “Spain”
Subject:[профессиональное] проклятие сложности
Time:12:19 am
Уже не в первый раз наблюдаю такое явление:

Имеется некая технология, назовем ее X. Многие люди, в том числе весьма неглупые, считают ее слишком запутанной и сложной. Они собираются и придумывают более простой, стройный и чистый вариант того же самого, X'. Убеждают окружающих в правильности своей идеи. Постепенно X' начинает достаточно широко применяться, образуется пользовательская культура, возникают приложения, книжки, сайты и прочее. Постепенно же X' обрастает новыми функциональными слоями (A1, A2, ...), поскольку в чистом виде ее возможности меньше, чем требуется сообществу. В результате оказывается, что X' + A1 + A2 + ... — технология куда более сложная, чем та X, от сложности которой разработчики хотели нас избавить.

Самый вопиющий пример — это, конечно, SGML vs. XML: я уже запутался во всех тех стандартах, что выдает на-гора W3C. Видимо, подобная же участь ожидает в ближайшем будущем «программирование в аспектах», которое сейчас продвигают Кичалес и Ко в качестве удобной замены некоторым сторонам мета-объектных протоколов. (Кичалеса, собственно, есть все основания считать потерянным для просвещенного человечества с тех пор, как он связался с явщиками, — ну да Бог ему судья.)


Для чего в базовом дизайне правильно™ устроенной системы необходим некоторый уровень нетривиальности? Можно ли, например, сказать, что у всякой системы есть «совокупная сложность», и чем проще база, тем больше сложности остается на долю всего остального? Другое объяснение (весьма соблазнительное): что нетривиальная базовая технология задает порог, через который в сообщество не могут пробраться идиоты.
comments: Leave a comment Previous Entry Tell A Friend Add to Memories Next Entry

[info]ex_ilyavinar899@lj
Link:(Link)
Time:02:50 pm
Языки программирования со статическими/динамическими типами?
(Reply to this) (Thread)


[info]smilga@lj
Link:(Link)
Time:02:55 pm
Языки программирования со статическими/динамическими типами — что?
Не совсем понял, что ты имел в виду.
(Reply to this) (Parent) (Thread)

[info]ex_ilyavinar899@lj
Link:(Link)
Time:03:42 pm
Первое становится излишне сложным, имитируя второе. См. известный закон Гринспуна.
(Reply to this) (Parent) (Thread)

[info]ex_ilyavinar899@lj
Link:(Link)
Time:03:47 pm
http://philip.greenspun.com/research/ См. объяснение Василия Быкова.
(Reply to this) (Parent)


[info]smilga@lj
Link:(Link)
Time:03:48 pm
А, теперь понял.
(Reply to this) (Parent)

[info]potan@lj
Subject:Почему сложные?
Link:(Link)
Time:09:57 pm
Взять систему типов языуоа вроде Haskell, OCaml.
Языки со статической типизацией, но программисту кажется что типизация динамическая. И ни чего сложного.
(Reply to this) (Parent) (Thread)


[info]smilga@lj
Subject:«Не говорите мне, я испытала...»
Link:(Link)
Time:10:29 pm
Это Вам кажется, что динамическая. Мне так не кажется.

Гиндлей-Милнер — хорошая штука, но когда нет достаточно полной информации об устройстве предметной области, то она превращается в камень на шее. Иначе говоря, если мы создаем систему «сверху вниз», ГМ удобна, но дизайн «сверху вниз» сам по себе недостаточно удобен, с моей точки зрения.

Посмотрим, что будет с этим дальше, лет через пятнадцать - двадцать.
(Reply to this) (Parent)

[icon] Boris Smilga - [профессиональное] проклятие сложности
View:Recent Entries.
View:Archive.
View:Friends.
View:User Info.