[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)