Обновить

Smalltalk *

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

1,34
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Давайте поговорим о доверии и границах

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5K

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

Ответьте себе на вопрос: где проходит ваша граница доверия с вашим агентом? Что вы готовы ему простить? А что для вас жесткий ред-флаг?

Готовы ли вы делегировать агенту задачу, в которой вы не разбираетесь, и взять за это ответственность, если что-то пойдет не так? А если наоборот, все будет очень хорошо — искренне признать, что по факту это не совсем ваш труд?

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

У меня есть несколько смешных кейсов, которые я вам сейчас расскажу, но смеяться вы скорее всего не будете.

Читать далее

Новости

Барбара Лисков «Абстракция данных и иерархия»

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели8.1K

Каждый, кто хоть немного работал с объектно-ориентированными языками, наверняка сталкивался с принципом подстановки Лисков. При этом мало кто знает, откуда этот принцип взялся и в каком контексте Лисков его формулировала. Мы перевели ее доклад, прозвучавший на OOPSLA'87, чтобы дать каждому возможность обратиться к первоисточнику. Прочитав этот текст, вы увидите, насколько сложным и неочевидным было отношение Лисков к наследованию и как она связывала его с идеями абстракции, инкапсуляции и полиморфизма.

Читать далее

Алан Снайдер «Инкапсуляция и наследование в объектно-ориентированных языках программирования»

Уровень сложностиПростой
Время на прочтение24 мин
Охват и читатели6.7K

Инкапсуляцию и наследование часто преподносят как две неотъемлемые опоры объектно-ориентированного программирования, однако на деле между ними существует глубокое внутреннее противоречие. Статья Алана Снайдера, опубликованная по итогам его выступления на OOPSLA’86, стала одним из первых программных текстов, вскрывших эту проблему на уровне языковых конструкций, и показала, как неаккуратно реализованное наследование способно разрушить инкапсуляцию, а вместе с ней — преимущества модульного проектирования. Работа во многом предопределила дальнейшие дискуссии о хрупком базовом классе, роли контрактов между классами и их потомками и о том, каким должен быть внешний интерфейс класса в условиях наследования.

Читать далее

Алан Кей об отправке сообщений

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.9K

В октябре 1998 года, разочарованный упрощенным пониманием ООП, Алан Кей написал сообществу Squeak знаковое письмо. В нем он напомнил, что главная идея Smalltalk, о которой все забыли, — это не классы, а отправка сообщений. Это письмо стало манифестом, отделяющим оригинальную философию объектов от ее популярной интерпретации. Публикуем перевод этого короткого, но исторически важного документа.

Читать далее

Археология автотестирования: SUnit, прародитель JUnit

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4K

Привет, Хабр.

Меня зовут Михаил, я технический автор, работаю с инструментами тестирования в команде ТестОпс. В какой-то момент мне стало интересно — а как получила распространение мысль о том, что разработчикам тоже надо писать тесты?

У меня было смутное представление о некотором тёмном «раньше», и условно-ограниченно-просвещённом «сейчас», когда мысль о том, что тестирование не должно жить отдельно от разработки, кажется, стала нормальной.

Мостик между этими двумя мирами — автотесты, они нужны и тестированию, и разработке. Фреймворк JUnit сознательно писали как можно более простым — в первую очередь для того, чтобы сделать его повседневным инструментом для разработчиков. Люди, работавшие с первыми фреймворками автотестирования, стали также авторами подходов экстремального программирования (XP) и разработки через тестирование (TDD) — т. е. подходов, настаивающих на том, что тестирование — это не «обязаловка», а неотъемлемая часть разработки.

С учётом этого, я решил заняться «археологией» автотестирования: посмотреть на прародителя современных фреймворков xUnit, SUnit для Smalltalk. Я хотел потрогать его руками, а также понять, что двигало его автором. В результате получилось довольно интересное путешествие, которым я хотел бы с вами поделиться.

Вначале я посмотрю на то, что из себя представляло автоматизированное тестирование в 1990-е. Чтобы понять, что добавил SUnit, попробую запустить на нём несколько примитивных тестов. А потом посмотрю, что можно наскрести по сусекам интернета о мотивации создателей и пользователей. Как они пришли к тому, что барьер между разработкой и тестированием надо преодолеть? Сам я не был участником этого процесса (годами не вышел), так что придётся опираться на вторичные источники.

Читать далее

Ханой для цифрового номада: опыт жизни в столице Вьетнама

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели8.8K

За последние два года я прожила во Вьетнаме суммарно около 8 месяцев, в одном городе я долго быть не люблю, так что исследовала на пригодность к номадству за это время Ханой, Дананг, Нячанг и Далат.

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

Читать далее

Почему мы теряем силу речи в цифровом мире

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.7K

Бывают моменты, когда сидишь в чате и вдруг осознаёшь: ты стал молчаливее. У тебя вроде бы есть слова — но они прячутся где-то под слоями «ок», «норм» и эмодзи.

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

Мы живём в мире, где все всё говорят — но всё меньше говорят словами. И это пугает куда больше, чем кажется.

Провалиться

10 миллиардов целых чисел входят в массив

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели11K

Неожиданные результаты эксперимента с хранением большого количества числе в массиве в 64-битным Pharo Smalltalk, которые меня удивили.

Читать далее

Особенности менеджмента информационной безопасности в международных компаниях, или как ИБэшнику выжить в 2022-м году

Время на прочтение5 мин
Охват и читатели4.8K

Самым сложным в этой статье было выбрать понятное и не душное название. С этим я не справился.

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

Суровый 2022ой неслабо перетряхнул бизнес в России, и ощутимо расшевелил всю сферу IT и ИБ. В то время, как исконно российские безопасники штудируют новую доктрину ИБ, переводят новые законы с бюрократического на общечеловеческий язык и метят в ТОП менеджмент, менеджеры ИБ международных компаний открыли для себя множество иных вопросов, единого ответа на которые пока что нет.

Спойлер: все описанное ниже является моим субъективным мнением, при описании которого я опирался на свой скромный опыт, и опыт 2-3 моих знакомых. Текст не претендует на объективное описание сферы ИБ, посему рекомендую воспринимать текст с иронией.

Личное наблюдение: в Российских компаниях чаще звучит термин «защита информации» - как бесконечный процесс, а сами безопасники являются Администраторами безопасности, в то время как в международных как правило формулируют «безопасность информации» как недостижимый результат, а специалистов гордо именуют Менеджерами ИБ.

Читать далее

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

Время на прочтение3 мин
Охват и читатели5.2K

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

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

Читать далее

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

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

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

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



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


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

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

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

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

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

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

The Early History Of Smalltalk


image

Аннотация


Большинство идей основываются на предыдущих идеях. В шестидесятые, особенно в ARPA-сообществе (Advanced Research Projects Agency – агенство перспективных исследований), появилась множество понятий касательно «симбиоза человек-компьютер» на основе интерактивных систем разделения времени, графических дисплеев и указывающих устройств. Были изобретены продвинутые языки программирования для симуляции сложных систем, таких как нефтеперерабатывающие заводы и полу разумное поведение. Готовящаяся смена парадигмы в области современных персональных компьютеров, перекрывающихся оконных интерфейсов и объектно-ориентированного проектирования возникла благодаря трудам из 60-х, которые представляли собой нечто большее, чем «улучшенное старое».
Читать дальше →

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

Время на прочтение4 мин
Охват и читатели53K

image
Источник


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

Читать дальше →

Ближайшие события

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

Время на прочтение6 мин
Охват и читатели40K

image


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


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


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


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


План атаки:


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

Задача


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


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

Читать дальше →

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

Время на прочтение4 мин
Охват и читатели33K
Есть три типа наследования.

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

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

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

Simula — 50 лет ООП

Время на прочтение6 мин
Охват и читатели26K
Статья представляет собой очень краткое введение в Simula.

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



Бьерн Страуструп, говоря о причинах создания C++, сказал так: «Этот язык возник потому, что автору потребовалось написать программы моделирования, управляемые прерываниями. Язык SIMULA-67 идеально подходит для этого, если не учитывать эффективность.»
Читать дальше →

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

Время на прочтение8 мин
Охват и читатели45K


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

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

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

Время на прочтение8 мин
Охват и читатели22K
«Я никогда не был сильным программистом, и это стимулировало меня к созданию новых мощных языков. Сегодня я работаю по двум направлениям: метапрограммирование и программирование „по-детски“, для детей в возрасте 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.

Читать дальше →

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

Время на прочтение7 мин
Охват и читатели5.6K
На днях компания 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 очень маленький, в его коде всё равно встречаются подозрительные места.
Читать дальше →

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

Время на прочтение3 мин
Охват и читатели12K
Cчетчик со страницы Getting Started на момент публикации статьи
Cчетчик со страницы Getting Started на момент публикации статьи

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

О проекте


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

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

Похоже, что компания таки одумалась (или терять стало нечего) и решила выпустить ПО на волю. Под катом краткое описание среды разработки и размышления на тему open source будущего Dolphin Smalltalk.
Читать дальше →