Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

http://blip.tv/file/812787

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

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

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

  

Какие типы проектов пригодны для использования 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 список рассылки

  

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top