Pull to refresh

Exception Conference #07

Reading time 2 min
Views 877
Website development *
15 марта 2008 года в Киеве состоится седьмая всеукраинская конференция по динамическим языкам программирования “Exception Conference #07”. В конференции примут участие лучше украинские и российские специалисты в области разработки GUI- и Web- приложений. Это первая в своём роде конференция, которая «под одной крышей» объединит языки программирования Python, Ruby, SmallTalk, Groovy и REBOL. Аналогов Exception Conference на данный момент нет нигде.

Докладчики конференции являются представителями таких крупных компаний как Epam Systems, Microsoft, российской телекомпании "Спорт". Люди, принимающие непосредственное участие в разработке проектов ВКонтакте.ру, ВКадре.ру, а так же один из авторов известного печатного журнала «Системный Администратор». Кроме того, некоторые из докладчиков являются фрилансерами, имеют богатый опыт удалённой работы и готовы им поделиться.

В программе конференции будут работать два потока докладов, разделённых тематически. Это позволит участникам выбирать наиболее интересные темы. Конференция пройдёт в гостинице «Русь», которая славится своими уютными конференц-залами и качеством обслуживания. В работе конференции задействованы два зала: на 250 и 150 человек. Общее количество ожидаемых участников — 400 человек.

На данный момент известно, что на конференцию едут люди практически со всех уголков Украины (Харьков, Львов, Севастополь, Симферополь, Одесса, Чернигов, Днепропетровск, Донецк, Ивано-Франковск, Ровно, Херсон, Житомир и другие), а так же России (Москва, Санкт-Петербург, Екатеринбург), Беларуссии (Минск, Гомель) и Молдовы (Кишинёв).

Плюс ко всему вышеперечисленному, во время конференции у вас есть реальный шанс получить в подарок один из следующих призов: MP3 плеер Apple iPod Nano 8GB, мобильный телефон LG KG245 или Transcend 8GB JetFlash.

Подробная информация: exception.org.ua/events/exception-conference-07
Total votes 32: ↑31 and ↓1 +30
Comments 32

Io programming language

Reading time 3 min
Views 8.2K
Abnormal programming *ООP *Smalltalk *
По факту защиты мной диплома образовалось некоторое свободное время и я таки решил собраться и написать про эту чудесную штучку.
Мы в последнее время видим всплеск интереса ко всяким языкам очень высокого уровня, с анонимными функциями, каррингом, мапом/фолдом, метапрограммированием и прочим блэкджэком. Слава богу, я считаю.
Задачи усложняются и если люди применяют относительно низкоуровневые средства разработки зачастую наступает ситуация, когда набор абстракций оказывается мал в рамках решаемой задачи, примерно так появляется «спагетти» и велосипеды. Хорошего мало. Хотя умалять роль низкоуровневого программирования не хочется совершенно, по понятным причинам.

Совсем недавно, в 2002 году, бравый американец Стив Декорте понял, что ему как-то все вокруг не нравится. Ну то есть нравится, но как-то по частям. Нравится Smalltalk своей Ъ-ООП природой, нравится Lisp своей системой метапрограммирования и общей мегаизвратностью, нравится Self своими прототипами, нравится Lua, потому что маленькая и клево встраивается куда угодно. А вот что бы все и сразу — что-то не то. Погоревал бравый американец, да и наколбасил свой собственный язык программирования — Io.

Io


Io это маленький, полностью объектно-ориентированный язык программирования с динамической типизацией и развитой системой метапрограммирования, анонимными функциями и вытекающими отсюда плюшками. Кроме того, Io невероятно прост, как в синтаксисе, так и внутри. Существуют всего две сущности: объекты и сообщения. На этом базисе построено все остальное. Вообще весь язык следует дзенскому духу минимализма и простоты.
В Io нет понятия класс, только объект. Объект может быть склонирован и изменен, таким образом мы получаем другой объект (Это и есть прототипы). Все типы данных, значения и прочая — объекты.

Ну что, поехали.
Читать дальше →
Total votes 109: ↑109 and ↓0 +109
Comments 136

Io Language: Синтаксис

Reading time 4 min
Views 3.5K
Abnormal programming *Lisp *Smalltalk *

В продолжение серии статей про Io, хотелось бы отдельно остановиться на синтаксисе языка.
В двух словах синтаксис Io можно описать так: простой, но странный. Многих удивит такой подход, но, спешу заверить, как и в Lisp, синтаксис неудобен только при взгляде со стороны. С эстетической точки зрения можно отдельно выделить тот факт, что многие прогаммы на Io внешне кажутся излишне разреженными, на экране остается много «лишнего», незаполненного полезным кодом места, это ощущение меня не покидает довольно давно, я пока не придумал, как полностью избавиться от этого вывиха мозга, я просто придумал для себя некоторые правила оформления кода, при соблюдении которых эффект значительно сморщивается:
  • Длина строки не должна превышать 80 символов (Привет, text mode!)
  • Между клонированием объекта и описанием тела нового должна быть пустая строка
  • Методы и свойства группируются
  • Без лишней необходимости скобки на новую строку не переносятся


Ну что, поехали. Вынос мозга №2.
Читать дальше →
Total votes 50: ↑45 and ↓5 +40
Comments 17

Поиск методов в Squeak смолтоке

Reading time 1 min
Views 896
Smalltalk *
Смолток до сих пор остаётся любимой игрушкой многих программистов. Он просто прекрасен!
Вот взять хотя бы Method Finder: пишешь что есть и что надо получить — смолток находит методы, которыми это можно сделать
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 8

Как попробовать Smalltalk на вкус

Reading time 7 min
Views 16K
Programming *Smalltalk *
Smalltalk LogoС выходом на большую арену Ruby и с появлением фреймворка Seaside, все чаще упоминается Smalltalk. Однако, среди молодого поколения (разработчики до 30 лет) бытует мнение, что это мертвый язык, разработанный на заре появления ПК и тогда же похороненный. Упоминание о Smalltalk на лекциях по ЯП, недалеко от COBOL, делает его еще более архаичным.

Однако, это неправда! Все это время Smalltalk жил, иногда даже рядом с нами, развивался, использовался для решения серьезных задач, а иногда — для несерьезных. вот тут просто фраза как-то странно построена. Но вот притока свежей крови в сообщество разработчиков практически не было. Причины сейчас перечислять бессмысленно.

Но что происходит когда программисту хочется попробовать что-то новенькое? Он пытается это сделать. И от того, насколько это легко или сложно, с какими проблемами он столкнется, зависит его отношение к инструменту в дальнейшем.
попробовать Smalltalk
Total votes 88: ↑84 and ↓4 +80
Comments 57

Seaside 2.9: Частичные продолжения

Reading time 10 min
Views 1.4K
Programming *Smalltalk *
Translation
Некоторое время назад на хабре проскакивал топик про «континуации» от ХабраЮзера qmax. Он был весьма впечатлен идеей, а вот подробно рассказать не вышло. И вот недавно один из разработчиков Seaside, Джулиан Фитзелл написал потрясающую по своей доходчивости статью. С его разрешения я сделал ее перевод и хотел бы поделиться с хабрасообществом.

Сразу хотелось бы сказать о терминологии. В качестве перевода слова continuation я использую наиболее близкое по смыслу «продолжение». Общая же терминология статьи для неискушенного в Smalltalk разработчика может показаться непривычной. Так, вместо стека вызовов используется «цепь контекстов», а вместо потока — «процесс». Если у вас останутся вопросы после прочтения — смело задавайте их в комментариях. Спасибо.
читать полный текст статьи
Total votes 36: ↑31 and ↓5 +26
Comments 22

Squeak: Работа над ошибками

Reading time 2 min
Views 1.5K
Programming *Smalltalk *
После моего поста-туториала об установке и запуске Squeak, мне сообщили об ошибках возникших в процессе. Ошибки следующие:
  • Зависание при установке FreeType Plus (в Pharo поддержка встроена, поэтому в нем проблемы нет).
  • Не открывается SqueakMap в образе squeak-dev и squeak-webdev

Поэтому я решил разместить решение этих двух проблем.
Решение проблем
Total votes 4: ↑4 and ↓0 +4
Comments 0

АСР «Реквест-Биллинг»

Reading time 4 min
Views 1.7K
Self Promo
Реквест-Биллинг

Каждая новая задача начинается с выбора инструментов, с помощью которых она будет реализована. И от того, насколько верно они выбраны зависит её win или fail. Мне довелось присоединиться к проекту с базовым языком программирования, весьма необычным и редкоиспользуемым. И это отнюдь не мешало его становлению и текущему успешному развитию. О чём это я?
Читать дальше
Total votes 27: ↑19 and ↓8 +11
Comments 90

О Smalltalk в России

Reading time 1 min
Views 864
Self Promo
Недавно начавшая свое формирование русскоязычная группа разработчиков Smalltalk, имеет планы провести семинар, на котором участники поделятся своим опытом использования современных реализаций языка.
Читать дальше →
Total votes 32: ↑31 and ↓1 +30
Comments 18

Заметка о синтаксисе Smalltalk

Reading time 3 min
Views 1.8K
Smalltalk *
image
Всем привет!

В комментариях к топику народ интересовали фирменные фитчи языка Smalltalk. Этой заметкой хотелось бы немного раскрыть комментарийпользователя mou и главный акцент сделать на простоту языка.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 9

Анонс: Smalltalk в России. (Санкт-Петербург, 22 октября)

Reading time 1 min
Views 571
Programming *
Сообщество российских Smalltalker-ов (RSUG) приглашает всех желающих
на свой первый семинар RSUG'09.
Семинар пройдет в городе Санкт-Петербург, 22 октября, в 18.30 в учебном центре
«Авалон» (Схема проезда)

Есди вы хотите прийти и принять участие в семинар
зарегистрируйтесь, пожалуйста, на www.rsug.ru.
Регистрация необязательна, но она поможет нам оценить
предполагаемое число участников и подготовиться должным образом.

Будут следующие доклады:
1. Знакомство с Smalltalk
2. Smalltalk в промышленном проектировании
3. Smalltalk в распределённых бизнес-приложениях
4. Smalltalk в распределённых системах реального времени
5. LiveCoding

Контакты:
www.rsug.ru
groups.google.com/group/sugr
Total votes 6: ↑6 and ↓0 +6
Comments 2

Видеоматериал с семинара RSUG: Smalltalk в России

Reading time 1 min
Views 757
Programming *Smalltalk *
22 октября новоорганизованная группа RSUG (Russian Smalltalk User Group) провела первую встречу-семинар. Целью данной встречи являлось знакомство и освещение текущего состояния рынка.

Мы бы хотели поблагодарить учебный центр Avalon за предоставленную площадку и техническую поддержку. На сегодняшний день доступен видеоматериал с прошедшего семинара.

Поскольку встреча проходила впервые и была очень теплая и дружественная атмосфера, выступления были несколько «не регламентные». Однако все доклады без исключения очень интересны.

Если вы мало знакомы со Smalltalk, то рассказ Бориса Беркгаута вам должен понравится. Он в простой и доступной форме демонстрирует основную «магию» языка.
Total votes 4: ↑4 and ↓0 +4
Comments 6

LLST: Новая жизнь Little Smalltalk

Reading time 10 min
Views 15K
C++ *ООP *Smalltalk *

Всем привет! С прошедшим концом света и с наступающими праздниками :)
В качестве подарка сообществу Open Source, а так же любителям антиквариата, мы (совместно с товарищем humbug) решили выложить нашу последнюю исследовательскую разработку.

Предлагаем вашему вниманию с нуля переписанную на C++ реализацию виртуальной машины, совместимую с Little Smalltalk. На данный момент написан код виртуальной машины и реализованы базовые примитивы. Humbug написал серию простых тестов, которые, тем не менее, помогли обнаружить проблемы и в оригинальной версии VM. Реализация бинарно совместима с образами оригинального LST пятой версии.

Месяц работы, 300+ коммитов. А что получилось в итоге, можно узнать под катом.
Читать дальше →
Total votes 55: ↑51 and ↓4 +47
Comments 32

Внутреннее устройство llst, часть 1. Введение в Smalltalk

Reading time 14 min
Views 11K
Open source *ООP *Smalltalk *
Tutorial
Доброго времени суток. Предлагаю вашему вниманию вторую статью из цикла о Low Level Smalltalk (LLST). Кто не в курсе о чем идет речь, тем рекомендую прочитать предыдущую, обзорную статью, где рассказывается о том, что такое llst и зачем он был создан.

В этой части мы сконцентрируемся на самом языке Smalltalk, его синтаксисе и «правилах игры».

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

Читать дальше →
Total votes 37: ↑33 and ↓4 +29
Comments 23

Ruby, SmallTalk и переменные класса

Reading time 10 min
Views 16K
Ruby *Smalltalk *
Статья, является переводом заметки Пата Шонаси (Pat Shaughnessy), в оригинале звучащей как Ruby, Smalltalk and Class Variables.

Пару недель назад статья Эрни Миллера (Ernie Miller) натолкнула меня на вопрос: а как работают переменные класса в Руби? После небольшого исследования, оказалось что переменные класса могут быть потенциальным источником проблем. Фактически, Джон Нунмейкер (John Nunemaker) уже написал статью «Переменные класса и экземпляра в Руби», которая датируется 2006 годом и остаётся актуальной и сейчас. Фундаментальная проблема переменных класса в том, что они разделяются между самим классом и всеми его подклассами – как Джон объяснял еще шесть лет назад, и это может вести к неразберихе и странному поведению кода.

Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 11

Светский разговор об управляемой тестами выпечке

Reading time 8 min
Views 9.3K
Programming *ООP *Smalltalk *
Sandbox

Что-то вроде предисловия


Статья «Как два программиста хлеб пекли» сначала мне показалась просто шуткой — настолько абсурдно выглядят попытки выстроить какой-то «дизайн», основываясь на тех «требованиях», которые выдвигает «менеджер». Но в каждой шутке есть доля правды… В общем, возник вопрос к самому себе: а как в данной ситуации сработает тот подход, которого я стараюсь придерживаться в своей практике? То, что выросло при попытке дать ответ, собственно, и представлено далее.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Comments 18

Откуда есть пошел xUnit

Reading time 6 min
Views 12K
TDD *ООP *Smalltalk *
Идея данной заметки — как гипотезы — появилась уже довольно давно, и все как-то не получалось… Но вот «на днях» (к моменту публикации — уже неделях) увидел подтверждение своего предположения что называется «из первых рук» (см. Kent Beck's answer to Unit Testing: Did the notion of using setup() and teardown() methods in test fixtures originate from JUnit?) и решил-таки воплотить эту задумку.

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 7

Разработчик Smalltalk для JVM собирает средства для завершения разработки версии 1.0

Reading time 1 min
Views 4.5K
Programming *Java *Smalltalk *Kotlin *
Страница проекта на Indiegogo: Redline Smalltalk V1.0

Под Java Virtual Machine уже разработано и портировано большое количество языков программирования — Scala, Clojure, Groovy, JRuby, Jython, Fantom, Kotlin и т.д… Выбор средств у разработчиков в мире Java просто огромен. Но есть еще один язык, который наверное многие бы хотели видеть на JVM со стабильной реализацией — Smalltalk!

Разработчик James Ladd собирает средства ($20 000), чтобы уйти на полный рабочий день для доведения Redline Smalltalk до версии 1.0. Осталось собрать чуть меньше половины суммы.

Если ты не можешь больше мириться с отсутсвием Smalltalk на JVM, если ты всегда хотел попробовать Smalltalk, но не мог вникнуть в совершенно другой мир и подход к разработке, если ты просто хочешь сделать мир еще лучше, настало твое время! Помоги Джеймсу довести проект до production-grade состояния!
Total votes 14: ↑12 and ↓2 +10
Comments 13

Внутреннее устройство llst, часть 2 или Little Smalltalk + LLVM = ♥

Reading time 29 min
Views 9.3K
C++ *Compilers *Smalltalk *
Всем привет! Совместно с humbug, мы предлагаем вашему вниманию третью статью из цикла о Low Level Smalltalk (LLST). Надемся, что статья будет интересна не только любителям велосипедов необычных языков программирования, но и тем, кто интересуется такой замечательной вещью, как LLVM.

Напомню, что целью нашего проекта является создание собственной виртуальной машины, совместимой с Little Smalltalk на уровне байт-кодов. Ключевым отличием является гетерогенная архитектура, которая позволяет исполнять байт-коды как программно, так и компилировать их в низкоуровневые инструкции процессора посредством трансляции в IR код LLVM. Разумеется, второй способ позволяет достичь более высокой производительности и задействовать имеющиеся в нашем распоряжении вычислительные ресурсы оптимальным образом.

Однако, обо всем по порядку…
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 12

Внутреннее устройство llst, часть 3. Магия JIT, или как ускорить виртуальную машину в 50 раз

Reading time 15 min
Views 15K
Compilers *ООP *Smalltalk *
XKCD 303
В прошлой статье мы с humbug показали, как может меняться скорость вычислений в зависимости от способа выполнения метода и его содержимого. Теперь мы сможем заглянуть под капот виртуальной машины и понять, как и почему это происходит.

Ранее мы познакомились с языком Smalltalk, а точнее с его микро реализацией Little Smalltalk. Разобрались с синтаксисом языка, форматом представления объектов в памяти и набором основных инструкций. Теперь мы вплотную подошли к вопросам взаимодействия Smalltalk и LLVM (ради этого и затевалась вся серия статей).

Сейчас у нас есть вся необходимая база знаний для того чтобы понять, что именно делается в нашем JIT компиляторе. В этой статье мы узнаем, как байт-коды Smalltalk преобразуются в IR код LLVM, как происходит компиляция и выполнение кода, и почему это работает быстрее, чем программная интерпретация. Самые нетерпеливые могут посмотреть шеллкасты (раз и два) с циферками и бегущими строчками (не забывайте про возможность скроллинга).
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 9
1