информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Сетевые кракеры и правда о деле ЛевинаВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / site updates
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Динамические языки это те, которые победят мир IT ;-) 28.08.07 15:23  Число просмотров: 5354
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 28.08.07 19:15  Количество правок: 1
<"чистая" ссылка>
> Лисп хорош, но динамические языки имеют один СУЩЕСТВЕННЫЙ
> недостаток: низкая эффективность.
Этот недостаток со временем всё меньше и меньше принимается во внимание. Нельзя сопостовлять динамику и эффективность... Это понятия разных миров. К примеру, динамика forth, из-за его специфики позволяет писать на очень скудных аппаратных платформах весьма эффективные вещи. В своё время микроэлектронщики были увлечены им настолько, что разработали специализированный forth-процессор, правда судьба его оказалось схожа с судьбой SUNовского JAVA процессора ;-)

> Да и плюсы при грамотном использовании позволяют писать
> красивый, понятный код, а при безграмотном можно
> прострелить себе ногу с использованием любого инструмента.
Я всё больше склоняюсь к мысли, что большому проекту не нужна мощь ковыряния в битиках, что дают C/C++, пусть битики ковыряет скажем венда с её API + примитивы виртуальной машины в случае использования вещей наподобие forth или смаллтока. Тот же пример про реестр — сишники видят его как вендовозное API... Которое возвращает дескрипторы на СПЕЦИФИЧНЫЕ ОБЪЕКТЫ на самом деле, юниксоиды мечтают прикрутить его как файловую систему, от которой уже юниксоидов начинает подташнивать, потому что взгляд на хранение данных только через призму файловой системы это страшные шоры... На моей практике я видел две прекрасные модели реализации доступа к реестру — в .net и в Smalltalk, причём в смоллток мне понравилось больше, оно там сделано как подклассы словарей, что и есть суть долбанного виндовозного реестра.
Причём при работе с реестром кайфуем от динамики... словарь может перечислять свои ключи, может по ключу выдавать значение... Которое может быть также словарём (читай «подключ»), а может быть значением именно того типа, каким оно и является в реестре.
К примеру: найти все ключи в HKLM->SOFTWARE, которые начинаются на букву 'm' выглядит вот так:
(RegKeyAbstract localMachineRoot at: 'SOFTWARE')
	keys select: [:each | 'm*' match: each ignoreCase: true]

---

> Что же до написания компилятора: пусть лучше будет сложно
> написать компилятор языка, чем программы на нем.
Не знаю... В последнее время мне больше нравятся вещи типа хороших реализаций смоллтока. Библиотека классов там вылизовалась больше 20 лет, виртуальные машины тоже могут делать и делают замечательные вещи. На компиляторы смотрю с отвращением... В своё время Delphi был увлечён из-за его скорости компиляции, потому что ещё в том время склонялся к agile programming...
Короче, каждый кулик хвалит своё болото ;-)

У автора корневого поста опять же пример с вычислением среднего по двум целым замечательный в плане демонстрации того, что у разработчика не должна на самом деле болеть голова за классы, является ли класс примитивным и проч., особенно в математике, моя голова мне дороже, и я знаю, что в смаллток выражение (a + b) / 2 расчитается корректно при любых входных a и b, лишь бы в иерархии они сидели ниже класса ArithmeticValue ;-)
Более того, при расчёте, скажем, (1 + 2) / 2 получим экземпляр класса Fraction, без потери точности в вычислениях, и меня это НЕ ЗАБОТИТ, всё летает и прыгает и выводится без геморроя.
То же самое при расчёте (1073741823 + 1) / 2 не уличу с потерей знака, поскольку я знаю, что у меня целочисленные вычисления имеют неограниченную разрядность.
К примеру, итерационный расчёт факториала 1000 выглядит вот так:
(2 to: 1000) inject: 1 into: [:s :i | s * i]
Всё. Одна строка, 4 объекта, и посылка сообщений между ними ;-)
<site updates> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach