Перейти к содержимому

Фотография

Smalltalk


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 39

#1
ilya666

ilya666
  • Частый гость
  • 77 сообщений
Есть народ интересующийся сабжем?
  • 0

#2
Коляныч

Коляныч
  • В доску свой
  • 2 773 сообщений
о да! клёвый сабж! жаль, что развития должного не получил
есть где-нибудь хорошая реализация под windows?
  • 0

#3
ilya666

ilya666
  • Частый гость
  • 77 сообщений

о да! клёвый сабж! жаль, что развития должного не получил
есть где-нибудь хорошая реализация под windows?


Есть конечно. Лично я предпочитаю VisualWorks Smalltalk (http://smalltalk.cincom.com/), он очень портабельный, а если нужно чисто под виндовс то лучшей считается Dolphin Smalltalk (http://www.object-arts.com/), еще есть Squeak (http://www.squeak.org/) от создателей оригинального Smalltalk-80, он тоже под виндой работает. IBM VisualAge Smalltalk (http://www-4.ibm.com...e/ad/smalltalk/) я никогда даже не видел.
  • 0

#4
KFC

KFC
  • Частый гость
  • 99 сообщений
слышал, что в СТ правильно реализован ОО.
  • 0

#5
Коляныч

Коляныч
  • В доску свой
  • 2 773 сообщений
ilya666
последний раз я на 386-ом с ним работал, какая-то портабельная среда, с которой народ работал на макинтошах, потом чуть ли не простым копированием переносил на PC, только загружался с другого файла. С тех пор как-то руки не доходили поинтересоваться, как он там поживает, а вообще воспоминания о нём самые классные. По тем временам это было нечто суперское. Надо бы действительно скачать новую версию и освежить воспоминания

KFC
именно. Это чуть ли не единственный язык, в котором концепция ПО реализвана полность - в нём объект буквально всё. Число, строка, метод, класс, оператор и т.п. имеют как-бы двойственную природу, они если используются в выражении, где подразумевается, что это, скажем, оператор, то он работает как n-местный оператор. Но если хочешь, то можешь считать его объектом и работать с ним, как с объектом. Поскольку язык интерпретируемый, то, например, на лету можешь его переопределить. Сама среда программирования является как бы частью твоей программы и с её точки зрения твой кусок кода это тоже объект, обладающий свойствами и методами.

только для промышленного программирования эта концепция в чистом виде не годится по ряду причин, поэтому она имеет скорее академическую ценность, чем практическую
  • 0

#6
ilya666

ilya666
  • Частый гость
  • 77 сообщений

ilya666
Поскольку язык интерпретируемый, то, например, на лету можешь его переопределить. Сама среда программирования является как бы частью твоей программы и с её точки зрения твой кусок кода это тоже объект, обладающий свойствами и методами.

только для промышленного программирования эта концепция в чистом виде не годится по ряду причин, поэтому она имеет скорее академическую ценность, чем практическую


Язык уже давно не интерпретируемый. Концепцию JIT компиляции Sun именно из смолтока для Явы "позаимствовали". Причем благодаря динамической перекомпиляции на многих объектно-ориентированных тестах (например со множеством вызовов виртуальных методов) Smalltalk обходит С++ в десятки раз. А на арифметических тестах отстает всего в 5 раз. Причем авторы этих тестов не учитывают что в Смолтоке нет ограницения на размер целого числа и если на С++ реализовать большие числа, то результат может оказаться не в пользу С++.

В чем вы видите препятствия для промышленного программирования? В IBM почему-то так не считают. Вся среда VisualAge написана на VisualAge Smalltalk.

Или взять к примеру http://www.transas.com/, они авиационные симуляторы на Smalltalk пишут. Разве не промышленное применение?
  • 0

#7
Коляныч

Коляныч
  • В доску свой
  • 2 773 сообщений
ilya666
да, возможно ты прав - я очень отстал от жизни смолтолка, работал давным давно кажись за как раз за Smalltalk-80 на версии под ms-dos - он был как раз JIT, то есть интерпретируемость - это я немножко неправильно сказал, но в принципе не очень наврал, т.к. в runtime всё равно можно было менять код на лету и среда исполнения на лету это компилировала заново, получая переносимый байт-код. То, что там числа были неограниченной длины - это я тоже помню, это был клёвый рулез
  • 0

#8
* H.I.M. *

* H.I.M. *

    Читатель

  • Завсегдатай
  • 273 сообщений

Есть народ интересующийся сабжем?

Java лучше.
  • 0

#9
ilya666

ilya666
  • Частый гость
  • 77 сообщений

Есть народ интересующийся сабжем?

Java лучше.


Флейм поднимаете? Чем это она лучше?

Рецепт приготовления Java: берете Smalltalk, оставляете только статическую часть, полностью убираете IDE и вообще всю среду, делаете язык не объектно-ориентированным (добавляете int, string... которые не являются полноценными объектами), убираете из языка все что может быть непонятно программисту с квалификацией ниже среднего(объектную ориентированность мы уже угробили, потому угробим еще и синтаксис, блоки, символы, механизм DNU, мета-классы). Java готова.
  • 0

#10
* H.I.M. *

* H.I.M. *

    Читатель

  • Завсегдатай
  • 273 сообщений

Есть народ интересующийся сабжем?

Java лучше.

Флейм поднимаете? Чем это она лучше?

А тем, что, по крайней мере Java вся совместимая сверху до низу, и один раз что то написаное на java будет работать везде, даже на сотовых телефонах. А SmallTalk не совместим даже со SmallTalk других фирм и ничего нигде бесплатно не возьмешь, а если что то и найдешь, то выяснится, что все это несовместимо именно с твоим SmallTalk, плюс все виртуальные машины SmallTalk платные. Идея хорошая, но реализаций путевых нет. Я думаю, что для SmallTalk нужно виртуальную машину писать на Java. И всю низкоуровневую машинную реализацию базовых объектов SmallTalk делать на JAVA, а сам SmallTalk использовать уже как язык 4GL, работающий поверх базовых объектов JAVA.. Тогда для того, что бы выполнить программу, написанную на любом SmallTalk языке, достаточно будет установить на компьютер бесплатную Java машину и подгрузить все необходимые базовые классы SmallTalk написанные на Java. Вот так будет все совместимо, будет все работать бесплатно и на любом компьютере. И разработчикам SmallTalk не нужно будет парится с разработкой всякой низкоуровневой сетевой, файловой, драйверной и коммуникационной системной ерундой. Плюс юзер Smalltalk сам может разработать и подгрузить все интересующие его базовые классы, написанные на Java и таким образом самостоятельно развивать возможности виртуальной машины Smalltalk. А иначе Smalltalk тихо умрет, этих Smalltalk?овцев во-первых мало, а во-вторых они разобщены по конкретным реализациям Smalltalk. Как полностью объектно-ориентированный язык программирования Smalltalk очень хорош, но без мощи, популярности и расcкрученyости java Smalltalk покойник.

Сообщение отредактировал * H.I.M. *: 17.04.2005, 11:47:31

  • 0

#11
ilya666

ilya666
  • Частый гость
  • 77 сообщений

А тем, что, по крайней мере Java вся совместимая сверху до низу, и один раз что то написаное на java будет работать везде, даже на сотовых телефонах. А SmallTalk не совместим даже со SmallTalk других фирм и ничего нигде бесплатно не возьмешь, а если что то и найдешь, то выяснится, что все это несовместимо именно с твоим SmallTalk, плюс все виртуальные машины SmallTalk платные. Идея хорошая, но реализаций путевых нет. Я думаю, что для SmallTalk нужно  виртуальную машину писать на Java. И всю низкоуровневую машинную реализацию базовых объектов SmallTalk делать на JAVA, а сам SmallTalk  использовать уже как язык 4GL, работающий поверх базовых объектов JAVA.. Тогда для того, что бы выполнить программу, написанную на любом SmallTalk языке, достаточно будет установить на компьютер бесплатную Java машину и подгрузить все необходимые базовые классы SmallTalk написанные на Java.  Вот так будет все совместимо, будет все работать бесплатно и на любом компьютере. И разработчикам SmallTalk не нужно будет парится с разработкой всякой низкоуровневой сетевой, файловой, драйверной и коммуникационной системной ерундой. Плюс юзер Smalltalk сам может разработать и подгрузить все интересующие его базовые  классы, написанные на Java и таким образом самостоятельно развивать возможности виртуальной машины  Smalltalk.  А иначе  Smalltalk тихо умрет, этих Smalltalk?овцев во-первых мало, а во-вторых они разобщены по конкретным реализациям Smalltalk. Как полностью объектно-ориентированный язык программирования  Smalltalk очень хорош, но без мощи, популярности и расcкрученyости java Smalltalk покойник.


1. Java не вся совместимая. Взять к примеру MS Visual Java или GCJ
2. Не все виртуальные машины Smalltalk (кстати не SmallTalk, а именно Smalltalk) платны (GNU Smalltalk, Squeak)
3. Реализаций путевых более чем достаточно, лично мне VisualWorks хватает на 100%
4. Разработчики Smalltalk вовсе не парятся с низкоуровневой фигней, они вообще фигней не парятся
5. Разработчик Smalltalk (и не только Smalltalk) и так может использовать Java классы, JNI (Java Native Interface) еще никто не отменял, или вы не знали?
6. Разработчик Smalltalk может развивать возможности виртуальной машины САМОСТОЯТЕЛЬНО, причем (вы конечно можете не поверить) ему для этого вовсе не нужна Java.
7. Smalltalk, как и LISP, FORTRAN каждый год хоронят, но они почему-то с каждым годом становятся только лучше.

8. С каких пор популярность и раскрученость стали достоинствами языка? Я больше того скажу: толпа не в состоянии понять что-либо необычное (да и обычное с трудом понимает), именно поэтому Smalltalk не популярен, а вовсе не из-за того что Ява по каким-либо параметрам лучше. От того, что Sun'ы вбухали много денег в маркетинг Java не стала лучше и Smalltalk не стал хуже.

Если следовать вашей логике, то группа Стрелки всяко лучше Вагнера или Баха потому что она POPular.

Есть такой язык K (http://www.kx.com), его во всем мире знают реально не больше 1000 человек. Но это не помешало его создателям написать на нем один из самых быстрых серверов баз данных kdb+, которым пользуются крупнейшие банки и корпорации. И я думаю что никому ни разу не пришло в голову, что надо бы его на Java написать.
  • 0

#12
* H.I.M. *

* H.I.M. *

    Читатель

  • Завсегдатай
  • 273 сообщений
Вот смотри, написал ты прогу на Smalltalk в VisualWorks, ну и какой мне прок от бесплатной виртуальной машины Squeak если на ней твоя прога все равно работать не будет. То есть мы, даже оба работая в одном Smalltalk, не можем обмениваться программным обеспечением. Потому что базовые классы реализованные на уровне виртуальной машины и интерфейс к ним разный в каждой реализации Smalltalk. Например я пишу программу в Dolphin Smalltalk, а ты в VisualWorks и там и там Smalltalk, но обмениваться наработками мы не можем потому, что базовые классы разные. Вот я и предлагаю базовые классы реализовать на Java, что бы их можно было подгружать вместе с объектами Smalltalk. Ну вот к примеру для работы аплетов Smalltalk было бы достаточно установленной по умолчанию виртуальной машины java. Если я хочу запустить апплет Smalltalk, то я с сервера подгружаю сначала базовые классы на Java и код апплета на Smalltalk, а дальше апплет у меня выполняется на встроенной Java машине, но написан он на Smalltalk. Все равно конкурировать с распространенностью Java Smalltalk не сможет. А если сделать, так как я говорю, то можно будет спокойно писать интернет приложения на Smalltalk, но у клиента эти аплеты на Smalltalk будут работать на Java машине.
  • 0

#13
KFC

KFC
  • Частый гость
  • 99 сообщений
делайте так, как говорит H.I.M., а не то хуже будет :-)
  • 0

#14
ilya666

ilya666
  • Частый гость
  • 77 сообщений
В результате получим еще одну реализацию не совместимую со всеми остальными, проблему переносимости это не решит. (Да и есть ли эта проблема??) Тем более что Smalltalk/JVM уже давно есть (http://www.missionsoft.com/stjvm.htm)
  • 0

#15
Коляныч

Коляныч
  • В доску свой
  • 2 773 сообщений

Я думаю, что для SmallTalk нужно  виртуальную машину писать на Java. И всю низкоуровневую машинную реализацию базовых объектов SmallTalk делать на JAVA, а сам SmallTalk  использовать уже как язык 4GL, работающий поверх базовых объектов JAVA..


аха, щаз! и будет он тогда тормозить так же, как Java
там уровень примитивов сделан system dependent - непосредственно в машинные инструкции либо в вызовы прерываний

а вообще Java может и кроссплатформеннее, зато Smalltalk красивее :-)
  • 0

#16
* H.I.M. *

* H.I.M. *

    Читатель

  • Завсегдатай
  • 273 сообщений

В результате получим еще одну реализацию не совместимую со всеми остальными, проблему переносимости это не решит. (Да и есть ли эта проблема??) Тем более что Smalltalk/JVM уже давно есть (http://www.missionsoft.com/stjvm.htm)

Йоу, смотри как я крут. :-) Вот видишь, идея использовать Java машину в качестве движка для других языков висит в воздухе. Все равно, для работы Smalltalk нужно использовать какую то стандартную, бесплатную и широко распространенную виртуальную машину. Это может быть либо Java, либо NET. Единственно, что не нужно делать, так это изобретать свою виртуальную машину Smalltalk, потому что все равно ничего не получится, эта партия уже сыгранна. ;)
  • 0

#17
* H.I.M. *

* H.I.M. *

    Читатель

  • Завсегдатай
  • 273 сообщений

Я думаю, что для SmallTalk нужно  виртуальную машину писать на Java. И всю низкоуровневую машинную реализацию базовых объектов SmallTalk делать на JAVA, а сам SmallTalk  использовать уже как язык 4GL, работающий поверх базовых объектов JAVA..

аха, щаз! и будет он тогда тормозить так же, как Java
там уровень примитивов сделан system dependent - непосредственно в машинные инструкции либо в вызовы прерываний
а вообще Java может и кроссплатформеннее, зато Smalltalk красивее :-)

Smalltalk, использующий Java, не обязательно будет тормозным, они ведь могут не использовать тормозные визуальные объекты Java, а использовать всего лишь сановский байт процессор.
  • 0

#18
Gloomy

Gloomy
  • Свой человек
  • 861 сообщений
Да суета это все!

Уж сколько было "правильных" языков на которых нужно все переписать .... Переписывали (имея неплохую зряплату :-) и тут делался удивительный вывод - НЕ ТО! А вот это - уж точно ТО! И опять, и по - кругу ;)

Мне миллион языков жить не мешает. Я представляю как они расладыватся на "розу ветров" и не буду требовать девайс драйверы на Java равно как и бизнес-логику на Assembler ... но и все. А так - путь вам! Пишите на чем пишется :D

BRGDS, Хлебнувший пива Gloomy.
  • 0

#19
ilya666

ilya666
  • Частый гость
  • 77 сообщений

Это может быть либо Java, либо NET.  Единственно, что не нужно делать, так это изобретать свою виртуальную машину Smalltalk, потому что все равно ничего не получится, эта партия уже сыгранна.  :)


Чем виртуальная машина VisualWorks хуже dotNET или Java? Только тем что Cincom не вбухивает миллионы долларов в ее рекламу? Тем более что отмазка про портабельность с dotNET точно не прокатит.

Цитата: VisualWorks offers a complete solution for Windows? (95/98/ME/NT/2000), PowerMac, Intel Linux, AIX, SGI Irix, Compaq UNIX, HP-UX, and Solaris.

Куда еще портабельнее-то? Разве чо на сотки и кофеварки... да ну нах... спроса нет потому еще и не перенесли.

PS. Smalltalk/JVM это не виртуальная машина Smalltalk поверх JVM, это компилятор языка Smalltalk в байткоды JVM.

Сообщение отредактировал ilya666: 19.04.2005, 11:17:11

  • 0

#20
* H.I.M. *

* H.I.M. *

    Читатель

  • Завсегдатай
  • 273 сообщений

Да суета это все!
Уж сколько было "правильных" языков на которых нужно все переписать .... Переписывали (имея неплохую зряплату :) и тут делался удивительный вывод - НЕ ТО! А вот это - уж точно ТО! И опять, и по - кругу ;)

А никто Smalltalk не предлагает переписывать заново, я предлагаю переписать компилятор Smalltalk, так что бы он делал байт код не для экзотических и очень редких виртуальных машин Smalltalk, а для популярных и широко распространенных виртуальных машин Java. После этого все программы и все аплеты написанные в Smalltalk сразу начнут работать у большинства юзеров. А то, что там что-то будет тормозить под Java то это полная фигня. В Java основным тормозом являются ее визуальные объекты, написанные в Java. Если написать свои Java-Smalltalk визуальные объекты, которые хоть и будут исполняться на байт процессоре Java, но перед вызовом функций оконного интерфейса будут проверять тип операционной системы и хотя бы для Windows использовать ее родной оконный интерфейс Win32. Тогда у всех юзеров сидящих под виндой Java-Smaltalk будет летать как EXE?шник. А для остальных, достаточно редких у обычного юзера операционок вызывать визуальные объекты Java, там Java-Smalltalk действительно будет тормозить как Java.
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.