The Popularity of Four Lisp Dialects on Github
wenshanren.org
wenshanren.org
That's not to say that Lisp is popular, only to suggest that Github is not necessarily the best sampling of its development communities.
A big chunk of my code is C, C++, VHDL, Verilog, miscellaneous PLC/PAC dialects, etc... in other words, industrial stuff that doesn't get a lot of attention from the 'fun' startup sector. Github's numbers are most likely misrepresenting (not representing?) a HUGE section of 'hard' engineering. Add to that what you've mentioned, i.e. the copious amounts of legacy and domain specific stuff still lying around, and it means you've got a hugely biased sampling.
Citation needed. Because I see C and C++ in there, that also predate GitHub by many years.
And since we're not talking about 50 year old Lisp programmers (that would predate GitHub for 3 decades), so does Perl, Python, Java etc.
#20 - Emacs Lisp
#24 - Clojure
#25 - Racket
#35 - Scheme
#36 - Common Lisp
Interestingly, had PLT Scheme not been renamed into Racket, Scheme would probably be the most popular Lisp on Github.
I have to say, I'm pretty impressed with Racket. Everything from its beginner-friendly environment, to its functional disposition, to the availability of decent libraries, to its research into new areas such as type systems, everything feels very nicely constructed.
The only thing I really miss from Clojure is the syntactic support for maps and vectors, and the pervasive destructuring of said same.
What do you mean by syntactic support for maps and vectors?
I also suspect the initial jump into a purely functional paradigm (and then even further into code as data) might be too big of a hurdle to overcome for most developers, who are better off staying productive in their existing idioms.
As to your second point, I think code-as-data is both a smaller hurdle and a bigger part of Lisp than functional programming, which was always more of a thing in Scheme and really didn't catch up to "modern" FP until Clojure. Any programmer can appreciate the usefulness of macros and templates. The argument for pure functional programming is a lot more cerebral.
I'm sure I would have been more productive if I only knew one language. The "which language should I use?" conversation that seems so debilitating would simply never happen.
Perhaps I need to change the way I think. For solving maths problems and crunching numbers (I have most of a BSci in Mathematics) its brilliant (Clojure in particular). Fits perfectly.
That said, do you have any advice for how to think about state in regards to web development? The database and its various assumptions were my biggest headache. What is the go-to library for Clojure here?
You could, of course, program in a more functional style in Lisp (and that style is encouraged more in some Lisps than others), but you're not forced to.
I don't use it for any practical reason, on any code that others might pick up on and build on top. I use it purely as a hobbyist language, and for that it's awesome. Scheme is how I learned Computer Science (even though I learned how to program in Python). Scheme is awesome for multiple reasons, more reasons than other languages in my opinion, and popularity is not one of theme. And that is perfectly fine.