Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Lisp evolved into ML and Haskell and these have influenced professional programming enormously over the last few decades. Or are you advocating we ditch all progress and go back to Lisp? Have you tried an ML such as OCaml? It has built-in cons lists, convenient symbol manipulation and macros.


Influenced but didn't evolve into. For one thing ML and Haskell have a totally different approach to types.


ML was designed in the 70s by Robin Milner to replace all the LISP code he had. Just like LISP it was designed for symbolic manipulation. They are far more similar than you are giving them credit for; and usually recognised as part of the same family tree. The System F calculus also has a "totally different approach to types" but it evolved from the Lambda calculus. ML and Haskell are based on System F and its successors.


Frankly, yes, I wouldn't mind going back to boring old lisp. Particularly when confronted with Java or Javascript. I also have no real desire to dive into strongly typed functional languages - see the "dynamic" part of the original title.

And all of those modern functional languages are as fringe (or even more fringe) than Lisp is. I wish this wasn't the case, but let's be honest: programming languages that appeal to mainstream developers and companies will always optimize for development teams of wildly varying skill.


> I also have no real desire to dive into strongly typed functional languages -

That's a big shame. But don't knock it until you've tried it.

> And all of those modern functional languages are as fringe (or even more fringe) than Lisp is.

I'm not convinced Lisp is more popular anymore. I've spent the last 10 years being a full time Haskell and OCaml programmer. The killer application is compilers and associated tooling. Almost no one is choosing Lisp for this today. And why would they?

> but let's be honest: programming languages that appeal to mainstream developers

Where do you think the newer mainstream languages are getting e.g. algebraic datatypes and pattern matching from?


That's interesting. Have you written anything further about ML vs lisp for tooling, or could point to a reference? Compiler dev here, C++ when paid and lisp when not. Interested in SML but haven't spent the time to assess what I'm missing.

Exhaustive pattern matching over AST nodes is a good trick. That might interact better with the type constructors than ad hoc representation in clos. It seems possible I should stop putting everything in a map.

Is the edge over lisp in the compile time rejection of incorrect programs or elsewhere?


Although one point is that many only learn Lisp from FOSS tooling, instead of the Lisp Machine survivors, CCL, Allegro and LispWorks.

One of the talks at this year's HIW is how Haskell could be more better in IDE tooling.


Why does every thread about functional programming and/or lisp have to have this not-so-subtle dig at developers who don't use them?

Do you really think developers who prefer functional programming or lisp(s) are smarter on average than other developers?


No smarter, but they likely care a great deal more about programming.


I doubt that very much.


> programming languages that appeal to mainstream developers and companies will always optimize for development teams of wildly varying skill

Does emacs have a hotkey for this sentence? Or why does it keep coming up in every discussion remotely related to lisp?


Why do you think so many Lisp fans (e.g., Norvig) went on to use Python instead of those ML alternatives?


Norvig is a teacher and author who wants to reach the widest audience possible. So in his case, it was either Java or Python.


Norvig wrote an article or post where he deemed Python to be “an acceptable lisp” (or something like that, I may not have it exactly right).


Hardly a ringing endorsement! Python is certainly succinct and expressive like Lisp (when his alternative is Java). ML was designed to be a better Lisp.


ML wasn't designed as a better Lisp. It was designed as a 'better' (and statically typed) functional programming language for writing proofs in a theorem prover. The theorem prover and then also the first ML version was written in Lisp. That was the motivation for the first version of ML.


I did not mean to imply it was a Lisp. It was designed to solve the same problems as lisp, i.e. symbolic manipulation; and was used to rewrite code originally written in Lisp.


ML was at first a domain specific language for writing/assisting proofs: a) maths-like notation, b) functional, c) statically typed, ...

Lisp did only do b) to some extent. It was and still is common to develop languages as internal or external domain specific languages on top of Lisp. ML was such an example. Often these languages then are/were ported away from Lisp to a specialized (and possibly smaller/more efficient) implementation. Thus Lisp served as a prototyping environment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: