Подтвердить что ты не робот

Вы начнете изучать Smalltalk?

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

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

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

Может кто-то сделал такой же переход раньше?

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

4b9b3361

Ответ 1

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

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

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

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

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

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

  • На самом деле не причина, но Gang of Four Book использует Smalltalk для довольно многих своих примеров.

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

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

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

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

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

Ответ 2

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

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

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

Edit

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

Ответ 3

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

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

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

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

Ответ 4

Обучение Smalltalk даст вам основание для разработки объектно-ориентированного программного обеспечения с точки зрения человека, который изобрел OO (Alan Kay). Идея перекрытия оконной среды появилась на Smalltalk.

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

i < 60
   ifTrue: [ self walk ]

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

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

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

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

Ответ 5

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

Google - free smalltalk

Cincom Smalltalk, Squeak, GNU Smalltalk

Ответ 6

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

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

Я нашел здесь.

Ответ 7

Я не знаю Ruby..

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

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

Я бы сказал, играйте с ним, вы выиграете.

Ответ 8

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

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

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

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

Крис Брукс

Ответ 9

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

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

Lisp может быть даже более чистым в его математическом фундаменте.

рассматривает

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

Ответ 10

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

Плюсы:

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

Минусы:

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

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

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

Ответ 11

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

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

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

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

Ответ 13

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

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

Ответ 14

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

По этой мере все же лучше начать с чистого OO, хотя в наши дни у нас есть Java и С#, оба из которых являются "почти чистыми" OO - достаточно близко, чтобы вы могли проигнорировать функции, отличные от OO из них, и ограничивая себя подмножеством Pure-OO от langauges.

Ответ 15

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

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

Ответ 17

Абсолютно, узнайте Smalltalk! Это 2015 год, и Smalltalk снова растет, благодаря Pharo. Pharo БЕСПЛАТНО. Pharo быстро превращается в мощный корпоративный инструмент. В версии 4.0, и вскоре она будет 5.0, она созрела всего за четыре года!

Затем Amber, который является Smalltalk для Интернета. Он также БЕСПЛАТНО и быстро развивается.

Несмотря на репутацию Smalltalk, это не твой отец Smalltalk. Современный Smalltalk является захватывающим и перспективным.

Верно, что задания Smalltalk пока еще не заняты. Но если вас достаточно объединить с новой волной Smalltalkers, то отрасль будет адаптироваться к ней, и мы увидим более широкое применение Smalltalk в бизнесе. Вопрос в том, есть ли у вас видение?

Ответ 18

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

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

Ответ 19

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

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

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

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

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

Даже анонимные методы (блоки кода, aka blocks) - это объекты.

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

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

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

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

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

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

Ведущие краевые исследования проводятся на скоординированных распределенных OO-системах в Smalltalk (например, Naiad and Spoon).

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

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

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

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

Dolphin Smalltalk надежно настроена на собственный внешний вид Windows и позволяет вам скомпилировать закрытые exex готовой работы для распространения для конечных пользователей. Дальнейшее развитие дельфина у поставщика прекратилось, но оно полностью функционально и, как и все Smalltalks, предназначено для массового расширения. (Я упоминал, что у Фаро теперь 5000 классов, по сравнению с Squeak 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.

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

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

Ответ 20

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

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

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

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

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

Ответ 21

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