Фаро — это как машина времени для программирования: она позволяет перемещаться по времени выполнения программы, пока она ещё работает. Этот современный диалект 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'}"
Визуализация: как это работает
Продвинутое волшебство: живое кодирование в продакшне
Горячая замена кода
Фаро позволяет вам:
- Приостановить выполнение → Проверить живые объекты → Изменить методы → Возобновить. Пример: исправьте ошибку в рабочей среде, пока пользователи ещё онлайн.
Инспектор объектов
1/2 inspect
Открывает визуальный отладчик, в котором вы можете:
- Просмотреть взаимосвязи объектов.
- Изменить состояние.
- Пошагово выполнить аспекты. Совет: инспектор — это всё равно что рентгеновское зрение для вашего кода.
Экосистема: ваши новые лучшие друзья
Ресурс | Тип | Ссылка |
---|---|---|
Книги по Фаро | Руководства | Книги |
Фаро Mooc | Видеоуроки | YouTube |
Учебники профессора Стефа | Практические занятия | Профессор Стефа |
Трек Exercism | Задачи по программированию | Exercism |
Почему это важно: не только ностальгия
Фаро предназначен не только для любителей Smalltalk. Он решает современные проблемы уникальными способами:
- Рефлексия: всё является объектом, включая компилятор и среду выполнения.
- Горячее развёртывание: обновляйте рабочие системы без простоя.
- Совместная работа: рабочие области позволяют членам команды одновременно редактировать одну и ту же базу кода. Совет: сообществу Фаро нравятся каламбуры. «Smalltalk — это больше, чем просто болтовня» стало лозунгом конференции.
Присоединяйтесь к восстанию
Фаро бросает вызов традиционным практикам разработки программного обеспечения. Это не для всех, но для тех, кто готов принять его радикальную простоту, он предлагает:
- Изменение образа мышления: код — это не просто текст, это живые объекты.
- Повышение эффективности: живая отладка сокращает 90% отладки console.print.
- Радость творчества: петля обратной связи кажется незаконной. Заключительные слова: Фаро меньше о смертельных входных данных и больше о живых выходных. Попробуйте, и вы поймёте, почему этот «старый» язык продолжает завоёвывать новых поклонников.