Блог

Про идеальный язык программирования

Сергей Бобровский
16.03.2012 10:43:49

На сайте Кристины Лопес, одной из авторов технологии аспектно-ориентированного программирования и разработчика языка AspectJ, развернулась интереснейшая дискуссия на тему исследований в программной инженерии.

Главный вопрос риторичен (да и сама тема, понятно, довольно абстрактна): почему мы по сей день применяем ЯП, разработанные тридцать лет назад -- где инновации-то? Почему именно отсутствие инноваций -- одна из объединяющих черт современных технологий программирования?

Ведь и по сей день популярные Си и Фортран создавались с прицелом на совсем медленные по современным меркам машины с крохотными ресурсами. Но и сегодня они используются в мега-проектах, очень часто просто потому, что преподаются в институтах именно эти языки. А зачем?

Недаром многие удачные языки часто создаются отнюдь не коллективами. Лопес приводит список известных языков (который дополнен в комментах), созданных фактически как хобби, для удовольствия или решения конкретных и локальных задач -- PHP, Python, Ruby, JavaScript, и тем не менее ставших всемирно известными. "Корпоративно" же были разработаны Си, Фортран, Кобол, Смолток, Лисп.

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

Они должны обеспечивать:
- высокую производительность, способность масштабироваться на будущие многоядерные архитектуры;
- продуктивность работы программиста;
- эффективную верификацию/тестирование.

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


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

Лопес полагает, что главное качество создателя хорошего ЯП -- это отличные навыки проектирования программно-аппаратных систем, когда в технологии воплощается богатый проектный опыт. Действительно, одни из лучших на сегодня языков созданы на инвестиции крупных фирм, но осваивали их все же гениальные люди. Java -- Джеймс Гослинг; C#/.NET -- Андерс Хейлсберг (автор Delphi).

ЯП меж тем продолжают и продолжают "порождаться". Гугль выпустил за последние год-два Go и Dart, вот свежая новость про "открытый динамический язык программирования Julia, использующий наработки проекта LLVM, нацеленный прежде всего на техническое программирование в статистико-математических областях, с областью применения аналогичной таким известным решениям, как Matlab, язык R и связка из Python и NumPy... Julia мультипарадигменный язык, который может комбинировать разные стили программирования, такие как императивный, объектно-ориентированный и функциональный. Синтаксис Julia очень близок к синтаксису MATLAB..."

Акцент в анонсах подобных систем сейчас уже делается на первом пункте (эффективности), и в частности поддержке параллельности, но по второму пункту (продуктивность разработчика) в лучшем случае упоминается некий гибрид "лучших фич" из других известных ЯП ("богатый язык типов для описания и конструирования объектов"), а вот каковы объективные причины выбора именно такой комбинации языкового синтаксиса и семантики (да и есть ли они), остается лишь гадать.

Комментариев: 3

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Андрей Губанов
16.03.2012 12:03:28

Относительно SQL не все ясно. Имеется в виду "чистый" SQL, на котором, например, можно делать приложения в APEX Oracle XE, который я неоднократно упоминал? Или это SQL, уже "участвующий" в проектах на других языках программирования, например, на C++ или Python для информационных систем, или на PHP для разработки WEB-приложений - тут вариантов будет масса. Т.о., получаем, что SQL входит почти в любой проект, работающий с СУБД, и его доля должна быть очень высока.

Андрей Губанов
16.03.2012 14:26:49

Проект Julia можно рассматривать именно с исследовательской точки зрения. А уж сравнение, которое источник приводит, например, с R, не выдерживает критики. Ибо в R главное не собственно синтаксис, удобство, графические возможности и т.д., а богатейшая библиотека прикладных алгоритмов. Словом, это не новость, а так себе, а вот это - новость про R и СПО (из рассылки Oracle от 15 марта):

Oracle R Enterprise Integrating Open Source R with Oracle Database 11g
http://www.oracle.com/technetwork/database/options/advanced-analytics/r-enterprise/index.html?msgid=3-6085552149

Евгений
24.03.2012 01:42:33

Хотите инноваций? У нас их есть =!
Сначала перешли на чистый икскуери вместо нечистого эскуэля. Получили возможность гибко и динамично менять структуру БД и прочие плюшки, включая полный стек XRX (XQuery+REST+XForms), но код все еще оставался изолирован от данных. И смена схемы последних приводит к рефакторингу кода в любом случае. В итоге родился язык Animo и среда для него Animotron. https://docs.google.com/document/d/1DrlUT30L1qeRcyjTxGi3Zu5IPUpI4ia3Uu7YHoDYMGE/­edit

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Интересно

Статьи

Руководство по блокчейн для руководителя
Технологии, лежащие в основе биткоина, являются наиболее перспективной линией развития Интернета. Расскажем, каким …

Цифровая трансформация: что нужно знать ИТ-директорам
Пока одни ИТ-директора разбираются с тем, что же такое цифровая трансформация и зачем она нужна, другие …

ИТ-департамент предприятия атомной отрасли — сам себе интегратор
Далеко не всем советским научно-производственным предприятиям удалось сохранить свои позиции в новых рыночных …

Большинство аналитиков по-прежнему составляют отчеты. И это не так уж плохо…
Несмотря на распространение гибких аналитических инструментов и платформ, в подавляющем большинстве …

“Наш принцип — ошибаться чаще”
Цифровая трансформация стала сегодня очередной мантрой аналитиков и консультантов, рассказывающих нам …

Мы в социальных сетях

PC Week/RE в Facebook PC Week/RE в Контакте PC Week/RE в Google+ PC Week/RE в Одноклассниках PC Week/RE в Twitter

Решения

Сборник статей «Как определить ценность Интернета вещей для бизнеса»
Internet of Things — тренд, который уже сейчас кардинально меняет бизнес во всем мире. И хотя некоторые до сих пор с …

Сервис — это наше «все» в прошлом, настоящем и будущем!
Сервисные центры ГК «Паладин» осуществляют различные виды обслуживания вычислительной техники Hewlett-Packard …

HP SM соединяет лучшие практики с жизнью
Множественный опыт российских и зарубежных компаний показали, что ПО для управления ИТ-услугами помогает упростить …

Администрация Стрежевого подключает к корпоративному документальному серверу eDocLib муниципальные учреждения
Единая информационная система Администрации городского округа Стрежевой (Томская область), базой для которой стали …

Распределительная теплосетевая компания «ОмскРТС» внедрила СЭД «ДЕЛО» в первый месяц своей хозяйственной деятельности
«Территориальная генерирующая компания № 11» (ОАО «ТГК-11»), одна из крупнейших теплоэнергетических бизнес-структур в …

Блог

Наступает ЭРА ГЛОНАСС
С 1 января 2017 года наступил новый этап в работе российской государственной системы Экстренного реа ...

"Гаражное" подразделение Microsoft идет по следам Google
Компания Microsoft представила "умный поиск" в персональном почтовом архиве - Email Insights. С его ...

Gitea предлагает разработчикам ПО совместное "чаепитие" в системе Git
Сразу после Нового года у программистов появилась возможность использования еще одной облачной систе ...

Google отказался от собственного беспилотного автомобиля
Руководство Google приняло решение прекратить разработку собственного беспилотного автомобиля.

В Мичигане могут ездить автомобили без водителей
Губернатор штата Мичиган Рик Снайдер (Rick Snyder) подписал в конце прошлого недели целый набор зако ...

 

Лидеры читательского рейтинга

Статьи

Записи в блогах

Панорама

Принципиально новое унифицированное хранилище (NAS и SAN) от Infortrend. Вся система на двух юнитах
Хранение данных на сегодняшний день — это задача, которая не имеет стандартного решения. Современные технологии …
Panasonic KX-NSX: UC-платформы повышенной актуальности
UC-платформы Panasonic KX-NSX с расширенной пятилетней гарантией позволяют обеспечить современной связью до 2000 и …

Интересно

 

Создание сайта - студия iMake
© 2017 АО «СК ПРЕСС».
Информация об авторских правах и порядке использования материалов сайта.
Правила поведения на сайте.

На главную PC Week/RE  |  Об издании  |  Архив номеров  |  Подписка на бумажную версию
Другие проекты «СК ПРЕСС»ITRNБестселлеры IT-рынкаByte/РоссияCRN/REIntelligent Enterprise/REPC Magazine/RE.