Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Updated] Я опять же повторюсь -- _пользовательские_ интерфейcы не хороши для надстраивания и оперирования ими -- хоть CLI, хоть GUI. 29.12.06 10:07 Число просмотров: 3279
Автор: HandleX <Александр М.> Статус: The Elderman Отредактировано 29.12.06 10:49 Количество правок: 3
|
> > А плохо то, что текстовый интерфейс берётся за основу, > Ориентация программы на текстовые потоки - это не плохо :) Это -- меньшее зло. Но зло! -))
Сейчас в линухе есть неплохая тенденция использования новой примочки DBUS, шины для локальной доставки сообщений. Вот её вообще достаточно для написания софта. И можно сказать, для написания операционной системы, где всё основано на доставке ообщений -- рулез немерянный -))
> Это в первую очередь удобный и прозрачный способ для > взаимодействия программ между собой (можно вызывать их из > своих программ, связывать их в конвейер, передавая вывод > одной команды на вход другой, и т.д.), и лишь во вторую > очередь - это пользовательский интерфейс (возможно, не > самый удобный). Традиционно в *nix выше ценится первое, чем > второе. Так уж сложилось :) Нда... Вот что значит сила привычки, своя трава самая удобная и прозрачная и забористее -)).
В текстовых потоках мультиплексируется канал управления и канал данных, причём в каждой программе таким способом, на какой хватило фантазии разработчика. Полоса пропускания тоже -- для двоичных данных приходится всё это кодировать дабы втиснуть в существующие ограничения. Одному нравится BASE64. Кому-то что-то другое. И т.д, и т.п...
Вопрос: нафига частную реализацию IPC применять как основу? А я скажу вам, почему так получилось. Патамушта C и UNIX. -))
Запустите Dolphin SmallTalk X6, к примеру... Маленькая виртуальная машина, призванная заниматься одним — максимально быстро создавать объекты, и передавать им сообщения... Чистый интерпретатор...
Нетипизированный. О Боже!!! А как же т.н безопасность? Безопасность, её никогда нет, на самом деле. Адептов переносимого ассемблера заботит не "безопасность", а чтобы ихний процес не прибивался осью от неверных параметров. Или чтобы оперативная память процесса не покорёжилась от неправильной работы с указателями... Если что-то не нравится (неверные параметры), но они объективно существуют, то стыдно прятать голову в песок, вводя ограничения в язык!
Cуществуют "неверные" параметры. Кому неверные? Когда неверные? Это всё субъективно достаточно... Все параметры чудесны -)) Сегодня они неверные, а завтра... Кто знает? Нельзя "всеведение" вводить в программирование, этим утрачивается гибкость изменений. А всё течёт, всё изменяется...
SmallTalk может передать какое угодно сообщение какому угодно объекту или классу... Не падает, не переполняется... Просто работает, и всё... На моей машине считает факториал 10000 за ~180 миллисекунд, без плясок с бубнами подключения библиотек работы с большими числами... Причём сама процедура вычисления факториала -- тоже интерпретируемая.
factorial2p
"Private - 2-partition fast factorial algorithm from 'Fast Computation of Factorials of Numbers',
Thompson & Ugur."
| x0 x1 x2 |
self < 2 ifTrue: [^self < 0 ifTrue: [self error: 'negative factorial'] ifFalse: [1]].
x0 := 2.
x1 := 10.
x2 := x0.
self // 2 - 1 timesRepeat:
[x0 := x0 + x1.
x1 := x1 + 8.
x2 := x2 * x0].
self odd ifTrue: [x2 := x2 * self].
^x2 ---
Чем больше я смотрю на SmallTalk, тем сильнее я ненавижу C/C++ с юниксом и вендами, интерпретируемые среды, ну может быть с вкраплениями "переносимого ассемблера" — это то, чем должны были стать операционные системы, но не стали. Аминь.
И есть поле для развития -- к примеру, во время простоя система может заниматься компилированием тех своих участков, которые давно не менялись, и место есть для машкода. Сам язык... В свое время кое-кому показалось, что SmallTalk недостаточно "чист", и фонатеги чистоты занялись разработкой языка Self... Были интересные наработки... потом эти товарищи ушли в Sun Microsystems -))
> Зато поверх CLI легко можно реализовать любой интерфейс - > для того же wget есть GUI frontend-ы. Ну давайте про события поговорим. Итак, идёт закачка файла WGet'ом. Оно выводит "красивый" CLI прогресс бар. Моей программе надо знать о состоянии закачки. Да, возможность узнать об этом есть. И она единственная -- парсить самому эту "красоту". Занавес.
В общем, тема флеймообразующая, дальше писать ничего не хочу... -))
[UPDATE]
К чему я это всё? Дабы не было оффтопиком, скажу, что открытые системы типа SmallTalk никогда не будут на службе у корпораций типа M$, им не нужна открытость. Ну и поделом им. Пуcть эти чудесные системы останутся на службе у тех, кто ценит их, оставляя траходром тем, кто его пытается навязать.
[/UPDATE]
Бесплатный Dolphin Smalltalk X6 Community Edition
|
|
|