top | item 14793517

Red Programming Language 0.6.3

215 points| ZenoArrow | 8 years ago |red-lang.org

54 comments

order
[+] throwaway7645|8 years ago|reply
I'm always excited for a new Red release. I'm glad they're taking time to get the GUI DSL right for 10 platforms, but I hope it doesn't come at the detriment of enhancements to Red/System, Multi-Core, Concurrency, and all the other promised goodies. The thing badly needed at this point I think is better doc. I know it is ~95% compatible with REBOL, but honestly the REBOL doc is very basic. It shows you how to do a lot of neat things with the built in DSLs, but nowhere and i mean anywhere does it show you in any detail how to implement your own DSL, while you frequently hear about how powerful the dialects are. I'm still super pumped about this language and am thrilled for each new release.
[+] akavel|8 years ago|reply
I also tried to learn the "PARSE dialect" (the DSL coding mechanism of REBOL/Red), as this is what's often claimed to be the crucial differentiating factor (the "main idea") of REBOL/Red - but I failed, because of what OP mentions. The REBOL docs feel to me more like an example-based guide, than a solid RTFM-grade manual. I find such a guide OK and valuable as a tutorial, a starting point, and to teach idioms and mindset; but then I need a reference manual to clarify all details and fully explore the topic. Also read some third-party articles on PARSE, but none of them were comprehensive enough (AFAIR, mostly being tutorial-like too). Lua and Go do it well in my opinion - they both provide a solid tutorial-like experience, but then a full-blown, well written reference manual too.
[+] axaxs|8 years ago|reply
Am I reading this right? A single binary, less than 1mb in size, that handles GC and cross compiles? Color me impressed. Looking at platforms, does it not do 64 bit?
[+] throwaway7645|8 years ago|reply
You're correct. It's crazy what you can do when you don't bundle 8 zillion MB of C in your install. Rebol is the original parent language, but it doesn't have a system language to compile to, just a < 5 MB interpreter that you could do a lot with. Neat little languages. The creator wanted to take Rebol and write a version that would be the first true "Full Stack" language covering everything from desktop GUI to building OS, to highly advanced parsing, to robotics. If you google it, there is a nice interview with Red's primary author Nenad Rackocevic (forgive spelling) that is from ~2015, but still should be accurate.

Interview:

https://notamonadtutorial.com/interview-with-nenad-rakocevic...

[+] beagle3|8 years ago|reply
Yes. It also handles GUI for Mac and Windows.

The old 32-bit K2 (K language) had a superfast ACID DB, GUI, GC, no dependencies (but also no compilter) and was 250K, so 4 independent platforms would still fit in under 1MB; Arthur is now working on KPARC, which has no compiler but does boot on metal and includes GUI, editor, db, filesystem, network, and a lot more, e.g. this http://kparc.com/edit.k is the implementation of native nano-style GUI editor. ; Last I heard, it was still <500KB.

[+] ncx|8 years ago|reply
> Looking at platforms, does it not do 64 bit?

Right now, it only compiles to 32 bit binaries (which can run on both 32 and 64 bit OS).

64 bit support will come after the compiler is bootstrapped.

> and cross compiles

Yup, easy cross compilation. You do not need different cross compilers for different platforms a la llvm and gcc, a single 1 mb binary can produce binaries for all supported platforms.

[+] christophilus|8 years ago|reply
Yeah. Red continually impresses me. Its documentation is what has kept me from really diving in. But over all, it's an impressive language.
[+] anta40|8 years ago|reply
>> A single binary, less than 1mb in size, that handles GC and cross compiles?

Yeah, me too. I tried reading the Red source code, hmm still couldn't figure it out. Could someone explain how Red achieve this?

Compared to GCC or FPC, Red is obviously very very very tiny :)

[+] Buttons840|8 years ago|reply
Red looks like a good language. They seem to be supporting Linux last though, which has kept me from trying it personally.
[+] ncx|8 years ago|reply
Linux supports everything that Windows and MacOS supports except for GUI.

As for GUI,

https://gitter.im/red/red/welcome?at=595f60f50de4d2545e026e5...

> No timeframe until we find someone to work on it. Though, we should be presenting Red at the GNOME global conf in China on October, so I hope we can find someone motivated and skilled enough there to work on it.

So Linux GUI might come not too late.

[+] tbirdz|8 years ago|reply
Very Cool! I've got to try this out! I'm definitely picking up a bit of a Tcl vibe here, which is another language I've been wanting to try out. Especially with the integrated GUI toolkit, it's giving me some Tk vibes as well.

Does anyone know if there was any direct inspirational link from Tcl to Red/Rebol, or was it just by the nature of the idea of making an extensible langauge suitable for making lots of DSLs in?

[+] greggirwin|8 years ago|reply
Rebol/Red (a.k.a. Redbol) languages inherit from Lisp, Forth, and Logo, along with Self for the object model. Tcl was not an influence as far as I know. There will certainly be other minor influences, as Sassenrath, Ousterhout, and Cowlishaw were all important designers in that era.
[+] SeanDav|8 years ago|reply
Looks interesting, almost too good to be true! How viable is the Android path and is the plan to fully support Mobile features?

Just trying to get an idea of where Mobile development fits into the scene.

[+] ZenoArrow|8 years ago|reply
Android GUI support is planned for 0.6.5. iOS support is planned but not started. Can get some sense of the maturity of different features by looking at the feature and version roadmaps:

http://www.red-lang.org/p/roadmap.html

https://trello.com/b/FlQ6pzdB/red-tasks-overview

It is possible to compile console apps that run on Android right now, though AFAIR this feature isn't fully stable yet.

It's also worth noting that Red can be used as an embedded language. So for example, after 0.6.5 is released, you could have an Android app where the GUI was written in Red, but code managing phone features like GPS could be written in another language.

As for supporting mobile features directly, I imagine some of this will be managed by libraries rather than baked into the language runtime. Worth noting that the module system is planned for 0.8.0. However, it should be possible to write feature rich mobile apps long before then.

[+] ncx|8 years ago|reply
http://www.red-lang.org/2015/12/answers-to-community-questio...

> Will Red get direct access to Android's (and IOS later) camera, location, gyroscope, etc features?

> Absolutely, our GUI engine already features a camera widget (in our Windows backend). The work on Android backend in 0.6.x version will bring wrappers to all the common hardware features.

So yeah, I guess the plan would be to support all mobile features.

[+] agentgt|8 years ago|reply
When Rebol first appeared it reminded me very much of new language that appear at the same time called Curl (not be confused with ubiquitous HTTP tool).

The similarity, goals, and timing of release of both languages is in interesting convergence. Curl unfortunately tried to go to commercial and died a quick death. I'm glad Rebol and now Red are doing well.

[+] vram22|8 years ago|reply
I got to know about the Curl language and tried it out some when it came out. (IIRC Tim Berners-Lee was involved with it in some way, and I later read that the tech was sold to some Japanese company). They had an IDE called Curl Surge (IIRC). I thought it was an interesting and potentially useful language, specially for web apps.

But (with the caveat that I did not try Curl out for long), not sure how similar Curl was to Rebol. I thought Curl was a bit like Lisp, so AFAIK the only / main similarity with Rebol might have been homoiconicity (if I'm right about them both having that property). But could be wrong.

[+] greggirwin|8 years ago|reply
Indeed, Curl had a number of common goals with Rebol. Good insight.
[+] _mhr_|8 years ago|reply
Could I use Red in a manner similar to Awk for record processing?
[+] greggirwin|8 years ago|reply
Yes, absolutely. Red has a `parse` function, that uses EBNF-like rules, but someone has written a nice regex translator if you need that bit. It's also possible to write a nice AWK-like dialect that handles things at a higher level. I've done that in the past. One of the current limitations is that the I/O model is simple, and there is no GC yet. Those will come in the relatively near future, but if you have large files, or need long running processes, it will be more work for a while. Still doable, just not as easy.
[+] get52|8 years ago|reply
why not blue lanG? XD