Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Код

Ложь, в которую верят программисты

Время чтения статьи ~3 минуты
Ложь, в которую верят программисты главное изображение

Это перевод статьи Грэма Ли Falsehoods programmers believe about programming.

  • Моя работа не оказывает этическое влияние: я создаю технологические системы и то, как другие их используют, зависит от этих людей.
  • Софт — абсолютно техническая дисциплина
  • К компьютерному программированию существует своеобразная врождённая предрасположенность, ему невозможно просто научиться.
  • Позволить программировать людям, которые не такие как я, можно только путём «понижения планки».
  • Компилируемые языки программирования всегда быстрее.
  • Вычисления с плавающей запятой приводят к недетерминированным ошибкам в числовых результатах.
  • Ок, они иногда приводят к ошибкам в числовых результатах.
  • Ладно, я понял, что вычисления с плавающей запятой просто неточные, а не ошибочные, мистер Педантичный Блогер, но я не знаю, что значит неточность.
  • Как минимум, результат целочисленного вычисления всегда определён.
  • Уговорил, он не определён. Но какой бы он там ни был, результат выполнения арифметического действия с двумя числами, каждое из которых помещается в регистр данных, сам помещается в регистр данных.
  • Каждый продающийся сегодня компьютер (2017), базируется на способе представления отрицательных чисел в дополнительном коде (во втором дополнении).
  • Каждый продающийся сегодня компьютер базируется на ширине регистра, величина которого кратна восьми битам.
  • баг не в моём коде.
  • баг не в библиотеке.
  • баг не в операционной системе.
  • баг не в компиляторе.
  • баг не в оболочке.
  • баг не в железе.
  • железо без багов абсолютно детерминировано.
  • строчки на жёсткой шине/мосте всегда по напряжению представляют либо 0, либо 1.
  • если тесты покрывают 100% строчек моего кода, мой код покрыт полноценно.
  • если тесты покрывают 100% утверждений, мой код покрыт полноценно.
  • если тесты покрывают 100% условий, мой код покрыт полноценно.
  • если я все покрыл тестами, то у меня нет багов.
  • если я все покрыл тестами, то мне не нужна система типов.
  • если я использую систему типов, то мне не нужно покрывать код тестами.
  • мою систему никто не хакнет.
  • информационная безопасность — это защита от хакеров.
  • проблема SQL injection решается заменой SQL. NoSQL injection невозможно.
  • мой проект — особенный, я могу отвергнуть методику, о которой я читал, без анализа.
  • мой проект больше похож на стартап-единорог или проект компании, вышедшей на биржу: я могу применить методику, о которой читал, даже не изучая её
  • люди, которые не используют тот же язык (технику, фреймворк, инструмент, методологию, парадигму, другой опыт), просто не понимают его.
  • любое метапрограммное расширение решается за адекватный отрезок времени.
  • любая сигнатура типа решается за адекватный отрезок времени.
  • ок, по крайней мере любое регулярное выражение решается за адекватный отрезок времени.
  • можно, хотя бы, пожалуйста, назвать эти регулярные выражения регулярными?

Я уверен, что существует больше заблуждений.

Update Всё, что написано ниже, было добавлено позже. То, что поддержали другие, отмечено ссылками.

  • Чтобы быть хорошим программистом, нужно получить степень в компьютерных науках.
  • Образование в сфере компьютерных наук ничего полезного программисту не приносит.
  • Функциональное программирование — это серебряная пуля.
  • Rust — это серебряная пуля.
  • Серебряная пуля существует.
  • Серебряной пули может и не быть.
  • Переписывание работающей софт-системы — хорошая идея.
  • Я могу написать крупную систему на memory unsafe языке без уязвимостей.
  • Я могу написать крупную систему на на memory safe языке языке без уязвимостей.
  • Софт — инженерная дисциплина.
  • Софт — научная дисциплина.
  • Дискуссия по теме стимулируется комментариями о том, что я уже знал факт, который был указан.
  • Лжезаключения о программировании не имеют значения, если автор таких лжезаключений не предоставит удовлетворяющие меня доказательства.
Аватар пользователя Natalia Bass
Natalia Bass 14 декабря 2017
0
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря