ThoughtStorms Wiki

Currently investigating because they look really interesting and useful.

And currently using by preference :

Also likes :

Interested but not tried yet :

Using for reasons

  • KotlinLanguage (on Android ... I resisted for a long time because I hoped Clojure would become a first-class citizen on Android, but it's not happening, and I've slid into using it. Point about Kotlin is that it's something that Java programmers can more or less start using without having to think too hard.)
  • LuaLanguage (in ProtoPlug)
  • RubyLanguage (only in the form of SonicPi)
  • CPlusPlus (for audio)

See also :

Quora Answer : Which is the best programming language you came across?

Aug 31, 2019

Which is the best programming language you came across?

The best language I've come across is Clojure.

A beautiful clean-slate re-invention of Lisp.

It preserves most of the virtues of Lisp. The elegant minimal syntax, macros, heavy use of higher-order functions.

Makes what I regard as some tasteful improvements :

  • EDN for expressing large complex data literals declaratively.
  • immutability by default, with mutability constrained to explicit mechanisms.
  • a common interface / API to all sequence types, from strings through lists, vectors, streams etc. And all map / dictionary types.
  • All of which are also lazy.
  • Has two-way interoperability with Java (ie you can use Java libraries from Clojure and write libraries in Clojure that can be used from Java) and can therefore take advantage of the huge Java library ecosystem.
    • And you can easily create Java-like objects in Clojure, though pure Clojure code favours functional, not OO programming.
  • Brings all those virtues to ClojureScript, the compile-to-javascript version, (with the obvious difference that it communicates with Javascript libraries, not Java ones).
    • In particular, ClojureScript's Reagent wrapper for React is a much better way to write React applications than having to write them in Javascript (or whatever the custom language of React is)
    • Allegedly ClojureScript / Reagent is even faster than ordinary React because of the guarantees that default immutability gives to the compiler.
  • Has a pretty reasonable standard and third-party set of libraries of its own for a language which is only about 10 years old.

Clojure isn't perfect. The more I see of it, the more I see things I think could be better. Some of which would be ideas from other languages. Nevertheless, as an all-round practical language to get work done today, I think that Clojure is, hands down, the best language I know. Very powerful, very elegant, very practical.

Quora Answer : What is your favorite programming language?

Mar 5, 2020

Right now, Clojure.

It's one of the best languages I've seen and used. Very well designed; extremely high level, clean, powerful and elegant. But also sufficiently practical for many real applications.

I'm not saying there is no better languages out there. Or that I won't use something else more appropriate in more specialized niches. (I write audio processing software in C++, for example)

But most of the time, Clojure is my preference.

Quora Answer : For your favorite programming language, what feature specific to that language do you love so much that you think it should be in many more languages?

Oct 13, 2019

Favourite language : Clojure

Good features that should be in more languages :

EDN (a very expressive data language completely integrated with the programming language)

Lisp syntax


Default immutability

Lazy collections by default

Common API for sequence and map collections.

Quora Answer : Why should I learn Clojure when most languages outperform it?

Dec 2

Subjective answer.

It's the most pleasant and enjoyable programming language available to use today for doing serious work.

Other languages might outperform it in terms of raw speed. But not positive experience for the programmer.

Quora Answer : Which programming language is/was the prettiest and/or most readable?

Nov 27, 2015

It's partly what you're used to.

Before I got into Clojure, I'd have said Python, CoffeeScript and Haskell were all good candidates. Basically meaningful indentation instead of explicit block delimiters helps a lot. In terms of looks they're all pretty similar. I personally never got comfortable with leaving out parentheses around function arguments. So that advantage of Haskell / CoffeeScript over Python doesn't do much for me.

Now I AM a Clojure fan, I find that everything looks worse than Lisp. Even my own Python code I start thinking "meh!" when I see it. But I fully recognise that this is learned rather than an objective claim.

Quora Answer : How would you rank your favorite programming languages and why?

Jun 15, 2014

1) Clojure : My new infatuation. With all the Functional and Lispy goodness you've been hearing about. Very nice indeed. To be honest, it might have been another Lisp, but contingently it happens to be Clojure that I first started using in earnest. (And the JVM integration is important for how I'm using it) Read this entry as Lisp if you prefer.

2) Python : The workhorse. I mean, "it just works". Sure there are all sorts of languages that have better features. But, to repeat : Python "just works". You don't even have to think about writing it. For 90% of what I want to do it more or less writes itself.

3) CoffeeScript : Python that runs in the browser (where you want your code to run). And without some of Python's more egregious failings. Perhaps a nicer language overall. But not quite so convenient everywhere outside the browser. (This entry subsumes Javascript which you could call CoffeeScript with a clunkier syntax. CoffeeScript is also the language most "at risk" of being knocked off this list, if self-hosting ClojureScript ever takes off.)

4) C : It's actually a cleverly designed language for its purpose : to be close to the machine but portable from one environment to another. Its longevity and ubiquity is testament to how much better than most of its rivals it's actually been. In 2014 we can all imagine much better. And maybe one of those languages (eg. Rust / Go) will finally deliver.

5) Erlang : Nice FP with a great concurrency story. But I'm now finding I like Clojure's Lispiness more.

6) Smalltalk : Wonderful language. But sort of missed out on being where it mattered.

7) Haskell : "Look it's not you, it's me. You're amazing! Sexy, sleek, powerful. Mind-blowing. But at the end of the day, I find I just can't be with a demanding, bossy type-system." I do try it every now and then, but it just doesn't suit my style of thinking.

8) PHP : Yeah, everyone hates it. But serves a unique niche well.

9) Java : Bleah!

10) CacheObjectScript (MUMPS) : I worked for a couple of years as a MUMPS programmer. Maybe one day the nightmares will ease off.

Quora Answer : Which programming language you want to - kill, marry, hookup with?


Marry : Clojure

Lisp is the most elegant and powerful family of languages. And undoubtedly Clojure is one of the most sorted, sensible, comfortable to live with members of the family. Young, dynamic and going places, but elegant, cruft-free and serious. If you want a partner who can support you through whatever the programming life throws at you, but can still amaze and thrill you, and will look good at any age, Clojure is your ideal match.

Kill : Java

Look, it’s Java. Isn’t that bad enough?

Annoyingly full of itself. “I’m the best language for everything!”, “I’m the only serious, professional language” but really, really mediocre in practice.

And sooooo boring.

Also, me and Clojure, we want your virtual machine.

Hook up with : C

Sometimes you have a need. To get down and dirty. Low-level. And do things with the machine you can’t even tell Clojure about. Let alone ask it to do.

That’s when you turn to C. Obligingly free of hang-ups. Or judgements. Willing to do anything. But capable and tough enough to hold its own.

It’s too difficult and too much work to try to build something substantial with it. But there are times when only C can give you what you really want.

Quora Answer : Which programming languages are in your "to study" queue?

Mar 8, 2014

Update : As detailed in my original answer Haskell and Clojure were the big languages to get to grips with this year. Six months in I've discovered I really like Clojure (Lisp) and while Haskell impresses me, I've found Clojure has helped me get the stuff I wanted to get done, done while also wowing me with the cool FP stuff.

I'd say both Haskell and Clojure are still important for me to spend more time on and get more experienced at, but I have more of an emphasis on getting good at Clojure / ClojureScript. And am now looking for some sort of Lisp that compiles for use in projects where I don't have the JVM / browser available.

Original Answer :

Haskell is my current "get to grips with" language. What sold it to me was Tikhon Jelvis's point that you could use it to write DSLs that compiled to stand-alone C. And I really want to use Elm properly as it becomes more mature. Looks very promising.

I have an eternal "do something with Lisp" in my "sometime" bucket. But I never quite get there. It almost happened this year. I was considering having a go at Clojure, particularly to see if it made writing Android apps. more palatable.

But it turns out what's faffy in Android seems to stay faffy in Clojure. In fact, Clojure's selling point is that it makes Java faff possible from Lisp rather than Clojure has good ways to hide it.

You can compile Pi-Occam for the Arduino now (occam-pi) and I'd like to have a play with that.

I've also played with Erlang but never written a reasonable sized application with a lot of interacting nodes. I'd like to try that.

In general my feeling is that (Functional) Reactive Programming is the new "garbage collection" ie. that just as what characterised the important mainstream languages from the 90s on was their hiding responsibility for memory management from the programmer, what will characterise the next big wave of improvements in mainstream languages is hiding responsibility for explicit event / call-back handling.

So any language that promises to implement FRP or even just reactive programming as conveniently as possible is something I'm interested in learning.

What is the nicest programming language to work with?

Jan 19, 2017

Languages that have "done it" for me include Smalltalk, Visual Basic (in the early 90s), Javascript, Python, Erlang and Clojure.

A nice programming language is one which lets me start using it without stress quickly, and where I feel I'm being productive almost immediately.

Of these, Visual Basic, Javascript and Erlang are special cases \xe2\x80\xa6 VB was only good compared to other ways of programming Windows in the early 90s, I'd run a mile from having to use it today. Javascript seemed nice and relaxing to make cute things happen in the browser in the late 90s after I'd been writing a lot of C++. But you can do better today. And Erlang, while I enjoyed it, is quite specialized.

Today I'd say the nicest language I know is Clojure. It's beautifully designed, incredibly powerful, has great libraries and I find it pretty easy to get the stuff I want done. There are a couple of downsides though. Error reporting is the worst on any language I've ever seen. That's because when it blows up you get Java error messages, even though you aren't thinking in Java. The other thing is that the tooling has a steep learning curve. Basically Emacs with ParEdit is really good once you get into it. But if you don't know Emacs \xe2\x80\xa6 you'll have some work to do. Also, for certain kinds of programs, if you're continuously restarting the JVM every time you make a change to your program, it's all a bit sluggish. But persevere. You'll be glad.

OTOH, if you're really keen on the static typing of TypeScript then maybe you'll prefer Haskell / Elm-lang family of FP languages.

If you don't know Python, Python is probably the easiest and most relaxing language ever created to do small and medium scale development and throw-away scripting. All the pleasure of Javascript with a nice syntax and lots of libraries to do your work for you. It's not as powerful as Clojure though.

Quora Answer : What programming language are you using in 2021, and why?

Dec 3

Java. Because I'm on a project to write for Android. And I haven't managed to use Clojure for it.

I could learn Kotlin, but ... meh. Yeah. It's a better Java. But I know Java. And I don't really want to be writing any language like that. I want to be writing Clojure. If I were starting a new Android project from scratch, I'd probably learn Kotlin. But ... sigh ... I wish someone could just sort Clojure on Android. It's not, in principle, impossible. It used to work better than it does now. It seems to be mainly just incompatibilities of versions of Java and the Android Runtime. And tooling. Please, someone! Save me from Java hell!

Clojure. Yay! I have some personal projects that I get to choose the language, and they're pretty much all Clojure these days.

C / C++. For audio / music stuff (particularly audio plugins) and this world is more or less all C / C++.

Carp is something I'm really excited about and want to put some time into, because it's basically a Clojure-like FP language aimed at the kind of C compatible low-level native code that you need to write to do audio. If this works out, I will move away from C / C++ and start using this. Ferret is a potential alternative.

Python. I've replaced the last of my bigger Python projects with a Clojure equivalent this year. So I only have a few small legacy Python tools hanging around. If I need to work on them, I'll be using Python again.

Python's OK. I don't diss it. But I don't want to do a lot more with it. If I ever get around to playing more seriously with machine learning I'll probably use it.

Prolog. Still fascinated by this and wish I could get into it more. I still think there is a whole new world of power available for me if I could just grok it and find something practical to do with it.

On my radar but not actively experimenting

Picat - possibly a more practical Prolog alternative?

Shen - a Lisp with an interesting type system. I'm basically more interested in this conceptually than to actually use at the moment. At the moment, Carp, with its ML-like type-system and focus on low-level practicality is more enticing.

Pharo / Glamorous Toolkit- I should try this. These guys are really interesting. With a tonne of good ideas. And the Smalltalk tradition is wonderful. I just don't think I can use this for anything I want to do at the moment. But mega respect to them and envy for the people who can use this stuff.

Quora Answer : What coding language are you most comfortable with?

Dec 26

The best programming language I've found in 35+ years of programming is Clojure.

I'm not a very experienced or expert Clojure programmer. But I've been playing with it for about 6 years, and I think I'm reasonably competent. I find it very comfortable to use for the things I'm able to use it for.

As a comparison, I've worked commercially in Fortran, C++, Smalltalk, Java, Perl, TCL, Python, Visual Basic, Javascript, SQL and, er, Cach\xc3\xa9 ObjectScript (ie MUMPS). I've taught university courses in C and Java. And I've done small personal projects in, or dabbled with Erlang, Ruby, Haskell, Racket (Scheme) and Prolog.

I admire several of these languages : Scheme and Smalltalk and Prolog. C and Haskell. I think Python and Visual Basic and SQL are excellent languages for people who just need to get certain kinds of things done. I've even learned valuable lessons from MUMPS.

But Clojure is undoubtedly the best designed, most elegant, powerful and comfortable language I've come across that I can use practically.