The naked truth about writing a programming language (2014)
You might be doing this as a learning exercise, in which case it doesn&#x27;t need to be particularly innovative, and writing another Lisp or Forth implementation is fine.   In fact, I&#x27;d recommend beginning along those lines, followed by developing several different new languages, probably domain-specific ones.   Your first attempts probably won&#x27;t be worth keeping.   (I haven&#x27;t kept the object oriented Prolog I wrote about 25 years ago, but I do regularly use a small Prolog I recently wrote in Lisp.)<p>The languages at the roots of all programming languages are Fortran, Lisp, Cobol, Algol60, APL, Snobol, Forth, Prolog, OPS5, SASL, Smalltalk, Prograph.   (If I&#x27;ve missed any out, or any of the above have important predecessors, please let me know.)   A new language is unlikely to be radically different from any of those languages or their descendants - of those I listed, the most recent is from the mid 1980s.  Within the descendants, which is your favourite?   Can you make big improvements to it?   If so, make them.   Otherwise, can you improve another language so that it becomes your favourite?<p>One heuristic I&#x27;ve found useful: the right design choices at the start might be unknown, but when I need make them, they&#x27;re obvious to me, and often a particular choice leads to other equally obvious choices.   If the choice isn&#x27;t obvious, I&#x27;ve probably done something wrong.<p>My own preference is for pure rather than hybrid languages with simple regular syntaxes (i.e. one idea expressed well), and very strong static typing.<p>My favourite language is Common Lisp or rather a subset of it.   I have trouble thinking of ways to make it significantly better.   But I also like the idea of dataflow (a few decades ago I knew some of those working on experimental dataflow hardware), and graphical programming seems to be the right approach to dataflow.   Prograph was the closest existing language to what I wanted.   It&#x27;s isn&#x27;t pure dataflow, it&#x27;s dynamically typed, it&#x27;s object oriented (so, unless it&#x27;s Smalltalk it&#x27;s hybrid), and entering programs in it involves too many mouse gestures and keystrokes.   So I&#x27;m implementing a new language which corrects those deficiencies.   It&#x27;s been particularly difficult because I have to write an IDE as well as the language, and there aren&#x27;t any textbooks I can rely on for help.<p>I&#x27;ll have succeeded if I use the new language more often than I do Lisp, and if along the way I get a few more papers (two so far) and some academic interest, so much the better.   I don&#x27;t expect a wide user base.   If that was important to me, it would have C syntax and I&#x27;d try to get corporate backing.   Your criterion for success might differ from mine.