ThoughtStorms Wiki

Programming Languages







Programming Language Design Resources :

Life-cycle :

How do you compile a compiler? :,



See also :

Added 2017-08-29 :

What programming language has the happiest developers?

Jul 17, 2020

I can't answer the question for anyone else.

And I think Ken Gregg has a point that language perhaps isn't the overall determinant of programmer happiness in work. There's a lot of other issues.

Nevertheless there are certainly languages that have made me feel happier; because everything felt lighter and seemed to "just work" (apart from a few understandable teething difficulties). And these languages have tended to make me happy when I use them.

Languages that have absolutely done that for me over my career are Visual Basic (classic), Python and, my current favourite, Clojure.

Languages which have certainly smelled good when I tried them, and I can quite believe make you happy but I don't consider I've quite used them enough to say definitively from personal experience, are Smalltalk and Erlang.

Obviously the happiness a language gives you partly depends on the context.

I came to VB having been writing Fortran and wanting to get into writing GUIs on Windows, but was pathologically scared of C at the time. (I wrote some C++ but not for a GUI environment) VB was just so obviously the way it should be. And without hassle.

I came to Python from having a frustrating time writing Java.

Clojure I came to after - well, doing larger scale, more serious projects in Python and finding them getting a bit out of control. (You could say "Ah, see, you need more bureaucracy and type-checking etc. to maintain large code-bases." Or you can do what I think is the better thing : have higher level, more powerful and expressive languages which mean you write less code altogether. You continue having a small manageable code-base rather than a large potentially unmanageable codebase with extra bureaucracy to keep it under control.)

Quora Answer : Is it possible that we make a universal language that has all the functionalities needed for all applications?

Nov 3, 2015

No, it's not.

Languages are a bunch of trade-offs. Between enforcing abstraction and allowing access to underlying resources.

For example, C lets you allocate memory directly, but leaves you with responsibility not to create memory leaks. Java is the opposite, removing the risk of memory leaks by hiding the underlying memory. More exotically, Haskell prevents you working with mutable data 99% of the time, but can gives you automagically parallelized and efficient code in compensation.

Languages differ, not just in syntax but in semantics. And semantics has real implications for what the compiler / virtual machine can do for you or protect you from.

Now it might be possible to define CLASSES of languages ... eg. languages that garbage collect, languages with mutable data, languages that allow higher-order functions etc. And within a particular class ... perhaps unifying syntax would be trivial. But between these different classes, when you choose a language, you're really choosing a particular semantics and run-time environment. And that, more than language, is often application specific. The Erlang VM is good for highly reliably, concurrency. C is good for low level operating system layers (or at least better than Java). Python isn't massively good for anything but is very easy to write. Etc.

Quora Answer : If you could only learn a maximum of three programming languages, which would they be?

Oct 2, 2017

Most of these questions ask about five. Three is actually really hard.

I'm going for

C, Lisp, Prolog.

Lisp because it's the language that can be turned into everything. Your OO, or CSP paradigms can be implemented with macros. Even a type system can be layered on top.

Prolog because, while you can just embed minikanren in Lisp too, Prolog probably has the most different, and mind expanding, ideas to steal from.

C because ... well how else am I going to implement my Lisp?