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

>Also, languages are a lot more similar to each other than they used to be, in terms of expressiveness and power. Lisp was a “lightsaber” to the “stones” of the 80’s, now it’s at most a slightly more powerful “machine-gun”, at best.

Please elaborate more and explain.



How many features coming from Lisp, ML, Haskell and academic languages have made it into mainstream languages now? Many. How many were in mainstream languages in the 80’s? A few.

Memory management, generics, etc.


Allright, let's take some list of what can be understood for "mainstream" languages (because, according to other criteria, Lisp is mainstream too.)

TIOBE index top 10:

Java, C, C++, Python, C#, Visual Basic.NET, PHP, Javascript, SQL, Ruby.

let's compare to Lisp and Haskell:

- NONE of those langs have the hindley-milner type system, type inference and typeclasses of Haskell.

- even Common Lisp's type system is more sophisticated than almost all langs on the list, allowing for union types.

- all of those langs only allow you to write the code that will execute at runtime. CL allows you to specify if a function is to be executed at read time, compile time, and run time.

- NONE has an object oriented system with multiple dispatch nor a meta-object system. Unlike Common Lisp.

- None have metaprogramming based on homoiconicity (like Common Lisp), so the only way of macros is to use a cumbersome AST->AST library, and even then, it can only be done at compile time nor runtime.

- Only a very few allow changing the definiton of a class or function at runtime, without stopping the running program, and then it's often a difficult proposition because the language wasn't designed to do this on the first place. Unlike in Common Lisp.

- For the garbage collected languages there, NONE allows you to circumvent or disable the garbage collector, unlike CL.

- For the garbage collected languages there, NONE is faster than CL, and only CL allows the programmer to write Lisp code that reaches C speed, if he/she wishes so.

- only a few have built-in support for all of these: integers, arbitrary precision numbers, rationals, floats with IEEE compliance, complex numbers, and bit vectors. All which CL brings you by default.

Now, you can suggest more languages and I can go on.

There are very few languages that can compete with Coq, Agda, Haskell, Ada/Spark, Common Lisp, Julia and Racket today.

No, there are many features missing. Features that are very relevant. Do you know that many of the design patterns often used in Java are unnecessary in Common Lisp simply because many of them are workarounds for things that the Java OOP system lacks but Lisp's OOP system implements?


I do like Lisp, but you should learn better the languages you criticize.

C++ allows for compile time execution, improving since C++11. A feature also shared by Nim, D and Jai.

C# does offer control how the GC operates, and allows for manually memory management if really required. A feature also supported by D, Modula-3, Active Oberon.

.NET Expression trees can be manipulated at runtime.

There are GC enabled system programming languages that are as fast as Lisp, like D, Modula-3 or even the new .NET Native toolchain.


Thanks Pascal, i got stuck in C++ before the C++11 improvements.

As for the other languages (D, Oberon), my comparison was to the "popular, mainstream" languages the guy was rooting for.

>There are GC enabled system programming languages that are as fast as Lisp, like D, Modula-3 or even the new .NET Native toolchain.

I wrote "none faster than Lisp" which means "equal or lower in speed to Lisp"


Indeed, Nim also offers a lot of control over its GC. You can disable it or control precisely when it runs and for how long.


Did you mention conditions and restarts? That's a big deal too, missing in many languages.


No, I didn't. You are right.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: