Подтвердить что ты не робот

Как я могу перейти с Java на Clojure?

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

Какие типы проектов поддаются Java через Clojure, наоборот и в комбинации?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

http://blip.tv/file/812787

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

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

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

Ответ 3

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

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

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

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

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

Ответ 4

Какие типы проектов поддаются Java через Clojure, наоборот и в комбинации?

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

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

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