LINUX.ORG.RU

Курсы по программированию на языке Clojure

 ,


8

8

3 марта 2014 года стартуют курсы про программированию на языке Clojure.

Предварительный план занятий:

  • Основы языка Clojure и инструменты работы с ним.
  • Интеграция с Java.
  • Параллельное программирование.
  • Метапрограммирование.
  • Доступ к данным (SQL и NoSQL).
  • Веб-приложение на Clojure.
  • ClojureScript для разработки Single-Page Application.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: ymn (всего исправлений: 1)

Ответ на: комментарий от loz

Javascript тут каким боком?

ClojureScript, реализующий почти все из Clojure, компилируется в JavaScript.

Конечно есть.

Конечно нет. Интеграция того же ABCL с Java ни в какое сравнение не идет с тем, как это делает Clojure.

И пока каждый будет тесниться в своем уютном мирке будем иметь зоопарк недоязыков с зоопарком платформ с собственными библиотеками и инфраструктурой.

Если отбросить эмоциональную составляющую, то суть вашего предложения — объединиться вокруг какой-то одной технологии? Но одна технология не может быть хорошей для каждой задачи. В какой-то области хорош один язык программирования, в какой-то другой. Зачем выбирать один язык и выбрасывать второй?

nop
()
Ответ на: комментарий от loz

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

Шутка юмора в том, что на Clojure можно писать промышленные приложения на поддерживаемых библиотеках здесь-и-сейчас, не приседая при этом со штангой.

На CL тоже можно, но штангу придется осваивать серьезно. Ну и не забываем, что придется пользоваться библиотеками с последним коммитом, ну скажем в 2009.

Кроме того, ИМХО, конечно, на вкус и цвет, и все такое, но Clojure получился весьма удачным языком (даже по сравнению с CL).

Kostafey
()
Ответ на: комментарий от nop

ClojureScript, реализующий почти все из Clojure

а что не реализует? И каких размеров получается js-код? Жирный, ну если заюзать там всякие можули/фишки кложуры по-максимуму?

Bad_ptr ★★★★★
()
Ответ на: комментарий от Bad_ptr

а что не реализует?

Не реализует то, что не может JavaScript: многопоточность, например.

И каких размеров получается js-код? Жирный, ну если заюзать там всякие можули/фишки кложуры по-максимуму?

Зависит от уровня оптимизации для ClojureScript-компилятора. В режиме advanced код получается довольно компактный. Например, в платформе, на которой реализован clojurecourse.by (и которая внутри содержит логику для работы со слушателями курсов и менторами, а также предоставление материалов и т.д. и т.п.), занимает 220Кб.

nop
()
Ответ на: комментарий от nop

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

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

loz ★★★★★
()

Clojure - гавно. Сам пробовал и разочаровлся. Гавно не из-за лиспа, а только из-за компиляции в джавабайткод. Ну не может нормальный лисп быть сделан поверх детского недорантайма. Принципиально. Либо лисп-рантайм, либо никакой ты не лисп. Даже нормальную джаву с нормальными дженериками на этом поделии написать невозможно. Так что не ведитесь на скобки. Юзайте лучше racket. Вот он реально современный и переосмысленный лисп.

Хотя если заставляют писать на джаве то уж лучше это чем plain java или прочие поделия на этой платформе. Хотя под андроид хеловорлд на clojure грузится минуту. Так что втопку.

q0tw4 ★★★★
()
Ответ на: комментарий от nop

Интеграция того же ABCL с Java ни в какое сравнение не идет с тем, как это делает Clojure.

Для ABCL, Common Lisp и некоторых других языков есть ffi и генераторы прослоек, например SWIG. Можно довольно тонко настраивать особенности генерируемой прослойки. В сочетание с макросами чтения можно в Common Lisp сделать взаимодействие с исходной платформой очень похожим на то, как оно реализовано в Clojure. Правда там где я видел генерировали более лиспообразные прослойки т.е. вместо ClassName. или .method что-нибудь в стиле make-class-name и class-name-method...

arte-at-marte
()
Ответ на: комментарий от Aesthete

у меня жир аж из монитора потёк.

Вы, вероятно, тролефоб. :D Нет, серьезно, я вот не вижу троллинга... q0tw4 несколько эмоционально, но справедливо подметил... Единственное, я Racket совсем плохо знаю и не могу сказать, насколько он современный и переосмысленный, но впечатления приятные. ^^

arte-at-marte
()
Ответ на: комментарий от q0tw4

Гавно не из-за лиспа, а только из-за компиляции в джавабайткод.

Это не баг, это фича.

И потом, Clojure пилится другие платформы тоже (прежде всего ClojureScript), и вот как раз с мультиплатформенностью в других лиспах сейчас не густо.

Kostafey
()
Ответ на: комментарий от Kostafey

Какие могут быть платформы для лиспа. Либо ты пишешь интерпритатор лиспа на своей платформе и получаешь веселые тормоза, либо ты пишешь интерпритатор/jit непосредственно на плюсах и получаешь нормальный лисп. Либо как в случае с clojure имеем просто скобочную джаву с частью лиспосилы. Что в принципе неплохо, но не круто.

q0tw4 ★★★★
()
Ответ на: комментарий от q0tw4

либо ты пишешь интерпритатор/jit непосредственно на плюсах и получаешь нормальный лисп.

Это не спортивно! Только аппаратная поддержка лиспа! Только хардкор! На C++ пишут только те, кто не осилил паяльник! :))))

Kostafey
()
Ответ на: комментарий от q0tw4

Clojure - гавно.

Либо как в случае с clojure имеем просто скобочную джаву с частью лиспосилы. Что в принципе неплохо...

Ок. Ок...

Weres ★★★
()
Ответ на: комментарий от Kostafey

Только аппаратная поддержка лиспа!

Было б неплохо, но проект загнулся. Покупать сейчас на ебее машинку мощности прошлого века за стоимость актуальных PC както неприкольно.

q0tw4 ★★★★
()
Ответ на: комментарий от Debasher

ненужный лисп

Ну на практике можно брать руби и представлять себе что это такой мегасовременный лисп. Я так и собираюсь делать.

q0tw4 ★★★★
()
Ответ на: комментарий от nop

многопоточность, например.

Core.async, кстати, работает.

PolarFox ★★★★★
()
Ответ на: комментарий от q0tw4

руби

Оно же медленное и не умеет в многопоточность.

Debasher ★★★★★
()
Ответ на: комментарий от q0tw4

Было б неплохо, но проект загнулся.

Да много чего загнулось. Те же java-машины.

Я что хотел сказать-то. Clojure имеет реализации не только на JVM, но и для CLR(C#), и для PVM(Python), и для браузеров (компиляция в JavaScript) и даже нативная компиляция в си. Конечно поддерживаются и развиваются они далеко не в равной степени, но тем не менее...

Kostafey
()
Ответ на: комментарий от q0tw4

Ну на практике можно брать руби и представлять себе что это такой мегасовременный лисп. Я так и собираюсь делать.

И все-таки Ruby - не лисп. Он весьма гибкий динамичный, да. Но нет гомоиконного синтаксиса. А значит нет лисповых макросов да и REPL не тот. Так что не лисп.

А кроме того, в оптимизацию JVM вложено много нефти, Ruby пока послабее будет. С Clojure все плюшки JVM получаешь бесплатно.

Kostafey
()
Ответ на: комментарий от Kostafey

нет лисповых макросов

Да помоему написать код пишущий другой код довольно удобно. И тоже на самом руби. Ну да, надо вызывать специальные рефлекшен методы вместо автоконверта списка в код в лиспе, но сути это никак не меняет. Так что достойный аналог макросов есть. Ну в целом конечно лисп не заменить, много у последнего спецефичных плюшек (и еще спорный вопрос, так ли они хороши в реальной конторе девелоперов). Но если ты не упёртый лиспер не мыслящий код без рестартов, мультиметодов и кастомного синтаксиса в ДСЛях, то творить реальные проги на руби никакой проблемы не будет.

q0tw4 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.