Самые неудачные языки программирования

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

Худшие языки программирования

[TOC Самый неудачный ЯП]

Си

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

JavaScript

Создан для того, чтобы запутать программиста в куче вложенных фигурных, квадратных и обычных скобок. Пока разработчики на других языках пишут код, JavaScript-программист чешет затылок, разбираясь в нагромождении скобок. А еще JavaScript славится непредсказуемым поведением. Например, есть строковая переменная со значением «1». Почему s + 1 будет 11, а s - 1 равно 0? Получается, что для первой операции к строковому типу приводится второй операнд, а для симметричной операции почему-то всё наоборот — первый операнд приводится к целочисленному типу. WTF? Из таких подводных камней JavaScript и состоит чуть менее, чем полностью.

PHP

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

Java

Используется очень широко, но главная проблема этого языка в том, что он тащит за собой синтаксис из 70-х годов. Результат — раздутый код. Где программист на C# пишет 3 строчки, программист на Java пишет 30. Другая проблема является продолжением этой: внесение новшеств в язык часто нарушает совместимость с предыдущими версиями виртуальных машин. Приходится либо убеждать пользователей обновляться (а в случае аппаратных решений это и вовсе невозможно), либо отказываться от новшеств ради совместимости.

Python

Тихий ужас. Во-первых, существует два Пайтона: Python 2.7 и Python 3. Фактически, это два разных языка. Во-вторых, сама идея оформления блоков невидимыми элементами (пробелами и табуляцией) весьма спорна. Программисты на нормальных языках сосредотачиваются на коде, пока питонисты считают пробелы.

Языки программирования

Вероятно, читатель уже догадался, что заголовок выбран для привлечения внимания. На самом деле, описанные выше «недостатки» одновременно являются и преимуществами. Например, ручное управление выделением памяти в Си дарит высочайшую производительность. Если программу необходимо заставить работать очень быстро, то выбора нет — подходит только Си. Или «непредсказуемость» JavaScript существует только для тех программистов, которые не ознакомились со спецификациями языка. Остальным JavaScript старается максимально упростить труд, беря на себя часть работы.

 

А вторую серию не хотите посмотреть? Самые быстрые языки программирования.