I love Clojure and I think it's the first Lisp to take the language family out of "cons cell and parenthesis hell". My personal opinion is that Clojure with the following changes would take over much of the Lisp space: - Rewrite most of Clojure in Clojure (which has been talked about since the beginning, really) to find the "small core". Thankfully ClojureScript has helped hasten the CiC movement. - Base FFI and code…
One interesting thing about having entirely immutable data structures is that you can allocate a temporary heap, and flip the GC around. Copy off just the result and junk the rest without looking at it. All without blocking the main thread. In certain circumstances - for instance a web framework creating a heap for each request - this will make GC dramatically cheaper. Though of course your cache locality will be poo…
A Personal Lisp Crisis (2012)
31–40 of 82 posts
Re: A Personal Lisp Crisis (2012)
#32Earlier quoted context omitted.
Maybe ... prior to the R6RS debacle I had my hopes on Scheme, but it's still digging itself out of that mess, plus the long term failure to advance from R5RS that prompted the process change. Common Lisp has had 3 decades to get its act together and is an abject failure in my view, plus it's got a half century of accumulated backwards compatibility accreted messiness. Clojure is not a LISP, as in LISt Processing is n…
Am I the only one who thinks Clojure is extremely ugly, especially compared to CL? I work a lot with clojure, and it reminds me a lot of when I was forced a hack ruby. There is this guy, or even a group of people, who get caught up in the glamourous idea of reinventing programming. They then jerk their favourite features and design artifacts into a language. The main point of the design seems to be being able to expr…
Underneath the hood I think there's no comparison, then again it addresses exactly the sort of things I'm interested in. Common Lisp just can't win there due to it being the current version of mainline LISP going back to, well, I supposed the punched card days when it was implemented as FORTRAN subroutines. Yeah, car and cdr are neat, and even useful in combination, but ... well, no where can you assume TCO.
(Have to run, more later.)
Re: A Personal Lisp Crisis (2012)
#33Earlier quoted context omitted.
One interesting thing about having entirely immutable data structures is that you can allocate a temporary heap, and flip the GC around. Copy off just the result and junk the rest without looking at it. All without blocking the main thread. In certain circumstances - for instance a web framework creating a heap for each request - this will make GC dramatically cheaper. Though of course your cache locality will be poo…
This is a common practice in GC. For example, the JVM already does this by default, and you don't need to give it immutable data.
Which is important if Clojure gets ported to bare metal runtimes, as the parent was suggesting.
Re: A Personal Lisp Crisis (2012)
#34Also, it runs basically anywhere. One could embed it inside an iPhone app, for instance.
There are some big things missing still. There is no standard database access library, or an equivalent to Python's WSGI (or Ruby's Rack). Or MongoDB drivers (that's my fault, I promised the community one a couple of months ago).
There's also some missing tooling. Better debugging support, for instance. That's mostly avoided by the use of unit tests and the REPL, but is occasionally required. Or profilers. Or code coverage tools. Due to the fact that everything is compiled to C, there are some tools that may be used, but it is still not ideal.
Re: A Personal Lisp Crisis (2012)
#35Earlier quoted context omitted.
Coming from the Bible Belt, I can assure you that point 2 is absolutely false. That said, even as a non-Christian I was also uncomfortable with that as an introduction. I'm sure many Lispers are of the opinion that almost 100% of their peers are atheists or other "nones", but that's (I suspect) more a function of geography than language choice. It's unwise to turn off what could be a significant portion of your reade…
> Coming from the Bible Belt, I can assure you that point 2 is absolutely false. Maybe its a Baptist thing, but Catholics and 7th Day Adv defiantly have gone through the whole thing as part of their studies. Nuns do get a little mad when you giggle about certain sections much like and English teacher with some scenes in Shakespeare.
Depends on how often they go to church. If they attend regularly for a few years, then the preacher will likely have gone over 80% of the Bible in Sunday morning sermons.
And most Baptist churches have some kind of weekly Bible study where you go more in depth.
Plus, most Baptist churches I've been to will start some kind of "read the Bible in a year" thing in January--complete with handouts for how much you need to read each day.
Re: A Personal Lisp Crisis (2012)
#36There isn't, as far as I'm aware, another language with CL's popularity that provides either its condition system or the full power of the CLOS (method combination, for instance). These two major subsystems are still significant improvements over what modern languages have to offer.
Good point about CLOS, but for a lot of us who've gained an allergy to OO over the years, especially in its difficult relation to functional programming, that's of limited appeal unless you're working in one of the areas its fruitfully employed. Would have to look at it's condition system, it's been way too long.
I never used the condition system extensively (or CL) but my recollection is that when you raise the condition you can also furnish various recovery strategies to be selected by the handler. If the caller doesn't handle, it will travel up the stack to someone who does, but that entity is not limited to innovating its own handling strategy, it can also choose one of the provided ones without breaking the abstraction or involving intermediate callers. The toplevel handler shows the provided restarts, adds the retry/fail options and lets the user interactively select one. It's pretty sophisticated.
Re: A Personal Lisp Crisis (2012)
#37Earlier quoted context omitted.
Most of the stuff, period, is in the OT. We Jews have boatloads of commentary addressing the problematic stuff though, so if the problem is reading another possible remedy is more reading.
Exactly. If I were a Christian distressed by things in what we call the Old Testament that I didn't find suitably addressed by Christian scholars, I'd certainly review the Jewish commentaries to see how they addressed those things. A heck of a lot of intellectual firepower, Jewish and Christian, has been focused on all these texts over a couple of thousand years (more by the Jews?), it would be foolish to abandon you…
So not only is it possible to read your sacred book and still believe it, it's possible to read your sacred book and remaining fragments from other regional books (sacred and otherwise) - all in "close-to-original" language, and a wealth of other secondary material, and then still believe. You'll just slap your forehead than you might have originally bargained for when you started your quest...
Re: A Personal Lisp Crisis (2012)
#38There isn't a problem with the CL community. There's a problem with the culture surrounding CL that seems to attract trolls.
Newbies get answers to genuine questions. I've received a great deal of help over the years from experience CL programmers. Anything from beginner questions to code reviews of various snippets I've been working on. I have received a lot of great advice over the years that has helped me tremendously. And I've seen other newcomers receive the same treatment as well. If you arrive in #lisp of c.l.l and have a genuine question about a problem you are stuck on you will likely attract someone willing to help you. It's a small community but it is friendly.
Second, CL was in the end designed to outlive itself. You get full programmatic access to the compiler and reader. It is trivial to add any feature a modern programmer may require that wasn't accounted for in the original specification. CLUEL could certainly have been useful if the author had finished it and put it out into the wild (maybe waiting until it was finished was the wrong choice).
I think if you are genuinely interested in learning CL you need to check your ego at the door, so to speak, and just start from scratch. Write programs that solve yours or your users' problems and ask questions in #lisp and on c.l.l if you get stuck. There is a wealth of great literature, papers, tools, and a small, friendly community to help you.
Edit: I meant to note that the reason the specification hasn't been updated, afaik, is because it doesn't have to be updated. All the tools you need to add the features you require are there in the spec. You can make it into the language you need.
Re: A Personal Lisp Crisis (2012)
#39Is this not just another point in a decades long quest to save LISP? Maybe LISP doesn't need saved? Maybe it's okay that a language isn't popular? Maybe It's okay that a language isn't hip? Maybe it's okay if a language doesn't have the latest gee wiz social status? The fact that people keep trying to save LISP every 4 or 5 years could mean it's perfectly fine how it is. I don't see people trying to save the COBOL, o…
It's spelled Fortran since the 1992 standard, which was a huge improvement, and now since the 2003 and 2008 standards, Fortran is a pretty decent language.
But a funny thought occurred to me: year 1992 is now 21 years ago, but ignorance of the difference between FORTRAN 77 and modern Fortran continues strong. In next 5 year or so we'll start to get Fortran-ignorant comments from people who are younger than the "Fortran 90" standard from 1992.
The language was updated before they were born, but they haven't yet noticed it.
Re: A Personal Lisp Crisis (2012)
#40There isn't, as far as I'm aware, another language with CL's popularity that provides either its condition system or the full power of the CLOS (method combination, for instance). These two major subsystems are still significant improvements over what modern languages have to offer.
Good point about CLOS, but for a lot of us who've gained an allergy to OO over the years, especially in its difficult relation to functional programming, that's of limited appeal unless you're working in one of the areas its fruitfully employed. Would have to look at it's condition system, it's been way too long.