Earlier quoted context omitted.
It‘s a source of problems with mismatched tabs/spaces being used for indentation between team members for fairly little upside. Imo it also makes moving blocks of code more cumbersome.
Shrubbery, Rhombus's first-pass indentation-sensitive syntax, has a syntax form to facilitate copy-paste. With guillemets, « and », you can make a section of Shrubbery code indentation-insensitive. The idea for copy-paste it to "armor" the section you want to copy with guillemets in the right places, and unarmoring it after posting. This needs editor support to do fluidly, but imo it's much better than trying to copy…
Rhombus Language 1.0
101–110 of 115 posts
Re: Rhombus Language 1.0
#102Earlier quoted context omitted.
> `(== 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…
> Is `(* (+ a b) (+ c d))` clearly worse than `(a + b) * (c + d);`? 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 ge…
If you want to change your vector to a linked list, in Lisp, you can change from `(vector 1 2 3)` to `(list 1 2 3)`. If you have some array `[1, 2, 3]` and you want to change to a linked list for whatever performance concern, you'd have to replace `[1, 2, 3]` with..
var list = new List();
l.insert(1);
l.insert(2);
l.insert(3);
Maybe this example is contrived, but I feel like it is much more of a realistic example to want to change from an unsorted map to a sorted map. You can't just simply switch from `{k1: v1, k2: v2}` to `sorted{k1: v1, k2: v2}` as you could do in Lisp from `(unsorted-map k1 v1 k2 v2)` to `(sorted-map k1 v1 k2 v2)`. You'd need to write out all of your operations as with the list example. And, all of a sudden you are stuck with using the unsorted data structure for your JSON serialization rather than having the ability to reach for a sorted data structure.`(date 2026 6 1)` is better than "2026-06-01" because the latter isn't a date, it's a date string. `(date 2026 6 1)` is better than `new Date(2026, 6, 1);` because the former is how it is serialized and can be deserialized.
> there's also the crazy bracket matching
At least with reading code, there is almost no reason to try to match brackets at all. It's like complaining about having to read semi-colons in languages that use them to signify the end of a statement. When writing code, Lisp is just another language like all the rest that benefit from an IDE that is syntax-aware. Having highlights for the starting paren and ending paren for an expression and being able to just select a particular expression make bracket matching fairly effortless.
Re: Rhombus Language 1.0
#103Earlier quoted context omitted.
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.
This is literally not a problem. All Python projects use 4-space indentation. You would not have your editor configured for tabs when editing a Python program. 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…
Tell that to the one team at my old workplace that used spaces for all their scripts.
Like I said it’s a stupid source of errors that can be mitigated through style guides and tooling but it’s still a source of errors.
Re: Rhombus Language 1.0
#104Earlier quoted context omitted.
Racket is already approachable and easy to use for everyday purposes
Being in the Lisp family, an often heard criticism is its use of parenthesis (disclaimer: I understand the difference between syntax & semantics. But syntax does matter). Is this an issue in Rhombus? Or Racket?
Rhombus is a novel notation (that is implemented as a Racket macro) which eliminates the need for almost all parentheses. They have a handful of code snippets on their homepage.
[1] Racket doesn't distinguish between parentheses and brackets, so programs could be paren-free. In practice, brackets are only used in a few key places: https://docs.racket-lang.org/reference/if.html#%28form._%28%...
Re: Rhombus Language 1.0
#105Earlier quoted context omitted.
This is survivorship bias. People who don't like s-expr aren't lispers. I've used Lisp before. I can read s-expr code. Unfamiliarity is not the issue. I just don't like them. I don't like Haskell/ML either, and I've written large projects in both, so it's not a Lisp-specific thing.
> 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…
I just don't like them
That is what I dont get I have used many different languages. and often is not the syntax that I dont 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 cant ever get over .sexpressions hate. in such a way like. What are you even talking about. Theres practically zero syntax in Lisp.
I can only think of the word disingenuous when I can see someone outright refusing the possible downsides of s-expressions (you probably meant zero syntax since it's still possible to have syntatic s-expressions.).Re: Rhombus Language 1.0
#106Earlier quoted context omitted.
> 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…
Thank you! I appreciate your taking the time to reply
I forgot this one. https://pkgs.racket-lang.org/
Many of them are in the "main distribution" that is what is installed by default. Most packages only include the bindings for Racket, but as I said before they can be used from Rhombus too. I expect people to slowly add the bindings for Rhombus.
Re: Rhombus Language 1.0
#107Earlier 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…
This is your comment but with "zero syntax": I just don't like them That is what I dont get I have used many different languages. and often is not the syntax that I dont 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 soun…
Re: Rhombus Language 1.0
#108Earlier quoted context omitted.
This is survivorship bias. People who don't like s-expr aren't lispers. I've used Lisp before. I can read s-expr code. Unfamiliarity is not the issue. I just don't like them. I don't like Haskell/ML either, and I've written large projects in both, so it's not a Lisp-specific thing.
Considering your experience and preferences, what do you like?
Re: Rhombus Language 1.0
#109Earlier quoted context omitted.
This is your comment but with "zero syntax": I just don't like them That is what I dont get I have used many different languages. and often is not the syntax that I dont 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 soun…
I never said s-expressions have no downsides, I merely tried to explain why I think people hate them. They do have downsides - diffing and merging and complex macros are good examples - but calling Lisp code outright "unreadable" is equally disingenuous. There are trade-offs, but they are not without benefits, and often the benefits do outweigh the cons. It's just sad that people choose to completely ignore them simp…
You didn't say it directly, but it's implied from what all you said in this thread, just as no one in this thread said "outright unreadable". Up until now, there's no acknowledgement of the downsides and you refuse to even understand the dissenting point of view. If you truly do acknowledge the downsides, you would (try to) understand why people "hate" it. But no, "people are too incoherent to not like the beautiful perfection of s-expressions" as the lines in between would say.
Re: Rhombus Language 1.0
#110Earlier 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. 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…
> why are you opposed to people presenting the ideas with different notation 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 jus…
You seemed to be implicitly claiming that there was no point presenting the ideas with a different syntax.
You're making very strident claims based on very little evidence. Maybe you're right, but I think we should at least entertain the possibility that people who think they hate s-expressions actually do hate s-expressions - which would be an ample explanation for why those people never got into Lisp.