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: