Results of survey "Designing a new language, what would you use?"
2015-09-14 17:26 plsurvey2results [permalink]
After having done a first survey, more intended as a joke than in seriousness, I decided to do another survey, (also on reddit) just to get to know a little more on where the people at large are about the things I read about when researching the web for what I need with this toy programming language I started.
As per the last time, I noticed answers come in in the first 24 hours and then nothing, so I thought I'd wait a few days and then process the results. First this: thank you, thank you, thank you very much for the 34 responses.
For back-end, 18 of 33 would use LLVM, 5 JVM, 4 CLR, 4 GCC, just one LuaJIT, and one other offered the gentle advice to use "IR, then translate that IR into whichever backend you want." Which I find strange since that's what I thought a back-end is for... I'm surprised to see so little for JVM, it fuels my suspition that some programming languages are more written about than written in...
For run-time, 19 of 31 would use "FFI to anything C" which makes sense as most do as far as I can tell; 4 JVM, all of which had also JVM for the previous question, again makes sense; 4 CLR, 3 of which had CLR for the previous question, and one LLVM: I have checking out Roslyn high on my to-do list, but I'm not sure if all of the puzzle pieces are out there (yet) to get that working; 2 OCaml, 2 Python, and someone entered "variant of c++" not sure what that is, but it might just be the same as what I meant by "anything C"...
As one could predict, the choices for IDE are a bit more diverse, but roughly what I anticipated:
* 6 emacs
* 4 atom.io, which is pretty good for the new kid on the block
* 4 Eclipse, only 2 of those had JVM on the previous questions
* 4 Microsoft Visual Studio
* 3 IntelliJ IDEA, strangely enough none of those with JVM on the previous questions
* 3 vim
* 2 Code Blocks
* 1 Codelite
* 1 Delphi
* 1 kdevelop
* 1 pharo.org
* 1 "just a text editor"
* 1 "made in this new lang"
* 1 "no ide"
* 1 "shouldn't be tied to an IDE"
To build a parser, 8 out of 30 recommend yacc. 7 advise to roll your own, which kind of surprises me but also not that much, since as someone also points out, it allows you to pay extra attention to having the parser spew out usefull errors when it hits syntax it doesn't understand. 6 would go with GNU Bison, 2 JavaCC, 2 "parser combinations", 1 "recursive decent", 1 "Ada's OpenToken library", 1 Json; those in quotes I should look up as I may have heard about them but am not fully acquainted with (yet!).
For debugger, 18 of 29 would go with gdb, 7 with lldb, 2 with WinDbg, someone would let it depend on the platform, someone else would like to see a "More indepth debugger". And there's someone that would have the debugger be written in the language using meta programming, but this person also left all the questions unanswered, except "pharo.org" for IDE, and "SmallTalk" for the next question. The world needs all kinds of people.
And then the question I was looking forward to the most: projects to learn from
* 9 LLVM
* 9 Lua
* 2 OCaml
* 2 CoffeeScript: which apparently, I noticed, has annotated source right there on the website!
* 2 Haskell (someone wrote "GHC", assuming that stands for the Glasgow Haskell Compiler, I'll count it here)
* 1 Rust
* 1 Smalltalk
* 1 clojure
* 1 DMD
* 1 GCC
* 1 "Ada, a Lisp varient, and probably an ML-language", those are three at once! A LISP variant, I agree, I have clojure in this list but not Scala, strange. And as ML-languages go I've only heard about OCaml.
* 1 "Assembly "Learn e.g. x86 assembly. Without which you will not be able to understand how it is being execute.d=" I don't know what dee equals, but x86 isn't quite the open source compiler I was thinking of. Also I've read this one back to back, does that count?