Читать книгу Код. Культура, скомпилированная в байты - - Страница 9
ЧАСТЬ I: ФИЛОСОФИИ
Глава 1. Манифесты
Три философии, один вопрос
ОглавлениеZen of Python, Ruby Way, Go Proverbs – три документа, три ответа на вопрос о том, каким должен быть язык программирования.
Python говорит: язык должен быть ясным. Один способ сделать что-то лучше многих. Явность лучше магии. Читаемость – не роскошь, а необходимость. Код – это коммуникация между людьми, машина лишь посредник.
Ruby говорит: язык должен приносить счастье. Программист – творец, и язык должен помогать творить, а не мешать. Выразительность важнее единообразия. Если можно сделать что-то красиво – нужно сделать красиво.
Go говорит: язык должен быть простым. Не элементарным – простым. Простота требует дисциплины. Отказ от возможностей – не слабость, а сила. В масштабе тысяч инженеров и миллиардов строк кода сложность убивает.
Каждая из этих философий выросла из конкретного контекста. Python создавался для людей, которые не хотят быть профессиональными программистами, – и стал языком, на котором пишут профессионалы во всех областях. Ruby создавался для одного человека, который хотел получать удовольствие от программирования, – и создал сообщество, объединённое идеей счастья. Go создавался для решения конкретной проблемы масштаба Google – и оказался востребован далеко за пределами компании.
Манифесты не описывают языки исчерпывающе. В Python есть сложности, которые Zen не предусматривал. В Ruby есть боль, которую MINASWAN (Matz Is Nice And So We Are Nice – «Мацумото добрый, и мы тоже добрые») не облегчает. В Go есть многословие, которое Go Proverbs не отменяют. Но манифесты задают направление. Они говорят: вот что мы считаем важным, вот какими мы хотим быть.
Выбирая язык, программист выбирает не только синтаксис. Он выбирает философию – способ думать о коде, о проблемах, о решениях. И чтобы выбрать осознанно, стоит прочитать манифесты. Не цитаты из них, вырванные из контекста, – сами документы, целиком. В них – голоса тех, кто принимал решения. В них – ответы на вопрос «почему».
Zen of Python доступен каждому владельцу Python: import this. Go Proverbs – на YouTube, в записи того самого выступления Роба Пайка. Слова Мацумото разбросаны по десяткам интервью, но их суть неизменна: «Ruby is designed to make programmers happy» – «Ruby создан, чтобы делать программистов счастливыми».
Три манифеста, три философии, один вопрос: как должен думать человек, общаясь с машиной?
Ответы различаются. Но каждый из них – честная попытка ответить.