Earlier quoted context omitted.
One observation to be made is that Common Lisp has 25 special forms ( http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec... ). That's quite a lot. But none of them are redundant or superfluous.
I am very certain that almost all of them could be removed without reducing the theoretical power of Common Lisp. At worst, successive rewrites of the program could reduce it to using a different set of simpler forms.
I'm turning into a Lisp snob
71–80 of 94 posts
Re: I'm turning into a Lisp snob
#72Earlier quoted context omitted.
There is value in static checking for some things, but it is also limiting. It requires that code be written such that those things are declarative, can be understood without running the program. There is also value in having those things to be programmable, dynamic. This is a "good reason" even if you prefer the alternative. In Clojure, the lack of static type checking was not done out of laziness. > there is no goo…
> There is value in static checking for some things, but it is also limiting. Other than type-safe heterogenous lists(which is only true if you hold static type systems to a much higher standard of type-safety than dynamic type systems), what sorts of things do a type system with type classes, algebraic data types, and higher order functions prevent doing? > Lisps can and do have powerful type systems - you're confus…
Automatic serializing and deserializing of objects. I wrote the RJson library for Haskell to do this for JSON, but there is no way I would ever write anything like that in Haskell again. Using a statically typed language makes it necessary to use horribly complicated types and (in the case of RJson at least) to lose the guarantee that the program's types are decidable. Also, you tend to find that as the type system grows more sophisticated than basic Haskell 98, there is a much greater likelihood of incorrect programs type-checking correctly, so this becomes a less useful means of preventing errors. In writing RJson, I frequently had to determine the correct types for functions by trial and error -- it kinda defeats the purpose of strong typing when a function's type is harder to understand than the function itself.
In a language like Python or Lisp, with decent reflective capabilities, writing the equivalent library would be a whole ton easier.
Re: I'm turning into a Lisp snob
#73It seems you (as well as several other people) can only imagine a future with Haskell or Lisp syntax as if anything else is inferior. I find that to be foolish and immature. Go was specifically designed to be a systems language, period. Lisp was never designed as so, and perhaps that is why its hardly used as a systems language today. Personally, I like Lisp, Haskell, and Python but I also know C is a great systems l…
Modula-3? Now there was a good language :D
Re: I'm turning into a Lisp snob
#74Earlier quoted context omitted.
So, I guess a real criticism of Lisp would be that it is stuck in the past. Lispers are still looking down on C; they never try to look up. If they did, they would see languages like ML and Haskell have surpassed them in all respects. Heck, even Matlab and its descendants with the "everything is a matrix" philosophy have created a powerful new paradigm that is certainly not a special case of "everything is a list". I…
One of the problems seems to be that nobody told the Lisp programmers that Lisp has been surpassed by Haskell. Check out the Haskell page on Music and Sound libraries and applications: http://www.haskell.org/haskellwiki/Applications_and_librarie... That stuff might be useful, especially if you like curses user interfaces. Compare that to some of the Lisp APPLICATIONS in that area: OpenMusic: http://recherche.ircam.fr…
Also, Common Lisp still has no libraries or coherent community. Every time I ask #lisp about a library for something trivial, the answer is "write it yourself". This is annoying to people that don't want to shave that particular yak.
Haskell's community is nearly the opposite, so I bet in 18 years we will see many more Haskell apps than Common Lisp apps. Unless the community starts being nice to people, and people start sharing code worth sharing, that is.
Re: I'm turning into a Lisp snob
#75Earlier quoted context omitted.
I think Lisp's philosophy, as explained by Paul Graham (perhaps you've heard of him :) ), is to enable the programmer to do anything they put their mind to. When choosing whether to do the powerful thing or the simpler thing, they will choose the thing that gives the programmers more power, and point out (not entirely incorrectly) that they can wrap up simpler versions for simpler cases with macros. As a skilled deve…
Both static typing and immutability are trade-offs and we need to know when its appropriate to make them. I get concurrency for the price of immutability in clojure, BUT i could still screw things up using java, and i think that this is a good thing(but im a power hungry lisp programmer, obviously :D). Its my oppinion that what you call the WRONG direction is actually the OTHER direction.
Lisp will still be one of them, the choice of no invariants that restrict the programmer. It's a viable niche. It just isn't the only niche. I think it's less viable than Lisp advocates think and that this is part of the reason it never has taken off, but here we enter the realm of opinion as there isn't anywhere near enough science to actually know. (Indeed, the whole of idea of "science" sounds weird here because we are so far away from having it at all.)
I also point to foldr's message in this thread. Strong typing has its pros and cons, even when done as nicely as Haskell's typing can be, and personally, I don't think that's ever going to change. Sometimes you're going to want it and sometimes not.
Re: I'm turning into a Lisp snob
#76Earlier quoted context omitted.
One of the problems seems to be that nobody told the Lisp programmers that Lisp has been surpassed by Haskell. Check out the Haskell page on Music and Sound libraries and applications: http://www.haskell.org/haskellwiki/Applications_and_librarie... That stuff might be useful, especially if you like curses user interfaces. Compare that to some of the Lisp APPLICATIONS in that area: OpenMusic: http://recherche.ircam.fr…
Because Common Lisp has been suitable for building complex applications for more than 20 years, while Haskell has been in that state for about 2? It follows that Lisp would have at least an order of magnitude more applications, and that's neglecting "network effects". Also, Common Lisp still has no libraries or coherent community. Every time I ask #lisp about a library for something trivial, the answer is "write it y…
Sure the Common Lisp community is not that 'coherent' - the language is used for very different things. Still there are meetings and conferences where users meet.
The first Haskell report appeared 1990. I'd say there has been lots of time to get applications written. Before Haskell there was Miranda.
Common Lisp has a lot of libraries. Look at CLIKI for some pointers.
So, did you write your Common Lisp library yourself? That's what I usually do when I miss some stuff or would like a different implementation.
Re: I'm turning into a Lisp snob
#77"I could show these poor imperative programmers how their problems could be solved much easier in Lisp if I wanted to." That to me (as an outsider) seems to be the main message of these Lisp blogs. But at some point, nobody will believe you could do it, unless you actually do.
Yes, if Lisp is so powerful, where are all the super programs written in it? I'm only aware of EMACs and maybe at one point Autocad? And I guess PG wrote a couple webapps with it....
http://www.cyc.com/cyc/technology/whatiscyc
A large knowledge-based system with several hundred thousand concepts (classes) and millions of assertions (facts and rules).
Under development since 1984.
Re: I'm turning into a Lisp snob
#78Earlier quoted context omitted.
Because Common Lisp has been suitable for building complex applications for more than 20 years, while Haskell has been in that state for about 2? It follows that Lisp would have at least an order of magnitude more applications, and that's neglecting "network effects". Also, Common Lisp still has no libraries or coherent community. Every time I ask #lisp about a library for something trivial, the answer is "write it y…
The 'Common Lisp has no libraries' thing disqualifies you somehow. I think I have a couple millions lines of Lisp code on my laptop. ITA Software wrote now around 650kloc lines of code for their reservation system, additionally they are using 150kloc of public libraries. Sure the Common Lisp community is not that 'coherent' - the language is used for very different things. Still there are meetings and conferences whe…
I went to ILC this year. It was nothing like any programming conference I had ever been to. Everyone droned on and on about their incomplete research project or some company they founded that happens to use Lisp. Someone who admitted to never programming in any language other than Lisp told us that it was clear that Lisp was the best programming language. Yeah, you sure convinced me...
Most conferences I go to are about programming techniques or actual working code you can immediately download and use. I think there were about 5 sessions like this at ILC. The rest were largely irrelevant.
The first Haskell report appeared 1990. I'd say there has been lots of time to get applications written.
No, Haskell was junk until about 2 or 3 years ago. Sorry. The runtimes were slow and buggy, there was no community of people writing software, and there were no libraries. There was no packaging system or library database, even. Expecting anyone to write a useful Haskell application would have been completely unreasonable. (But of course, there were some; darcs and ghc for example.)
The same is not true of Lisp. It has been pretty much the same for a very long time.
Look, Common Lisp and Haskell are among my favorite programming languages. But I am not surprised that neither have a wide following, either.
Re: I'm turning into a Lisp snob
#79Earlier quoted context omitted.
The 'Common Lisp has no libraries' thing disqualifies you somehow. I think I have a couple millions lines of Lisp code on my laptop. ITA Software wrote now around 650kloc lines of code for their reservation system, additionally they are using 150kloc of public libraries. Sure the Common Lisp community is not that 'coherent' - the language is used for very different things. Still there are meetings and conferences whe…
Which libraries are these? How much internal tweaking was done to get them to install? Even the best CL libraries I know of (cxml comes to mind) have required lots of hacking (from me) to get them to work on my Linux + SBCL machine. That is the path of least resistance, as far as I know, and it is not very smooth. Even saying nothing about the underlying package repositories, asdf-install is certainly nothing like cp…
Some days ago I've made a version of Axiom runnable under LispWorks (with a bit of help from the maintainer). Very complex software with a complex build process, ported to several Common Lisp systems. Took me a day to get it to work under LispWorks.
Re: I'm turning into a Lisp snob
#80Those guys, who designed it were not amateur. The main goal is easiness to code for average offshore programmer (hi, Java). Just name it 'C 2.0'.
Are you slamming the people of the island state of Java, or the programming language, or both?
The biggest prof is, of course, the mobile phones market. Usability and simplicity (along with simple visual effects) sell. And interface practices and some widgets were adopted on the web.
And yes, Java (and Windows) was designed to use low-skilled labor. There is nothing wrong with it.