Всем привет, в этой статье постараюсь хоть немного помочь вам выбрать свой первый инструмент, речь будет идти о выборе языка программировании.
В статье могут встречаться аббревиатуры:
ООП - Объектно-ориентированное программирование придуман и впервые реализован программистом по имени Алан Кэй который так-же создал "эталон" и чистый объектный язык программирования Smalltalk в котором отсутствуют файлы при разработке кода.
Функциональное программирование или может встречаться как ФП
Python
Создан Голландским программистом и "великодушным пожизненным диктатором" Гвидо ван Россумом , появился язык 1991 году, этот язык с динамической типизацией и с хорошей поддержкой ООП, функциональный подход поддерживает, но очень скудно.
Этот язык отлично подойдет практически каждому кто хочет стать Web разработчиком или data scientist, ну конечно этот язык стал основой для автоматизации работ разного рода например CI(непрерывная интеграция это инструменты которые позволяют быстро разворачивать ваш код на удаленные сервера), так-же на нем пишут куча скриптов для настроек серверов, можно писать и Desktop приложения и игры но это не особо хорошая затея, язык позволяет это делать, но это не означает что нужно это делать. Язык очень простой и лаконичный - у него есть стандарт PEP который регламентирует "правильное" написание кода, так же очень хорошая и богатая официальная документация, поддерживает огромное количество паттернов проектирования что дает хорошую практику начинающим.
Python активно развивается и у него появляются новые способы разработки, например асинхронная разработка или те же аннотации для типизации данных(хотя типизация все равно не строгая, добавлена скорее для ясности, а не для строгости соблюдения).
Язык очень прост в понимании и написании своего первого проекта, однако позже выяснится что за его красотой и вроде удобством скрывается "ад под капотом", стоит упомянут что язык "объектно-ориентированный" что означает вы сможете создавать высокую абстракцию в коде и у Python большое количество "магии" которые иногда затрудняют работу с старыми или не со своим проектом(хотя иногда и со своим) проблема заключается в так называемых Meta классах которые позволяют изменять поведения и вообще мутировать все ваши классы(которые наследуются от него или от того кто наследуются от него и так по лесенке), вот представьте себе, вы переехали в квартиру в высоко этажном доме, зашли в квартиру и у нее прекрасный ремонт, джакузи и т.д. но под определенной лунной фазы весь дом превращается в "общежитие", в этом суть Meta классов и они часто используются для "упрощения рутины" в крупных и средних компаниях и когда вы приходите работать в уже рабочий проект и вам говорят "Вот бери его и на его основе делай" и иногда небольшая ошибка в Meta классе создает огромное количество не очевидных проблем.
Так же Python достаточно прожорливый, он требует не мало ресурсов железа, он не особо производительный хотя это и минус, но в наше время это не столь критичный показатель.
Еще одна проблема это слишком большой всплеск популярности Python что отражается на качестве программного кода который вам рано или поздно придется поддерживать.
Pyhon верой и правдой был моим основным языком на протяжении около 5 лет, мое личное мнение это отличный язык хоть он не был моим первым языком, но эмоции от него больше приятных, нежели неприятных, если хотите стать Web разработчиком то лично я советую выбрать его.
Вывод, если вы хотите влиться в ИТ сферу быстро и зарабатывать не мало денег в перспективе то этот язык отлично подойдет как первый язык программирования, но запомните, хоть язык и много профильный и на нем можно писать и мобильные приложения и игры и все что угодно, он будет очень сильно уступать тем языкам которые предназначены для этих задач, не стоит забивать гвоздь котом, пожалейте кота. :)
PHP
Великий и могучий PHP который появился в 1995 году, язык является скриптовым и объектно-ориентированным языком программирования создатель данного мамонта Расмус Лердорф, язык считается простым и лаконичным многими, но по моему личному мнению он похож на смесь Java и Perl что дает довольно громоздкий и слабо читаемый код.
Стоит указать что язык так-же активно развивается и не так давно в нем появилось возможность разработки асинхронного кода(Fiber), кем то критикуемое, а кто-то пророчит успех такое решение, но я ориентируюсь от того что будет проще поддерживать и что более предсказуемое, так вот - Fiber это не удобный инструмент, громоздкий и выглядит как костыль который приделали к велосипеду.
По производительности - по многим тестам он обходить Python в однопоточных приложениях, т.е. если нужен простой сайтик то выбор PHP не будет плохим, да и так-же официальная документация на русском языке явно дает неплохой плюс для тех кто не знает английского.
PHP очень популярный язык и это тот язык который позволит вам не парится по поводу поиска работы, зарплаты в среднем чуть ниже Python так же его популярность позволить вам работать на фриланс биржах, многие программисты критично относятся к языку последние лет 8 примерно, потому для вас будет большой шанс жить работая на себя, с Python сложнее, на фриланс биржах не так много ищут Python разработчиков, а вот Python разработчиков развелось огромное количество.
В целом язык неплох со своими преимуществами, хорошо подойдет тем кто хочет стабильно работать на себя в качестве фрилансера или для того кто живет в каком либо отдаленном городе и не желает от туда переезжать, других вакансии возможно не будет, но PHP вакансии скорее всего найдутся. ;)
C#
Детище Microsoft, вышедший в 2000 году чтобы "убить" Java, но досих пор остается менее интересным для крупных игроков рынка.
Язык очень многопрофильный, компилируемый и статически типизируемый, поддерживает почти или возможно уже все возможные подходы к разработки и не ограничен ООП, этот язык должен был иметь логотип "Слона" и заслуживал бы его, но судьба распорядилась иначе.
Начать стоит с того что язык очень громоздкий и огромное количество разного подхода пугает многих новичков которые пробуют данный язык, сейчас язык сильно изменился от огромного жира .Net отказываются в пользу Core т.е. в Microsoft видели эту проблему и решили сделать чтобы при установки язык не включал в себя "тонны" библиотек с 90% из которых люди чаще всего не пользуются или пользуются крайне редко, так что если выбирать новый язык то сейчас я бы сказал C# хорошим выбором, ну во первых он "стильный и молодежный"(хотя после выхода Go и Rust уже выглядит старичком) т.е. с работой скорее всего проблем не будет, во вторых язык хорош практически во всех отраслях, т.е хотите в Web C# хороший выбор, хотите писать Desktop приложения C# хороший выбор, может мобилка ? Тоже C# не будет плохим выбором и т.д. так же с выходом Core C# стал по настоящему кроссплатформленным, так что вы не будете связаны с Windows при желании сможете писать и на Linux дистрибутивах и на других ОС.
Очень богатая документация(и даже есть на русском языке) так же дает весомый плюс и в отличии от PHP или Python их документация по навигации удобнее.
Из недостатков можно наверное отметит это его требования к ресурсам, язык продуктовый и он выдерживает не малую нагрузку, но ресурсы кушать он любить, но не так конечно как Java, но в сравнении с Python и PHP и многими другими языками C# слишком много есть.
Java
Строго типизируемый, объектно-ориентированный язык который вышел в 1995 году и занял огромную нишу практически во всех отраслях, этот язык стал эталонном продуктового языка и многие крупные бизнесы от банков до корпорации часто используют данный язык для создания стабильно работающего проекта, не смотря на то что сейчас есть более "молодежные" языки которые превосходят Java практически во всех отраслях в плане прожорливости и функциональности, Java все еще остается на своей позиции, этому есть много причин, вот основные:
1. Стабильный продукт - тогда как многие языки стремятся внедрять новые "фичи" чуть ли не 2 раза в год, Java в этом плане черепаха, что дает этому языку стабильность т.к. они крайне редко ломают обратную совместимость и очень тщательно тестируют новые будущие выпуски
2. Отказоустойчивый, кто бы что не говорил но Java одна из самых отказоустойчивых языков, конечно многое зависит от рук разработчика, но в JVM выстроено грамотный подход к работе по разгрузки памяти в критические моменты, что дает возможность выдержит по настоящему крупные нагрузки именно по этой причине банки очень любят этот язык.
3. Отличная поддержка если приобретаете платную версию.
Язык не настолько богат как C# библиотеками, но он такой каким и должен быть, в Java конечно очень много старого кода для обратной совместимости ведь для них главный рынок это бизнес, а не мы, смертные.
Кому он подойдет? Да практически всем, Web, мобильная разработка, Desktop разработка, игры и т.д., однако тут стоит учесть что Java довольно старо модна и очень многословна(на уровне PHP) и так-же в ней нужно очень аккуратно писать код, ведь Java может съесть всю вашу память за минуты. :)
Лично мое мнение, если выбирать отрасль Web то лучше будет выбрать C# , лично мне он более приятен, а по количеству вакансии Java примерно сопоставим с PHP т.е. без работы скорее всего не останетесь.
Термины которые вам не ясны позже будут пояснены в других статьях, это не учебная статья пока что, а просто вводная, в данной статье я делюсь со своим мнением, могу заблуждаться по некоторым вопросам, люди не идеальны, я просто даю направление исходя из своего опыта и опыта моих коллег по работе.
Во второй части статьи разберу еще эти языки:
- Nodejs
- C++
- Golang
- Rust
- Ruby
#программирование #python #csharp