Pull to refresh

Программируешь, на?

Reading time 3 min
Views 1.3K
Сегодня наконец нашёл в одной замечательной книге хорошего автора то, что так долго хотел высказать, глядя на бесконечные споры вокруг языков программирования и крики людей о том, что мол их язык лучше потому-то и потому-то.

В ролях:
Замечательная книга — «Совершенный код» (Code Complete), 2-е издание.
Хороший автор — Стив Макконнелл.
Голос за кадром — это я.

Вступление


В последнее время хабр захлестнула волна «статей» о языках программирования,
преимуществах одних над другими, о оптимизации программ на….

Читая их, я всё больше раздражался, ведь многие из них совершенно лишены смысла — например попытки сравнивать php и perl, или оптимизировать скрипт php на уровне вынесения переменных из строки.

Собственно, этой статьёй я хочу дать пищу для размышлений тем, кто думает в нужном направлении,
и тему для обсуждений остальным.


Развитие


Книга у Стива вышла замечательная. Тому, кто хочет узнать что-нибудь новое о программировании, или улучшить своё понимание — советую её прочитать.

Во время чтения книги встречается одна мысль, которая хорошо выражает мои ощущения:

«Программировать надо с использованием языка, а не на нём».

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

Такие споры — просто глупы, ведь программирует всё-таки не компьютер и если есть какие-то трудности, то вы можете их обходить, на то вы и программист, а не машина.

Если вы хотите быть профессионалом, не важно уметь писать на perl или ruby, не важно уметь писать десятки операторов и функций в одну строку.

Важно — уметь программировать профессионально. Как это? Да в общем-то просто.
Это означает, что не надо ограничиваться только тем, что предоставляет вам язык.
Вам чего-то не хватает? — сделайте это с использованием имеющихся в распоряжении средств, а не бегайте с воем, что «в этом языке так сделать нельзя».

Перестаньте ныть и спорить, это бессмысленно.
Перестаньте кричать, что «этот язык лучше», это ещё более бессмысленно.

Используйте хороший стиль написания программ, приёмы защитного написания программ, отладку, логи, утверждения (assert), тесты. Пишите программы так, чтобы их можно было легко читать. Проектируйте систему, прежде чем садиться писать.
Я полностью согласен с этими утверждениями, их истинность подтверждает мой личный опыт.

Любой язык программирования своими недостатками ставит не барьер, а просто задачу для вас. То, что вы воспринимаете, как недостатки и ограничения — это повод задуматься — а с использованием ли языка вы программируете?

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


Кульминация


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

Товарищи, пишущие, что пишут на руби. Вы определитесь уже, вы на руби пишете, или на рельсах? По мне, так большинство пишет именно на рельсах.

Товарищи, пишущие, что один язык лучше другого. Откройте глаза, ребята, вы заблуждаетесь.

Товарищи, оптимизирующие скрипты на php. Последний — порадовал, плюс ему за это. Предыдущим же подкину ещё один способ оптимизации: for ($i = count($big_array) - 1; $i > 0; $i--) и скажу, что главная оптимизация — это хорошее предварительное проектирование и хороший стиль программирования.

Мне, кстати, многие приёмы профессионального программирования напоминают использование веб-стандартов. Аналогии проведите сами. Привет, Макс, Вадим, Алексей, Дима и вся остальная банда ;)

И в заключении. Все, кто программирует — книгу читайте обязательно.

ps. Вот ещё что. Чтобы было полное понимание — я скажу, что каждый язык имеет свою область применения, причём в этой области есть и другие языки. И сравнения языков одной области — бессмысленны для тех, кто программирует с использованием языка.
pps. Во избежание лишних разговоров. Дискутировать о инструментах до начало программирования — правильно и нужно. С аргументами и учитывая уровни оппонентов. После начала программирования такие дискуссии — бессмысленны.
Tags:
Hubs:
+37
Comments 115
Comments Comments 115

Articles