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

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

Python

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

1) Простота кода. Из пайтона вырезаны все мешающие условности, например, знак «;» в конце каждой строки, а также минимизированы мешающие прочтению кода элементы, например, фигурные скобки. 

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

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

Но у всего есть недостатки и пайтон – не исключение. 

1) Низкая эффективность. За удобный и простой код, приходится расплачиваться уступками. Т.к. пайтон не знает, сколько памяти мы выделяем под программу (ведь мы не можем этого указать), памяти выделяется всегда больше, намного больше, чем при работе похожих программ на других языках. Вдобавок, язык интерпретируемый. Это значит, что для работы программы, написанной на пайтон, вам тоже нужен установленный пайтон-интерпретатор. На примере языка С: это компилируемый язык, а значит, вы можете упаковать программу в исполняемый файл и запускать там, где С-компилятора нет. 

2) Универсальность. Да, это именно недостаток, так как пытаясь преуспеть во всем, в конечном итоге не преуспеваешь ни в чем, если вы пишите бэкэнд на пайтон, то всегда удобнее использовать PHP, если вы работаете с нейронными сетями, рано или поздно прийдете к golang, а если пишите части операционной системы, то С – лучший вариант.

С++

Более смелые люди, отчего-то нежелающие начинать с пайтона, должны были попасть к этому языку. С++ или, как его еще называют, плюсы – это логическое продолжение языка С (читается си), с добавлением в него объектной ориентированности (классы, декораторы и другое) и подключением большего количества библиотек.

Из преимуществ можно выделить: 

  1. Скорость выполнения. Программы, написанные на плюсах, выполняются намного быстрее тех же программ, но написанных на пайтоне или джаве.
  2. Производительность. С++ выдает намного меньше ошибок и исключений при написании программы, так как он является статически типизируемым языком.

Недостатки у плюсов также имеются.

  1. Синтаксис. Для написания хорошего кода вам обязательно нужно знать все условности его написания, например, заканчивать каждую строчку знаком «;» и писать основной код в главной функции.

Rust

Данный язык появился в 2012 году под покровительством компании Mozilla, Поэтому считается очень молодым. Язык был представлен, как конкурент языкам C и С++, синтаксис языка напоминает об этом – код написанный на расте с первого взгляда можно принять за код на плюсах, однако если приглядеться, можно увидеть элементы и конструкции, которые, по словам разработчиков, призваны залатать дыры и неудобства С++. Фишкой языка является максимально скрупулёзная работа с памятью. На этом языке пишут и веб-элементы и ситстемные для устройств со слабой производительностью, опять же, благодаря возможности расширенного управления памятью. Плюсы и минусы у этого языка похожи на плюсы и минусы С++.

Java

Осмелюсь сказать, это самый известный язык программирования. На нем пишут всё и на все платформы: android, windows, linux (о котором у меня есть отдельная статья), bsd, ios и даже старые кнопочные мобильники с операционными системами s30, s60, symbian. Не все, но многие игры и приложения для  них написаны именно на java. На данный момент язык считается достаточно медленным, однако много тестов доказывают, что пайтон все равно медленнее. Для мощной программы на виндоус все-таки используют С++ или Rust. А вот на поприще мобильных устройств java занимает первые места. Зарплаты Java-разработчиков считаются самыми высокими в IT-секторе.

Kotlin

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

1) Собранные пакеты приложений меньше весят 

2) Более удобная работа с классами при разработке. 

3) Встроенные защиты от ошибок. 

4) Котлин полностью совместим с джавой, так как создавался «по образу и подобию», но при этом не является наглым плагиатом. Недостатков при достаточно кратком использовании я для себя не заметил. Единственное, что хотел бы подметить, если вам тяжело дается джава, то не думайте, что котлин будет свежим глотком воздуха.

Go

Иногда этот язык можно встретить под названием golang, но сути это не меняет. Это язык программирования изначально созданный внутри компании Google в 2007 году. Синтаксис языки вобрал в себя основу из С и много опций из скриптовых языков программирования. В основном на нем пишут приложения и программы для компьютерных операционных систем, а компилятор языка go поддерживается во всех компьютерных операционных системах.

Brainfuck

Куда же без экзотики. Данный язык программирования является эзотерическим, то есть он создан только для того, чтобы доказать возможность существования подобной концепции. А концепция заключается в полном выносе мозга программисту. Шучу, конечно же идея языка не в этом, это лишь следствие работы с ним. А ведь его название художественно так и переводится, как вынос мозга. Язык имеет всего восемь команд выраженных в восьми символах < > . , [ ] Каждый символ выражает собой одну команду, с помощью которой можно составить нечто большее. Создан брейнфак был с целью последующего создания компилятора с самым маленьким весом вообще (от 1 килобайта до 200 байт!). Из недостатков можно выделить само существование этого языка, на этом сайте вы можете посмотреть примеры работ. Из преимуществ можно выделить самый легковесный компилятор в истории.

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

PHP

Данный язык программирования преимущественно используется для создания веб-страниц для сайтов сайтов и постепенно уступает языку JavaScript.

Javascript

Не путать с Java. Это скриптинговый язык программирования, предназначенный для дополнения функционала сайтов и создания веб-приложений. Работает в паре с HTML.

HTML

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

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