Есть ли какой-нибудь способ разработки в Smalltalk без использования виртуальной машины?

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

Вопрос

Я действительно начинаю изучать Smalltalk.Теперь я использую Писк, но есть какой-нибудь способ разработки в Smalltalk без использования виртуальных машин, но что-то вроде IDE?

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

Решение

Изображение в Smalltalk аналогично машине VMware:это просто замороженное состояние запущенного приложения Smalltalk. Все Smalltalks использует изображения, и разработка с использованием одного из них является предпочтительным способом разработки во всех Smalltalks.Аналогично, все Smalltalks компилируются в байт-код и запускаются на виртуальных машинах, точно так же, как это делают Java, .NET, Python и другие.Но это совершенно не связано с тем, какую программу вы используете для разработки программы Smalltalk, и насколько естественным кажется этот опыт.

Как упоминали другие, Squeak на самом деле поставляется с чрезвычайно хорошей IDE, а именно со всем Squeak.Однако я не думаю, что это то, о чем вы на самом деле спрашиваете.Насколько я могу понять, ваш вопрос заключается в одном из двух:

  1. Могу ли я разрабатывать для Smalltalk с помощью инструментов, с которыми я знаком, с помощью знакомых мне методов?Например, по каждому файлу, в обычном текстовом редакторе?
  2. Могу ли я создавать обычные приложения, используя Smalltalk?

Могу ли я разрабатывать для Smalltalk с помощью инструментов, с которыми я знаком?

В ответ на первый:почти для всех небольших разговоров - нет.Формат файла Smalltalk был разработан для работы в среде IDE Smalltalk, а не непосредственно в текстовом редакторе.Вот почему Squeak, Pharo, VisualWorks, VisualAge и любой другой Smalltalk, который я когда-либо использовал, избегают того, чтобы вы редактировали исходный код напрямую, и вместо этого предоставляют свои собственные IDE.Поскольку эти инструменты являются кроссплатформенными, их IDE, как правило, не являются родными, а скорее представляют собой эмулированный кроссплатформенный интерфейс.В то время как вы может отредактируйте исходный код непосредственно для всех этих систем (например, вы можете отредактировать foo.sources файл для изображения Squeak, затем используйте браузер изменений для загрузки ваших правок), на самом деле никто этого не делает.

Есть два пути, которые могли бы сделать вас счастливее в этом отношении.Во-первых, как указывали другие, ГНУ общее ломает стереотип и, по сути, имеет удобный для редактора формат на основе файлов.GNU Smalltalk, который я проверял в последний раз, плохо работал под Windows и имеет лицензию GPL, что может быть проблемой для вас.Но это позволяет вам использовать редактор по вашему выбору.И vim, и Emacs имеют подсветку синтаксиса для GNU Smalltalk, и хотя я не знаю о пакете для NetBeans, Emacs или одной из других основных IDE, написать его было бы не очень сложно.

Второй способ, которым вы могли бы воспользоваться, если вас беспокоит только то, что Squeak выглядит "уродливо", - это использовать Маленький разговор Дельфина.Dolphin Smalltalk - это версия Smalltalk для Windows.Хотя его будущее на данный момент неясно, вы можете захотеть взглянуть на него, так как вы, вероятно, чувствовали бы себя гораздо более комфортно в его родной среде, если Squeak беспокоит вас.

Могу ли я создавать приложения, похожие на собственные?

Если вам нужны действительно нативные виджеты, на данный момент у вас есть несколько вариантов.Dolphin предоставляет собственные виджеты, но, как я упоминал ранее, его будущее в настоящее время неопределенно.Squeak, VisualWorks и GNU Smalltalk предоставляют хорошие системы FFI, и поэтому вы могли бы создавать собственные пользовательские интерфейсы, но это было бы сравнительно сложно.Итак, в основном:если это очень важно для вас, то, прямо сейчас, использование Smalltalk может быть не лучшим вариантом для вас.

Обратите внимание, что существуют многие приложения, для которых наличие встроенных виджетов не важно.Играм и киоскам, конечно, не обязательно использовать стандартные виджеты, но если вы посмотрите вокруг, то увидите, что очень немногие обычные приложения также утруждают себя их использованием.Собственные продукты Microsoft известны своим нестандартным внешним видом, Chrome выглядит забавно неуместно на любой платформе, на которой он работает, iTunes удивительно популярен, несмотря на то, что выглядит действительно странно в системах Windows, и так далее.Множество интерфейсов на веб-сайтах также помогло людям лучше приспособиться к нестандартным интерфейсам.Таким образом, существует реальная вероятность того, что вам просто все равно - и поскольку интерфейс Squeak отличается высокой тематичностью, сделать его "симпатичным", когда вы находитесь рядом с отправкой, не составит труда.

(GNU Smalltalk делает имейте очень хорошие привязки Gtk +, которые могут быть приемлемыми для вас, в зависимости от того, что вы пытаетесь сделать.Существуют основные приложения, такие как GIMP и Pidgin, написанные на базе Gtk +, которые прекрасно смотрятся в Windows.Тем не менее, я бы простил вас за то, что вы не считаете это жизнеспособным вариантом.)

Моя рекомендация

Честно говоря, я бы настоятельно рекомендовал вам найти один из Smalltalks с IDE, который вам нравится, и использовать его.Вы будете намного продуктивнее, чем пытаться использовать текстовый редактор, будь то замаскированный, как Eclipse, или дрянной, как Scite.Вы упустите очень многое из величия Smalltalk, если пойдете другими путями:отсутствие REPL, плохая отладка, плохой просмотр кода и так далее.

Если вы настаиваете на использовании традиционной среды разработки, лучшим вариантом является GNU Smalltalk.Вам следует тщательно оценить, довольны ли вы его стабильностью и производительностью в Windows, прежде чем использовать его, и убедиться, что вас устраивают последствия его лицензии GPL, но если да, то это единственный Smalltalk, который действительно поддерживает файловую модель разработки.

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

Писк является IDE.Концепция "IDE", возможно, пришла из Smalltalk!Возможно, вам нужен "файлоориентированный" рабочий процесс? ГНУ общее это одна из реализаций, которая работает таким образом.

Как правило, ответ отрицательный, потому что Smalltalk - это не просто язык, это еще и среда, включая изменения, которые вы в нее вносите.Вы могли бы перевести это в более статичную систему с фреймворком, а не во вселенную живых объектов, но это было бы совсем другое дело.NeXTSTEP и, таким образом, Cocoa, по сути, сделали это.Таким образом, ответ может быть "конечно, это называется Objective-C."

Редактировать:Все, что было сказано, смотрите ссылку Логана на GNU Smalltalk.

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

Возможно, другие имеют в виду другие IDE, поскольку вы уже используете Squeak и, похоже, недовольны.Что именно вы ищете, чего не обеспечивает Squeak?

Работа с изображением Squeak может быть действительно увлекательной.

Окружающая среда поначалу немного сбивает с толку, но она очень мощная.

Работа в живой системе позволяет легко исследовать и изменять вещи.Вы можете вывести объект на экран, посмотреть на его состояние, поиграть с ним, просмотреть класс объекта, запустить некоторый код и увидеть, как меняется мир.

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

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

Если вы загружаете проект SVI из squeaksource, вы можете использовать привязки VI в инструментах Smalltalk.Я обновил его для запуска в Squeak 4.1, не уверен насчет 4.2.

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