4 ms·
> Why would anybody use a programming language with zero documentation for anything? Are we supposed to guess the language and its features from a single five-l
by exDM69 9y ago
> Why would anybody use a programming language with zero documentation for anything? Are we supposed to guess the language and its features from a single five-line hello world program?
As someone who has done a handful of compiler/interpreter projects: I don't think that they expect anyone at this point to be using that language. They're targetting it at language geeks like myself (who go and dig around the source, which I just did). Maybe in some years' time this project will reach a stage where end user docs matter.
A little more verbose readme would have been nice, though. Things that I did not find out by looking at the examples/docs, but I care about:
* what paradigm? imperative, functional, etc?
* interpreted or compiled language?
* what's the target? interpreter, a bytecode VM, LLVM, compile-to-C, native codegen?
* static/dynamic typing? type inference?
By looking around the code, I think that this is an interpreted language with dynamic typing that's implemented with a stack-based bytecode virtual machine. Not unlike Lua, Python or Ruby, that is.
- sparkie 9y agoI'm a language geek and none of the above is what I want to see when I read about a new language. What I want to know is, what does this language offer that no other language does? What platform it runs on or whatnot is trivial boring detail that I might want to know afterwards if the language offers something interesting to try out.
- Danihan 9y ago>What platform it runs on or whatnot is trivial boring detail Not caring about actual usage mechanics / acting like they are trivial details makes me question a lot about your perspective.
- sparkie 9y agoLanguage X runs on platform A, it offers little innovative but merely re-expresses what you're already used to doing on platform A in another language. Language Y has some really innovative features that no other languages are currently doing. There is currently no reference implementation. Which of these is the more interesting one to a language geek? The former might be more interesting to a "platform A" geek. Or someone who uses platform A in production. The perspective is being interested in language design rather than "the next big thing". A language that doesn't change the way you think about programming is not worth learning, because you're only re-learning what you already know. In fact, learning such language is trivial and all you really need is a grammar reference from which you can deduce the rest. If it runs on platform A which you're familiar with, you can take advantage of platform A's libraries and become productive in X in no time.
- baybal2 9y agoLua.org's Lua is a VM, but a register based one. Perl 6 is another odd case of register based VM
- le-mark 9y agoIt is dynamic, curly braced, garbage collected, coroutines. Some really squeaky clean C code too. One can immediately tell this is a great code base to read and learn from, at the very least.
- augustk 9y agoWhat's so squeaky clean about hiding a goto inside a macro?
- le-mark 9y agoI guess you're referring to this[1]. I'd actually call that usage svelte. The macro is undefined not far after it's use in the file, and makes the section it's in far more readable. [1] https://github.com/lemon-lang/lemon/blob/9a0b3dbc854532b31f731a15f57365972d0cac73/src/lemon.c#L257 https://github.com/lemon-lang/lemon/blob/9a0b3dbc854532b31f7...
- billytetrud 9y agoWhy does it have the do-while(0)?
- le-mark 9y agoIt's a safeguard because {} statement blocks are optional [1]. [1] https://stackoverflow.com/a/923833/2561675 https://stackoverflow.com/a/923833/2561675