Discussion:
[Lisp] Clojure
Anders Persson
2009-02-01 09:33:26 UTC
Permalink
Jag hittade en LISP version som kör under/på Java JVM, den heter

Clojure http:// Clojure.org



Tyvärr för en nybörjare är det givetvis en dialekt så allt är nästan

likt CLISP, och det där nästa är ganska irriterade, i April skall det

visst komma ut en bok, så jag sitter och fundera på att köpa den

för till viss mån slippa nästa problemet.



Jag blev intresserad för plattformsoberoende och tillgång till ett

bra GUI (Swing) men annars ser jag inga större saker.



Min fråga blir givetvis, hur många använder Clojure, är det någon

på denna lista som kan berätta både dåliga och bra saker.



mvh Anders
a***@telia.com
2009-02-02 07:47:45 UTC
Permalink
CLISP? På vilket vis är den lik CLISP och varför är det en dålig sak?
Nej, här blev det en missupfattning, det jag har problem med är att
det INTE är likt CLISP det lilla jag kan är från CLISP och hade jag fått
önska hade det varit en CLISP på JVM.
Post by Anders Persson
Jag blev intresserad för plattformsoberoende och tillgång till ett
bra GUI (Swing) men annars ser jag inga större saker.
Så GUI program är ingen stor grej inom LISP världen då?
Dock kan jag peka på en dålig sak. Är det nåt vi inte behöver är det
*ännu en* dialekt av lisp som försöka lösa någons "pet peeves". IMHO,
såklart.
Nej det var därför det hade varit bra om det hade varit en CLISP på JVM
och alla dialekter underlättar inte när man vill lära sig lisp svårt att
välja.

// Anders
Ties Stuij
2009-02-02 08:53:39 UTC
Permalink
Post by a***@telia.com
CLISP? På vilket vis är den lik CLISP och varför är det en dålig sak?
Nej, här blev det en missupfattning, det jag har problem med är att
det INTE är likt CLISP det lilla jag kan är från CLISP och hade jag fått
önska hade det varit en CLISP på JVM.
Post by Anders Persson
Jag blev intresserad för plattformsoberoende och tillgång till ett
bra GUI (Swing) men annars ser jag inga större saker.
Så GUI program är ingen stor grej inom LISP världen då?
Dock kan jag peka på en dålig sak. Är det nåt vi inte behöver är det
*ännu en* dialekt av lisp som försöka lösa någons "pet peeves". IMHO,
såklart.
Nej det var därför det hade varit bra om det hade varit en CLISP på JVM
och alla dialekter underlättar inte när man vill lära sig lisp svårt att
välja.
Först måste jag bara säger: När du skriver CLISP, jag tror du vill
äntliger skriver CL, som stor för Common Lisp. Clisp är en CL
implementation.

Det finns förresten en CL implementation på JVM: Armed Bear Common
Lisp, och den är inte alls dåligt.

disclosure (ha!): jag har aldrig programmerat i Closure
Men som jag förstor är Clojure en jette intressant språk, som är väl
integrerat i JVM, ganska stabilt och jette pragmatiskt. Det är jätte
enkelt att anropa Java grejer, och Clojure har inte använt konstiga
konstruktioner som lägger restriktioner på använder Java. TCO i
Clojure skulle ha varit mögligt utan stöd av JVM, men inte utan
kronliga nackdelar. Fast man måste visst akta sig i vissa fall. Om du
vill använda en hög-nivå eller FP språk, då är Clojure din bästa
kandidat, är min konklusion efter att ha läst några grejer om det.
Några Lambda the Ultimate denizens kallas Clojure för språket av 2008
eller 2009. Jag själv tycker att Clojure skiljer sig tillräcklig från
annan dialekter att den förtjänar att leva; även att har en rik liv.

Och om du inte än har sätt den, titta den här video:
http://www.bestechvideos.com/2008/11/24/clojure
Presentationen är av Rich Hickey, som har hjort Clojure, så den är
inte helt opartiskt, men ger en bra bild av vart Clojure är just nu
(tre monader sen).

Så, nu slutar jag min fanboy-rant.
/Ties
Mikael Jansson
2009-02-02 08:01:07 UTC
Permalink
Post by a***@telia.com
Nej det var därför det hade varit bra om det hade varit en CLISP på JVM
och alla dialekter underlättar inte när man vill lära sig lisp svårt att
välja.
ABCL då?
--
Mikael Jansson | http://mikael.jansson.be | GPG Key 0x88986608
Limp: The Vim Lisp IDE - http://mikael.jansson.be/hacking/limp
Mikael Jansson
2009-02-02 07:02:54 UTC
Permalink
*börjar sitt första inlägg med att gnälla*
Post by Anders Persson
Tyvärr för en nybörjare är det givetvis en dialekt så allt är nästan
likt CLISP, och det där nästa är ganska irriterade, i April skall det
visst komma ut en bok, så jag sitter och fundera på att köpa den
för till viss mån slippa nästa problemet.
CLISP? På vilket vis är den lik CLISP och varför är det en dålig sak?
"CLISP" är någon som fastnat med CAPSLOCK när texten "clisp", den där
Common Lisp-interpretern, skulle skrivas. Common Lisp förkortas kort &
gott Lisp, eller CL.

(såvida jag inte totalt gjorde bort mig och det faktiskt var CLISP som
Clojure är likt. utveckla gärna i så fall!)
Post by Anders Persson
Jag blev intresserad för plattformsoberoende och tillgång till ett
bra GUI (Swing) men annars ser jag inga större saker.
GUI programmering är en svag sida hos Common Lisp, erkännes. Scheme har
någon sorts grafiskt mög i någon implementation, men det är väl lika
dåligt ställt där också, tror jag.
+1. Webb verkar vara det nya svart. Om man inte försöker lära sig det
CellsGTK. Jag försökte ett tag och gav upp.

Jag är lite osäker (och för lat för att kolla upp): finns det en
McCLIM-backend till Windows? Det är ett riktigt intressant API.
Dock kan jag peka på en dålig sak. Är det nåt vi inte behöver är det
*ännu en* dialekt av lisp som försöka lösa någons "pet peeves". IMHO,
såklart.
En bra(?) sak med Clojure är, som påpekats, kopplingen till Java samt
att du får med ett paket strösocker. Se den nyliga diskussionen om
hashtabeller på Reddit. Min kommentar hittar du på
http://mikael.jansson.be/journal/2009/01/hash-tables-and-a-wee-bit-of-sugar-in-common-lisp

-- Mikael, som faktiskt inte vaknade på den gnälliga sidan, egentligen
Ties Stuij
2009-02-02 09:04:39 UTC
Permalink
Post by Mikael Jansson
*börjar sitt första inlägg med att gnälla*
<snip/>
Post by Mikael Jansson
"CLISP" är någon som fastnat med CAPSLOCK när texten "clisp", den där
Common Lisp-interpretern, skulle skrivas. Common Lisp förkortas kort &
gott Lisp, eller CL.
Aaarghh, jag är också i gnäll-modus. Ursäkt. Clisp har en interpreter
men också en compiler. Man kan välja, men interpretern ger inte alltid
samman resultat än compilern, så det är bättre att bara glömma
interpretern tycker jag.

/Ties
Mikael Jansson
2009-02-02 10:13:42 UTC
Permalink
Post by Ties Stuij
Post by Mikael Jansson
*börjar sitt första inlägg med att gnälla*
<snip/>
Post by Mikael Jansson
"CLISP" är någon som fastnat med CAPSLOCK när texten "clisp", den där
Common Lisp-interpretern, skulle skrivas. Common Lisp förkortas kort &
gott Lisp, eller CL.
Aaarghh, jag är också i gnäll-modus. Ursäkt. Clisp har en interpreter
men också en compiler. Man kan välja, men interpretern ger inte alltid
samman resultat än compilern, så det är bättre att bara glömma
interpretern tycker jag.
Det beror på hur man tolkar virtuell maskin. ;)

Är inte interpretern default-läget?
--
Mikael Jansson | http://mikael.jansson.be | GPG Key 0x88986608
Limp: The Vim Lisp IDE - http://mikael.jansson.be/hacking/limp
Ties Stuij
2009-02-02 10:54:04 UTC
Permalink
Post by Mikael Jansson
Post by Ties Stuij
Post by Mikael Jansson
*börjar sitt första inlägg med att gnälla*
<snip/>
Post by Mikael Jansson
"CLISP" är någon som fastnat med CAPSLOCK när texten "clisp", den där
Common Lisp-interpretern, skulle skrivas. Common Lisp förkortas kort &
gott Lisp, eller CL.
Aaarghh, jag är också i gnäll-modus. Ursäkt. Clisp har en interpreter
men också en compiler. Man kan välja, men interpretern ger inte alltid
samman resultat än compilern, så det är bättre att bara glömma
interpretern tycker jag.
Det beror på hur man tolkar virtuell maskin. ;)
Oh, du!
Post by Mikael Jansson
Är inte interpretern default-läget?
Vet inte. Jag har aldrig använd Clisp. Men som jag kommer ihåg från
minne är att interpretern tar variablerna i interpretern som dynamiskt
och dom från compiler som lexical när man inte declarerar nånt. Och
dynamiskt är oftas inte vad man vill (inte jag alla fall). Dom gjorde
så för att tidigare datorer hade inte så mycket minne (man behöver
inte spara en hel evironment med varje lokala variable). Men jag kan
visst ha det jätte fel.

/Ties
Björn Lindberg
2009-02-02 22:06:51 UTC
Permalink
Post by Ties Stuij
Post by Mikael Jansson
Post by Ties Stuij
Post by Mikael Jansson
*börjar sitt första inlägg med att gnälla*
<snip/>
Post by Mikael Jansson
"CLISP" är någon som fastnat med CAPSLOCK när texten "clisp", den där
Common Lisp-interpretern, skulle skrivas. Common Lisp förkortas kort &
gott Lisp, eller CL.
Aaarghh, jag är också i gnäll-modus. Ursäkt. Clisp har en interpreter
men också en compiler. Man kan välja, men interpretern ger inte alltid
samman resultat än compilern, så det är bättre att bara glömma
interpretern tycker jag.
Det beror på hur man tolkar virtuell maskin. ;)
Oh, du!
Post by Mikael Jansson
Är inte interpretern default-läget?
Vet inte. Jag har aldrig använd Clisp. Men som jag kommer ihåg från
minne är att interpretern tar variablerna i interpretern som dynamiskt
och dom från compiler som lexical när man inte declarerar nånt. Och
dynamiskt är oftas inte vad man vill (inte jag alla fall). Dom gjorde
så för att tidigare datorer hade inte så mycket minne (man behöver
inte spara en hel evironment med varje lokala variable). Men jag kan
visst ha det jätte fel.
Jag tror att grundläget när man startar Clisp är någon slags icke-
Common Lisp-dialekt, som kanske uppvisar ett sådant beteende. Man
måste ge flaggan -ansi vid uppstart för att få Common Lisp-beteende.


Björn Lindberg
Björn Lindberg
2009-02-02 22:12:12 UTC
Permalink
(Du hade ett väldigt märkligt formaterat brev med ett mellanslag
mellan
varje rad. Jag tog mig friheten att formattera om din text så den såg
lite trevligare ut)
Post by Anders Persson
Jag hittade en LISP version som kör under/på Java JVM, den heter
Clojure http://Clojure.org
Jo, det har varit ganska mycket snack om Clojure på sistone.
Post by Anders Persson
Min fråga blir givetvis, hur många använder Clojure, är det någon
på denna lista som kan berätta både dåliga och bra saker.
Nope, använder inte Clojure. Jag håller mig till Common Lisp. Det kan
vad jag behöver. Dock skriver jag inte mycket på några av mina Riktiga
Projekt just. Tyvärr blir det mest perl, för det kan jag göra för att
automatisera saker på jobbet.
Dock kan jag peka på en dålig sak. Är det nåt vi inte behöver är det
*ännu en* dialekt av lisp som försöka lösa någons "pet peeves". IMHO,
såklart.
Tror inte att man skall se Clojure i det ljuset. Om jag förstår det
hela rätt (utan att själv ha tittat alltför noga) är Clojures främsta
företräde en väldigt nära integration med den underliggande JVM:en,
som man knappast kan få till med Common Lisp.


Björn Lindberg
Mikael Jansson
2009-02-02 22:26:41 UTC
Permalink
Post by Björn Lindberg
Tror inte att man skall se Clojure i det ljuset. Om jag förstår det
hela rätt (utan att själv ha tittat alltför noga) är Clojures främsta
företräde en väldigt nära integration med den underliggande JVM:en,
som man knappast kan få till med Common Lisp.
ABCL?

-- Mikael
Björn Lindberg
2009-02-03 06:57:44 UTC
Permalink
Post by Björn Lindberg
Tror inte att man skall se Clojure i det ljuset. Om jag förstår det
hela rätt (utan att själv ha tittat alltför noga) är Clojures främsta
företräde en väldigt nära integration med den underliggande JVM:en,
som man knappast kan få till med Common Lisp.
ABCL?
Som sagt.
Jag tror inte att ABCL är lika välintegrerad. Åtminstone inte på det
sätt jag menar.
Sedan kvarstår då frågan varför en JVM skulle vara önskvärd.
Man kanske redan har ett Javaprogram, eller vill använda
Javabibliotek. Då är JVM:en given, och man vill ha bästa möjliga
integration, så att klasser skapade i det ena språket är tillgängliga
och ser likadana ut i det andra, och så vidare.


Björn Lindberg
Björn Lindberg
2009-02-03 21:00:50 UTC
Permalink
Post by Björn Lindberg
Post by Björn Lindberg
Tror inte att man skall se Clojure i det ljuset. Om jag förstår det
hela rätt (utan att själv ha tittat alltför noga) är Clojures främsta
företräde en väldigt nära integration med den underliggande JVM:en,
som man knappast kan få till med Common Lisp.
ABCL?
Som sagt.
Jag tror inte att ABCL är lika välintegrerad. Åtminstone inte på det
sätt jag menar.
Sedan kvarstår då frågan varför en JVM skulle vara önskvärd.
Man kanske redan har ett Javaprogram, eller vill använda
Javabibliotek. Då är JVM:en given, och man vill ha bästa möjliga
integration, så att klasser skapade i det ena språket är tillgängliga
och ser likadana ut i det andra, och så vidare.
Då kvarstår frågan varför man skulle vilja göra så. Java, liksom. ;)
Ute i Verkligheten finns det en mängd anledningar till varför man
skulle kunna finna sig hänvisad till JVM som plattform.


Björn Lindberg
Björn Lindberg
2009-02-03 21:21:11 UTC
Permalink
Post by Björn Lindberg
Post by Björn Lindberg
Sedan kvarstår då frågan varför en JVM skulle vara önskvärd.
Man kanske redan har ett Javaprogram, eller vill använda
Javabibliotek. Då är JVM:en given, och man vill ha bästa möjliga
integration, så att klasser skapade i det ena språket är
tillgängliga
och ser likadana ut i det andra, och så vidare.
Då kvarstår frågan varför man skulle vilja göra så. Java, liksom. ;)
Ute i Verkligheten finns det en mängd anledningar till varför man
skulle kunna finna sig hänvisad till JVM som plattform.
Det gör kanske det. Tyvärr tror jag inte att man i den Verkligheten
har
lyxen att kunna köra Clojure på sin påtvingade JVM.
Jag har försökt förklara att jag sett sådana fall. I Verkligheten.
Men, det är ett tjusigt hack även om jag själv inte är direkt
engagerad
av det!
Vi får väl se om det blir någonting av det.


Björn Lindberg
Mikael Jansson
2009-02-04 05:58:18 UTC
Permalink
Post by Björn Lindberg
Post by Björn Lindberg
Sedan kvarstår då frågan varför en JVM skulle vara önskvärd.
Man kanske redan har ett Javaprogram, eller vill använda
Javabibliotek. Då är JVM:en given, och man vill ha bästa möjliga
integration, så att klasser skapade i det ena språket är tillgängliga
och ser likadana ut i det andra, och så vidare.
Då kvarstår frågan varför man skulle vilja göra så. Java, liksom. ;)
Ute i Verkligheten finns det en mängd anledningar till varför man
skulle kunna finna sig hänvisad till JVM som plattform.
Det gör kanske det. Tyvärr tror jag inte att man i den Verkligheten har
lyxen att kunna köra Clojure på sin påtvingade JVM.
I min verklighet (och ämnesbyte) finns det mycket Python.

Det språket har numera en AST-modul, har dock inte lyckats hitta något
som parsar ett träd. Vilket är väldigt synd, för AST-modulen kan
nämligen på ett smidigt sätt användas för att läsa in Python-kod,
transformera objektet och ge ifrån sig vanlig Python-kod (med lämplig
tillplattning). Det är sämre på att läsa in en AST.

Anledningen är att min hjärna till sist mjuknat - jag föredrar numera
s-exp framför algol-syntax. Det vore riktigt trevligt att kunna bygga
makron till Python, låta ens Lisp-kompilator köra macroexpand några
gånger och till sist köra ett s-exp-till-Python-miff så de andra på ens
jobb slipper se de hemska paranteserna.

... någon som har koll där?

-- M
Mikael Jansson
2009-02-06 06:19:27 UTC
Permalink
Post by Mikael Jansson
I min verklighet (och ämnesbyte) finns det mycket Python.
Det språket har numera en AST-modul, har dock inte lyckats hitta något
som parsar ett träd. Vilket är väldigt synd, för AST-modulen kan
nämligen på ett smidigt sätt användas för att läsa in Python-kod,
transformera objektet och ge ifrån sig vanlig Python-kod (med lämplig
tillplattning). Det är sämre på att läsa in en AST.
Anledningen är att min hjärna till sist mjuknat - jag föredrar numera
s-exp framför algol-syntax. Det vore riktigt trevligt att kunna bygga
makron till Python, låta ens Lisp-kompilator köra macroexpand några
gånger och till sist köra ett s-exp-till-Python-miff så de andra på ens
jobb slipper se de hemska paranteserna.
Ingen koll på sånt, men det låter skoj.
Jag har ett tag tänkt att man kanske skulle kunna lyckas koda i C om man
byggde lite lispmacro som wrappers runt den hemska syntaxen.
Mm. Med lämpliga transformationer kring gcc-xml eller liknande hade det
kanske varit görbart. Man skulle kunna definiera om väl valda delar av
CL-paketet, så man får makron, vilket vore min huvudanledning...

Använda det riktiga CL-paketet vid alla kompileringssteg, men kör
(format ...) och spotta ur sig Python-kod när programmet körs.

Jag har tyvärr för dålig koll på det hela. Skulle man kunna lösa det med
(EVAL-WHEN (:execute) ...)?
AST, föresten?
Abstrakt syntaxträd, uttalas "ful ad-hoc-Lisp" :-)

-- Mikael
Ties Stuij
2009-02-06 07:40:00 UTC
Permalink
Post by Mikael Jansson
I min verklighet (och ämnesbyte) finns det mycket Python.
Det språket har numera en AST-modul, har dock inte lyckats hitta något
som parsar ett träd. Vilket är väldigt synd, för AST-modulen kan
nämligen på ett smidigt sätt användas för att läsa in Python-kod,
transformera objektet och ge ifrån sig vanlig Python-kod (med lämplig
tillplattning). Det är sämre på att läsa in en AST.
Anledningen är att min hjärna till sist mjuknat - jag föredrar numera
s-exp framför algol-syntax. Det vore riktigt trevligt att kunna bygga
makron till Python, låta ens Lisp-kompilator köra macroexpand några
gånger och till sist köra ett s-exp-till-Python-miff så de andra på ens
jobb slipper se de hemska paranteserna.
Ingen koll på sånt, men det låter skoj.
Jag har ett tag tänkt att man kanske skulle kunna lyckas koda i C om man
byggde lite lispmacro som wrappers runt den hemska syntaxen.
nånt som det här kanske?
http://groups.google.com/group/comp.lang.lisp/msg/88c50739f36e0b7e
AST, föresten?
/Andreas
--
A: Because it fouls the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
_______________________________________________
Lisp mailing list
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp
Lars Brinkhoff
2009-02-06 08:47:54 UTC
Permalink
Post by Ties Stuij
Jag har ett tag tänkt att man kanske skulle kunna lyckas koda i C
om man byggde lite lispmacro som wrappers runt den hemska
syntaxen.
nånt som det här kanske?
http://groups.google.com/group/comp.lang.lisp/msg/88c50739f36e0b7e
Jag tänker mig något mer i stil med en sexp/C-hybrid i stil med:

;;; int foo = 42;
(defvar int foo 42)

;;; static void bar (char * x) { printf ("hello world: %s", x); }
(defun (static void) bar (((char *) x))
(printf "hello world: %s\n" x))
Ties Stuij
2009-02-06 09:08:23 UTC
Permalink
Post by Lars Brinkhoff
Post by Ties Stuij
Jag har ett tag tänkt att man kanske skulle kunna lyckas koda i C
om man byggde lite lispmacro som wrappers runt den hemska
syntaxen.
nånt som det här kanske?
http://groups.google.com/group/comp.lang.lisp/msg/88c50739f36e0b7e
;;; int foo = 42;
(defvar int foo 42)
;;; static void bar (char * x) { printf ("hello world: %s", x); }
(defun (static void) bar (((char *) x))
(printf "hello world: %s\n" x))
Ja, men jag tycker syntaxen är inte största problemet med C. Jag
skulle hellre vilja bygga en wrapper rund hela C. Och då suger ur C
:o)

/Ties
Johan Lindberg
2009-06-01 18:55:04 UTC
Permalink
Hej,
Post by Mikael Jansson
I min verklighet (och ämnesbyte) finns det mycket Python.
Det språket har numera en AST-modul, har dock inte lyckats hitta något
som parsar ett träd.   Vilket är väldigt synd, för AST-modulen kan
nämligen på ett smidigt sätt användas för att läsa in Python-kod,
transformera objektet och ge ifrån sig vanlig Python-kod (med lämplig
tillplattning).  Det är sämre på att läsa in en AST.
Anledningen är att min hjärna till sist mjuknat - jag föredrar numera
s-exp framför algol-syntax.  Det vore riktigt trevligt att kunna bygga
makron till Python, låta ens Lisp-kompilator köra macroexpand några
gånger och till sist köra ett s-exp-till-Python-miff så de andra på ens
jobb slipper se de hemska paranteserna.
... någon som har koll där?
Hittade alldeles nyss Mark Tarver's Quip (Qi into Python)[1] som ser
intressant ut. Visserligen inte CL men väl en Lisp. Kan kanske vara
nåt.

Mvh
Johan Lindberg
***@pulp.se

[1] http://groups.google.com/group/comp.lang.lisp/tree/browse_frm/thread/25fddb707f043b3a
Micke Karlsson
2009-06-02 15:08:43 UTC
Permalink
Post by Johan Lindberg
Hej,
Post by Mikael Jansson
I min verklighet (och ämnesbyte) finns det mycket Python.
Det språket har numera en AST-modul, har dock inte lyckats hitta något
som parsar ett träd.   Vilket är väldigt synd, för AST-modulen kan
nämligen på ett smidigt sätt användas för att läsa in Python-kod,
transformera objektet och ge ifrån sig vanlig Python-kod (med lämplig
tillplattning).  Det är sämre på att läsa in en AST.
Anledningen är att min hjärna till sist mjuknat - jag föredrar numera
s-exp framför algol-syntax.  Det vore riktigt trevligt att kunna bygga
makron till Python, låta ens Lisp-kompilator köra macroexpand några
gånger och till sist köra ett s-exp-till-Python-miff så de andra på ens
jobb slipper se de hemska paranteserna.
... någon som har koll där?
Hittade alldeles nyss Mark Tarver's Quip (Qi into Python)[1] som ser
intressant ut. Visserligen inte CL men väl en Lisp. Kan kanske vara
nåt.
Mvh
Johan Lindberg
[1]
http://groups.google.com/group/comp.lang.lisp/tree/browse_frm/thread/25fddb707f043b3a
Man kan också kolla på PLOT, den gamle lispräven David Moons lispvariant
med python-artad syntax:

http://users.rcn.com/david-moon/PLOT/index.html

Det är ju intressant att se hur en snubbe med koll gör när han
designar ett sånthär språk. Jag har inte hackat vare sig python
eller PLOT, men mitt intryck av python är att så fort man vill
göra lite meta-artade grejer blir sakerockting raskt grötiga; det
skulle jag inte tro är fallet när man försöker göra nåt coolt i PLOT.

Kanske finns Moons föredrag om PLOT på ilc2009 att hitta nånstans
som video eller audio?

--micke karlsson

Henrik Hjelte
2009-02-03 09:22:01 UTC
Permalink
(Du hade ett väldigt märkligt formaterat brev med ett mellanslag mellan
varje rad. Jag tog mig friheten att formattera om din text så den såg lite
trevligare ut)
Post by Anders Persson
Jag hittade en LISP version som kör under/på Java JVM, den heter
Clojure http://Clojure.org
Jo, det har varit ganska mycket snack om Clojure på sistone.
Jag blir lite förvånad av intresset för Clojure kontra det ointresse
som finns för ABCL. Clojure verkar ha en grej jag gillar skarpt,
Software Transactional Memory som bland annat flertrådad
programmering. Men flertrådighet är inte allt, för mig är det mer
intressant med sådan skalbarhet som går utanför en dator. Och då är ju
Lisp Flavored Erlang ett annat nytt alternativ, dessutom Made In
Sweden.
Platformsomberoende är dock en intressant sak att du tar upp. Visst finns
det en massa saker som funkar olika i olika lispimplementationer (sånt som
inte är definierat i ANSI standarden till exempel), men inte kan väl
paltformsbundenhet var ett svårt problem i lispvärlden?
Det finns ju också små lager som fixar till inkompatibiliteter, ex CL-FAD.
Post by Anders Persson
Min fråga blir givetvis, hur många använder Clojure, är det någon
på denna lista som kan berätta både dåliga och bra saker.
Nej jag har inte provat Clojure ännu. Men lite lockande är det med en
dialekt som har en liten hype omkring sig, men jag har andra grejer
att prova i Common Lisp-världen först, till exempel Symbolicweb.

/Henrik
Mathias Dahl
2009-02-03 22:35:45 UTC
Permalink
Post by Anders Persson
Jag hittade en LISP version som kör under/på Java JVM, den heter
Clojure http://Clojure.org
Clojure är trevligt!
Post by Anders Persson
Min fråga blir givetvis, hur många använder Clojure, är det någon
på denna lista som kan berätta både dåliga och bra saker.
Jag har gjort ett antal mindre webbapplikationer med ett av de tidigare
webbramverken, Webjure, som har kommit för Clojure och tycker att det
är ganska trevligt. Nu tror jag det är Compojure man skall kolla in om man
är sugen på att leka webb med Clojure. Jag gillar att Clojure snurrar i JVM:en,
det betyder att jag lekande lätt har kunnat flytta mina små applikationer
från Ubuntu hemma till Windows XP på jobbet, något som inte varit lika
smidigt med olika CL-varianter jag provat. På GNU/Linux snurrar SBCL bra
för mig, men under Windows funkade sist jag provade inte trådar så bra
och bytte jag till en annan implementation fick jag problem. Testade
friversionen av Allegro och gillade den rätt bra, men jag uppskattar friare
programvara än så, med mindre läskiga licenser (det kändes oklar om jag
kunde använda den på jobbet för en liten webbapplikation som jag och
mina arbetskamrater kör).

Anyway, detta var inte menat som er rant mot CL, jag beskriver bara en
omedelbar fördel som jag fick genom att använda Clojure. Det var dock en
ganska lång startsträcka och det tog sin lilla tid att porta min första webbapp
till Clojure. Och visst, Clojure är en Lisp, men annorlunda mot CL och Elisp
som jag kört tidigare. Gillar man Scheme skulle jag gissa att startsträckan är
något mindre.

Det fina med Webjure är att man kan kasta den på en vanlig webcontainer,
typ Apache Tomcat, och så funkar det bara.

Vidare är det trevligt att kunna "konsumera" Java *väldigt* lätt.
Tjoff tjoff så har
man en wrapper runt någon Javametod som man behöver. Riktigt bra.

För mig har det varit ovant att Clojure är ganska hårt funktionellt. Det går att
modifera "state" men det är ganska knöligt så man tvingas lära sig att tänka
mer funktionellt än vad jag är van vid från CL och Elisp. T.ex. så bygger
basfunktionaliteten för att loopa på rekursion, något jag inte är direkt van vid
sedan tidigare.

Summa summarum så gillar jag Clojure starkt. Jag rekommenderar att du kollar
igenom åtminstone basinformationen på huvudsajten. Folk i forumet
(Google Groups)
är hjälpsamma och det är en väldigt trevlig stämning där. Inga troll
vad jag har kunnat
se hittils.

Lycka till!
Loading...