В поисках Святого Грааля или сага о священных войнах программистов

Я программирую уже свыше 10 лет и за этот период сменил не  одну технологию. Фактически, для любой задачи полезен тот язык программирования, который идеально подходит для ее решения с меньшими трудозатратами. Например, часто в системном администрировании nixов приходится писать perl скрипты, которые позволяют сэкономить буквально массу времени. Согласитесь, что глупо буквально каждую повседневную задачу писать на сях, танцуя с бубном над очередной реализацией того или иного функционала. Или же для разработки сайта наивно пренебрегать таким языком как PHP и реализовывать CGI на каком-то другом языке.

Тем не менее, мне все чаще и чаще попадаются программисты всех мастей, которые устраивают знаменитые «священные войны». Уж не знаю, с чем это связано, но споры о том, какой язык круче не утихают. Сишники, делфисты, шарписты, джависты и т. д. — все они отстаивают свою точку зрения, буквально захлебываясь от пены изо рта. Когда ко мне обращаются с просьбой помочь в споре о языке, я молча пожимаю плечами и покидаю этот спор.

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

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

По сути, все языки одинаковы. Разница лишь в дополнительных библиотеках. Сравните большинство участков кода C# и Java – фактически, они будут примерно одинаковы. А все лишь потому, что восходят корнями к С. Но даже такой, казалось бы, отличный от C Паскаль (Делфи) все равно похож на тот же C++. Да, можно писать begin end вместо {} и говорить «вот оно, это отличие». Но если придираться, то можно найти массу отличий даже в различных релизах одного и того же языка.

Что по сути представляет современное программирование? Это прежде всего, повторное использование чужого кода. Честно говоря, на мой взгляд полное безумие писать то, что уже делали неоднократно другие. Например, я хотя и представляю себе алгоритмы архивации, но писать свою компоненту или библиотеку никогда не буду. А зачем? Если есть готовая, лучше использовать ее, чем тратить время на ее написание.

Современное программирование представляет собой предметно-ориентированную направленность. По факту, многое уже открыто и изучено. Можно годами искать свой Святой Грааль в программировании, ничего тем самым не открыв. Программист — человек прагматичный. Он прекрасно должен уметь распоряжаться своим временем.

И глупо штамповать программы лишь на одном и том же языке лишь потому, что он «лучше и быстрее». Когда нужно написать небольшую утилиту с графическим интерфейсом с нативным кодом, я использую Делфи. Да, программа получится медленнее, чем на VC++, но и разработка гораздо быстрее.  Если нужна сетевая программа или работа с базами данных, использую C# или Java, если речь идет о кроссплатформенности.

 

Тенденция последних лет -повсеместное использование Python. Его набор модулей предназначен, похоже, для всех случаев жизни. На Питоне можно писать кроссплатформенные программы. Ну будет скорость медленнее, чем у тех языков, которые компилируются в нативный код, и что? Современные устройства обладают настолько мощными процессорами, что уже быстродействие кода плавно отходит на задний план.

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

Ну не будет ударяться в футурологию, а вернемся к насущному. Какой же язык выбрать, чтобы не прогадать? Любой. Потому что концепции высокоуровневых  языков одни.

Циклы, условия, массивы, функции,классы — все это присуще современным языкам. И если вы не занимаетесь профессиональным реверсингом программ, вам даже не нужно знать о паскалевской и сишной нотации программ в ассемблерном коде.

По факту, когда говорят, что мне нравится  тот или иной язык, имеется в виду компилятор и платформа.  Изучить C++ несложно — там всего, если память мне не изменяет, 89 ключевых операторов.  А вот на изучение всех библиотек хотя бы из набора стандартной библиотеки может понадобиться около года. Тоже самое с C#, Делфи или Java.

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

Представьте себе подход, когда студент с энтузиазмом изучает C++, заведомо отбрасывая все иные варианты. Хотя в его регионе востребован 1С или PHP. Хуже, лучше — важно лишь то, что какой язык программирования  востребован в данный момент. И когда встает выбор между работы в захудалом НИИ сишником на оклад в 7 тысяч рублей или освоить попсовую 1С и пойти работать на 40 тысяч, «отжимая» у фирмы клиентов,  выбор падает не в пользу первого.

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

 
Яндекс.Метрика