[HN Gopher] Red: A programming language inspired by REBOL ___________________________________________________________________ Red: A programming language inspired by REBOL Author : ducktective Score : 69 points Date : 2021-07-14 17:05 UTC (2 days ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | olah_1 wrote: | No release since 2018? | | They seemed to have been derailed by the focus on crypto-currency | as a solution to funding. | | In a bitter irony, they were too early to the party. Had they | continued momentum on regular work, they could now have used | gitcoin to fund work. | | I hope this project continues though. I wish them nothing but the | best! | greggirwin wrote: | Automated builds are the way to go. We're revamping our release | process to avoid stale-binary syndrome. If you don't follow us | on Gitter, where you'll see active chat every day, you can look | at https://progress.red-lang.org/ to see what's been done. Or | just look at github graphs of commits. | | We absolutely lost some focus with the blockchain aspect, and | are rolling with all the punches as best we can. Sustainability | is key, so we're also working on commercial products to that | end. Got our first one out last year, and the next one is in | the planning stages. | | Our first product is https://www.redlake- | tech.com/products/diagrammar-for-windows..., and all features | are enabled for free. The only limitation is that exported | images are watermarked. We also sponsor licenses for other FOSS | projects. | 7thaccount wrote: | Diagrammar looks interesting. Is there enough demand for it | though? Wish y'all the best! | Bluestein wrote: | REBOL was so far ahead of its time ... | vincent-toups wrote: | As an old Lisp/Scheme guy all I can think whenever I try to | figure out what is going on with Rebol/Red is "What a mess." | yawn wrote: | What mess do you mean? The language, what happened to the | language because of Rebol Technologies, or something else? | ducktective wrote: | Can you please elaborate? ;) As a person who has 0 knowledge | on the likes of PROLOG, LISP, etc...What makes LISP and LISP- | like languages so great? I tried to search YouTube on the | merits of LISP or this notion of "data as code" but nothing | tangible came up... I mean LISP is one of the oldest | languages with really weird features w.r.t to C-like | languages but in practice we only see C-likes...even Rust is | not so different from this family of languages... | chriswarbo wrote: | > I mean LISP is one of the oldest languages with really | weird features w.r.t to C-like languages but in practice we | only see C-likes | | Scripting languages are much closer to Lisp than to C (e.g. | compare Python to Racket). | | IIRC Ruby, Javascript and Smalltalk (the latter inspiring a | lot of OOP languages) were all explicitly designed to be | like Lisp. | macintux wrote: | Any recommended reading? | sreekotay wrote: | The main site pretty good. | | http://www.rebol.com/docs.html | | Note, OP likely talking about Rebol 2. | | Rebol 3 and Red were/are (sort of) forks... | jibbit wrote: | One of my modest ambitions is to finally understand how Scopes | work in REBOL | greggirwin wrote: | One of our team summed it up very nicely: Pragmatically, this | design notion comes from Red being a data format first (code | is data and data can be used as code). To mimick scoping at | data level, context has to be implicit. As a consequence, any | block of code e.g. [take the spoon] can be passed around, | evaluated on demand in any place, used in user-defined custom | loops, without losing the original meaning even if all it's | words `take`, `the` and `spoon` were defined differently in | those loops or other functions. | | Rebol's designer called this "definitional scoping". What it | means is that _where_ a word (variable) exists is important. | The "where" part leads to | https://github.com/red/red/wiki/%5BDOC%5D-Why-you-have-to- | co... and is one of the big things that messes with your head | when you come to Red from other langs. :^) For many people | this stays invisible forever and things just work. But it | doesn't take much for people to step off the ledge and into | deep water, because things look so easy and it seems like you | should be able to just pass blocks around and have everything | work magically. It's internally consistent in how it works, | but that's hard to see without tooling we have yet to build. | wizzwizz4 wrote: | Oh, so it's like Rust's `macro_rules!` identifier rule? | | Rust's `macro_rules!` macros operate on ASTs, so the `x` | inside a macro definition is different to the `x` in the | scope where the macro is used, even though the _textual_ | representation of the identifier the macro inserts into the | place it 's used might be identical. This means that: | macro_rules! add_two { ($i: ident) => { | let x = 2; $i += x; } } | fn main() { let mut x = 5; add_two!(x); | println!("{}", x); } | | _appears_ to become: fn main() { | let mut x = 5; let x = 2; x += x; | println!("{}", x); } | | but it still prints 7, not 4, because they're two different | `x`s. (Of course, Red has first-class metaprogramming, so | it's a lot better.) | greggirwin wrote: | Something like that, yes. Red has macros as well, with a | key difference being that at compile time, for all | macros, there is no runtime context to bind to. Sometimes | this helps, sometimes it's a limitation. For example, | interpolation at runtime can be tricky, but isn't as | flexible if done with macros. | xvilka wrote: | I think modern concept-equivalent would be Racket with its | visual features out of the box. In practice, though, it's | unsustainable because of different OS graphics stack, | complexity of frameworks like Qt and GTK that themselves | changing often, the speed of changes in underlying draw | technologies, etc. | azhenley wrote: | First line of the readme: _Red is a *new* programming language | strongly inspired by Rebol_. | | There are over 13,000 commits in nearly 10 years and it has been | discussed dozens of times on HN. I understand it isn't old, but | is this actually new? | greggirwin wrote: | Of course we have to define "new". And consider that it _was_ | new when that was written. :^) | | It shares syntax with Rebol, 95% of it anyway, but many other | "new" languages share syntax with older languages. In any case, | there are many new things about it, including being a from- | scratch implementation. | | - Native GUI system (non-native in development for those who | want to go that way) driven by a GUI DSL, with full reactivity | built in. - Reactivity and ownership features are built into | the core object datatype, so they can be used for more than | GUIs. - System level DSL. Red/System is a C level language, but | is a dialect of Red. It compiles directly to machine code, not | ASM or C. Cross compilation is built in as well. Again, no | external tools needed. - Android is out of date, but it also | requires no JDK or other IDE. | | So there are at least some things that make it new-ish. | Normille wrote: | Should mention it won't run on 64bit OSes: | | https://github.com/red/red/issues/4359 | spijdar wrote: | Won't run on 64 bit _only_ OSes. OSes with 32 bit multilib | runtimes will do fine. | | Worth pointing out that those are becoming increasingly | uncommon, with Apple already having dropped it, and Microsoft | dropping it from Windows 11 (EDIT: okay, I misremembered: | Microsoft is dropping support for 32 bit installs, not WoW64). | For the moment, 32 bit x86 multilib is still common on Linux, | but I wouldn't be surprised to see it start to disappear in the | next 5-10 years. | | So this isn't an immediate problem for _most_ people not | running MacOS, but will eventually be a pretty big problem in | the next decade for this project. | greggirwin wrote: | 64-bit is high on our list, but also a huge task, so needs a | large block of time where other things won't get done. We have | some big features we're pushing on now, and will update our | roadmap accordingly. | anta40 wrote: | Yeah that's still an unsolved issue. | | Now I mostly work on macOS for mobile apps development, and | sadly can't run Red. | ducktective wrote: | This language has been under my radar for some time. Recently, I | asked a question about "automatic GUI creators" [1] but | suggestions were not what I was looking for. | | [1]: https://news.ycombinator.com/item?id=27820141 | | Then, I decided to google some keywords (like GUI DSLs) limiting | it to HN threads. Someone suggested: 'this is essentially | REBOL...'. Then I went to this rabbit-hole of REBOL, RED, | homoiconicity, DSLs.... | | Fun Fact: Did you know the whole compiler and interpreter of Red | with all batteries included (including cross-platfrom GUI | bindings) is a ~1 MiB single binary?!! | | Some links: | | Red's originator talk: | https://www.youtube.com/watch?v=-KqNO_sDqm4 | | Red sample programs: https://github.com/red/community/ | | Especially this `parse` dialect seem to be a "readable" regexp: | https://github.com/red/community/tree/master/parse | 7thaccount wrote: | On my radar for ages as well, but it's never quite ready. Very | ambitious. | | If they ever get it working as intended, it will be a game | changer to be able to write small executables with a GUI, | DSLs...etc while staying so lightweight. Good luck to the team. | It's been a little weird that I haven't seen a new blog post in | so long (almost a year), when updates used to happen fairly | often. | [deleted] | svnpenn wrote: | compiling a simple program takes 30 seconds: | | https://github.com/red/red/issues/3412 | greggirwin wrote: | Did you notice a) that the ticket is closed, and b) it was a | bad ticket to begin with? See this comment in there: | https://github.com/red/red/issues/3412#issuecomment-39595136... | | Yes, if you rebuild the runtime when you compile, it's slow. If | you use dev mode, because you're not changing anything in the | runtime, it's fast. | svnpenn wrote: | Did _you_ notice, that pretty much every single major | language today offers static compile? C, Go, Rust, D, Nim. | Why does Red think its special to not offer a static compile? | azhenley wrote: | This language has been discussed a lot here over the years. A few | big ones: | | https://news.ycombinator.com/item?id=18843544 | | https://news.ycombinator.com/item?id=8611922 | | https://news.ycombinator.com/item?id=14793517 | bakoo wrote: | In my opinion REBOL was a great idea, and I also wrote quite a | few extremely terse but readable inhouse apps before REBOL v2 | development completely halted, and a useable v3 never | materialized. As proprietary payware, it didn't really stand a | chance. | | I hope Red turns out better, but they're a bit late to the party, | and need a lot more hands to evolve. Since I'm not in a position | to help, I'll stick with Go + fyne for whatever can't be a web | app. | djedr wrote: | What is nicer syntax-wise in Red/REBOL compared to Lisp is the | slightly lower number of brackets and nesting. And the C-style | formatting of brackets -- with closing brackets aligned with | their counterparts. It is a little more verbose, but easier to | read. | | Plus the square brackets are easier to type than the round ones. | | Overall the design of REBOLs is pretty interesting and IMO | somewhat reminiscent of Tcl. Both are certainly good inspirations | for minimalist language designers. ___________________________________________________________________ (page generated 2021-07-16 23:01 UTC)