Что вас больше всего пугает в интегрированной среде IDE большинства современных Smalltalks?

Поскольку я на волне возрождения Smalltalk (особенно потому, что многие люди, занимающиеся Ruby-on-Rails, заново открывают для себя Smalltalk и видят Seaside в качестве своей следующей обновленной веб-инфраструктуры), я получаю вопросы типа "да, но как мне использовать мой любимый редактор для редактирования кода Smalltalk?" или «Неужели Smalltalk все еще настаивает на том, чтобы жить в собственном мире?».

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

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


person Randal Schwartz    schedule 07.10.2008    source источник


Ответы (8)


Все по-другому. Хотите пройти до конца очереди? Это не Ctrl - E. Хотите перепрыгнуть через несколько слов? Это не Мета-Ф ....

Редактирование текста - это фундаментальная программная деятельность. Возиться с этими входами - значит возиться с чем-то глубоко в моей голове.

Изменить: и вот кто-то спрашивает для привязок клавиш emacs на comp.lang.smalltalk в 1987.

person EfForEffort    schedule 07.10.2008
comment
Сказав это, не должно быть так сложно модифицировать emacs-isms для редактора в виртуальной машине. По самой природе Smalltalk у вас есть исходный код для обозревателя классов и редактора. - person ConcernedOfTunbridgeWells; 15.12.2008
comment
Другими словами, вы боитесь перемен. - person Dog; 09.04.2013
comment
То, что это можно исправить, не означает, что вы должны ожидать, что люди будут тратить свое время на преодоление таких препятствий для входа. Он должен работать так, как они этого ожидают. Представьте, что вы садитесь в машину, у которой нет руля. Вы боитесь перемен? - person Alexander; 19.02.2016

В частности, меня ничего не пугает, но я обнаружил, что разработка API в VW является утомительной задачей, даже когда я использовал другие smalltalks. Эффект браузеров заключается в том, что вы склонны видеть API понемногу, и довольно часто не сразу становится очевидным, где вам следует искать ту или иную функциональность.

Smalltalk также немного страдает от смены парадигмы, чтобы понять, как он работает. Когда я получал степень бакалавра в университете (через некоторое время после того, как я впервые познакомился со Smalltalk), я получил немного удовольствия от Schadenfraude, наблюдая, как все остальные в классе преодолевают первоначальную парадигму, когда они впервые изучают систему (Squeak). время.

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

Кроме того (к сожалению), Java появилась в середине 1990-х и захватила все умы. Основные Smalltalks либо полностью умерли, либо были проданы нишевым игрокам. Довольно иронично (в хорошем смысле слова), что Ruby снова пробудила интерес к Smalltalk, но давнее восприятие устаревания, которое "также запускается", не помогает.

См. этот мой пост, чтобы узнать о достоинствах (как я их вижу) ) активного участия в Smalltalk в наши дни.

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

person ConcernedOfTunbridgeWells    schedule 07.10.2008

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

В отношении подхода, основанного на изображениях, меня беспокоит то, что, хотя в среде Smalltalk есть замечательные вещи, это огороженный сад, который затрудняет взаимодействие с чем-либо за пределами этой среды. Например, что, если я хочу использовать внешние инструменты, такие как Yacc и Lex? Что, если я хочу использовать некоторые программы C или Python для генерации кода Smalltalk? Что, если я хочу смешать Smalltalk с кучей кода, написанного на других языках, редактировать код на всех этих языках в одном редакторе и хранить все это в одном дереве исходного кода?

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

person Community    schedule 10.10.2008
comment
Это все еще ключевая слабость, которая мешает мне рассматривать Squeak / Pharo для серьезной работы. - person Warren P; 26.05.2010
comment
Что, если я хочу смешать Smalltalk с кучей кода, написанного на других языках ...: Ometa / Squeak Алекса Варта делает именно это: вы пишете одни методы на Ometa, а другие на Smalltalk. Это все еще немного грубо, но идея показывает, что взаимодействие определенно возможно. См. Также работу Ренггли о Helvetia: scg.unibe.ch/archive/papers/Reng09bLanguageShootout.pdf < / а> - person Frank Shearar; 21.09.2010

Единственное препятствие для меня - это то, что код, который я пишу для одной виртуальной машины Smalltalk, ВСЕ ЕЩЕ после всех этих лет не совместим с другими виртуальными машинами Smalltalk.

Я понимаю, почему это так: ядро ​​Smalltalk - это чрезвычайно небольшой набор аксиом и ключевых слов. Это означает, что после 30 минут изучения Smalltalk вы уже изучаете библиотеку API, а не сам язык. Мне нравится такой подход к языковому дизайну.

Однако в мире Smalltalk все сводится к тому, что до тех пор, пока все поставщики виртуальных машин не достигнут консенсуса относительно общего базового стандартного API, мой код Smalltalk, написанный для одной виртуальной машины, почти наверняка не будет работать на других виртуальных машинах, когда я решили переключиться.

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

Обратите внимание, что я почти не пробовал Smalltalk в своей жизни. Я далеко не специалист. Это понимание пришло из разговора с Джеймсом Робертсоном около месяца назад.

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

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

person webmat    schedule 07.10.2008
comment
Нам не пришлось слишком много заново изобретать. В основном это просто ограничение общего подмножества API, совместно используемого Smalltalks. Затем нужно перепрыгнуть через несколько обручей, а носильщикам еще придется немного помассировать. Было бы неплохо, если бы некоторые из основных вещей были более стандартными. - person Julian; 10.10.2008
comment
Ах хорошо. Тогда, может быть, это не так плохо, как я думал :-) Это определенно не выглядит идеально, но если хотя бы API-интерфейсы выглядят немного похожими, то, по крайней мере, я не отказываюсь от всех своих знаний при переходе с одной платформы на другой. - person webmat; 10.10.2008
comment
Вы должны увидеть все проблемы с разными компиляторами C, C ++ и т. Д. Не говоря уже о том, что большинство динамических языков имеют тенденцию иметь только одну доминирующую виртуальную машину, поэтому они полностью игнорируют эту проблему -_- ' - person ; 11.02.2012

Я знаю, что уже поздно, но меня больше всего раздражает то, что ни на одном smalltalks нет действительно хорошего редактора. Этого я не могу понять. Работа с текстом настолько важна и менее "поддерживается" ....

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

person Friedrich    schedule 24.03.2009
comment
Вам не нужен мощный редактор, когда вы имеете дело с 5-10 строками кода за раз. Также существенно помогает интеграция редактора со средой. - person Randal Schwartz; 25.03.2009
comment
Я не согласен с этим и предпочел бы Smalltalk с приличными возможностями редактирования. Представьте себе почтовую программу, встроенную в Squeak, и вы согласитесь, что хорошие редакторы подойдут ... - person Friedrich; 29.03.2009
comment
В Omnibrowser есть преследующий браузер, который НАМНОГО упрощает поиск отправителей / разработчиков. Взгляните, например, на OBImplementorsBrowser. - person Frank Shearar; 01.04.2009
comment
Рэндал, я согласен. Фридрих, я тоже согласен. * забавно говорить, что именно windoze-специфичный вариант наиболее удобен :( - person Damien Pollet; 10.04.2009
comment
Я обнаружил, что мне не нужна мощная функция редактора, чтобы играть с Squeak / Pharo. И пока все, что я могу в нем делать, это играть. Мне было бы хорошо, если бы я смог продвинуться достаточно далеко, чтобы написать достаточно кода, чтобы мне не хватало некоторых функций vi, emacs или редактора Windows. - person Warren P; 26.05.2010
comment
Просто подумайте об интегрированной структуре Smalltalks. Я, со своей стороны, предпочел бы постоянно оставаться в Smalltalk, писать сценарии на Smalltalk, составлять письма в приличном редакторе. Просто юникс с небольшим тэком сзади. Для любых серьезных текстовых работ нужен достойный редактор. Только подумайте об удивительном Emacs. Это оболочка lisp выше всего, вы можете редактировать все в ней, вы можете работать с любым типом RCS. Так что просто создавайте такие вещи с помощью Smalltalk, как клей ... - person Friedrich; 27.05.2010

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

С такими инструментами, как Eclipse или Team Foundation Server, вы привыкаете к тому, что все инструменты интегрируются друг с другом. Например. если требование создается, оно автоматически связывается с наборами изменений, которые программист принимает для реализации этого требования. Это «нарушение границ» между ранее использовавшимися разными инструментами практически невозможно в мире Smalltalk, но с более крупными проектами, большими командами, более высокими уровнями абстракции и т. Д. Вам понадобятся инструменты, которые являются чем-то большим, чем просто модный редактор, и помогут вам на протяжении всей разработки программного обеспечения. жизненный цикл.

person Bananeweizen    schedule 07.12.2008
comment
Но затмение немного похоже на образ Smalltalk, не так ли? Все должно быть внутри рабочей области, все должно выполняться с помощью плагинов eclipse ... могу ли я git clone blah где-нибудь еще и все еще интегрировать eclipse с этим? - person Damien Pollet; 10.04.2009
comment
Кроме того, нарушение границ невозможно в Smalltalk, потому что границы просто нет. Инструменты контроля версий и браузеры кода работают с теми же объектами классов и методов, что и виртуальная машина. Нажмите ctrl-T на тестовом классе в браузере кода: появится красная / зеленая точка, нет необходимости запускать пользовательский интерфейс SUnit и т. Д. - person Damien Pollet; 10.04.2009

Нет полезной поддержки для навигации с помощью клавиатуры или поддержки поведения пользовательского интерфейса платформы.

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

person Nicholas Riley    schedule 21.10.2009

Для мира Windows нет ничего лучше Dolphin Smalltalk. IDE просто фантастическая. Еще один качественный продукт, если вы хотите попробовать, - это Visualworks, он работает хорошо, имеет очень быструю виртуальную машину и неплохая документация.

Раньше я использовал оба, бояться нечего.

person Hernán    schedule 21.12.2008