`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Александр Черников

Эти гадкие, гадкие языки!

+77
голосов

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

Необходимое пояснение

Такой «инверсный» подход применил Фил Джонсон (Phil Johnson) из ITWorld, ориентируясь на высказывания программистов о своей работе на профессиональных форумах. Сразу следует оговориться, что его анализ сильно упрощен. У каждого языка, включая новые, есть свои слабые стороны. Другими словами, идеального языка программирования не существует и чей-то любимый язык может быть адом для другого. Более того, даже последние версии давно и широко используемых языков обязательно наследуют некоторые врожденные недостатки, а зачастую и приобретают новые.

Хорошие разработчики знают, как использовать лучшее из языка и избежать худших его аспектов. Еще лучшие разработчики используют языки, чтобы сделать что-то практически — вместо того, чтобы заниматься бесконечными дебатами об их достоинствах и недостатках. Так, некий программист-любитель в комментариях вступился за VB. Другой заметил, что самый безумный язык всех времен — APL, не вошедший в приведенную десятку и т.д.

Довольно забавны советы насчет того, где не нужно работать в том или ином случае. Тем не менее, приведенные фрагменты кода дают довольно любопытную сравнительную картинку для всех, кто сам пробовал писать программы. Мне лично это было интересно, поскольку в свое время я сам больше десяти лет писал программы для сбора и обработки информации в управляющих вычислительных комплексах — на макроассемблере, PL/M и Паскале и, как говорится, также почувствовал разницу. Наверняка сравнительный опыт есть и у многих наших читателей. Будут интересны их комментарии.

Итак, от «странных» языков к «безумным». А еще одно высказывание из комментариев хочется привести как итог этого обзора и напутствие: «Don’t be a fricking developer».

10. Python

Эти гадкие, гадкие языки!

Язык высокого уровня, который гордится своей удобочитаемостью. Часто используется в качестве скриптового языка, хотя может и компилироваться. Для определения блочных структур используются отступы, а не скобки. Интенсивное использование двоеточий вызывает раздражающие коллизии имен модулей и переменных. Не нравится — не работайте в Google, Yahoo или NASA.

9. LabVIEW

Эти гадкие, гадкие языки!

The Laboratory Virtual Instrument Engineering Workbench фактически является средой разработки для визуального языка программирования G. Используется в измерительных и управляющих системах. Программисты используют LabVIEW для соединения функциональных узлов «проводами» для симуляции работы устройства. GUI частенько делает реализацию самой простой задачи чрезвычайно сложной. Программисты жалуются, что «LabVIEW абстрагирует задачу до такой степени, что новый уровень сложности сводит на нет цели абстракции». Не хотите ломать голову — не работайте в лабораторной или индустриальной автоматизации. Кроме того, избегайте помогать своим детям в проектах Lego Mindstorms.

8. JavaScript

Эти гадкие, гадкие языки!

Интерпретируемый язык, который первой начала разрабатывать Netscape. Используется прежде всего на стороне клиента в веб-страницах. Реализован также для сервера и как встроенный скриптовый язык. Не нравится: чувствительность к регистру, неодинаковое исполнение в браузерах, нехватка возможностей отладки (хотя Firebug решает эту проблему), и довольно странные правила наследования. Ну, что можно сказать... Не работайте разработчиком веб-страниц.

7. Tcl

Эти гадкие, гадкие языки!

Разработанный как встроенный управляющий язык, Tool Control Language используется для веб-приложений, администрирования сетей и в системах автоматизации. Основная жалоба: слишком примитивен. Характеристика практического разработчика: «Этот язык достаточен для управления осциллографами и устройствами электропитания, но ему никогда нельзя позволить сбежать из лабораторий». Презираете его за это? Не работайте на Cisco, AOL или CNET, отвернитесь с отвращением от любого применения AOLserver или платформы OpenACS.

6. COBOL

Эти гадкие, гадкие языки!

История языка начинается с 1959 г. Разработан прежде всего для поддержки правительственных и бизнес-приложений, Древние наследуемые COmmon Business-Oriented Language системы все еще широко используются и менять их пока никто не собирается. Вместе с тем язык отличается чрезвычайно многословным синтаксисом (намеренно, чтобы код могли читать непрограммисты), несовместимостью между версиями и, до версии 2002 г., отсутствием поддержки объектно-ориентированного программирования. Ничего личного, но, как сказал один из динозавров программирования: «COBOL красив, тщательно продуман и причудлив в своей ужасности». Испытываете проблемы? Не работайте в правительственных системах, финансовых сервисах или на вооруженные силы.

5. C++

Эти гадкие, гадкие языки!

Создан как расширение C; поддерживает, среди других новых функций, объектно-ориентированное программирование. Остается одним из самых популярных языков, используемых в самых разных системах и приложениях. На что жалуемся? Как говорится, при всем уважении — слишком много штучек-дрючек. Управление памятью вручную, медленная компиляция. Формулировка с форума: «Никто, находясь в здравом уме, не использует всех возможностей этого языка». Хотите сохранить здравый ум? Не работайте на Adobe, Google и на индустрию игр.

4. PHP

Эти гадкие, гадкие языки!

Интерпретируемый скриптовый язык, чаще всего используемый со стороны сервера для динамической генерации HTML-страниц. Может также использоваться как самостоятельный скриптовый язык во многих операционных системах. Недостатки в основном практические — дыры в безопасности, отсутствие встроенной поддержки Unicode, плюс часто наблюдаемая мешанина с HTML и CSS. А куда деваться? Цитата: «PHP — худший язык, который я никогда не прекращу использовать». Если вы делаете какую-либо веб-работу, РНР избежать трудно. В случае стойкой идиосинкразии придется отказаться от Facebook, Wikimedia, Wordpress, Joomla и Drupal.

3. Java

Эти гадкие, гадкие языки!

Объектно-ориентированный язык, первоначально созданный для интерактивного телевидения. Едва ли не самый популярный сегодня язык программирования. Код интерпретируется соответствующей используемой платформе Java Virtual Machine, реализующей принцип «написал однажды — будет работать где угодно». На что жалуемся: синтаксис слишком многословен, все выполняется медленно, на многих других языках можно делать то же самое, но более эффективно. В общем, «терпеть не могу этот неуклюжий Java. Слишком много расширений и разных глупых вещей необходимы для выполнения поставленной задачи». Если вы тоже так думаете, не разрабатывайте приложения, используя Android SDK.

2. Perl

Эти гадкие, гадкие языки!

Высокоуровневый, интерпретируемый, универсальный язык, заслуживший эпитеты «швейцарский армейский нож» и «липкая лента Интернета». Perl используется практически везде — от CGI-скриптов до системного и сетевого администрирования. Главная критика Perl, в общем, состоит в том, что в нем слишком много способов сделать одни и те же вещи. В результате Perl-программы сложно читать и поддерживать тем, кто имеет другие излюбленные приемы. Цитата с форума: «миллион способов реализации делает код нечитабельным, а его краткость даже самую простую вещь превращает в тарабарщину». Как избежать этого? В данном случае ответ очень прост: не становитесь программистом вообще.

1. Visual Basic

Эти гадкие, гадкие языки!

Язык программирования и интегрированная среда проектирования (IDE), используемая прежде всего в разработке Windows-приложений с графическим интерфейсом. Создан Microsoft с акцентом на удобство для новичков. Приложения разрабатывают, сочетая визуальное конструирование и написание кода. Поработавшие с Visual Basic обычно жалуются на слишком многословный и довольно странный синтаксис, необходимость подключать DLL, недостаточную поддержку объектно-ориентированного программирования. Резюме: старайтесь не работать на компании, использующие приложения Windows, созданные до 2008 г.

Вместо заключения

Применим программистский подход: вернитесь к началу и еще раз прочтите.

Необходимое пояснение

(но не превращайте это в бесконечный цикл:)).

+77
голосов

Напечатать Отправить другу

Читайте также

Было бы гораздо полезнее и нагляднее, если бы:
а) в примерах с помощью каждого (исключая LabV) языков решалась одна и таже задача;
б) для каждого из языков был бы показан худший/лучший (по мнению автора и/или "погроммистов") варианты возможного применения.

На счет языка C++ я согласен, в некоторой степени.
Некоторые вновьвведения слишком уж дебильноватые.
Например, модификатор const может стоять справа, слева и внутри.
А вообще, это лучший язык.

Я писал на 7 из этих 10 :)
А изучал только в институте более 40 языков за 5 лет, в т.ч. языки искусственного интеллекта (имхо они бы возглавили этот рейтинг :) )

А вообще, отличная статья!

ПС. С++ с ассемблером рулят :)

"Вы просто не умеете их готовить" :)

Все абсолютно нормальные языки, просто от бестолковости смешанные в кучу. Ничего ни странного ни тем более безумного нет и близко. Причем замечу, что как раз наоборот - наиболее головоломных функциональных языков тут нет. Чего стоит функционал и функциональное замыкания в том же Лиспе ;)

Очень хороший пример бестолковости оригинальной статьи - формулировка областей использования языков. Например тот же Лабвью "Программисты используют LabVIEW для соединения функциональных узлов «проводами» для симуляции работы устройства." Редкий бред. Остальные - аналогично. Это не просто "сильно упрощен", это, простите, просто глупо и иначе как чей-то неудавшейся шуткой это назвать не получается.

Опять же, уж простите за то что прицепился к нему, порадовал скриншот из Лабвью - это просто бред полуумного студента первокурсника. Так как показано - никто не на нем не рисует. И если вернуться к началу моего каммента - использовать языки надо по назначению. Например, пытаться на том же data driven Лабвью рисовать control driven приложения значит в итоге получить тот бред, что на картинке.

Все тоже самое можно сказать и других приведенных в статье языках.

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT