Рубріки: Мнение

Зачем программисту ассемблер и математика и как писать код у себя в голове: лучшее из интервью создателя языка D

Вікторія Пушкіна

Имя Уолтера Брайта не суперизвестно, и язык, который он создал — D — тоже не стал суперпопулярным. Но, возможно, вы использовали его компилятор для C++ Digital Mars или знаете игру Empire (она сильно повлияла на популярную серию Civilization). Кстати, это первый компилятор для C++, который напрямую компилировал код без его преобразования в C.

При этом Уолтер Брайт — самоучка в программировании. Он стартовал с разработки Empire, постепенно перейдя в область создания компиляторов: помимо C++, он создал компиляторы для C.

Своими мыслями о том, как писать хороший код он поделился в интервью Владу Тену на YouTube-канале «Мы обречены». Highload публикует главные мысли из этого видео.

Уолтер Брайт / Medium

Про популярность D и другие языки программирования

Мне не нравится ни один популярный язык программирования. Я же создал D — какой смысл был бы мне создавать свой язык, если бы мне очень нравился какой-то из уже существующих?

Я использовал другие языки в течение многих лет и постоянно замечал что-то, что мне не нравилось. Так что я устал быть нытиком и просто сделал свой. И самое забавное, что один за одним, другие языки начинают перенимать функции языка D, на которые раньше никто не обращал внимания.

Это лестно, но также мне бы хотелось, чтобы D был мейнстримным языком, а не нишевым. Так что я хочу снизить барьер для входа в язык D для новичков. Сейчас я работаю над тем, чтобы декомпилятор мог импортировать код на языке С напрямую, а не через транслятор. То есть встраиваю компилятор С в компилятор D.

Про то, зачем учить D

C++ — это безопасный выбор. Если вы владеете С++, то знаете, что всегда найдете работу и вас никогда не будут критиковать. D привлекает людей нестандартных, более авантюрных и готовых пробовать новое. И некоторые работодатели заметили это и постоянно ищут программистов со знанием D, потому что им нравится такой подход к работе. 

Организации, которые используют язык D / Полный список на сайте языка D

Про то, как писать код у себя в голове

Большую часть кода я пишу, когда бегаю. Бег — это мое время для размышлений. Перед тем как бежать, я загружаю голову контекстом проблемы, которую пытаюсь решить. Просто говорю себе: вот, есть такая проблема. А затем выхожу на пробежку.

Сам процесс бега как бы встряхивает кусочки информации в голове. И часто они складываются в решение к тому времени, когда я возвращаюсь — остается только его записать.

Может быть, я использую этот подход, потому что я начинал работать в старые времена, когда трудно было получить доступ к компьютеру. Поэтому мне часто приходилось писать программы карандашом на бумаге.

Про то, что нравится в программировании

Мне жаль тех, кто идет в программирование только ради денег. Вы тратите восемь-десять часов в день на работу, так что она должна быть чем-то, что вам нравится делать. Или вам нужно найти способ получать от этого удовольствие. Когда я работаю над D, я в основном работаю над ним бесплатно, потому что это весело 🙂

Например, мне нравится работать над мельчайшими деталями. Я люблю нырять в грязь и пытаться написать идеальный маленький кусочек кода. Я постоянно рефакторю текущий проект, потому что каждый раз думаю, что смогу сделать его лучше и быстрее.

Про то, зачем программисту математика

В автомобильной промышленности есть механики и инженеры. Механики заказывают детали по каталогу и устанавливают их, следуя инструкциям. А инженеры разрабатывают эти детали и пишут инструкции. Так что инженер-программист — этот тот, кто пишет библиотеки. А если вы просто «берете детали из каталога» и вызываете API — это больше похоже на работу механика.

Кто-то однажды спросил у меня: «Зачем мне знать математику, если я хочу быть программистом?». Я ответил: «Без математики вы не сможете написать огромное количество программ. Как без математики написать пакет с плавающей запятой, движок, нейронную сеть? Конечно, вы можете купить готовый пакет для этого, но я бы остерегался использовать готовые пакеты без понимания, как они работают».

Про то, что учить начинающему программисту

Люди будут ненавидеть меня за это, но я считаю, что первое, что нужно выучить начинающему программисту — это матанализ. Даже если вы не будете потом его использовать, он перестроит ваш мозг. Появится ощущение, что теперь вы можете разобраться с чем угодно.

Мем про матанализ / Meme-arsenal

Потом переходите к машинному коду. Даже если вы будете писать на высокоуровневых языках, если вы хотите понимать, как работает ваш код и видеть проблемы в нем, учите Ассемблер. Вам будет гораздо проще так отлаживать свои программы.

А потом можете переходить на D — вы готовы 🙂

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024