[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Несколько вопросов вразброс



Артём Н. -> debian-russian@lists.debian.org  @ Tue, 03 Jul 2012 19:36:08 +0400:

 >>  >> То, что в нем объектов нет, это хорошо.
 >>  АН> Это вопрос для чего.
 >> Практически для всего.  Я тоже в свое время радостно ломанулся в
 >> ОО-программирование.  Потом поумнел.
 АН> Но это не значит, что ООП не имеет права на жизнь.
 АН> Идея была такой просто и хорошей... :-(

"Любая задача имеет короткое, изящное и очевидное _неправильное_ решение".

ООП имеет право на жизнь, и есть задачи, которые на нем решаются хорошо.
Но этих задач существенно меньше, чем мест, куда его суют не по делу.

 >> Помнится, код, переписанный с C++ на C со старательным выкидыванием всей
 >> объектности, кроме нужной, стал на порядок компактнее, вдвое понятнее, и
 >> давал в разы меньший результат при компиляции.
 >> Tcl - он же функциональный по сути, зачем ему объекты?
 АН> Хм... Честно не знаю. Объекты, в принципе, не лишние. Но как совмещается
 АН> объектный и функциональный подход..? Хотя, библиотеки-то есть...

Никогда не надо пользоваться тем, что "в принципе не лишнее".
Пользоваться надо только тем, что тебе действительно нужно, и понимая,
почему именно оно, а не альтернативы.

Я даже скажу, где в tcl/Tk мне не хватает свойства, характерного для
объектной модели в хорошем ее исполнении.  Но оно есть отнюдь не только
в объектной модели.  Мне не хватало возможностей модифицировать Tk'шные
виджеты.  Включая возможность строить свой на базе готовых.  Оная
возможность, кстати, есть в perl/Tk.  Но там как раз объектная модель, и
описание интерфейса в результате стало куда менее читабельным.

 >>  >> А исключения и работа с файлами
 >>  >> там есть.  Просто она не относится к синтаксису - это вам не PHP :-)
 >>  АН> Хм...
 >> Чего хм?  error/catch/return/bgerror и
 >> open/socket/close/read/puts/seek/fconfigure/fileevent.  На последнее
 >> особенно обрати внимание - я не знаю больше ни одного языка со столь
 >> удобным обращением с асинхронными IO-событиями.
 АН> Почему тогда на нём не пишут?
 АН> Исторические причины?

Интеллектуально-образовательный ценз :-) Чтобы воспользоваться тем же
fileevent, нужно владеть парадигмой событийно-ориентированного
программирования.  Не вычитать в экзамплах пару шаблонов для виджетов,
чего худо-бедно хватает для написания стандартно-корявого гуя, а
парадигмой владеть.


Reply to: