После обнаружения Clojure Я провел последние несколько дней, погрузившись в него.
Какие типы проектов поддаются Java через Clojure, наоборот и в комбинации?
Какие примеры программ вы бы никогда не делали до Clojure?
После обнаружения Clojure Я провел последние несколько дней, погрузившись в него.
Какие типы проектов поддаются Java через Clojure, наоборот и в комбинации?
Какие примеры программ вы бы никогда не делали до Clojure?
Clojure хорошо подходит для параллельного программирования. Он предоставляет такие замечательные инструменты для работы с потоками, как Software Transactional Memory и изменяемые ссылки.
В качестве демонстрации для группы разработчиков Western Mass Rich Rich сделал симуляцию колонии ant, в которой каждый ant был собственным потоком, и все переменные были неизменными. Даже с очень большим количеством потоков все отлично работало. Это объясняется не только тем, что Rich - потрясающий программист, но и потому, что ему не нужно беспокоиться о блокировке при написании кода. Вы можете проверить его презентацию в колонии ant здесь.
Если вы собираетесь попробовать параллельное программирование, я думаю, что clojure намного лучше, чем вы получаете из Java из коробки. Взгляните на эту презентацию, чтобы узнать, почему:
Я зарегистрировал свои первые 20 дней с clojure в своем блоге
http://loufranco.com/blog/files/category-20-days-of-clojure.html
Я начал с лекций SICP, а затем построил сито с параллельным простейшим числом. Я также играл с макросами.
Какие типы проектов могут использовать 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
Какие типы проектов поддаются Java через Clojure, наоборот и в комбинации?
Если вы хотите разработать фреймворк, который будет использоваться Java и Clojure, я нашел, что писать основные абстракции (классы базовых классов интерфейсов) в Java предпочтительнее, чем писать их в Clojure (I найти Clojure gen-class
несколько утомительно и использовать proxy
).
Если вы являетесь пользователем Hibernate или любой другой структуры, которая сильно использует аннотации Java, не предлагая программной альтернативы, у вас возникнут некоторые проблемы, так как нетривиально эмулировать аннотированные POJO с структурами данных Clojure.
Кроме того, у меня не было случаев использования, для которых Clojure менее подходит, чем Java; вы должны справиться с потерей статической типизации, конечно, которая сначала несколько сбивает с толку, но имеет тенденцию уходить.