Новая синтаксическая обёртка, пара новых фреймворков, немного другой инструментарий — и всё. Но очень быстро стало ясно: дело не в языке. Настоящие перемены происходят в голове.
В .NET я привык думать категориями: архитектура, интерфейсы, DI-контейнеры, строгое разделение слоёв, паттерны, шаблоны. Всё, что не укладывалось в стандарт, вызывало тревогу. Код должен быть «правильным» — даже если он получался громоздким. Такой подход формировал мышление инженера: продумывай, предугадывай, страхуйся.
Ruby предложил совсем другое. Он будто сказал: «Доверься процессу». Сначала это вызывало внутреннее сопротивление. Как это — не указывать типы? А где интерфейсы? Почему контроллер не покрыт десятком аннотаций? Но со временем пришло понимание: Ruby строится не на страхе ошибок, а на гибкости и доверии к разработчику.
Мышление стало проще, но не примитивнее. Просто фокус сместился с формальной строгости на решение задачи. Я начал думать не «как сделать по шаблону», а «как сделать, чтобы было понятно и удобно». Вместо того чтобы сразу строить сложную архитектуру, я начал писать код, запускать его, тестировать, адаптировать. В Ruby быстрее начинаешь, раньше получаешь результат и постепенно доводишь его до нужной зрелости.
Ещё одно важное изменение — принятие недосказанности. В Ruby многое работает на конвенции и здравом смысле. Не нужно прописывать лишнее. Это экономит время и делает код легче. И со временем ты учишься доверять себе, вместо того чтобы прятаться за абстракциями.
В итоге я стал не только писать иначе, но и думать иначе. Ruby открыл мне сторону разработки, где главное — не соответствие правилам, а ясность мысли, прозрачность кода и скорость обратной связи. Это мышление не отменяет инженерности, но делает её человечной и живой.