Не могли бы вы начать изучать Smalltalk?[закрыто]

StackOverflow https://stackoverflow.com/questions/149042

  •  02-07-2019
  •  | 
  •  

Вопрос

Мои вопросы просты!

  1. Начали бы вы изучать Smalltalk, если бы у вас было время?Почему?Почему бы и нет?
  2. Вы уже знакомы с Smalltalk?Почему вы рекомендуете Smalltalk?Почему бы и нет?

Лично я программист Ruby on Rails, и мне это действительно нравится.Тем не менее, я думаю о Smalltalk, потому что я читаю различные блоги, и некоторые люди называют Ruby чем-то вроде "Smalltalk Light".Вторая причина, по которой я интересуюсь Smalltalk, заключается в следующем Приморский край.

Может быть, кто-то уже совершал такой же переход раньше?

Редактировать: На самом деле, что меня больше всего взволновало в Smalltalk / Seaside, так это следующий эпизод WebDevRadio: Эпизод 52:Рэндал Шварц на берегу моря (среди прочего)

Это было полезно?

Решение

Если вам нравится Ruby, вам, вероятно, понравится Smalltalk.IIRC Seaside был перенесен на Драгоценный камень VM, который является частью их ООДБМ Gemstone /S.Он имеет гораздо лучшую поддержку потоков, чем Ruby, так что это лучший сервер для системы с большим объемом работы.Это может быть хорошей причиной для того, чтобы повнимательнее присмотреться к нему.

Причины изучения Smalltalk:

  • Это действительно, по-настоящему приятная среда программирования.Как только вы освоитесь с этим (для людей, привыкших к C ++ или Java, это, как правило, своего рода культурный шок), вы обнаружите, что это действительно хорошая среда для работы.Даже действительно дерьмовый smalltalk, подобный старым Digitalk, которые я использовал, является удивительно приятной системой в использовании.Многие старые типы гуру XP и O-O, такие как Кент Бек и Мартин Фаулер в те далекие времена они скалили зубы на Smalltalk и иногда на публике можно услышать тоску по старым добрым временам (Спасибо Фрэнку Ширеру за цитату, +1) - Гибкая разработка зародилась на этой платформе.

  • Это одна из самых производительных платформ разработки в истории.

  • Существует несколько зрелых реализаций, и существует удивительно большая база кода.В какой-то момент это стало довольно модным в кругах финансового рынка, где производительность разработчиков и время выхода на рынок имеют довольно большое значение.Вплоть до середины 1990-х годов это была более или менее единственная игра в городе (за возможным исключением LISP), если вам нужен был коммерчески поддерживаемый язык высокого уровня, подходящий для разработки приложений.

  • Развертывание несложно - просто поместите файл изображения в соответствующий каталог.

  • На самом деле это не причина, но Книга " Банда четырех " использует Smalltalk для многих своих примеров.

Причины не изучать Smalltalk:

  • Это своего рода ниша на рынке.Возможно, у вас возникнут проблемы с поиском работы.Однако, если вы производите какой-то приложение .com, в котором вам принадлежат серверы возможно, это и не проблема.

  • Многие рассматривают ее как устаревшую систему.На платформе относительно мало новых разработок (хотя Seaside, похоже, переживает своего рода ренессанс).

  • Как правило, он плохо сочетается с традиционными системами управления версиями (по крайней мере, на начало-середину 90-х, когда я им пользовался).Это может быть так, а может и не быть по-прежнему.

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

Другие советы

Что ж, поскольку вы упомянули меня по имени, я чувствую, что должен вмешаться.

Как я уже говорил в том интервью подкасту, и как я неоднократно демонстрировал в своем блоге на http://MethodsAndMessages.vox.com/, это "год smalltalk".И теперь, занимаясь пропагандой Smalltalk в течение последних десяти месяцев, я вижу, что это действительно происходит.Все больше клиентов обращаются к Smalltalk и Seaside, и все поставщики Smalltalk прилагают все усилия, чтобы привлечь этот новый приток внимания.Планируются более крупные конференции Smalltalk.Публикуются новые объявления о вакансиях.Появляется все больше постов в блогах.

Если вы сегодня обратитесь к Smalltalk, вы не одиноки.Есть много других людей, которые тоже находятся где-то там.

Редактировать

Что ж, несколько лет спустя я сейчас рекомендую Дротик вместо этого.Это отличный язык, созданный Google, но теперь принадлежащий комитету ECMA.Он работает на стороне сервера в стиле node.js, но также и на стороне клиента в современных браузерах путем перехода на JavaScript.Множество хороших книг, блогов, справочных каналов, поддержка IDE, публичный живой пастебин.Я думаю, у него определенно есть ноги...настолько, что я пишу учебные программы, чтобы преподавать их на месте или онлайн, и я почти уверен, что в разработке находится одна-две мои книги.И Гилад Брача, старый Smalltalker, внес большой вклад в дизайн, так что в Dart много Smalltalk.

Smalltalk - хороший язык для изучения, и самое замечательное, что на это уходит всего один день.Это намного больше, чем просто академический язык.Люди создают огромные, масштабируемые, воспроизводимые приложения, обходящиеся в миллиарды долларов.Они просто мало говорят об этом.Смотрите, например, Контейнерные линии GemStone и Orient Overseas:Тематическое исследование судоходной отрасли.

Seaside - хорошая причина изучить Smalltalk, но я не думаю, что вы найдете его на порядок лучше Rails.

Единственное, что убедило меня, - это Драгоценный камень.Мне очень нравится Gemstone's GLASS (GemStone, Linux, Apache, Smalltalk, Seaside).Убийственная часть этого - GemStone, которая обрабатывает всю сохраняемость объекта за вас, в основном, без того, чтобы вы думали об этом.Просмотр некоторых их демо-версий и рассказ о том, что люди делают с GemStone, изменили мое представление о том, что означает "большое приложение".

Больше всего меня беспокоит в Rails объектно-реляционное сопоставление.Это ничего не имеет против Ruby, потому что он так же сильно отстой в GLORP (который обрабатывает ActiveRecord для Smalltalk), или Perl, или что-нибудь еще.Сопоставление объектов с таблицами базы данных - это просто болезненно.С GemStone исчезают мысли о базе данных, поэтому исчезает и работа с базой данных.Это как будто огромный камень (или стая обезьян) свалился с моей спины.

> не удалось найти среду разработки Smalltalk, которая не стоила бы ни рук, ни ног

Google - бесплатный smalltalk

Cincom Smalltalk, Squeak, GNU Smalltalk

Изучение Smalltalk даст вам представление об объектно-ориентированной разработке программного обеспечения с точки зрения человека, который изобрел OO (Алан Кей).Идея перекрывающейся оконной среды пришла из Smalltalk.

Камнем преткновения при изучении Smalltalk является то, что это система передачи сообщений со странным синтаксисом для управления потоком, например:

i < 60
   ifTrue: [ self walk ]

У него очень зрелая библиотека классов, которая обладает согласованностью, которую я видел не так уж и много где.Библиотека классов во всех средах (даже коммерческих Smalltalks) имеет доступный исходный код, который позволяет вам учиться у мастеров языка.Программируя Smalltalk, я всегда задаюсь вопросом, как это делается в среде.

Smalltalk обычно реализуется в образе, который является живой средой для всех объектов в вашей системе.

Интерактивный отладчик действительно отделяет Smalltalk от Ruby.

Seaside - это платформа веб-разработки, которая привлекла к Smalltalk новое внимание.Это среда, основанная на продолжении, которая обеспечивает встроенную отладку и плавный опыт разработки с использованием расширенного клиентского типа (верхний поток приложений может быть разработан одним методом).Это интеграция со script.aculo.us была выполнена таким образом, что ее легко вызвать из Smalltalk.

Найджел, одна цитата, которая у меня есть, такова:

Хотя прошло уже много времени с тех пор, как я что-либо делал с этим, я выбираю Smalltalk, я все еще не сталкивался ни с чем подобным, поскольку он способен передавать мысли в компьютерный код.Дело не только в языке:Все дело в замечательной среде браузера, библиотеках и культуре написания четкого, хорошо продуманного кода так быстро, как только что-либо еще может создать спагетти.Когда участники JavaOne превозносили то, что Java намного продуктивнее всего остального, мне понадобился коричневый бумажный пакет.Ну что ж, вернемся к сортировке моих путей к классам...- Мартин Фаулер (журнал по разработке программного обеспечения, январь 2001)

Я нашел это здесь.

Я рекомендую всем изучить Lisp (Scheme) или Smalltalk.

У Smalltalks есть замечательные IDE, которые вы не захотите пропустить, как только оправитесь от культурного шока.И да, бесплатных вариантов несколько:Squeak, Dolphin, Smalltalk/X и Visualworks (некоммерческие).

Однако Lisp может быть еще чище в своей математической основе.

с уважением

PS:на самом деле я рекомендую изучить и то , и другое !

Я не знаю Руби..

Smalltalk - это чистый Язык ОО.Если вы чувствуете необходимость действительно понимать OO, а не только имитацию OO большинства популярных "OO" языков (таких как C ++, Java и т.д.), То я бы порекомендовал вам поиграть с smalltalk.

В smalltalk все является объектом с атрибутами, поведением и метой.В симуляциях у вас есть типы данных, которые вы используете в своих объектах.

Я бы сказал, поиграйте с этим, вы только выиграете.

Я бы не согласился с автором постера, который считает, что вы не стали бы использовать Smalltalk для больших приложений – именно в этом его преимущество.Но я также создал довольно заводные (обратите внимание на нижний регистр) прототипы приложений менее чем за неделю.

Я изучал OO в ST, начиная с 92-го, и был невероятно рад, что сделал это.Это дало мне реальный опыт работы в ОО.Мышление на занятиях.Никаких типов.ST уделяет особое внимание обмену сообщениями.Если вы хотите что-то узнать, отправьте объекту сообщение и получите ответ.ИМХО, этос и IDE действительно побуждают вас поступать правильно с вашей связью.

В моей повседневной работе на Java я застрял с файлами, дженериками, IDE типа eclipse, которые на порядки менее производительны, чем любая ST IDE.Я использовал ST единственный раз, когда закончил разработку досрочно.На самом деле это было настолько продуктивно, и мы получили так много повторного использования, что меня пришлось перевести на другой проект, так как мне было нечем заняться!(Ладно, может быть, я мог бы потратить время на то, чтобы научиться оценивать ...)

Скачай squeak, найди хорошую книгу и играй.Единственным недостатком является то, что если ваша дневная работа использует Java или C #, в конечном итоге вы пожалеете, что не можете использовать ST.Ты бы скорее добрался домой.

Крис Брукс

Я полностью на твоем месте.Я использую RoR и изучаю страну Smalltalk.Вот некоторые плюсы и минусы, которые я нахожу важными:

Плюсы:

  • Зрелая и стабильная среда
  • Быстрый цикл разработки
  • Заставляет вас больше думать и меньше писать

Минусы:

  • Требует иного мышления
  • Все еще не совсем понимал это

Довольно забавно, как я узнал о Smalltalk.Именно эта вещь постоянно всплывала в результатах поиска Google при поиске материалов на Lisp и Erlang.Однажды я проверил это и был поражен приятной средой Windows.Несколько мгновений спустя я нашел Aida / Web framework.Я был привлечен и начал изучать Smalltalk с помощью веб-разработки с помощью этого фреймворка.

Все еще не совсем понятно, но это так чертовски интересно, что я просто не могу усидеть на месте...:-) Мне снова весело.

Я бы не стал изучать его, если бы у меня было время.Почему бы и нет?Потому что было бы более продуктивно и прибыльно с финансовой точки зрения изучать C # или Java.

С другой стороны, если вы любитель и хотели бы отправиться на археологические раскопки, то я бы посоветовал потратить некоторое время на изучение Того, что, когда, почему и как в smalltalk, изучив Алана Кея.Увлекательная история и невероятный человек (в конце концов, он заслужил награду Turning Award).Тогда, может быть, немного поиграете с squeak, чтобы получить представление о языке.После этого у вас может появиться новое уважение / понимание блоков, замыканий и объектно-ориентированных принципов.

Я знаю и использую Smalltalk уже около 15 лет, до сих пор поддержание это, и я бы не рекомендовал Smalltalk другу.Почему бы и нет?Работа - это хорошая вещь, которую нужно иметь и продолжать получать.Хотя вы можете многому научиться у Smalltalk, в наши дни вам нелегко превратить это в прибыльную работу.

Кроме того, вы, похоже, были в восторге от Seaside, и я бы предположил, что партнерство Seaside и GemStone.Я использую GemStone уже довольно давно, и они вместе очень привлекательны.Я надеюсь, что они смогут получить долю рынка и импульс, необходимые для успеха.

Небольшая беседа:Получение Сообщения: http://www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html

Не надо!Если вы действительно начнете изучать это, возможно, вам больше никогда не захочется программировать на что-то другое.

Это может быть неправдой, если вы программист на lisp.

Меня учили Smalltalk на одном из первых курсов объектно-ориентированного программирования для выпускников колледжей (примерно в 1988 году).Преподаватель решил, что лучше всего начать с "чистого" языка OO, прежде чем переходить к более модному (мы немного изучили C ++ в конце семестра).

Исходя из этого, по-прежнему лучше начинать с чистого OO, хотя в наши дни у нас есть Java и C #, оба из которых являются "почти чистыми" OO - достаточно близкими, чтобы вы могли получить, игнорируя их не-OO особенности и ограничивая себя Чисто OO-подмножеством языков.

Если вы хотите лучше понять экстремальное программирование (и даже Scrum) Я бы сказал ДА.

Почему нетерпеливым Java-программистам нужно изучать Smalltalk:

http://www.dafydd.net/archive/2010/why-smalltalk-isnt-just-another-language/

Я работаю инженером-программистом уже довольно много лет.Я слышал, как люди несколько раз упоминали Smalltalk, и, конечно, Smalltalk существует примерно с 1980 года, но это один из тех языков, который, казалось, никогда не попадал в мейнстрим программного обеспечения.Что-то вроде Objective C, CLIPS, PL / I и т.д. - то, о чем вы, возможно, слышали, но то, что большинство людей никогда не программировали.

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

Безусловно, изучайте Smalltalk!Сейчас 2015 год, и Smalltalk снова на подъеме, благодаря Фаро.Фаро СВОБОДЕН.Pharo быстро превращается в мощный корпоративный инструмент.В версии 4.0, которая скоро станет 5.0, она значительно повзрослела всего за четыре года!

Тогда есть еще Янтарь, который является Smalltalk для Интернета.Это также БЕСПЛАТНО и быстро развивается.

Несмотря на Репутация Smalltalk, - это не Светская беседа твоего отца.Современный Smalltalk увлекателен и многообещающ.

Это правда, что заданий на Smalltalk не так уж много (пока).Но если достаточное количество из вас присоединится к новой волне Smalltalkers, то индустрия адаптируется к этому, и мы увидим более широкое внедрение Smalltalk в бизнесе.Вопрос в том, есть ли у вас видение?

Эта тема стала для меня очень актуальной.Я планирую перенести программное обеспечение в веб-приложение.Это программное обеспечение, основанное на базе данных.Я специально проверяю альтернативы 1) Рельсы 2) Побережье

Если я смогу получить данные для базы данных драгоценных камней в качестве базы данных, я рассмотрю и это.Так что для меня это означает, что я должен выучить Smalltalk (лучше), чем раньше.Потому что, возможно, это будет моей работой на следующие 15 лет.Вы бы (и не должны) так долго работать с программным обеспечением, которое вам не нравится ;-).У меня сложилось впечатление, что Gemstone / S - одно из самых "убойных" приложений.Но сохранение объектов по-прежнему остается очень сложной областью....

1) Да!Всегда полезно изучать язык.Если вы собираетесь изучать язык, сделайте его мощным, влиятельным языком, который можно выучить легко и быстро.

Smalltalk остается выдающимся языком и средой для изучения концепций OO.

Это все объекты, вплоть до низа.Это обеспечивает действительно последовательный подход к работе.

Целые числа - это экземпляры класса Integer.Строки - это набор символьных объектов.Классы - это объекты одноэлементного экземпляра для класса, который они определяют.

Управляющие структуры работают, отправляя сообщения get экземплярам класса Boolean.

Даже анонимные методы (блоки кода, они же блоки) являются объектами.

Все делается путем отправки сообщения объекту.Синтаксис может быть помещен на почтовую открытку.

Ясность концепций и их реализация в Smalltalk означают, что вы можете развивать способы мышления, которые непосредственно переносятся на Java, Ruby и C #.Я ожидаю, что это верно и для Python.

Это настолько хорошо объясняет концепции, что крупный университет Великобритании использовал Smalltalk для обучения 5000 человек в год объектно-ориентированным вычислениям.

Squeak 5, только что был выпущен.Он значительно повысил производительность благодаря своей новой виртуальной машине Cog / Spur, которая поддерживает прогрессивную сборку мусора.

Pharo 4 имеет прекрасную, чисто выглядящую тему для рабочего стола.Следующая версия, Pharo 5, будет выпущена в ближайшее время.Он перейдет на использование виртуальной машины Cog / Spur, в выпуске будет около 5000 классов, а дополнительные пакеты классов легко доступны из сети через инструмент браузера конфигурации.

Squeak 5 работает даже на Raspberry Pi первого поколения и почти на 50% быстрее на новом Raspberry Pi zero стоимостью 5 долларов.За 99 долларов вы покупаете Raspberry Pi 2, экран и корпус под управлением зрелой, полнофункциональной IDE.

Проводятся передовые исследования в области скоординированных распределенных OO-систем в Smalltalk (например,Наяда и Ложка).

Некоторые из крупнейших в мире корпоративных баз данных работают на Smalltalk, включая отслеживание 60% морских контейнеров в мире и торговые системы в крупнейшем в мире банке.

Вы можете использовать Smalltalk как своего рода сверхмощный CoffeeScript, записывая на Эмбер Смолталк и перенос на JavaScript, запущенный в браузере.

Squeak, Pharo и Amber - все это бесплатные языки и среды с открытым исходным кодом и открытой лицензией.

Squeak и Pharo предоставляют средства для однократной записи и запуска в любом месте для macOS, Windows и Linux.(Возможно, и RiscOS тоже).

Dolphin Smalltalk полностью ориентирован на собственный внешний вид Windows и позволяет вам компилировать закрытые файлы .exes вашей готовой работы для распространения среди конечных пользователей.Дальнейшая разработка Dolphin поставщиком остановлена, но она полностью функциональна и, как и все Smalltalks, рассчитана на массовое расширение.(Я упоминал, что у Pharo сейчас 5000 классов по сравнению с 3000 у Squeak?Фаро - это вилка Скрипа 3.9)

** Руководство по установке и запуску Squeak, Amber, Pharo, Cuis и Dolphin доступно по адресу:** http://beginningtosmalltalk.blogspot.co.uk/2015/11/how-to-get-smalltalk-up-and-running.html

Веб-фреймворк Seaside работает на Squeak и Pharo.Это замечательный зрелый инструмент, как и более традиционный фреймворк AidaWeb.

VisualAge, VisualWorks и Gemstone - все они обеспечивают надежные системы корпоративного уровня.Gemstone предоставляет бесконечно масштабируемую базу данных объектов с транзакциями и сохраняемостью.

2) Да - я действительно уже пользуюсь им.

Я выучил его в Открытом университете и сразу же начал продуктивно работать с Ruby (копия книги Pickaxe и библиотечный справочник рядом со мной).Это очень помогло мне с Java и с Xerox Moo-code.

Я только что вернулся к ит, чтобы написать приложения для контроля и распространения адаптивных, многоплатформенных мобильных приложений.

Я ожидаю, что вскоре я тоже буду переписывать свои мобильные приложения на JavaScript с использованием Amber.

Я действительно не знаю, что вы ищете.

Если вы ищете другой язык для написания, я бы подумал, что это будет сильно зависеть от доступных библиотек.Я не знаю ни Ruby, ни Smalltalk, но представляется вероятным, что наиболее эффективным способом написания приложений Ruby on Rails может быть не Smalltalk.

Если вы хотите ознакомиться с идеями, лежащими в основе Ruby, это может быть очень хорошим ходом.У меня нет ничего количественного, но я всегда чувствовал себя лучше при использовании инструментов (таких как языковые системы), если я знал больше, чем просто инструменты, если я понимал идеи, стоящие за ними, или как они работают.

Если вы хотите изучать различные виды объектно-ориентированных языков, вам вполне может понадобиться изучить Smalltalk (если он существенно отличается от Ruby), что-то вроде Java или C ++, а возможно, также объектную систему Common Lisp.

Если вы просто хотите научиться чему-то другому, Smalltalk вполне может быть хорошим выбором.Я бы также предложил Common Lisp, и у других людей, несомненно, будут другие предложения (можете ли вы получить хорошую систему Forth в наши дни?).

Да, я заинтересован в этом.Один раз уже пытался запустить, но не смог найти среду разработки Smalltalk, которая не стоила бы ни рук, ни ног.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top