Earlier quoted context omitted.
You can't autoformat broken indentation with significant whitespace since it would make the program not parse (or parse incorrectly)
I was responding to > mismatched tabs/spaces being used for indentation between team members
Rhombus Language 1.0
91–100 of 115 posts
Re: Rhombus Language 1.0
#92Earlier quoted context omitted.
> It is not very readable. That holds true only for two cases: - For a programmer who never learned Lisp as their first language. I have met people who learned Clojure as their very first PL and they said it was fun. Later there were utterly confused about Java, Python and Javascript. Going the opposite may feel confusing and identity-breaking. - Reading static code. In a sense, it can be a bit harder to read a wall…
> For a programmer who never learned Lisp as their first language Maybe . But I have never heard anyone say that Python is hard to read, and it's one of the most common complaints against Lisps. Just looking at them both it's hard to imagine how one could seriously believe that s-expressions are more readable. `(== a b)` is clearly worse than `a == b`. Even JavaScript programmers know that. > they'd connect to the li…
It's clearly worse just because it moved from infix to prefix and is wrapped by parens? Is `(* (+ a b) (+ c d))` clearly worse than `(a + b) * (c + d);`? Both have a bunch of parens, and one even has a semi colon.
This works both ways. `(list 1 2 3)` is clearly better than:
var l = new List();
l.add(1);
l.add(2);
l.add(3);
It's also better than `var l = [1, 2, 3];`How often are you trying to make sense of a bunch of infix arithmetic operations when you're programming? Separately, how often are you creating data structures, navigating data structures, handling data in the form of JSON or XML, parsing that data into your language's native data structures, etc.?
Reading arithmetic in prefix instead of infix is easy, even if it is counter to how you were taught in elementary school. Working with s-expressions for code and data is clearly better than whatever syntax your language uses for code and either directly instantiating data or reaching for JSON or XML.
> justify its lack of static typing
Racket has both Typed/Racket as well as contracts.
Re: Rhombus Language 1.0
#93Earlier quoted context omitted.
> It is not very readable. That holds true only for two cases: - For a programmer who never learned Lisp as their first language. I have met people who learned Clojure as their very first PL and they said it was fun. Later there were utterly confused about Java, Python and Javascript. Going the opposite may feel confusing and identity-breaking. - Reading static code. In a sense, it can be a bit harder to read a wall…
> For a programmer who never learned Lisp as their first language Maybe . But I have never heard anyone say that Python is hard to read, and it's one of the most common complaints against Lisps. Just looking at them both it's hard to imagine how one could seriously believe that s-expressions are more readable. `(== a b)` is clearly worse than `a == b`. Even JavaScript programmers know that. > they'd connect to the li…
I already pre-empted that: readability tracks what you learned first and how much you've practiced, and you trying to restate the familiarity effect as if it refutes it. You're measuring familiarity, not intrinsic readability. If you ask people about less popular language, say Haskell, yeah, they'd complain about its "readability" too.
> most common complaints against Lisps
Well, they are wrong on the other side of the fence. There are thousands of Lispers who'd say exactly the opposite, that: "Lisp is by far more readable than anything else"
You're cherry picking some fictive example about syntax, well, it's not a convincing one, comparing more than just a and b, blows up quickly, innit? `a === b && b === c && c === d`, while in Lisp it remains uniform `(= a b c d)`.
Lisp just uses one rule everywhere. "One uniform rule" vs "prefix for functions, infix for some operators, with a precedence table". You ever thought about that? You think you're getting an aesthetic point for binary operator example, while disregarding a bunch of layers that scream "simplicity".
> is the same cop-out Ruby programmers use
It's not the same, you clearly speaking as someone without honest, heartfelt attempt to use any modern Lisp dialects, like Clojure, Fennel or Jank. Honestly, try using Clojure, (re)write some personal shell scripts in babashka. It's truly great, and I'm saying that as someone who has used different languages, varied in paradigms. Interactive eval is not a substitute for static checking and I never offered such stance. Not to mention the enormous amount of research and experimentation on type systems that's been done by Lisp communities.
Re: Rhombus Language 1.0
#94Earlier quoted context omitted.
> I just don't like them That is what I don't get. I have used many different languages, and often is not the syntax that I don't like - I may dislike the semantics, the runtime, the tooling, but syntax, really how? It's like "I hate Greek alphabet", even though this is a weird comparison - alphabet is a flat bag of arbitrary symbols with no structural role, so disliking it sounds incoherent by construction. I just c…
That's precisely the issue: there is only one syntactic form. Everything blends together and ends up looking the same. It makes my eyes hurt.
I get bonkers hysterical laughs sometimes, grabbing a piece of Java, Typescript or Python and asking an LLM how a similar code would look in Clojure. That doesn't universally yield "better" results; sometimes, the code may look certifiably more cryptic than the original - brute-forcing an algorithm into Lisp can look very terse, but that's up to the coder - I am capable of writing cryptic yet functioning code in any language.
Re: Rhombus Language 1.0
#95I'm coming from Go, so apologies in advance if these questions seem a little weird: How do I distribute my Rhombus programs? Can I cross compile to other architectures/OSs, ideally with a static binary? What about libraries? Is there a good package manager? I presume from the post that the library ecosystem is pretty immature (maybe the Racket ecosystem is larger). Can I easily build a CRUD web app? Is concurrency ea…
> How do I distribute my Rhombus programs? Can I cross compile to other architectures/OSs, ideally with a static binary? You can compile them inside DrRacket and distribute the .exe or equivalent. I used that a few times to send programs written in Racket to coworkers that are not programmers (remember to add an icon so it looks professional). You can use the command line too, and it support cross compiling, but I ne…
Re: Rhombus Language 1.0
#96Earlier quoted context omitted.
> It is not very readable. That holds true only for two cases: - For a programmer who never learned Lisp as their first language. I have met people who learned Clojure as their very first PL and they said it was fun. Later there were utterly confused about Java, Python and Javascript. Going the opposite may feel confusing and identity-breaking. - Reading static code. In a sense, it can be a bit harder to read a wall…
> For a programmer who never learned Lisp as their first language Maybe . But I have never heard anyone say that Python is hard to read, and it's one of the most common complaints against Lisps. Just looking at them both it's hard to imagine how one could seriously believe that s-expressions are more readable. `(== a b)` is clearly worse than `a == b`. Even JavaScript programmers know that. > they'd connect to the li…
if (a === b && b === c && c === d && d == e)
To scheme's
(= a b c d e)
JavaScript clearly has the upper hand.
Re: Rhombus Language 1.0
#97Earlier quoted context omitted.
I was responding to > mismatched tabs/spaces being used for indentation between team members
Well yes. Say you check out a project that's all tabs but your editor is using spaces for indentation. You change a line and now the program is broken. Calling the auto-formatter won't help you.
It's really not an issue at all in practice. The issue of making moving code more awkward is true but really barely an inconvenience. It's not difficult to select it and press tab a couple of times.
As I said the biggest issue is with closures and expressions that you might want on one line.
Re: Rhombus Language 1.0
#98Earlier quoted context omitted.
> For a programmer who never learned Lisp as their first language Maybe . But I have never heard anyone say that Python is hard to read, and it's one of the most common complaints against Lisps. Just looking at them both it's hard to imagine how one could seriously believe that s-expressions are more readable. `(== a b)` is clearly worse than `a == b`. Even JavaScript programmers know that. > they'd connect to the li…
> `(== a b)` is clearly worse than `a == b` It's clearly worse just because it moved from infix to prefix and is wrapped by parens? Is `(* (+ a b) (+ c d))` clearly worse than `(a + b) * (c + d);`? Both have a bunch of parens, and one even has a semi colon. This works both ways. `(list 1 2 3)` is clearly better than: var l = new List(); l.add(1); l.add(2); l.add(3); It's also better than `var l = [1, 2, 3];` How ofte…
Yes.
> `(list 1 2 3)` is clearly better than ...
It's not better than `[1, 2, 3]` is it?
> How often are you trying to make sense of a bunch of infix arithmetic operations when you're programming?
Very often??
Anyway it isn't just the lack of infix that makes it difficult to read - there's also the crazy bracket matching, and the lack of syntax in general. Yes that is a strength when writing parsers, macros and so on, but it also definitely hurts readability.
Re: Rhombus Language 1.0
#99Earlier quoted context omitted.
> In all my time I have never come across a single Lisper, neither in person nor online, and I know far more than a few dozens, who once grokked the REPL-driven workflow and the structural editing idioms only to later, for whatever reason, suddenly start disliking or even hating s-expressions. And we've never seen bullet holes in these parts of the plane, so there's no point putting armour there.
It's not about survivorship bias, it's about notation. It's like "hating Leibniz's dy/dx because Newton's dot notation already exists" and I'm arguing that people don't just "hate the notation", they simply misunderstand the principles of calculus. I'm not saying that notation preferences don't have consequences, but in this case, I've seen far too often the evidence that programmers ignore the underlying ideas outri…
Ok but where is the dot notation? If this is the only notation available for those ideas, how can you be sure that it's the ideas that are the problem and not the notation?
> I've seen far too often the evidence that programmers ignore the underlying ideas outright, simply because they didn't like the notation on first sight.
Then why are you opposed to people presenting the ideas with different notation, if the ideas are what you think is valuable?
Re: Rhombus Language 1.0
#100Earlier quoted context omitted.
It's not about survivorship bias, it's about notation. It's like "hating Leibniz's dy/dx because Newton's dot notation already exists" and I'm arguing that people don't just "hate the notation", they simply misunderstand the principles of calculus. I'm not saying that notation preferences don't have consequences, but in this case, I've seen far too often the evidence that programmers ignore the underlying ideas outri…
> It's not about survivorship bias, it's about notation. It's like "hating Leibniz's dy/dx because Newton's dot notation already exists" and I'm arguing that people don't just "hate the notation", they simply misunderstand the principles of calculus. Ok but where is the dot notation? If this is the only notation available for those ideas, how can you be sure that it's the ideas that are the problem and not the notati…
What are you talking about? I'm not opposed to anything, I don't know where that conclusion comes from. I'm just trying to explain why people hate s-expressions. Because of the unfamiliarity. I remember the time before I convinced myself to give Lisp a try - I'd look at it with all my previous knowledge of other programming languages and just didn't see it. I thought it was "unreadable", "weird", and had no merits in the "modern" world of computing. I was convinced that Lisp is archaic and there's no practical reason to use it. I was wrong on all counts. Learning Lisp and using it in real projects made me appreciate programming more, it taught me things that I haven't imagined before, my only regret that I didn't do it sooner.