К чему это привело?
Я предвкушал, как буду писать на языке, основанном чи-
сто на прототипах, но стоило мне начать — и я обнару-
жил неприятный факт: программировать на нем было
отнюдь не весело.
Конечно, язык был прост в реализации, но достига-
лась простота тем, что я переложил сложность на поль-
зователя. Как только я приступил к делу, я обнаружил
сюрприз: мне не хватало структурированности, кото-
рую дают классы. Закончилось все попытками компен-
сировать их отсутствие на уровне библиотеки.
Возможно, это связано с тем, что мой предыдущий
опыт полностью основывается на использовании язы-
ков с классами, вот мой ум и не сумел встроиться в но-
вую парадигму. Но мне кажется, большинство людей
все же предпочитают четко определенные «виды вещей».
Посмотрите на ошеломляющий успех языков на ос-
нове классов! А сколько игр имеют явные классы для
персонажей и точный список разных типов врагов,
предметов и навыков, каждый из которых тщатель-
но прописан… Вы нечасто встретите игру, где каждый
монстр уникален, словно снежинка, например «что-то
среднее между троллем и гоблином и примесью неведо-
мой змеи».
Хотя прототипы — действительно классная парадиг-
ма и я хочу рассказать о них как можно большему чис-
лу людей, я рад, что очень многие из нас на самом деле
не пользуются прототипами каждый день. Полностью
основанный на прототипах код, который я видел, был
очень странным, и мне действительно пришлось хоро-
шенько потрудиться, пока я в нем разобрался.
Я понимаю, создание
языка с нуля не самый
эффективный способ
изучения, но что я могу
сказать? Я немного
странный. Если вам ин-
тересно, язык называ-
ется Finch.
По данным из недосто-
верных источников,
многие из программи-
стов пришли к точно та-
кому же выводу. Впро-
чем, это не дает повода
считать проект беспово-
ротно провалившимся.
Self был настолько дина-
мичным, что потребова-
лось внедрить всевоз-
можные инновационные
виртуальные машины
для обеспечения доста-
точной скорости работы.
Идеи, разработанные
для динамической ком-
пиляции, сбора мусора
и оптимизации вызова
методов, — это те самые
технологии (часто реа-
лизуемые теми же са-
мыми людьми!), благо-
даря которым многие
из динамических языков
мира стали достаточно
быстрыми и теперь ис-
пользуются массово для
создания популярных
приложений.
Это также свидетель-
ствует о том, как
мало
кода написано в прото-
типном стиле на самом
деле. Я проверял.
Do'stlaringiz bilan baham: |