I’m interested in why you asked 100s of developers if they’re interested in Lisp.
In my experience, which is evidently quite different to yours, excellent developers also want to increase their breadth, understand which tools are good for which jobs, and generally increase their knowledge about programming and software engineering. It’s usually the poorer engineers, experienced or not, that stick to just a few tools with no knowledge of others.
They talk about what they are interested in on a daily basis. You don't even need to ask them. They will tell you.
There are millions of development tools in this world. No-one has time to learn all the tools. Even if they want to. I don't understand why LISP have to be the only exception when coming to tools a Developer can ignore. I doubt Linus Torvalds has time to learn every obscure technology out there. He focuses on delivering kick-ass solutions using C. Same as other great Programmers. It is the book writers and consultants who are busy learning each and every tool.
A bunch of programming language developers learned Lisp and were influenced by it: James Gosling (Java), Yukihiro Matsumoto (Ruby), Brendan Eich (JavaScript), Alan Kay (Smalltalk), Robin Milner (ML), ...
Hardly 'book writers and consultants'. These are among the most influential people for programmers... if you had learned Lisp decades ago, you would have learned much of the basics for those newer languages: managed runtimes, evaluation, automatic memory management, programming with first class functions, virtual byte code machines, etc etc...
Then we should relegate LISP to an academic programming language and stop pretending that it is a major player when all the data proves the contrary. LISP failed for half a century because it isn't the best tool for the job, not because we are just stupid and only the select few have the brains for it. It is not the case. It is just not good for the job at hand -> delivering solutions.
I have used 80% of those programming languages you listed in a professional environment and I didn't require to learn LISP. I didn't see any resemblence of LISP on any of them. To correct you, Java was heavily influenced by C/C++, not LISP. In such a way that my transition fron C++ to Java only took me few hours.
"Lisp isn’t a language, it’s a building material." - Alan Kay
> Then we should relegate LISP to an academic programming language and stop pretending that it is a major player when all the data proves the contrary. LISP failed for half a century because it isn't the best tool for the job, not because we are just stupid and only the select few have the brains for it. It is not the case. It is just not good for the job at hand -> delivering solutions.
Nobody claims that it is a major player. My claim was that it was influential - not academic, but actually practically. People like Matz (Ruby) literally learned how to implement a programming language runtime by studying Lisp, in this case the Emacs Lisp runtime.
> I have used 80% of those programming languages you listed in a professional environment and I didn't require to learn LISP.
Nobody said it's required. It's just that when you knew Lisp, you would have already known about garbage collection, first class functions, virtual byte code machines, managed memory, etc. Nothing which is directly in C++.
> I have used 80% of those programming languages you listed in a professional environment and I didn't require to learn LISP. I didn't see any resemblence of LISP on any of them. To correct you, Java was heavily influenced by C/C++, not LISP. In such a way that my transition fron C++ to Java only took me few hours.
If you don't know Lisp, how would you know which influence it had on Java? C/C++ had directly no Garbage Collection, no managed memory, no runtime code loading (-> Java class loader), ... thus these things about the Java runtime were not coming from C/C++. You got the curly braces from C/C++.
Guy Steele, who co-wrote the Java language spec: 'We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.'
Curly braces, for loops, while loops, if statements, case statements, variable declaration and initialisation etc. All those things were carbon copied from C/C++, not Lisp.
The features you mentioned aren't part of the Java language, they are tools used by Java language. JVM isn't part of Java as a language, they are part of the Java platform. Most people confuse the language with the platform. JVM is a tool used by the language. Even Javac isn't part of Java. It is a tool used to compile Java [1].
I doubt any Java Programmer was dragged halfway to Lisp. If it was the case, we were going to see at least 10% of those Developers finishing the trip to Lisp but we didn't. That's why Lisp remains an obscure language used by 100 people on a good day.
> Curly braces, for loops, while loops, if statements, case statements, variable declaration and initialisation etc. All those things were carbon copied from C/C++, not Lisp.
That's all minor stuff. But, even the very invention of conditional statements are originally from Lisp. http://www-formal.stanford.edu/jmc/recursive/node1.html John McCarthy proposed if/then/else and recursion to the Algol (the grandfather of C) community in 59.
> JVM isn't part of Java as a language
Historically there is no independent invention of the Java language. The Java language was developed together for and with the platform -> the JVM. Thus Java assumed on day one that it runs on a garbage collected platform.
> I doubt any Java Programmer was dragged halfway to Lisp.
There are a bunch of Java developers which struggle with Lisp-derived languages (like Clojure).
> If it was the case, we were going to see at least 10% of those Developers finishing the trip to Lisp but we didn't.
You didn't know where many of the features of the Java runtime come from or where they originated from. The originally first garbage collected language implementation was Lisp 1 in the end 50s. Here on Hackernews you can learn about it. Java (originally called oak) was explicitly designed to be garbage collected. The Java developers (Gosling) explicitly didn't want C++ like memory management.
> That's why Lisp remains an obscure language used by 100 people on a good day.
> You didn't know where many of the features of the Java runtime come from or where they originated from.
You are making a mistake of talking about tools when we are discussing programming languages. I have seen most people make that mistake with .NET platform. Java programming language isn't Java platform. In fact, as a Lisper, you should know better to dissociate the tools from the platform because Lisp is so fragmentated.
> Historically there is no independent invention of the Java language.
J++ was a Microsoft independent implementation of Java programming language. Also Java used by Android is an independent implementation of Java programming language. It doesn't contain tools which are shown on the Java platform architecture diagram I pasted on my previous comment.
GC isn't part of Lisp. Never was. Never will. It was invented as a tool to be used with Lisp. In fact, some Lisp dialects don't even have garbage collection.
Java was originally developed by SUN together with its platform. SUN did not develop Java and then later looked how to implement it. Java was specifically developed with its implementation for a few specific projects - originally set top boxes and mobile devices.
SUN didn't develop Java for Microsoft or Google - Microsoft and Google just copied parts of it years later. If it were legal, they would have copied all of it. Microsoft then mostly abandoned Java and is no longer relevant in the Java world. Same for Google, Kotlin is now their favorite language for Android development. Incompatible platforms for Java are on the way out.
> GC isn't part of Lisp. Never was. Never will.
It's like saying flying is not something birds usually do, just because there are a few birds which don't fly.
95% of all Lisp installations (including Lisp 1) use some form of automatic memory management, usually a form of GC and the language is designed to be used that way. Lisp implementations which don't use GC need extra facilities for manual memory management.
> was exxagerating to emphasize my point.
Well, it's too easy to see, that you have no idea about actual data and it kind makes your arguments exposed to be on shaky grounds.
> Java was originally developed by SUN together with its platform.
That's incorrect. Java programming language is part of the platform.
> Microsoft then mostly abandoned Java and is no longer relevant in the Java world.
Another incorrect statement. Microsoft didn't abandon Java, they were forced to abandon Java because of legal issues with Sun. That's why they created .NET. They are irrelevant because they decided to stop fighting Sun and created their own platform.
> Well, it's too easy to see, that you have no idea about actual data and it kind makes your arguments exposed to be on shaky grounds.
Lisp isn't even in the top 30. My exxageration were accurate.
> Kotlin is now their favorite language for Android development.
Google is only doing that because they were forced by Oracle. It is a forced choice.
> It's like saying flying is not something birds usually do, just because there are a few birds which don't fly.
That's not what I mean. All I am saying is that Gabrge collection isn't a feature of a programming language, it is a feature of the platform
In my experience, which is evidently quite different to yours, excellent developers also want to increase their breadth, understand which tools are good for which jobs, and generally increase their knowledge about programming and software engineering. It’s usually the poorer engineers, experienced or not, that stick to just a few tools with no knowledge of others.