Как я могу перейти с Java на Clojure? - PullRequest
27 голосов
/ 08 октября 2008

После обнаружения Clojure Я провел последние несколько дней, погруженные в него.

Какие типы проектов пригодны для Java поверх Clojure, наоборот и в комбинации?

Какие примеры программ, которые вы никогда бы не попробовали до Clojure?

Ответы [ 4 ]

14 голосов
/ 08 октября 2008

Clojure хорошо подходит для параллельного программирования . Он предоставляет такие замечательные инструменты для работы с потоками, как программная транзакционная память и изменяемые ссылки.

В качестве демонстрации для группы разработчиков Western Mass Рич Хикки провел симуляцию колонии муравьев, в которой каждый муравей представлял собой свой собственный поток, и все переменные были неизменными. Даже с очень большим количеством потоков все работало замечательно. Это не только потому, что Рич - замечательный программист, но и потому, что ему не нужно было беспокоиться о блокировке при написании своего кода. Вы можете проверить его представление о колонии муравьев здесь .

6 голосов
/ 08 октября 2008

Если вы собираетесь попробовать параллельное программирование, то я думаю, что clojure намного лучше, чем то, что вы получаете из Java из коробки. Посмотрите на эту презентацию, чтобы понять, почему:

http://blip.tv/file/812787

Я задокументировал мои первые 20 дней с Clojure в моем блоге

http://loufranco.com/blog/files/category-20-days-of-clojure.html

Я начал с лекций SICP, а затем построил параллельное сито простых чисел. Я также играл с макросами.

4 голосов
/ 10 октября 2008

Какие типы проектов пригодны для использования Java поверх Clojure, вице наоборот или в комбинации?

Проект, в котором инструмент для построения GUI (например, Матисс в Netbeans) Необходим был бы случай, когда Java может все еще будет необходимо. Все, что сделано в Java может быть сделано в Clojure довольно с готовностью, с прокси и gen-классом, если необходимо, или просто доступ к Java как необходимо (., doto, new и т. д.). это позволяет проектам Clojure легко использовать Библиотеки Java или устаревший код Java.

Какие программы вы никогда не пробовали до Clojure?

Прежде чем я нашел Clojure, я был Созерцая проект, который требовал JDBC, будет работать в сервлете контейнер, и я ожидал сделать много итеративной разработки, потому что не было ясно, какие методы работать для данных, которые мне нужно было проанализировать. Я положил это на задний план, потому что я не было ни времени, ни терпения для compile-debug-deploy-validation езда на велосипеде, что требует Java. У меня сейчас написал заявление в Clojure, и я очень доволен легкостью вносить изменения на лету и быть в состоянии изучить результаты немедленно. Не говоря уже о радости программирования без блокировки освобожден от необходимости развиваться (и рефактор) иерархии классов.

- "MikeM" через clojure@googlegroups.com список рассылки

2 голосов
/ 14 октября 2009

Какие типы проектов пригодны для Java поверх Clojure, наоборот и в комбинации?

Если вы хотите разработать инфраструктуру, которая будет использоваться Java и Clojure, я считаю, что написание основных абстракций (интерфейсов и базовых классов объявлений) в Java предпочтительнее, чем написание их в Clojure (я считаю, Clojure gen-class быть несколько утомительным и, скорее, использовать proxy).

Если вы являетесь пользователем Hibernate или любой другой среды, которая интенсивно использует Java-аннотации, не предлагая программную альтернативу, у вас возникнут некоторые проблемы, поскольку нетрудно эмулировать аннотированные POJO со структурами данных Clojure.

Кроме того, у меня не было ни одного случая использования, для которого Clojure менее подходит, чем Java; Вы, конечно, должны справиться с потерей статической типизации, которая поначалу кажется несколько смущающей, но имеет тенденцию уходить.

...