7 ms·
here is the "goal" page: https://rhombus-lang.org/goal.html https://rhombus-lang.org/goal.html (with related paper & talk)
by hudon 2y ago
here is the "goal" page: https://rhombus-lang.org/goal.html https://rhombus-lang.org/goal.html (with related paper & talk)
- rednafi 2y agoThanks. It’s nice to see at least a few in the FP community recognize that Lisp dialects, with their parenthesis-ridden S-expressions, are hard to read and write.
- MathMonkeyMan 2y agoI'd say it's more like "we've been teaching Scheme for decades, and we just have to admit that most people don't like S-expressions."
- fc417fc802 2y agoAssuming it works equally well, people like what they're used to. On top of that programming in the AST requires you to think about things a bit differently which only widens the gulf. That said mathematical code is one of the few cases where I don't like s-exp as much. Having easy access to "real" macros tends to make up for it, but I just don't find infix plus functional very convenient when number crunching. It's likely a skill issue on my part but that doesn't change the end result.
- pjmlp 2y agoThis is nothing new, see - M-expressions (https://en.wikipedia.org/wiki/M-expression https://en.wikipedia.org/wiki/M-expression) - Lisp 2 (https://en.wikipedia.org/wiki/LISP_2 https://en.wikipedia.org/wiki/LISP_2) - Dylan (https://en.wikipedia.org/wiki/Dylan_(programming_language) https://en.wikipedia.org/wiki/Dylan_(programming_language) - Wolfram (https://en.wikipedia.org/wiki/Wolfram_Language https://en.wikipedia.org/wiki/Wolfram_Language) - Julia (https://en.wikipedia.org/wiki/Julia_(programming_language) https://en.wikipedia.org/wiki/Julia_(programming_language)) However the large majority of Lisp folks end up using plain old Common Lisp and Scheme with their S-expressions, because it is easier, it is like telling written languages with symbols are harder than those with latin characters, it is only hard to read and write until one actually learns them.
- spdegabrielle 2y agoThis is a new approach :) For more details see the paper https://dl.acm.org/doi/pdf/10.1145/3622818 https://dl.acm.org/doi/pdf/10.1145/3622818 or watch the talk https://www.youtube.com/watch?v=hkiy1rmKA48 https://www.youtube.com/watch?v=hkiy1rmKA48
- pjmlp 2y agoSure, and great that other attempts are being made, only pointing out to the OP, that there is previous work on this domain. Thanks for the links.
- f1shy 2y agoAlso sweet expressions [0] [0] https://dwheeler.com/readable/sweet-expressions.html https://dwheeler.com/readable/sweet-expressions.html
- breuleux 2y agoJust going to throw my own (old) attempt in here. - Liso (http://breuleux.net/blog/liso.html http://breuleux.net/blog/liso.html)
- cardanome 2y agoIt is hard to have empathy for a problem you don't have. I have only recently become open to the idea that people might legitimately experience pain using an unfamiliar syntax. For me, it is a non-issue. From Lisp to C to APL to Forth to Prolog, syntax was never an issue for me. I greatly enjoy learning languages with different approaches to syntax. It has never caused me pain. Only joy. Then again programming languages are my special interest. It kind of easy to dismiss complains about syntax as intellectual lazyness. After all, learning Lisp-style syntax takes maybe a few hours tops, how can that be a problem? Syntax is just the easiest to criticize but would these people really learn the language if it had curly braces or is it just an excuse? I don't know. I am the kind of person whose day gets ruined by an app minimally changing its UI so maybe I shouldn't be too judgy about syntax sensitive people.
- lproven 2y ago> It is hard to have empathy for a problem you don't have. I do not find this myself, and it is a standard part of the design of a lot of commercial software: intentionally thinking about disabilities, impairments, and difficulties, and working on accommodating people who struggle with these things. Examples: * GUIs that flash the screen to signify a bell sounding for deaf users. * Keyboard-operated GUIs for users with motor or sensory impairments who can't use pointing devices. (Blind users can't see a mouse pointer so can't use one.) * UIs with alternate colour schemes for people with colour-blindness. It has long been a source of irritation for me that FOSS tools are so resisitant to implementing this. > I have only recently become open to the idea that people might legitimately experience pain using an unfamiliar syntax. Good gracious. That is a surprise to me. I love the _idea_ of Lisp and have written about it at length, but I find it, and APL, and many other languages, impenetrable. For ordinary non-technical people, "algebra" is a synecdoche for "something that is really hard to understand". Algebraic notation is just about the maximum level of mathematics that many non-specialists can handle. The idea of a letter or symbol standing for any number so that it is possible to reason about arithmetic without specifying the numbers being manipulated is brain-bending for the majority of people. And yet, this is the sine qua non of programming languages. It's the first level you must master. C is a very simple language. It has terse notations for common operations, such as incrementing a value. It is not "low level". It vaguely represents the machine architecture of a PDP-11 from 50 years ago. It's nothing like any 21st century CPU. It is not "close to the metal". It is not "portable assembler". But it's about as simple as a lot of people can handle, so thousands love it. Go lower level -- to assembly language -- and you put off the majority of those who aren't genius-level. Go higher-level, to matrix maths or to working directly in lists and ASTs, and you put off loads more. Go sideways to working with stacks, like Forth, and you dissuade a load more. Eliminate arithmetic precedence with RPN and you alienate thousands more. A few love their HP calculators, or Postscript, but most can't handle it. And they might not know why they can't but they are angry when they are told to just ignore an unscalable wall. Put an impassable barrier in someone's path, tell them it will fade away and stop being noticeable, and what would you expect but anger and resentment? This is why I argue that BASIC has great merit that is missing from things like Python. Not syntactic whitespace: Python mixes text with code in output, it forces beginners to deal with abstract concepts like "editors" and "files", plus the ubiquitous OOPS -- all things that are meaningless to beginners. BASIC replaced this with the simple brilliance of _line numbers._ And so the pros hate it and take pride in hating it -- because contempt culture is endemic in software. https://blog.aurynn.com/2015/12/16-contempt-culture https://blog.aurynn.com/2015/12/16-contempt-culture C, also, is extremely dangerous, and this appeals to the machismo of stereotypically nerdy geek types, who lack the conventional signs of machismo. Thus, take C, make it safe by removing all the dangerous bits, but keep that terse syntax, and the result is Java -- loved by thousands of workman coders who are untrained but like an easy tool. Much of world business is glued together in Java. But it lacks the element of danger so the macho nerds detest it. Contempt culture again.