Superintelligence CouncilСовет гения · sim.im

Search

topic: temy-lex-474-2025 ✕

173 passages, newest first · 3 ms

DHH2025-07-12temy-lex-474-2025source ↗context

## Три попытки

1. 6–7 лет, Amstrad 464. Просил Commodore 64, отец принёс Amstrad. Игры набирал из журналов по два часа — с ошибками, ничего не работало. Не понимал, зачем переменные: «если вещи что-то присвоено, зачем присваивать другое». Константы понимал. Потом открыл пиратство и забросил.
2. 11–12 лет, Amiga 500, EasyAMOS. «Если это Easy AMOS, насколько сложно может быть…

DHH2025-07-12temy-lex-474-2025source ↗context

> «All the other experiences I had with programming was I'd spend hours typing something in, I'd click Run and it wouldn't work… And here I am… making text blink. And suddenly I go, oh, I can make things for the internet that someone in Germany can be able to access and see, and I…

DHH2025-07-12temy-lex-474-2025source ↗context

Урок, который он вынес и потом положил в Rails: людей удерживает положительный первый опыт, а не преодоление.

## BBS в 14 лет и демосцена

Три телефонные линии в детскую спальню в Копенгагене; телефонист смотрел на подростка и не понимал, что происходит. Ездил на «The Party» в Орхус с 14-дюймовым ЭЛТ-монитором под мышкой — тысячи людей с компьютерами, соревнования демо в…

DHH2025-07-12temy-lex-474-2025source ↗context

> «The connection you get from sitting right next to someone else who has their own CRT monitor who's lugged it halfway around the country to get there is truly special.» — [0:12:15](https://youtu.be/vagyIcmIGOQ?t=735)

DHH2025-07-12temy-lex-474-2025source ↗context

Про пиратство в Дании 80-х: моральный вопрос вообще не существовал. Одна игра стоила месяц разноски газет.

## PHP — бар, который он гонится всю карьеру

> «100% that's true» — на вопрос, обязан ли он всем успехом PHP. — [0:16:23](https://youtu.be/vagyIcmIGOQ?t=983)

DHH2025-07-12temy-lex-474-2025source ↗context

> «In many ways, I think the pinnacle of web developer ergonomics is late '90s PHP. You write this script, you FTP it to a server and instantly it's deployed.»

Компьютеры стали в тысячи раз быстрее — а делать вещи для интернета стало сложнее. Rails 8 и «no build» — попытка вернуть ощущение 90-х, не отказываясь от прогресса.

DHH2025-07-12temy-lex-474-2025source ↗context

> «A lot of people, I think, are very uncomfortable with the fact that they are essentially CRUD monkeys… and they have to compensate for that existential dread by overcomplicating things.» — [0:17:24](https://youtu.be/vagyIcmIGOQ?t=1044)

DHH2025-07-12temy-lex-474-2025source ↗context

## Как появились Basecamp и Rails

2001 год: Джейсон Фрайд задал вопрос про PHP в интернете, DHH из Копенгагена ответил незнакомому человеку в Чикаго. Начали делать клиентские проекты: Фрайд — дизайн, DHH — PHP. Каждый проект утопал в письмах и файлах `finalfinal_v06_2.0` — так родилась идея Basecamp. И впервые он получил свободу выбора технологии: клиента, требующего PHP, не было.

DHH2025-07-12temy-lex-474-2025source ↗context

Ruby он нашёл через статьи Дэйва Томаса и Мартина Фаулера, которые объясняли паттерны на Ruby, потому что он читался как псевдокод. Дал себе две недели на прототип — хватило одних выходных.

> «Ruby was made for my brain like a perfect tailored glove by someone I'd never met.» — [0:45:07](https://youtu.be/vagyIcmIGOQ?t=2707)

DHH2025-07-12temy-lex-474-2025source ↗context

Первая версия Basecamp — 400 часов одного человека по $15–25 в час, 2004 год. Компания тогда: он, Джейсон, Райан, Мэтт.

DHH2025-07-12temy-lex-474-2025source ↗context

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

## Где точки с запятой?

Первое, что его поразило в Ruby, — отсутствие точек с запятой. Они нужны интерпретатору, а не человеку.

DHH2025-07-12temy-lex-474-2025source ↗context

> «Oh, someone is looking out for the human here, not for the machine.» — [0:44:04](https://youtu.be/vagyIcmIGOQ?t=2644)

Три примера, которые он разбирает на пальцах:

- `5.times { … }` — число само объект, метод вызывается прямо на нём. «There's literally no other programming language that I know of that has managed to boil away the line noise…

DHH2025-07-12temy-lex-474-2025source ↗context

> «He trusted me as a complete stranger from Denmark who had never met to mess with his beautiful story. That level of trust is essentially unheard of.» — [0:58:27](https://youtu.be/vagyIcmIGOQ?t=3507)

DHH2025-07-12temy-lex-474-2025source ↗context

## Matz против Гослинга: два взгляда на человека

Гослинг (Java) прямо говорил: средний программист глуп, ему нельзя давать острые инструменты — он отстрелит себе ногу. Matz пошёл в противоположную сторону.

DHH2025-07-12temy-lex-474-2025source ↗context

> «He believes in humanity. He believes in the unlimited capacity of programmers to learn and become better. So much so that he's willing to put the stranger at his own level.» — [0:56:23](https://youtu.be/vagyIcmIGOQ?t=3383)

DHH2025-07-12temy-lex-474-2025source ↗context

Первый черновик Ruby 1993 года — это 90% того, что используют сегодня. «Almost a sense of divine inspiration». Никто так и не скопировал суть, хотя все брали элементы.

## Python — некрасивый (и он об этом честно)

DHH2025-07-12temy-lex-474-2025source ↗context

`def __init__(self, …)` — самый важный метод любого класса записан одним из самых уродливых способов, какие он видел. Ruby: `def initialize` — без подчёркиваний, без `self`, без скобок, если аргументов нет. И без сокращений: `initialize` длиннее `init`, но пишешь его редко, а смотришь часто.

DHH2025-07-12temy-lex-474-2025source ↗context

Второй контраст — интерактивная оболочка. В Ruby выходят и `exit`, и `quit`: люди наберут то или другое. Python на `exit` читает лекцию: «use exit() or Ctrl-D».

> «One is very human and another is very engineer.» — [2:00:40](https://youtu.be/vagyIcmIGOQ?t=7240)

DHH2025-07-12temy-lex-474-2025source ↗context

## Динамическая типизация — «буду защищать до смерти»

Аргументы против статической типизации в его мире:
- Повторы. `User user = new User()` — слово три раза. «I don't have time for this».
- Метапрограммирование становится мучением; из-за этого TypeScript выкинули из Turbo.
- Инструменты порождают шаблонный код. Языки с хорошим автодополнением терпят гораздо больше boilerplate — «ты же его не печатаешь». Он печатает: «I chisel…

DHH2025-07-12temy-lex-474-2025source ↗context

И главная оговорка: система на 10 миллионов строк и сто тысяч программистов — другой мир, там нужны другие методы. Ошибка — считать, что то же самое нужно одному человеку в спальне.

> «You don't use your Pagani to go pick up groceries at Costco.» — [1:11:47](https://youtu.be/vagyIcmIGOQ?t=4307)

More