Форум

Как выбрать язык программирования


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

- Низкоуровневые языки
- Среднеуровневые языки
- Высокоуровневые языки

Конечно, есть и другие типы, но эти являются основными. Разберемся в каждом из них. Логичнее было бы начать с низкоуровневых языков, но начнем с более популярного типа.

Высокий уровень

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


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

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

Минусы:
 - Может увеличится кол-во ошибок из-за динамических структур.
 - Память может стать проблематизированной, так как за ней можно впринипе не следить.
 - Производительность гораздо ниже.
Ruby, Python, Javascript, Common Lisp

Средний уровень

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

Плюсы:
 - Необязательно париться насчет памяти.
 - Обширные "родные" библиотеки, но при желании можно подключить сторонние.
 - Компиляция происходит в "байт-код", подходящий для взаимодействия с другими языками.
 - Хорошо служит несложным вводом в структуру программы.

Минусы:
 - Всё еще нельзя забывать об устройстве памяти.
 - Абстракций стало ненамного меньше.
 - Требуется установленная среда выполнения программ.
 - Реализация программы не такая простая.
Java, C#, Objective-C

Нижний уровень

Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора.

Такие языки уже давно не являются популярными, если мы говорим о таких "стариках", как Assembler. Но на самом деле, если вы хотите понять, как устроены компьютер, взаимодействие данных и устройств между собой, то это самый правильный выбор. Итак:

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

Минусы:
 - Не совсем понятный синтаксис.
 - Не менее сложна будет реализация каждой задумки.
 - Рыться в архитектуре и в процессах может обернуться опасностью для ваших устройств и файлов.
 - Бедные стандартные библиотеки
C++, C, Java-bytecode, Assembler

Теперь, зная возможности каждого языка можно выбрать себе один из них. Кажется, что проще взяться за высокоуровневый и не морочить голову памятью, архитектуру, но это ошибочное мнение, так как нельзя создавать, не понимая, как работает программа.
Хорошей очередностью может следовать к примеру такая цепочка для начинающих:
Pascal ==> Ruby
Языки немного схожи по синтаксису, но совсем разные по "мощности" и размаху.

Удачи в вашем выборе и предлагайте ваши варианты с достоинствами тех или иных языков!