9 ms·
Red: A programming language inspired by REBOL
- ducktective 5y agoThis 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 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 https://www.youtube.com/watch?v=-KqNO_sDqm4 Red sample programs: https://github.com/red/community/ https://github.com/red/community/ Especially this `parse` dialect seem to be a "readable" regexp: https://github.com/red/community/tree/master/parse https://github.com/red/community/tree/master/parse
- deleted 5y ago[deleted]
- 7thaccount 5y agoOn 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.
- tigershark 5y agoAs far I remember it started declining after they jumped on the ICO bandwagon. I didn’t really follow it that much after that..
- analognoise 5y agoYeah I stopped being interested as soon as they started talking about some dumb-ass coin.
- djedr 5y agoWhat 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.
- azhenley 5y agoThis 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=18843544 https://news.ycombinator.com/item?id=8611922 https://news.ycombinator.com/item?id=8611922 https://news.ycombinator.com/item?id=14793517 https://news.ycombinator.com/item?id=14793517
- bakoo 5y agoIn 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.
- hliyan 5y agoI've only obliquely heard of REBOL. I looked at this article (linked from the Red documentation) about GUIs. You're spot on: extremely terse but readable - http://www.mycode4fun.co.uk/About-Red-Programming http://www.mycode4fun.co.uk/About-Red-Programming
- azhenley 5y agoFirst 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 5y agoOf 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.
- olah_1 5y agoNo 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 5y agoAutomated 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/ 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/ 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 5y agoDiagrammar looks interesting. Is there enough demand for it though? Wish y'all the best!
- greggirwin 5y agoThat's what we're trying to find out. :^) In many ways it is a guinea pig, and something we wanted for ourselves. Very niche, to be sure, but if you've ever had to write grammars, the alternatives are EMACS/VIM + YACC/Bison or XText if you're in the Java world and can be locked in and handle the weight. It's funny to me what a tough sell it is, but that's true for all new dev tools. While the main purpose is to help anyone, whatever grammar they choose (ABNF, EBNF, etc.), it all compiles down to Red `parse` internally, so if you use Red, your parser is already done. If you use the native `parse` rules to begin with, you can even include actions. Testing in it is cool too. But really it's to try and get people to see that documenting your design (meaning you have a design to begin with), is valuable.
- svnpenn 5y agocompiling a simple program takes 30 seconds: https://github.com/red/red/issues/3412 https://github.com/red/red/issues/3412
- greggirwin 5y agoDid 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-395951364 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 5y agoDid 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?
- greggirwin 5y agoSo you're changing your argument now, that's fine. Let's see. Java? Python? Ruby? JS? PHP? Any .NET lang? Go is on the rise, yes. As is Rust. But D? Nim? Do you really consider those major languages? Enough silly arguments though. We think it's special to offer options, because one size does not fit all, but we hope a common syntax can fit most. So you have the option to 1) use an external runtime, which makes all your EXEs tiny (say they run in a common system, even against a custom Red runtime you build); 2) compile to native code and get a single, no dependencies, EXE; 3) "encap" your code with the compiled runtime so you can leverage all dynamic features of Red, some of which can't be compiled; 4) compile the runtime so it can be accessed from other languages and environments. 5) Write in pure Red/System, which is basically like writing in C. Maximum control, no high level features. Tiny EXEs, no runtime, fast compilation. - https://www.red-lang.org/2017/03/062-libred-and-macros.html https://www.red-lang.org/2017/03/062-libred-and-macros.html (please note the Excel+Red Pong demo)
- TeaDude 5y agoRed is kind of an exiting language. I'm really fond of it's whole "one language fits all" idea. I hope more visible updates come soon and I'm really looking forward to the day it becomes self hosted.
- Bluestein 5y agoREBOL was so far ahead of its time ...
- vincent-toups 5y agoAs 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 5y agoWhat mess do you mean? The language, what happened to the language because of Rebol Technologies, or something else?
- ducktective 5y agoCan 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 5y ago> 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.
- freemint 5y agoI gave a lightning talk in (German) about meta programming and equivalence of code and data in PicoLisp by example. 16:16 https://media.ccc.de/v/froscon2018-2322-lightning_talks#t=977 https://media.ccc.de/v/froscon2018-2322-lightning_talks#t=97... It should give you place to get started. The cliff node what I did is the I wrote a function that replaces things in a list of lists/a tree and used that rewrite the definition of the function to make it more readable. While it is an toy example I hope it helps.
- Normille 5y agoShould mention it won't run on 64bit OSes: https://github.com/red/red/issues/4359 https://github.com/red/red/issues/4359
- spijdar 5y agoWon'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.
- exikyut 5y agoWait what. So basically no more NTVDM now, forevermore? :(
- anta40 5y agoYeah that's still an unsolved issue. Now I mostly work on macOS for mobile apps development, and sadly can't run Red.
- greggirwin 5y ago64-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.