Язык не имеет значения…

Довольно расхожая фраза в IT кругах, смысл которой часто остаётся не понятым. Я думаю, многие в начале карьеры программиста слышали о том, что конкретный язык и технология — это лишь реализация более фундаментальных идей. И качество программиста оценивается не столько количеством библиотек, которые он использовал в работе, сколько знанием и пониманием общих знаний, таких как: структуры данных, алгоритмы, структура информационных систем и т.д. Язык программирования, как и повседневный язык, является лишь инструментом коммуникации, позволяющим формализовать свои идеи. Как желания и характер человека не зависит от языка, на котором он говорит, так и бизнес-задачи не зависят от языка программирования. Но, в зависимости от языка, одни и те же идеи будут иметь разные формулировки. Каким бы ни был прекрасным оратор, он не сможет повести за собой толпу китайцев, если не знает китайского языка. Так и замечательный веб-программист, писавший на скриптовых языках, типа PHP, не сможет безболезненно перейти на, скажем, Java просто потому, что там используются другие структуры данных. Как и естественные языки, языки программирования объединяются в группы по общности какого-то признака. Например, компилируемые или интерпретируемые, со статической типизацией или динамической, использующие объектно-ориентированную парадигму программирования или функциональную. И каждая группа призвана решать свои специфичные задачи своими методами. В естественных языках всё немного проще, так как языки имеют общие корни в силу обмена между исторически близкими группами людей, носителей языка. И выучив один язык из группы, каждый следующий учить проще и проще, находя аналогии в уже освоенном материале. Но при попытке изучить язык из новой группы программист обречён столкнуться с трудностями. Так например, при обучении китайскому языку вряд ли помогут знания языков славянской группы. Исходя из вышеизложенного, напрашивается вывод, что язык действительно не имеет значения, когда речь идёт о шаблонах программирования, структурах данных, архитектуры проекта — вещах, которые напрямую не зависят от реализации. Когда же обсуждаются вопросы разработки, поддержки, внедрения, тогда не стоит пренебрегать особенностями языка. В противном случае легко провалить проект, написав нерабочий и запутанный код, аналогично написанию письма на малознакомом языке, где определённо будут допущены орфографические и стилистические ошибки.

Поделиться
This entry was posted in Programming, Society and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>