Есть ли хорошая реализация с небольшими сокращениями с открытым исходным кодом?

Знаете ли вы какие-либо хорошие реализации smalltalk, которые отвечают следующим критериям:

  • - с открытым исходным кодом (и бесплатно)
  • готовы к работе - я могу делать с ними коммерческие приложения.
  • работает на os x

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

Ответы

Ответ 1

Я рад разработке коммерческих веб-приложений на Mac в Pharo. Кросс-платформенная разработка проста и безболезненна. Я работаю вместе с разработчиком на базе Windows и развертываем на Ubuntu. Там мы используем коммерческую Gemstone (OODB) в своей бесплатной версии. Мы используем Monticello в качестве системы управления распределенной версией. Я преподал студенту основы smalltallk и Seaside с Джеймсом Фостером tutorial. Более подробное объяснение есть в Приморье book

При создании моделей домена Glamour - это фантастический инструментарий для создания браузеров, позволяющий осуществлять навигацию и визуализацию модели. Это часть Moose, система реинжиниринга программного обеспечения, также основанная на Pharo.

Конечно, есть и недостатки: Pharo сильно меняется. Отслеживайте изменения, которые происходят в отслеживателе проблем и списке рассылки. Остановимся примерно на месяц за краем кровотечения. Интеграция с устаревшими системами проще всего с веб-службами REST или файлами. Smalltalk имеет тенденцию использовать намного меньше XML (SOAP), чем .NET и java. Нет хорошей поддержки 64 бит. Есть 64-битные изображения, но они недостаточно проверены и, как известно, имеют проблемы.

Ответ 2

Pharo соответствует всем вашим критериям. Он имеет открытый исходный код и бесплатный, он был специально разработан для Squeak специально для профессионального развития и потому, что Squeak фактически родился под зонтиком Apple, он отлично поддерживает OS X.

Ответ 3

Squeak. Как упоминал Янко, Пьяк породил Фаро. Начиная с вилки, Squeak претерпел ряд существенных изменений и, по крайней мере, по-моему, является готовым к работе как Pharo.

(Между сообществами Squeak и Pharo существует большое количество перекрестных опытов. Они даже используют одну и ту же виртуальную машину.)

Ответ 7

Pharo, если ваш фокус - только веб-разработка. Писк, если вы хотите больше вещей, чтобы играть, и не волнует, если вы немного отстаете от последних веб-разработок, используя Seaside, и не возражаете, если есть библиотеки, которые люди не тестировали в то время. Cobalt (основанный на скрипке) или OpenQwaq, если вы хотите иметь надежный 3D-пользовательский распределенный мир 3D. Царапины, если вы хотите, чтобы готовая среда для детей была готова к работе.

Все они основаны на писк.

У вас есть несколько вариантов виртуальной машины, доступных с каждым из вышеперечисленных. Cog и CogMT предназначены для ускорения виртуальных машин, которые используют компилятор только во времени для дополнительной скорости.

Существуют также экспериментальные графические интерфейсы, такие как Cuis, и там используется автономная виртуальная машина под названием "SqueakNOS" вместо операционной системы хоста, такой как Mac OS или Linux.

Через несколько месяцев должна быть широко масштабируемая многоядерная система, доступная под названием SiliconSqueak, которая реализует виртуальную машину Squeak в аппаратном обеспечении.

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

Ответ 8

Я использую #Pharo для коммерческой разработки.

Область приложения: приборная панель и сетевое оборудование.

Очень прочный инструмент, выполняется быстро.

Теперь на Pharo 3.0.

Инструменты командной строки, созданные с помощью CommandLineHandlers. Веб-приложения с Seaside и с Apache.

Мониторинг VM с помощью monit.

CI с Дженкинсом.

Все исходные коды Smalltalk управляются в git.

Лучше всего скорость разработки и простота отладки. Никогда не было такого хорошего опыта. Исходя из Java, PHP и некоторых C.