Why Fennel?
91–100 of 174 posts
Re: Why Fennel?
#92Earlier quoted context omitted.
>Does not make sense in this context, as it mainly applies to Lisp-like languages that uses parentheses heavily. I had read, some years back, that someone did an actual calculation / demonstration that showed that the number of symbol / punctuation characters in Lisp is actually less than in C-based languages, for a block of code with equal functionality in both languages. I don't have the reference handy. Someone he…
It's obvious to anyone who is familiar with both. (f x y) vs f(x, y); Note the extra comma and semicolon. The only place this breaks down is for simple arithmetic expressions like (+ a b) vs a + b, which is trivial enough to ignore (and also goes back in favor of Lisp when you start having more operands).
Re: Why Fennel?
#93I do not understand the appeal of LISPy languages. I get that the parser is simple and elegant, but I believe the developer (of the compiler in this case) should serve the convenience of the user, not the other way around. Writing code like this is cumbersome and unnecessarily symbol heavy, and reading it isn't really nice as well. I'd rather have the language add that extra complexity into the parser than have me st…
Re: Why Fennel?
#94I do not understand the appeal of LISPy languages. I get that the parser is simple and elegant, but I believe the developer (of the compiler in this case) should serve the convenience of the user, not the other way around. Writing code like this is cumbersome and unnecessarily symbol heavy, and reading it isn't really nice as well. I'd rather have the language add that extra complexity into the parser than have me st…
I'm forever indebt to lisp for giving JS it's saving graces (closures and FN as first class citizens), but I think we some honestly on what the end experience really is.
Re: Why Fennel?
#95https://janet-lang.org Also by the same author.
I like Janet a lot, and have been using it for small personal projects for about a year. But it does come with some design decisions that I'm a bit ambivalent about and for which I haven't found a good explanation: - No persistent data structures. I guess this has something to do with limitations of the GC? - unhygienic macros combined with lack of namespaces. XOR those two choices would be fine, but the combination…
Re: Why Fennel?
#96The comparison with Closure is really interesting. They make the point that they do less reinvention of Lua than Closure does with Java - functions, standard library, tooling. I'd love to know why. Is it just that Lua has less problems than old-Java
Re: Why Fennel?
#97Earlier quoted context omitted.
I do not understand the appeal of non-LISPy languages. I get that most people are used to reading it and that they are efficent, but I believe the developer (of the compiler in this case) should serve the convenience of the user, not the other way around. Writing code like this is combersome and unnecessarily symbol heavy, and reading it isn't really nice as well. I'd rather have the language add those extra parens i…
Let's be real in most situations it doesn't matter. One "statement" per line is bog standard. Whether that statement is surrounded by parens or ended in a semicolon isn't impactful for reading. LISP is only better when you add source code transformation (which is way easier with its source code looking like the transformed code). But then you introduce "everyone can write their own syntax" which is good and bad given…
This isn't really true. Most non-Lisp languages I work in, like JS or Ruby or Python, have things like long_expression =\n long_other_expression, or long_expression\n.another_long_expression\n.another_long_expression.
Re: Why Fennel?
#98Earlier quoted context omitted.
>Does not make sense in this context, as it mainly applies to Lisp-like languages that uses parentheses heavily. I had read, some years back, that someone did an actual calculation / demonstration that showed that the number of symbol / punctuation characters in Lisp is actually less than in C-based languages, for a block of code with equal functionality in both languages. I don't have the reference handy. Someone he…
It's obvious to anyone who is familiar with both. (f x y) vs f(x, y); Note the extra comma and semicolon. The only place this breaks down is for simple arithmetic expressions like (+ a b) vs a + b, which is trivial enough to ignore (and also goes back in favor of Lisp when you start having more operands).
- it is used everywhere
- carries very little information
Look at the example on the Janet page transcribed to Python syntax [0]. Several differences: - in Janet nearly every line starts and ends with ( and ), which is just noise
- in Janet there are several ))))
- in Janet there is no special syntax for: function definition, variable definition, collections, statements
- while Python is the opposite, it reads like a mix of English and Mathematics. Also it has special syntax for the ~5 things that you can do with the language, so you can just look at the Python code from far, don't read it, and you'll have a clue what's going on. It is also helpful when you search for something with your eyes. Also nested parentheses are different shaped parentheses, so you know which ones match.
Also in theory you could manipulate Python AST the same way you do in Lisps both in your editor and both at program-level. In practice you can't do that.Re: Why Fennel?
#99Earlier quoted context omitted.
Try defining data in C. Try extracting data from that data you've defined in C. If you can understand the appeal of having JSON in JavaScript, you can understand some of the appeal of Lisp.
I’m having trouble understanding what you mean, if you could provide or link to an example I’d appreciate it.
Re: Why Fennel?
#100Earlier quoted context omitted.
Try defining data in C. Try extracting data from that data you've defined in C. If you can understand the appeal of having JSON in JavaScript, you can understand some of the appeal of Lisp.
I’m having trouble understanding what you mean, if you could provide or link to an example I’d appreciate it.
In other systems, you can just read the object, and the structure comes with it.