Re[3]: Smalltalk для людей. Есть такой?
От: Зверёк Харьковский  
Дата: 30.08.06 19:30
Оценка: :)
Здравствуйте, quadrochups, Вы писали:

Q>Или вот:


Q>
Q>!Account class methodsFor: 'instance creation'!

Q>   new
Q>       | r |

Q>       r := super new.
Q>       r init.
Q>       ^r
Q>   ! !
Q>


Q>Какие-то восклицательные знаки, палочки, крышечки... ужыз.


Q>Понятно, что привыкнуть и к такому можно, но нафик столько мучений?



Руби тебе тоже не понравится

#несколько утрированный пример:

my_array.each do |obj, *arg, &block|
  obj.instance_exec(*arg, &block)
end


Тоже какие-то палочки (полагаю, что в Руби они как раз из ST попали ), звёздочки, амперсанды... Жуть...

Если необходим язык без псевдографики — рекомендую КОБОЛ
FAQ — це мiй ай-кью!
Re[8]: Smalltalk для людей. Есть такой?
От: pavel74  
Дата: 30.08.06 20:00
Оценка: 38 (4) :)
Здравствуйте, quadrochups, Вы писали:

Q>pavel, а какая САМАЯ УДАЧНАЯ реализация Смоллтока существует?


На мой взгляд это Dolphin, вот почему:
— недорогая лицензия (примерно 500$);
— приятный внешний вид (в традиционном стиле windows);
— неплохой интелисенс. Т.к. код часто пишется в workspace-е "по ходу", то переменные уже как правило содержат объекты, а это значит что вся инфа об нем (список методов для интелисенса в частности) доступна;
— достаточно приличное быстродействие. для большинства задач более чем достаточно.
— активное доброжелательное комюнити.


Еще есть VisualWorks, про неге скажу следующее:
— невнятная лицензионная политика, а точнее просто дорого, и а это на фоне MS VS2005 — это на мой взгляд самый существенный недостаток, фактически ставящий крест на коммерческом использовании .
— самый быстрый, настоящий динамический JIT компилятор, уделывающий C++ на вызовах виртуальных методов (специально сам проверял — все правда!).
— реально многоплатформенный.
— мне не понравилось создание GUI, контролы выглядят как не родные.
— очень много хорошей доки.
— очень много наворочено вокруг продукта полезных библиотек и тулов (ORM-ы, профайлеры и т.п.).


Вообще мне в Смолтоке нравиться следующее:
— простой синтаксис. Это дает ОЧЕНЬ низкий порог входимости. Не повериш, но мне реально для того чтобы практически полностью освоить язык (синтаксис) и научиться читать его понадобилось около 2-3 часов (застваил себя напрячся и не жалею). На мой взгляд ST — просто идеальный язык для непрограммеров, а для бизнес-аналитиков, технологов-бизнес процессов, настройщиков информационных систем на предприятии (сам занимаюсь примерно и в этой сфере).
— динамическая типизация, да-да! она самая . не будем разводить флеймы, но я бы для определенных проектов СОЗНАТЕЛЬНО предпочел бы ее, прекрасно понимая все достоинства / недостатки.
за счет нее в частности более высокый уровень абстракции и соответсвенно возможность создания DSL.
— блоки кода (BlockClosures), это просто мега-круто и мега-удобно пользоваться.

— инкрементальный принцип разработки. т.е. программа создается маленьким кусочками, опробывал идею в workspace-е, из этого кусочка кода сделал метод, потом следующий и так шаг за шагом, пробуеш идею, проверяеш, save метод, подрефакторили, сохранили, юнит тестик под это дело. при этом у тебя есть живое состояние программы. Например, делаеш сложную учетную операцию, при каком-то стечении данных вылез ексепшн, в отладчике можно подлезть в любое место посмотреть любую переменную (в том числе приватные члены классов у любых живых объектов), раскопал суть проблемы тут же в отладчике и поправил и не теряя состояния пошел дальше. очень удобно.

— высокая динамичность среды. т.е. в работающем приложении можно без проблем добавлять/удалять методы в классы, менять сигнатуру класса, добавлять удалять классы и при этом программу не надо перезапускать и не теряется текущее состояние живых объектов. причем все это можно делать программно. в разумных пределах конечно.


По поводу твоего исходного вопроса — к сожалению ничего подобного с синтаксисом приближенным к "настоящим" языкам нету увы, жаль. Но по собственным ощущениям привыкнуть можно и не сильно болезненно, хотя до сих пор не нравиться как приходиться записывать сложные логические выражения — получается куча скобок, но 1-2 пишутся и выглядят нормально.
Re[9]: Smalltalk для людей. Есть такой?
От: Eugene Beschastnov Россия http://eugenius-nsk.livejournal.com/
Дата: 31.08.06 04:56
Оценка:
Здравствуйте, pavel74, Вы писали:

P>Еще есть VisualWorks, про неге скажу следующее:

P>- невнятная лицензионная политика, а точнее просто дорого, и а это на фоне MS VS2005 — это на мой взгляд самый существенный недостаток, фактически ставящий крест на коммерческом использовании .
http://www.progz.ru/forum/index.php?showtopic=15226
Если вкратце — для некоммерческих разработок (да и, по сути, для мелких коммерческих или внутренних) — бесплатно (при полном сохранении функционала).
Кроме этого существуют две лицензии, VAR и Server:
* VAR — Вы платите базовые $500 за каждого разработчика в год, и 6% от прибыли полученной от продаж за продукт (минус те $500*dev*year, что уже заплатили). При этом учитывается только вклад самого VW в продукт, например: VW — 60%, Oracle9 — 40%.
* Server — Вы платите $6000 в год за *серверную установку* продукта вне зависимости от количества разработчиков и прибыли.
Как легко видно, для мелких и средних фирм выгоднее лицензия VAR, для крупных — Server.


P>- мне не понравилось создание GUI, контролы выглядят как не родные.

Вкус и цвет — повод для драки . По мне, так вполне нормально выглядят. Кстати, насколько я знаю, прикручивание родных виджетов — это достаточно приоритетный проект у Cincom.
--
Бесчастнов Евгений
Re[9]: Smalltalk для людей. Есть такой?
От: Дарней Россия  
Дата: 31.08.06 06:04
Оценка:
Здравствуйте, pavel74, Вы писали:

P>- блоки кода (BlockClosures), это просто мега-круто и мега-удобно пользоваться.


Выглядит очень похоже на лямбду. Или есть какие-то отличия, которые я не заметил?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[9]: Smalltalk для людей. Есть такой?
От: Poisson Россия  
Дата: 31.08.06 06:30
Оценка:
Здравствуйте, pavel74, Вы писали:

P>Еще есть VisualWorks, про неге скажу следующее:

P>- невнятная лицензионная политика, а точнее просто дорого, и а это на фоне MS VS2005 — это на мой взгляд самый существенный недостаток, фактически ставящий крест на коммерческом использовании .
P>- самый быстрый, настоящий динамический JIT компилятор, уделывающий C++ на вызовах виртуальных методов (специально сам проверял — все правда!).
P>- реально многоплатформенный.
P>- мне не понравилось создание GUI, контролы выглядят как не родные.
Ну, то что они выглядят как не родные, еще не страшно. Но вот расширяемость некоторых контролов, а особенно DataSet'a, удручает. Хотя, казалось бы, все написано на том же ST, бери и правь/добавляй.

С другой стороны, грядет Pollock (доолго уже грядет..), там, возможно, ситуация будет получше. Ну и native-контролы обещают поддержать.

P>- очень много хорошей доки.

P>- очень много наворочено вокруг продукта полезных библиотек и тулов (ORM-ы, профайлеры и т.п.).
А кроме того, для VW есть Store — достаточно удобная VCS. Я не в курсе, как с этим дела у Dolphin'a?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Smalltalk для людей. Есть такой?
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 31.08.06 06:32
Оценка:
Здравствуйте, pavel74, Вы писали:

P>На мой взгляд это Dolphin, вот почему:

P>- недорогая лицензия (примерно 500$);

+ бесплатная Comunity Edition
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[5]: Smalltalk для людей. Есть такой?
От: xvost Германия http://www.jetbrains.com/company/people/Pasynkov_Eugene.html
Дата: 31.08.06 09:16
Оценка:
Здравствуйте, Poisson, Вы писали:

P>Тем не меннее.. Исходников в привычном представлении как таковых нет. Весь код хранится в двух видах — тексты методов и байт-код. Причет и то, и другое хранится в специальных файлах, куда простым редактором лазать не рекомендуется.


Мнэээ......
А что же тогда является единицей source control'а?
С уважением, Евгений
JetBrains, Inc. "Develop with pleasure!"
Re[6]: Smalltalk для людей. Есть такой?
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 31.08.06 10:07
Оценка:
Здравствуйте, xvost, Вы писали:

X>А что же тогда является единицей source control'а?


Методы
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[6]: Smalltalk для людей. Есть такой?
От: Poisson Россия  
Дата: 31.08.06 10:12
Оценка:
Здравствуйте, xvost, Вы писали:

X>Здравствуйте, Poisson, Вы писали:


P>>Тем не меннее.. Исходников в привычном представлении как таковых нет. Весь код хранится в двух видах — тексты методов и байт-код. Причет и то, и другое хранится в специальных файлах, куда простым редактором лазать не рекомендуется.


X>Мнэээ......

X>А что же тогда является единицей source control'а?
Source Control (в диалекте VisualWorks, про прочие не скажу) свой, спецфицский и очень удобный. Работает с пакетами, классами, методами и так далее. Т.е. я могу для любого класса/метода посмотреть его историю изменений (прямо из IDE, одним кнопкой)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Smalltalk для людей. Есть такой?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 31.08.06 10:16
Оценка:
Здравствуйте, Poisson, Вы писали:

X>>А что же тогда является единицей source control'а?

P>Source Control (в диалекте VisualWorks, про прочие не скажу) свой, спецфицский и очень удобный. Работает с пакетами, классами, методами и так далее. Т.е. я могу для любого класса/метода посмотреть его историю изменений (прямо из IDE, одним кнопкой)

А как совместная работа над проектом идет? Может какую-нибудь ссылочку на эту тему подкините?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Smalltalk для людей. Есть такой?
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 31.08.06 10:24
Оценка: 32 (1)
Здравствуйте, eao197, Вы писали:

E>А как совместная работа над проектом идет? Может какую-нибудь ссылочку на эту тему подкините?


SourceCodeMgmtGuide.pdf (1.5 Mb)
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[8]: Smalltalk для людей. Есть такой?
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.08.06 10:35
Оценка:
Здравствуйте, quadrochups, Вы писали:

Q>pavel, а какая САМАЯ УДАЧНАЯ реализация Смоллтока существует?


Из доступных бесплатно наверно Дольфин. Правда там половина на C++ написано (вопреки рекламным лозунгам). Да и откровенно говоря лично у меня Дольфин вызвал весма печальные ощущения гда два назад. Но вроде как последня версия вроде как даже комплит-ворд стала поддерживать. Просто прорыв для "самых лучших сред разработки".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Smalltalk для людей. Есть такой?
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.08.06 10:35
Оценка:
Здравствуйте, quadrochups, Вы писали:

Q>Не совсем понимаю почему... Вон, даже у Си есть браузер кода В чём проблема?


С строготипизированный язык. Для него как раз любой рефакторинг и навигация делается с пол пинка.
Как раз для Смолтока это сделать тяжелее. А для Руби еще тяжелее. Хотя список классов можно сделть без проблем для обоих.

ЗХ>>AFAIK, Smalltalk чуть ли не единственный язык-среда программирования, который подходит к исходникам не как к "простому тексту, который мы сейчас распрасим-скомпилируем-выполним".


Q>Мне тогда не совсем понятен стиль работы программиста — он же должен иметь исходники, отладчик, и т.п. Вы не могли бы кратко описать, как смоллтокист создаёт программу?


Все очень просто. Ты не можешь править программу без специальной IDE. Программа "живет" в этой IDE. IDE знает многое о программе. В Руби же программу запускает интерпретатор не связанный с IDE. Фактически нет никаких проблем совместить IDE и интерпретатор, но это никто не сделал.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Smalltalk для людей. Есть такой?
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 31.08.06 11:44
Оценка: +1 -1
Здравствуйте, VladD2, Вы писали:

VD>Из доступных бесплатно наверно Дольфин. Правда там половина на C++ написано (вопреки рекламным лозунгам).


Это в .Net половина на С++ (точнее обёртки к нэтиву, но это один фиг). И ниче — все довольны.
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[5]: Smalltalk для людей. Есть такой?
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 31.08.06 11:46
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Как раз для Смолтока это сделать тяжелее.


Из-за невероятной тяжести первый реф.броузер был сделан именно в ST.
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[10]: Smalltalk для людей. Есть такой?
От: pavel74  
Дата: 31.08.06 13:37
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, pavel74, Вы писали:


P>>- блоки кода (BlockClosures), это просто мега-круто и мега-удобно пользоваться.


Д>Выглядит очень похоже на лямбду. Или есть какие-то отличия, которые я не заметил?


По сути она и есть, возможно есть какие-то различия в тонкостях. Самый простой пример использования блока кода:
|b|   "объявили локальные переменные"
b:=[:i  | i>10  ]. "создал блок кода, это в итоге объект и понимает сообщение value: "
какаятоКоллекция select: b .
" что значит - выбрать все элементы удовлетворяющие условию проверяемым блоком кода (в данном случае i>10 )
  внутри коллекции работает свой алгоритм ее обхода и для каждого элмента запускает блок кода,
  передавая ему в качестве параметра текущий элемент, т.е. можно не парится как именно правильно ее обходить. 
  Если блок кода вернул true - значит элемент нам подходит выбираем его в результат.
  Да кстати класс коллекции может быть любым - интервал с верхней и нижней границей: ( 1 to: 100 )
  просто массив, словарь на основе дерева или хэш таблицы или еще какой, за это заморочится сама коллекция.
"

или тоже самое токо одной строкой
какаятоКоллекция select: [:i| i>10].


Вообщем часто бывает в методе надо реализовать какой-то универсальный алгоритм, в котором в каком-либо месте код будет зависеть от конкретного контекста использования этого метода. При помощи блоков кода такие вещи решаются легко и красиво, передал в конкретном месте вызова этого метода ему блок кода и внутри реализации метода переданный блок кода и будет работать. В итоге гораздо проще писать обобщенные алгоритмы и повторно их использовать.

В Linq наконец-то такая возможность и появилась, не прошло и 20 лет с момента выхода первого ST в свет .
Re[11]: Smalltalk для людей. Есть такой?
От: Дарней Россия  
Дата: 31.08.06 14:04
Оценка:
Здравствуйте, pavel74, Вы писали:

P>В Linq наконец-то такая возможность и появилась, не прошло и 20 лет с момента выхода первого ST в свет .


не говоря уж про Лисп
но всё равно, технология вполне интересная, как бы ее ни ругали
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Smalltalk для людей. Есть такой?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.09.06 16:41
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Здравствуйте, VladD2, Вы писали:


VD>>Из доступных бесплатно наверно Дольфин. Правда там половина на C++ написано (вопреки рекламным лозунгам).


ANS>Это в .Net половина на С++ (точнее обёртки к нэтиву, но это один фиг). И ниче — все довольны.


А кто-то где-то говорил, что в дотнете все на нем? Вот про Смолток я это слушу постоянно. Ну, а открытое вранье я не люблю.
Первое что я услышал о Дольфине, что у него среда написана на Солтоке. Первы же взгляд на эту среду Spy++-ом показал, что это не правда.

Что до С++ в дотнете... Скачай Моно погляди сколько там на чем написано. Так же интересно поглядеть на IDEA и #Devolop.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Smalltalk для людей. Есть такой?
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.09.06 16:41
Оценка: -1 :)
Здравствуйте, Andrei N.Sobchuck, Вы писали:

ANS>Из-за невероятной тяжести первый реф.броузер был сделан именно в ST.


Броузер — это детский лепет. Он действительно делается без проблем. А вот комплит-ворд, навигация по коду, подсказки для методов и их параметров. А это все для полноценной работы нужндается в статической информации о типах.

А то что что-то где-то было впервые сделано ничего не значит. Это просто говорит, о том, что те кто делал Смолток по натуре исследователи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Smalltalk для людей. Есть такой?
От: Eugene Beschastnov Россия http://eugenius-nsk.livejournal.com/
Дата: 01.09.06 17:02
Оценка: :))
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Andrei N.Sobchuck, Вы писали:


ANS>>Из-за невероятной тяжести первый реф.броузер был сделан именно в ST.


VD>Броузер — это детский лепет.

Не путаем рефакторинг браузер с класс браузером. Класс браузер был в Smalltalk изначально — это неотъемлимая часть среды разработки, которая, в свою очередь, неотъемлимая часть языка.

VD>Он действительно делается без проблем. А вот комплит-ворд, навигация по коду, подсказки для методов и их параметров.

Да уж, по сравнению со всем этим (и в сумме и по отдельности) автоматизированный рефакторинг — так, мелочь, не стоящая упоминания.

VD>А это все для полноценной работы нужндается в статической информации о типах.

А мужики-то и не знают... Придётся срочно это всё запрещать и вырезать. Тяжёлая работа, но что поделать — VladD2 так сказал.
--
Бесчастнов Евгений
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.