Advertisement

Customize

Feb. 14th, 2009

буду краток

За последней месяц я ясно почувствовал что
программировать на Smalltalk и в Smalltalk среде лучше чем на Ruby и в блокноте++ (хоть и по TDD).

PS. Просто мне в падлу рассказывать про свои 2 попытки решить одну и туже задачу на руби, и легкое и быстрое решение её же на Smaltalk-e.

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

Jan. 18th, 2009

ещё про Ruby

На руби программировать легче - не надо ставить точки или точку с запятой в конце каждой строки.
Также есть метод collect с которым я познакомился еще в смолтолке (есть еще reject, но случая использовать еще небыло)
Есть each по аналогии с foreach в PHP или с do в смолтолке.

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

Dec. 14th, 2008

start ruby

Начал пробовать программировать на ruby.

Причина по каторой я решил научится програмить на ruby - две: создание "оконных" приложений и близость к языку Smalltalk по части объектов.

Поставил себе задачю, сделать некий "просмотр логов". Интерфейс на QT, связь по протоколу XML-RPC, по возможности надо использовать PostgreSQL и SQLite. Программа делается естественно в образовательных целях, и только для личного использования.

Первые впечатления:
- регулярные выражения и вообще стиль (постфиксные записи if,less, объявления def, class, хеши и массивы, yeild) напоминает perl.
- отсутствие точки запятой в конце и необязательное использование скобок напоминает Basic.
- ООП (если неуказывать кому посылается сообщение то посылается self, методы inspect, instant_methods, методы класа -> def Test.setClassVar, #symbol -> :symbol) напоминает Smalltalk.
- неочень понял разницу между Proc и {}, но это наверное должно напоминать lisp (но lisp я почти не знаю).
- старт был быстрый, наверное сказалась особенность языка т.е. "ожидаемость".
- с QT тяжеловато, нужно регулярно смотреть в официальный справочник по QT для с++, ну и самому думать.
- иногда ruby кидает эксепшен что типа метод не найден, хотя он есть и ты его уже использовал. Фишка в том что для каждого набора параметров есть свой метод, и с теми параметрами с которыми ты хочеш вызвать метод соответствующего метода нет. К этому надо привыкать.
- с отладкой пока-что тяжко (есть аналог gdb - "ruby -rdebug <файл>", но с ним надо разбиратся).

Восновном програмлю на работе, в openSuseLinux+KDevelop (пробую RDT).
Дома восновном балуюсь и просто пробую ruby, и там среда похуже - win98+notepad++, QT к сажелению нету (и это плохо), поэтому пробуем FOX (FXRuby).
Tags: , , ,

Dec. 1st, 2007

PHP и стиль ST

В первый раз когда я писал на php "объектно ориентированно" я долго ломал голову какой стиль использовать при создании классов. ST стиль наврядли здесь подходил, а классически-популярный стиль когда вместо функций код укладывается в методы и класс это просто группа таких методов (который мне некогда не нравился) или для PHP создателями был придуман свой стиль.
Второй раз (совсем недавно) воспользовался пакетом SimpleTest (достаточно убогая оказалась вещь) для написания тестов, и что то похожее на стиль ST начал появляться при написании классов. Но долго сохранять этот стиль не удалось, всё таки объекты/классы PHP слишком далеки от ST. Сложно писать объектно ориентированно на языках которые изначально для этого не предназначались.

PS Вчера мня угостили одной ягодой фейхоа, теперь я ее регулярно нюхаю и она поднимает настроение в мои программерские будни. Неделю назад кстати был мандарин, но он продержался всего два дня, потом аромат испортился :(... может его стоило на ночь класть в холодильник или за окно...
Tags: ,

Oct. 16th, 2007

(no subject)

Сегодня я второй раз убедился что не Squeak не VW не подходят для мелких задачь, таких как: сгенерировать список ссылок увеличивая в определенном месте число на один и убрать в текстовом файле все строки начинающиееся символом "#"...
Может я просто плохо знаю библиотеку классов смоллтолка?
Tags:

Jul. 4th, 2007

(no subject)

Всетаки оказывается под GST есть GUI front-end: http://ozark.hendrix.edu/~burch/cs/360/assn/assn4/using_blox.html
Если Squeak не запустится с текущем имиджем после последнего зависания и ресета, папробую перейти под GST.

Jun. 8th, 2007

SUnit и программирование

Начал активно приобщатся к SUnit и тестам в частности. Начал с http://www.xprogramming.com/testfram.htm, потом в Squeak что-то начал писать...
Эти тесты... кроме того что не хрена непонятно, не хрена не умеешь, так еще и не все работает так как ты читал или думал что так должно быть...
В общем такое ощущение что заново учишься программировать (буквально)...
Tags:

Mar. 30th, 2007

callback и ST

Совсем недавно столкнулся с небольшой проблемой под названием callback.
Проблема заключается в следующем:
Как можно организовать callback-и для виртуальной машины, в случае когда внешних функций много. На всех же не напасёшся callback функциями, соответственно придётся всем раздавать указатель на одну функцию. Но если кто-нибудь её вызовет, то определить кто её вызвал и кто будет отрабатывать вызов очень сложно.
Интересно как это реализованной в разных ST машинах (желательно без JIT)?
PS Это одна из самых твёрдых стен до которой я дошёл.
Tags: ,

Feb. 16th, 2007

LST5

Недавно узнал что "LittleSmalltalk ожил" (http://www.progz.ru/forum/index.php?showtopic=30299).
Жаль...
Я думал что такие не оживают...

Jan. 20th, 2007

Стереотипы тяжело ломать

Всё-таки стереотипы тяжело ломать.
Решил я сегодня изменить один из классов в своём компиляторе (удалить внутреннюю переменную), считая что от неё больше вреда чем пользы. Поправил методы, которые используют удаляемую переменную, заодно добавил новую переменную выполняющую примерно такую-же роль как и удаляемая (но с другим именем). Запустил тесты, компилятор естественно их не прошел. Начал разбираться и обнаружил забавную вещь: оказывается теперь компилятор стал генерить более правильный и оптимальный код чем хотел от него тест. Ну что-ж, начал править тесты...
И все-таки этот удачный рефакторинг маленькой части компилятора не заставил начать рефакторить весь компилятор (который на мой взгляд очень хреново написан)... Всё-таки стереотип "работает -> не трож" ещё достаточно силён...
Tags: ,

Advertisement

Customize