Hacker News new | ask | show | jobs
by brlewis 4005 days ago
> there isn't a one programming paradigm that's universally better than others.

That's so true. I wish someone would come up with a language where a wide variety of programming paradigms, including imperative, functional, and message passing styles, could find convenient expression.

EDIT: This comment is almost an exact quote from somewhere. Bonus points to whoever can identify where.

5 comments

The parent's humorous wish is granted by the wizards of MIT Scheme (and, I daresay, even more fulfilled by Racket):

"Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme."

http://groups.csail.mit.edu/mac/projects/scheme/

I got it from R4RS. I imagine MIT Scheme also got it from there.
Maybe. Looks like R4RS got it from R3RS. :-)
I think you should give Elixir a look: http://elixir-lang.org

Bonus points: Elixir has compile time macros and an AST with a representation that is similar to Lisp.

> and an AST with a representation that is similar to Lisp

That's actually cheating, you know :). Lisp pretty much is AST. It's a fun fact about Erlang that it's not directly compiled to BEAM, but is first translated into a very strange, almost lovecraftian Lisp. I've worked with Erlang commercially for some time and ever since learning about parse transforms I kept wondering why they didn't just clean up the "intermediate language" syntax; they'd have a decent Lisp instead of a parallel Prolog.

There is, of course, Lisp Flavoured Erlang: http://lfe.io/
Indeed there is :). I used to sneak up some code in it on the job ;). I'm happy to see it being actively developed to this very day.
oz/mozart does a good job of that; it's a shame it never really caught on as a non-research language.

http://mozart.github.io/

You have Scala. They even try to shoehorn macros into it. The result is a powerful but IMO messy language.
What for? With any meta-language you can build and mix any paradigms you like.