Как стать автором
Обновить
0
Рейтинг

Smalltalk *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга

Best practice по общению с зарубежными партнерами в новогодние каникулы и после

IT-стандарты *Smalltalk *Карьера в IT-индустрии Копирайт Изучение языков
Из песочницы

Наступают длинные зимние каникулы. Во многих IT-компаниях уже объявлен режим freeze - заморозка новых активностей до конца праздников. Особенно длительной будет пауза у тех, кто сотрудничает с европейскими партнерами - они уходят на каникулы уже в 20х числах декабря, а российские офисы откроются после праздников лишь 3 недели спустя.

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 4.7K
Комментарии 8

Новости

Алан Кей: История SmallTalk (1960-1969)

Программирование *Анализ и проектирование систем *Интерфейсы *Smalltalk *История IT
Перевод
У меня есть цель — разобраться в том, что же происходило в 60-70-е годы в Xerox PARC и в окрестностях, как так вышло, что несколько коллективов инженеров, работая рука об руку, создали невероятные технологии, которые определили наше настоящее, а их идеи будут определять будущее. Почему этого не происходит сейчас? (а если происходит, то где?). Как собрать подобный коллектив? Где же мы повернули не туда? Какие идеи мы пропустили, а стоило бы к ним повнимательнее присмотреться?

Предлагаю вашему вниманию перевод начала большого текста Алана Кея (150 000 знаков), на который он неоднократно ссылается во всех своих выступлениях и ответах на Quora и HackerNews.

Кто готов помогать с переводом — пишите в личку.



I. 1960–66 — Становление ООП и другие новые идеи 60-х


Стимулов к появлению ООП было много, но два из них были особенно важны. Один крупномасштабный: придумать для сложных систем хороший подход, позволяющий скрывать их устройство. Другой поменьше: найти более удобный способ распределять вычислительные мощности, а то и вовсе избавиться от этой задачи. Как обычно бывает с новыми идеями, аспекты ООП формировались независимо друг от друга.

Любая новинка проходит несколько стадий принятия — как своими создателями, так и всеми остальными. Вот как это происходит у создателей. Сначала они замечают, что в разных проектах используется будто бы тот же подход. Позднее их предположения подтверждаются, но пока никто не осознает грандиозного значения новой модели. Затем происходит великий сдвиг парадигмы и модель становится новым способом мышления. И наконец она превращается в закостенелую религию, от которой сама и произошла. Все остальные принимают новинку по Шопенгауэру: сперва ее осуждают, называя безумной; через пару лет ее уже считают очевидной обыденностью; в конце концов те, кто ее отвергал, объявляют себя ее создателями.
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 6.2K
Комментарии 2

Алан Кей: История SmallTalk (Аннотация и Введение)

Блог компании проект «Энгельбарт» Программирование *Анализ и проектирование систем *Smalltalk *История IT
Перевод
У меня есть цель — разобраться в том, что же происходило в 60-70-е годы в Xerox PARC и в окрестностях, как так вышло, что несколько коллективов инженеров, работая рука об руку, создали невероятные технологии, которые определили наше настоящее, а их идеи будут определять будущее. Почему этого не происходит сейчас? (а если происходит, то где?). Как собрать подобный коллектив? Где же мы повернули не туда? Какие идеи мы пропустили, а стои ло бы к ним повнимательнее присмотреться?

Предлагаю вашему вниманию перевод начала большого текста Алана Кея (150 000 знаков), на который он неоднократно ссылается во всех своих выступлениях и ответах на Quora и HackerNews.

Кто готов помогать с переводом — пишите в личку.

The Early History Of Smalltalk


image

Аннотация


Большинство идей основываются на предыдущих идеях. В шестидесятые, особенно в ARPA-сообществе (Advanced Research Projects Agency – агенство перспективных исследований), появилась множество понятий касательно «симбиоза человек-компьютер» на основе интерактивных систем разделения времени, графических дисплеев и указывающих устройств. Были изобретены продвинутые языки программирования для симуляции сложных систем, таких как нефтеперерабатывающие заводы и полу разумное поведение. Готовящаяся смена парадигмы в области современных персональных компьютеров, перекрывающихся оконных интерфейсов и объектно-ориентированного проектирования возникла благодаря трудам из 60-х, которые представляли собой нечто большее, чем «улучшенное старое».
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 3K
Комментарии 14

Язык программирования, помещающийся на почтовой открытке

Программирование *ООП *Smalltalk *
Из песочницы

image
Источник


Ральф Джонсон, один из членов "Банды четырёх", однажды показал, как синтаксис языка Smalltalk-80 можно уместить на почтовой открытке. Сейчас, спустя почти 30 лет после появления первой версии Smalltalk, самым быстроразвивающимся диалектом Smalltalk является Pharo, почтовую открытку которого далее и разберём.

Читать дальше →
Всего голосов 44: ↑44 и ↓0 +44
Просмотры 51K
Комментарии 19

Tableau от чайника или визуализация анализа ПАММ счетов

Визуализация данных Smalltalk *

image


Друзья, добрый день.


Давно не писал, и тут подписался на рассылку компании Абвгд. Красивые письма пишут мОлодцы :) Уговаривают вложиться в ПАММ счета. Что это такое не знаю. Зато понятно, как эти данные анализировать.


Терминология – есть ПАММ-счет и у него есть управляющий. Буду использовать термин «ПАММ-счет» и «управляющий» — здесь это синонимы.


По теме хотелось сделать визуализацию в инструменте Tableau Public. Статьи об этом «в доступной для меня форме» не нашел. Она ниже.


План атаки:


  1. Формулируем задачу,
  2. Собираем данные,
  3. Причёсываем,
  4. Делаем несколько графиков,
  5. Сводим на один дашборд,
  6. Выкладываем на https://public.tableau.com
  7. Формулируем резюме. Профит.

Задача


Работаю на работе работу. Получаю зарплату, аванс там или ещё что-то. Пусть деньги приходят еженедельно в ночь с воскресенья на понедельник. Хочу вложиться в высокодоходные активы, например в ПАММ счет. И вкладываться еженедельно понемногу.


Надо понимать, когда и куда вкладываться. Доходность нужна высокая, просадки должны быть минимальными.

Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 36K
Комментарии 2

Почему наследование всегда было бессмысленным

Программирование *Smalltalk *
Перевод
Есть три типа наследования.

  1. Онтологическое наследование указывает на специализацию: вот эта штука — специфическая разновидность той штуки (футбольный мяч — это сфера и у неё такой-то радиус).
  2. Наследование абстрактного типа данных указывает на замещение: у этой штуки такие же свойства, как у той штуки, и такое-то поведение (это принцип подстановки Барбары Лисков).
  3. Наследование реализации связано с совместным использованием кода: эта штука принимает некоторые свойства той штуки и переопределяет или дополняет их таким-то образом. Наследование в моей статье «О наследовании» именно такого и только такого типа.

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

Часто для наследования в ООП приводят контрпример отношений между квадратом и прямоугольником. Геометрически квадрат — это специализация прямоугольника: все квадраты — прямоугольники, но не все прямоугольники — квадраты. Все s в классе «Квадрат» являются прямоугольниками s, у которых длина равна ширине. Но в иерархии типов это отношение обратное: вы можете использовать прямоугольник везде, где используется квадрат (указав прямоугольник с одинаковой шириной и высотой), но нельзя использовать квадрат везде, где используется прямоугольник (например, вы не можете изменить длину и ширину).
Читать дальше →
Всего голосов 51: ↑43 и ↓8 +35
Просмотры 27K
Комментарии 65

Simula — 50 лет ООП

Программирование *Java *ООП *Smalltalk *
Tutorial
Статья представляет собой очень краткое введение в Simula.

Simula ((SIMIUlation LAnguage) ), первый язык программирования с классами и объектами, незаслуженно почти забытый, но из которого выросло современное ООП в том виде, в котором оно присутствует в нашем коде. Это язык для имитационного моделирования реальности. Разработчики новых языков программирования «оглядывались» на Simula при добавлении механизмов объектно-ориентированного программирования в свой язык. Однако Simula упоминается настолько редко, что в русской википедии на момент публикации был только хеллоуворд, а в сети куча устаревших ссылок.



Бьерн Страуструп, говоря о причинах создания C++, сказал так: «Этот язык возник потому, что автору потребовалось написать программы моделирования, управляемые прерываниями. Язык SIMULA-67 идеально подходит для этого, если не учитывать эффективность.»
Читать дальше →
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 19K
Комментарии 6

Как изучение Smalltalk может улучшить ваши навыки программиста

Программирование *ООП *Smalltalk *
Перевод


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

Smalltalk по-прежнему очень актуален. Это отличный язык для обучения программированию людей, не имеющих технического образования. Это превосходный язык прототипирования для стартапов. Это мощный промышленный язык, используемый как крупными, так и малыми компаниями по всему миру. Есть веские причины рассмотреть использование современного Smalltalk сегодня, поскольку многое было сделано за последнее время, чтобы улучшить его возможности.
Читать дальше →
Всего голосов 48: ↑44 и ↓4 +40
Просмотры 32K
Комментарии 113

С днём рождения, Алан Кейǃ (или как получить +80 к IQ)

Блог компании Edison Программирование *ООП *Smalltalk *
«Я никогда не был сильным программистом, и это стимулировало меня к созданию новых мощных языков. Сегодня я работаю по двум направлениям: метапрограммирование и программирование „по-детски“, для детей в возрасте 9-14 лет.»
— Алан Кертис Кей.

image

Похоже, что этот мужик участвовал во всех институтах передовых разработок, связанных с ИТ.

— Работал в легендарном Xerox PARC, Atari, Apple, Disney, HP.
— Предложил концепцию Dynabook (в 1968 году), которая определила концептуальную базу для ноутбука, планшетного компьютера и электронной книги.
— Один из «отцов-основателей» объектно-ориентированного программирования (SmallTalk, 1969).
— Участвовал в создании первого персонального компьютера Xerox Alto (1973).
— Инициатор полезной движухи «Каждому ребенку по ноутбуку».
— в 2001 году, он основал исследовательский Институт Viewpoints, некоммерческую организацию посвящённую детям, обучению и передовым разработкам программного обеспечения.
— В 2006 бросил дерзкий вызов индустрии — заявил о возможности создания операционной системы с графическим интерфейсом из 20.000 строчек кода.

«Смена точки зрения дает +80 к IQ»
(A change in perspective is worth 80 IQ points)

И опять же, Алан Кей — ключевая фигура в ИТ, и при этом всего полторы переведенных статьи в Интернете. И знают про него, скорее всего, по его цитатам. Под катом — цитаты и немного выжимок из статей Кея. Ну, и великолепное выступление на TED.

Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры 20K
Комментарии 9

Выходу Dolphin Smalltalk 7 под Open Sourсe посвящается

Блог компании PVS-Studio Open source *C++ *ООП *Smalltalk *
На днях компания ObjectArts полностью открыла исходники и выпустила язык, и среду разработки Dolphin Smalltalk под открытой лицензией MIT! Я не смог пройти мимо, не попробовав проверить этот проект с помощью анализатора кода PVS-Studio. Могу поздравить разработчиков с тем, что у них получилось создать код высокого качества. Мне не удалось найти значимых ошибок. Однако как всегда есть некоторое количество багов и пахнущего кода. Надеюсь благодаря этой статье код станет чуть лучше.

О проекте


Dolphin Smalltalk — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн.

Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов.

С помощью PVS-Studio 6.00 были проверены открытые исходники Dolphin Smalltalk Virtual Machine. Далее представлены результаты проверки статическим анализатором. Несмотря на то, что проект DolphinVM очень маленький, в его коде всё равно встречаются подозрительные места.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 5.2K
Комментарии 4

Dolphin Smalltalk 7 выходит под open source лицензией MIT

Программирование *ООП *Smalltalk *
Cчетчик со страницы Getting Started на момент публикации статьи
Cчетчик со страницы Getting Started на момент публикации статьи

С минуты на минуту случится то, чего ждали очень многие, и я в том числе. А именно: компания ObjectArts полностью открывает исходники и выпускает язык и среду разработки Dolphin Smalltalk под открытой лицензией MIT!

О проекте


DolphinSmalltalk — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу дизайн.

Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов, что, по понятной причине, устраивало далеко не всех.

Похоже, что компания таки одумалась (или терять стало нечего) и решила выпустить ПО на волю. Под катом краткое описание среды разработки и размышления на тему open source будущего Dolphin Smalltalk.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 11K
Комментарии 16

Неизвестный Smalltalk

Блог компании FLProg Программирование *Smalltalk *
Tutorial


Уважаемые читатели хабра. Прежде всего я хочу объяснить, что обзор языка Smalltalk делает в корпоративном блоге FLProg. Дело в том, что и сама программа FLProg и сайт программы написаны на этом замечательном языке. Его возможности и огромная скорость разработки на нём позволяют мне одному поддерживать и постоянно увеличивать функциональность как сайта, так и программы. Если интересно, как мне это удается – прошу под кат.
Подробности
Всего голосов 58: ↑50 и ↓8 +42
Просмотры 30K
Комментарии 190

Метаклассы в Smalltalk

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

(Впрочем, и связь с недавно вышедшей статьей Метаклассы в Objective-C отрицать не буду.)
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 7.5K
Комментарии 16

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

Компиляторы *ООП *Smalltalk *
XKCD 303
В прошлой статье мы с humbug показали, как может меняться скорость вычислений в зависимости от способа выполнения метода и его содержимого. Теперь мы сможем заглянуть под капот виртуальной машины и понять, как и почему это происходит.

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

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

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

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

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

Однако, обо всем по порядку…
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 9.1K
Комментарии 12

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

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

Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры 12K
Комментарии 7

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

Программирование *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 состояния!
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 4.4K
Комментарии 13

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

Программирование *ООП *Smalltalk *
Из песочницы

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


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

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

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

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

Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Просмотры 15K
Комментарии 11

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

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

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

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

Читать дальше →
Всего голосов 37: ↑33 и ↓4 +29
Просмотры 10K
Комментарии 23
1

Вклад авторов