Фаро — это как машина времени для программирования: она позволяет перемещаться по времени выполнения программы, пока она ещё работает. Этот современный диалект Smalltalk — не просто язык; это интерактивный мир, где ваши объекты живут, дышат и реагируют на каждое нажатие клавиши. Давайте разберёмся, почему вам стоит попробовать его и как начать работу, не теряя рассудка.

Почему Фаро? Краткая история «Small Talk»

Smalltalk начался как исследовательский проект в Xerox PARC в 70-х годах, целью которого было сделать компьютеры такими же простыми в использовании, как детские игрушки. Фаро продолжает эту традицию, но с современными особенностями. Вот список волшебных трюков:

  • Живое кодирование: кодируйте во время работы программы. Отладка превращается в общение с живыми объектами.
  • Простота: никаких конструкторов, никаких объявлений типов. Только чистые объектные сообщения до самого конца.
  • Мощные инструменты: отладчик позволяет вам приостановить время, проверить объекты и изменить код во время выполнения.
  • Сообщество: более 100 участников в каждом выпуске. Как сообщество программистов, но с меньшим количеством бород. Совет: название «Фаро» происходит от александрийского маяка — маяка, направляющего разработчиков через сложные системы.

Учебный курс по Фаро: от 0 до волшебства объектов за 3 шага

Шаг 1: установите свою машину времени

# Скачайте и запустите Фаро
wget -O- https://get.pharo.org/64 | bash
./pharo Pharo.image

Что ожидать: появится образ с голыми костями. Вы должны создать всё с нуля. Это одновременно страшно и освобождающе.

Шаг 2: Привет, галактика!

В игровой площадке Фаро:

Transcript show: 'Привет, галактика!'
42 factorial

Чит-код: выделите код → Щёлкните правой кнопкой мыши → «Выполнить». Магия происходит мгновенно.

Шаг 3: расшифровывайте слова как профессионал

Давайте создадим простой решатель анаграмм с использованием живого кода:

wordlistUrl := 'http://wordlist.aspell.net/official'.
words := (ZnUrl fromString: wordlistUrl) retrieveContents.
wordDict := Dictionary new.
words linesDo: [:line |
    wordDict at: line sorted put: (wordDict at: line sorted) add: line].
"Расшифруйте 'taerg'"
wordDict at: 'taerg' sorted "Возвращает {'great'}"

Визуализация: как это работает

sequenceDiagram participant B as Браузер participant D as Словарь participant W as Веб B->>W: Загрузить слова из URL W->>B: Вернуть текстовое содержимое B->>D: Создать отсортированное сопоставление ключей D->>B: Возвратить возможные совпадения

Продвинутое волшебство: живое кодирование в продакшне

Горячая замена кода

Фаро позволяет вам:

  1. Приостановить выполнениеПроверить живые объектыИзменить методыВозобновить. Пример: исправьте ошибку в рабочей среде, пока пользователи ещё онлайн.

Инспектор объектов

1/2 inspect

Открывает визуальный отладчик, в котором вы можете:

  • Просмотреть взаимосвязи объектов.
  • Изменить состояние.
  • Пошагово выполнить аспекты. Совет: инспектор — это всё равно что рентгеновское зрение для вашего кода.

Экосистема: ваши новые лучшие друзья

РесурсТипСсылка
Книги по ФароРуководстваКниги
Фаро MoocВидеоурокиYouTube
Учебники профессора СтефаПрактические занятияПрофессор Стефа
Трек ExercismЗадачи по программированиюExercism

Почему это важно: не только ностальгия

Фаро предназначен не только для любителей Smalltalk. Он решает современные проблемы уникальными способами:

  • Рефлексия: всё является объектом, включая компилятор и среду выполнения.
  • Горячее развёртывание: обновляйте рабочие системы без простоя.
  • Совместная работа: рабочие области позволяют членам команды одновременно редактировать одну и ту же базу кода. Совет: сообществу Фаро нравятся каламбуры. «Smalltalk — это больше, чем просто болтовня» стало лозунгом конференции.

Присоединяйтесь к восстанию

Фаро бросает вызов традиционным практикам разработки программного обеспечения. Это не для всех, но для тех, кто готов принять его радикальную простоту, он предлагает:

  • Изменение образа мышления: код — это не просто текст, это живые объекты.
  • Повышение эффективности: живая отладка сокращает 90% отладки console.print.
  • Радость творчества: петля обратной связи кажется незаконной. Заключительные слова: Фаро меньше о смертельных входных данных и больше о живых выходных. Попробуйте, и вы поймёте, почему этот «старый» язык продолжает завоёвывать новых поклонников.