Обновить
4K+

Smalltalk *

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

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

ИИ-революция уже началась. Мы просто пока не знаем, чем она закончится

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

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

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

Я считаю, что революция искусственного интеллекта уже началась.

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

Революция — это процесс. И процесс уже идёт.

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

Именно так происходило раньше.

Читать далее

Новости

Wiki для пет-проектов

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

Программисты пишут свои вики в obsidian, в org файлах и других инструментах. С ними готовятся к собеседованию, ищут команды для баша, хранят информацию про их сервер и много чего еще.

Почему бы не использовать такой подход для кода, а не только для текста? У меня хранится куча вспомогательных скриптов, я пробую новые библиотеки и часто начинаю новые пет-проекты. Даже если проект никогда не зарелизится, все может остаться в такой “вики”, и потом это можно переиспользовать.

Можно сделать персональный монорепозиторий, в котором будет храниться весь код, как вики, но для кода.

Читать далее

Vibe Coding без опыта в разработке: как довести первый продукт до релиза

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

Модели для программирования и AI-агенты сейчас меняются быстро. Для человека, который хочет превратить идею в работающий продукт, это хорошее окно возможностей.

Необязательно сначала становиться инженером. AI может писать код, запускать команды и чинить ошибки, но решение о том, что делать, как проверять результат и где остановиться, остаётся за вами.

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

За последние два года я прожила во Вьетнаме суммарно около 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.8K
У меня есть цель — разобраться в том, что же происходило в 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 мин
Охват и читатели25K
Статья представляет собой очень краткое введение в Simula.

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



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

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

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


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

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