Domanda

Dopo aver scoperto Clojure ho trascorso gli ultimi giorni immerso in esso.

Quali tipi di progetti si prestano a Java su Clojure, viceversa e in combinazione?

Quali sono esempi di programmi che non avresti mai provato prima di Clojure?

È stato utile?

Soluzione

Clojure si presta bene a programmazione concorrente . Fornisce strumenti meravigliosi per gestire il threading come la memoria transazionale del software e riferimenti mutabili.

Come demo per il gruppo di sviluppatori di massa occidentali, Rich Hickey ha fatto una simulazione di colonie di formiche in cui ogni formica era il suo thread e tutte le variabili erano immutabili. Anche con un numero molto elevato di thread le cose hanno funzionato alla grande. Questo non è solo perché Rich è un programmatore straordinario, ma anche perché non ha dovuto preoccuparsi di bloccare mentre scriveva il suo codice. Puoi dare un'occhiata alla sua sulla colonia di formiche qui .

Altri suggerimenti

Se hai intenzione di provare la programmazione simultanea, penso che il clojure sia molto meglio di quello che ottieni da Java immediatamente. Dai un'occhiata a questa presentazione per capire perché:

http://blip.tv/file/812787

Ho documentato i miei primi 20 giorni con Clojure sul mio blog

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

Ho iniziato con le lezioni SICP e poi ho creato un setaccio di numeri primi parallelo. Ho anche giocato con le macro.

  

Quali tipi di progetti si prestano all'utilizzo di Java su Clojure, vice   versa o in combinazione?

     

Un progetto in cui uno strumento di costruzione della GUI   (come Matisse in Netbeans) è   necessario sarebbe un caso in cui Java potrebbe   ancora richiesto. Qualsiasi cosa fatta   Java può essere fatto abbastanza in Clojure   prontamente, con proxy e gen-class if   necessario o semplicemente accedendo a Java come   necessario (., doto, nuovo, ecc.). Questo   consente ai progetti Clojure di essere facilmente utilizzati   Librerie Java o codice Java legacy.

     

Quali programmi non avresti mai tentato prima di Clojure?

     

Prima di trovare Clojure, lo ero   contemplando un progetto che ha richiesto   JDBC, verrebbe eseguito in un servlet   container, e ho anticipato di fare un   molto sviluppo iterativo perché   non era chiaro quali metodi sarebbero stati   lavorare per i dati che dovevo analizzare.   L'ho messo sul bruciatore posteriore perché io   non ho avuto il tempo o la pazienza per   la compilazione-debug-deploy-validation   ciclismo richiesto da Java. Ho adesso   scritto l'applicazione in Clojure,   e sono molto contento della facilità di   fare cambiamenti al volo ed essere   in grado di esaminare i risultati   subito. Per non parlare della gioia   di programmazione ed essere senza blocco   liberato dal dover sviluppare (e   refactor) gerarchie di classi.

     

- " MikeM " tramite la clojure@googlegroups.com mailinglist

  

Quali tipi di progetti si prestano a Java su Clojure, viceversa e in combinazione?

Se vuoi sviluppare un framework che deve essere consumato da Java e Clojure, ho trovato che scrivere le principali astrazioni (interfacce di classi base di annunci) in Java sia preferibile rispetto a scriverle in Clojure (trovo il codice gen-class per essere un po 'noioso e piuttosto usare proxy ).

Se sei un utente di Hibernate o di qualsiasi altro framework che faccia un uso pesante delle annotazioni Java senza offrire un'alternativa programmatica, avrai qualche problema, dal momento che non è banale emulare POJO annotati con le strutture dati di Clojure.

A parte questo, non ho riscontrato casi d'uso per i quali Clojure è meno appropriato di Java; devi far fronte alla perdita della digitazione statica, ovviamente, che all'inizio sembra un po 'sconcertante, ma tende ad andare via.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top