У кого есть опыт, поделитесь, что понравилось, что нет. Я, например, пока хочу использовать его для вэб scraper'ов и утилит без GUI. Возможно, для своих вэб проектов тоже.
Как у clojure производительность по сравнению со scala и java по вашему мнению?
Для android разработки, думаю, он не подойдет потому что нет нормальных плагинов и нужно будет постоянно прыгать с бубном, чтобы там все заработало. Я сужу по scala, потому как для android он намного более популярный, тем не менее, надо убить полдня, чтобы заставить настроить android проект на scala.
R>У кого есть опыт, поделитесь, что понравилось, что нет. Я, например, пока хочу использовать его для вэб scraper'ов и утилит без GUI. Возможно, для своих вэб проектов тоже.
Она просто офигенна! REPL невероятно удобен, код довольно простой и понятный, особенно в сравнении со Scala. Можно элегантно избавиться от всех (или почти всех) "соплей" обработки исключений. Разве что LISP может многих пугать
Из минусов – если уж что-то пошло не так, то даже C++ компилятор даст огромную фору Clojure в вопросе диагностики ошибки
R>Как у clojure производительность по сравнению со scala и java по вашему мнению?
Основной затык в скорости не числодробилок – архитектура. Какого-то выигрыша по скорости между этими языками ты не заметишь. Что, собственно, тесты и показывают.
Здравствуйте, kaa.python, Вы писали:
KP>Она просто офигенна! REPL невероятно удобен, код довольно простой и понятный, особенно в сравнении со Scala. Можно элегантно избавиться от всех (или почти всех) "соплей" обработки исключений. Разве что LISP может многих пугать KP>Из минусов – если уж что-то пошло не так, то даже C++ компилятор даст огромную фору Clojure в вопросе диагностики ошибки
Это не сложно. Тормознутость Java приложение в 99.8% случаев вызвана архитектурными решениями, с бы сказал "переархитекруренностью" типичного Java приложения. А вот написать что-то быстрое на Python, за счет его интерпретируемой натуры, ты уже никак не сможешь.
ramar, Вы писали:
R>У кого есть опыт, поделитесь, что понравилось, что нет. Я, например, пока хочу использовать его для вэб scraper'ов и утилит без GUI. Возможно, для своих вэб проектов тоже.
Хороший язык в-общем то.
R>Как у clojure производительность по сравнению со scala и java по вашему мнению?
Очевидно ниже. Для hotspot главная предпосылка, чтобы сделать оптимизацию — нужно узнать типы. Как только hotspot-у известны типы, можно удалять проверки, заниматься инлайнингом и девиртуализировать методы. Возможность для hotspot понять тип у выражения на кложуре очень ограничена. А вот возможности разгонять статическитипизированную скалу весьма велики — от чисто алгоритмических оптимизаций и генерации кода, который hotspot хорошо знает, до виртуализированной скалы и макросов, можно даже дойти до хранения объектов в целочисленном массиве в оффхипе и работать через DSL на макросах (если прямо сильно нужно). Кложурские макросы — это обычные лисповые макросы, они хорошо подходят для генерации и не слишком для анализа.
R>Для android разработки, думаю, он не подойдет потому что нет нормальных плагинов и нужно будет постоянно прыгать с бубном, чтобы там все заработало. Я сужу по scala, потому как для android он намного более популярный, тем не менее, надо убить полдня, чтобы заставить настроить android проект на scala.
Это делается один раз для каждого проекта. Сколько ты начинаешь проектов в день? Я хочу сказать, что должна быть какая-то причина существеннее, наверное.
R>>Как у clojure производительность по сравнению со scala и java по вашему мнению? NL>Очевидно ниже. Для hotspot главная предпосылка, чтобы сделать оптимизацию — нужно узнать типы.
слышали про frege? что думаете? тоже функциональный язык, все-таки почти haskell. jvm. статически типизированный, поэтому скорость должна быть выше, чем у clojure.
R>>Для android разработки, думаю, он не подойдет потому что нет нормальных плагинов и нужно будет постоянно прыгать с бубном, чтобы там все заработало. Я сужу по scala, потому как для android он намного более популярный, тем не менее, надо убить полдня, чтобы заставить настроить android проект на scala.
NL>Это делается один раз для каждого проекта. Сколько ты начинаешь проектов в день? Я хочу сказать, что должна быть какая-то причина существеннее, наверное.
Ну, запустил, да. Только как дальше работать, ведь android studio не поддерживает clojure? То есть код прийдется писать в другом редакторе, а сам дизайн в android studio? неудобно.