Очередное обсуждение недостатков Nemerle на РСДНе навело меня на интересную мысль о связи между успешностью того или иного инструмента и его кроссплатформенностью.
По большому счету, Nemerle это язык с интересными концепциями и идеями, который не нужен практически никому, кроме его разработчиков. Почему я делаю такое утверждение? Тут все просто, возьмем для сравнения его ровесников Scala, Groovy и даже совсем молодежь Clojure. Для того что бы понять, нужен ли язык кому-то, кроме его авторов, можно воспользоваться следующей информацией:
- На каких языках присутствует информацию о языке в Википедии
- На какой строчке находится язык в индексе TIOBE;
- Участвует ли язык в индексах The Computer Language Benchmarks Game;
- Написал ли кто-то книги по этому языку.
Я специально откинул такой пункт как “примеры использования языка в коммерческой разработке”, так как получить достоверную информацию на этот счет сложно и как следствие принимать ее в расчет не стоит.
Начнем с Википедии. Информацию о Nemerle можно прочитать на 7 языках (日本語, Polski, Русский, Suomi, Тоҷикӣ, Українська, 中文). Не густо, но лучше чем я ожидал, наличие статей на японском и китайском оказалось для меня неожиданностью. Но вот узнать о Scala и Groovy можно уже на 24 языках, а о молоденьком Clojure на 20.
Дальше глянем в индекс TIOBE. О Nemerle тут нет даже упоминания, Scala стоит на 45 позиции, Groovy и Clojure упоминаются в списке “The Next 50 Programming Languages”, т.е. их позиция ниже 50 но выше 100.
А вот в The Computer Language Benchmarks Game нет ни Nemerle, ни Groovy. Зато есть Scala и Clojure.
К своему большому удивлению я нашел книгу по Nemerle, которая так и называется Nemerle! Купить ее не возможно, скачать, похоже что тоже, но факт остается фактом – она вроде как есть. Писать о книгах про Groovy, Scala и Clojure можно долго. Их много, они есть как в виде PDF, так и в бумажном виде и как следствие их можно не только скачать, но и купить.
Если обобщить все написанное мной выше и сделать вывод, что станет очевидно что Nemerle не выстрелил, хотя у него были все исходные для того, что бы стать успешным. Так в чем же дело?
На мой взгляд, дело исключительно в том, что под капотом у Nemerle находится CLR, в то время как Clojure, Groovy и Scala используют JVM. Ведь какой бы распрекрасной не была данная платформа – она действительно работает только на Windows. А то, что работает исключительно на Windows должно либо иметь поддержку большой корпорации, либо быть очередной свистелкой/перделкой, а не серьезным НЕ мэйнстрим инструментом.
На мой взгляд, дело исключительно в том, что C# удобный и современный язык программирования (а кое-где, как например в области асинхронного программирования, на голову выше остальных), который достаточно хорош из коробки. В то время как Java застряла в прошлом тысячелетии, вот её и пытаются улучшить всякими Clojure, Groovy и Scala.
Он по определению не может быть выше всех остальных, так как ограничен одной платформой. О чем я собственно и писал – одна платформа в современном мире – это тупик.