Тема: Сайт групп факультета ИТ МИРЭА :: Человек и Smalltalk

Прислано paxeefixee 11.02.2011 23:41
#1

Итак, товарищи, у нас начался курс ООП.
Все бы хорошо, но, как нетрудно было услышать, наш преподаватель Смирнов Сергей Сергеевич собирается обучать нас в качестве объектно-ориентированного языка программирования языку Smalltalk (а не Java, C++ или C#, как мы ожидали). Тут-то и начинается настоящее веселье.

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

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

Одной из неожиданных особенностей Smalltalk является то, что традиционные конструкции: if-then-else, for, while, и т. д. не являются частью языка. Все они реализованы с помощью объектов.

Есть всего три конструкции:
посылка сообщения объекту;
присваивание объекта переменной;
возвращение объекта из метода;
и несколько синтаксических конструкций для определения объектов-литералов и временных переменных.

«всё — объекты»

и далее в таком духе. На мой взгляд, конечно все мы эту специфику рано или поздно поймем и выучим, но на мой взгляд много логичнее было бы действительно обучать нас Java, C++ или C#. На то есть множество причин. Сергей Сергеевич ведь спрашивал нас, какой язык мы изучали до этого, а это ведь был Delphi (Object Pascal). Синтаксис Java, C++ и C# был бы для нас гораздо ближе, понятнее, логичнее, ведь конструкции-то все примерно одинаковы, похожи, считай что лишь только именно записи несколько отличаются. Нас же сразу решили пихнуть носом в «всё — объекты».
К тому же у меня создалось впечатление, что на языке Smalltalk было реализовано смехотворное количество успешных проектов, что он чуть ли не эзотерический язык с отсутствием вменяемого будущего, и мы будем заниматься считай "программированием ради программирования", т.е. попросту говоря, онанизмом. В этой теме на форуме progz.ru человек привел примеры коммерчески успешных проектов. Жаль, только что бОльшая часть ссылок уже не работает, хотя есть образы на web.archive.org, и список по СНГ. В отличие от него, Java и C# используются повсеместно и активно развиваются, имеется множество проектов на них. C++ - так вобще уже считай классика.
Хотя для обучения он говорят хорош, смущает лишь фраза "Is very easy to learn... one of its original design intentions was to be a learning environment for children.". Вспоминается известная фраза про "доступность для идиотов" и "то пользоваться этим и станет только идиот" (простите за грубость).
Хотя, понятное дело, неправильно говорить о чем-то, не попробовав это, но я думаю по крайней мере меня не будет покидать ощущение, что я программирую на уже мертвом и не особо-то нужном языке :(
Ну и также присутствие компиляции лишь в байт-код для ВМ (хотя тут Вики говорит что "современные коммерческие виртуальные машины компилируют байткоды в машинные коды для быстрого выполнения" (JIT-таки видимо присутствует)) огорчает меня по причине снижения быстродействия (да, я такой) и т.д. и т.п.

Во-вторых, помните, преподаватель говорил, что обучение будет проходить в среде VisualAge Smalltalk, информацию о которой следует смотреть на www.instantiations.com? Все бы хорошо, если бы не её цена, составляющая ни много ни мало $6,995. Забавно, правда?
Насколько я прочел, разрабатывали ее сначала IBM, а потом отдали на растерзание Instantiations. Естественно тут же были подняты большинство известных нам поисковых механизмов, Google, торрент-трекеры, сети DC... Результат на "вылеченную" или "полную" версию был, увы, не получен.
Нашли лишь http://af.telefonet.ru/KURS_4_2/index.html (небольшой студенческий сайт), где есть среди методичек некая версия, но насколько я понял, она, увы, тоже триальная (могу ошибаться конечно). Да, я упомянул, что есть триальная версия этой среды на офф. сайте, но я ее еще не скачивал и так и не понял, какие там ограничения. Если по функционалу - то плохо, если, как это часто бывает, по времени работы - то это конечно можно обойти ;)
Нашлась и причина, по которой он посоветовал нам именно этот продукт. На том же сайте доступна некая "Academic License Program", которая оказывается есть и у нашего института (доказательство тут).

Так что все это несколько печально.
Но, собравшись на конференции с SGL900, Jony321 и harrrrr и обсудив все это, мы надумали несколько вариантов решения:

Со средой разработки:

С самим языком:


Так что вот такие данные известны (и вспомнились) мне. Дополняйте, если что-то упустил, и отписывайте свои мысли по этому всему :)

Редактировал paxeefixee 12.02.2011 08:12