The Final Third of 2019: Status and Adjustments

Hello from Cleveland...home of REBoL (The Cafe), where I just had a smoothie moments ago. What more appropriate time to write a status report, eh? :tropical_drink:

For those of you who made it to the Philadelphia conference: it was quite the memorable experience. (For people our age, this sort of thing is usually the closest we have to a "party"... :slight_smile: So if you missed it, you missed out!!)

@rgchris put together a stylish website, and updated it during the conference to show the schedule as we figured out what it was. For anyone who didn't see that site, check it out:

I spent the June before the conference in Philadelphia, and then all of July as well. Now, my August has been more traveling, and basically all non-Rebol-related business. This means development has been on the backburner, and so has video editing..and for those who don't realize it, editing videos (or at least, doing it well) is very complex work!

But, Back to Work!

My non-Rebol business has concluded for the moment. And though I don't want all my programming time to be Rebol...I have no question in my mind that there's enough original and interesting work in Ren-C to justify investing in it.

(Though...I kind of want to muck around with some of the modern machine learning tools, too. And I've mentioned interest in other things like the Z3 Theorem Prover, and how we might dialect that underlying engine with something besides its Lispy interface.)

What We Learned from the Conference

From my end: I hadn't originally planned on showing off anything people there wouldn't know about. I was mostly aiming to introduce the WASM build to future-users on Hackernews/Reddit etc.--so they could come up to speed on what it's all about. But at the last minute, I decided we were close enough to having Rebol act like a c99 compiler that we could actually implement a bootstrap command. So I did!

Atronix had already made videos about ZOE for their PR, though David's demo went through the actual experience of what it's like to configure it for a particular industrial site. @szeng went over the FFI (which is now an extension in Ren-C vs. part of the core, and needs some love to get it back in shape--but it's not far from being back in form). @Mark-hi went through his lexical study of Rebol in a way that seems like it could probably serve dual purposes just as a general introduction to the language, so I'll probably bias the edit to focus on that. @rgchris pulled out a few demos of his work--old and new--including not-shown-before ways to involve Rebol in his sports playing and coaching.

In some ways, it was the remote presentations by @giuliolunati and @BrianOtto that seemed to get people's imaginations running the most. Not everyone had seen BrianO's work, and I really didn't quite get the depth to which Giulio had put together a sort of "Rebol App Store"! What he's done is combine a native Android build of Rebol that runs a web server and has access to all the phone's resources (like filesystem, could be camera, etc.) and then serves it to a WASM web build for UI. So the web page--running Rebol under WASM--can delegate anything it wants the phone to do that the browser can't do natively to a request to Rebol running on ARM. Pretty mindblowing!

@BlackATTR took a while to concretize his point :slight_smile: but when he did, it finally clicked what he's been talking about in making SQL-like dialects for messing with filesystems. What he is proposing looks like a win on par with PARSE beating RegEx...except this time he's going after bash, to sideline learning estoeric command line switches in find and grep tools. I would use this.

Main Takeaway: The Farm is Being Bet on WASM

Giulio and BrianOtto's talks about the direction of the web made me even more sure that we do not want to be in the native UI business anytime soon; and things are on the right track. Atronix's UI code should likely thus stay tailored to their purposes entirely, without burden them with providing anyone else with a /View.

Love browsers or hate them: they are the platform now. What we can do is to stick to our guns--as per the "Amish Programming" theme of my talk--and try to keep the language core pure and small enough to throw on an IoT device with a tiny chip...or build on a fresh Ubuntu system with no installed compilers, make tools, or fetch utilities besides a Rebol executable.

So lucky Red: native UI work will be exclusively their game for the near term. If there's any gold in them thar hills...e.g. linking up GTK, they can be the guinea pigs and find it. (That's not necessarily a mixed metaphor). Their experience can inform whatever we might try with vue.js.

...and Speaking of Red...

Red did wind up with a presence at the conference, as Gregg Irwin came. It was a meaningful gesture in my book. I wore one of their shirts to dinner, even.

Anyway, it's something to keep an eye on--as we bring the work to more people via the WASM build, and how it might be possible to frame it as a non-zero-sum game. :man_shrugging:

Adjustments to the Beta One Plan

The first third of the year showed levels of progress and participation that I'm pretty sure exceeded most people's expectations. The next four months basically flatlined as far as the code went...but I think we're going to get some very good videos out of it.

So...what can be expected in the final third? I'll start with these focal points:

  • Anything we care about keeping running needs to be under continuous integration, so we know if changes to the system break it. This means people have to be firm about what's important and what is not.

  • You need to be able to use a module written to Rebol2/Red-like conventions with code that is written to Ren-C conventions. Maintenance costs for "Redbol" code will be less than the Ren-C parts, so it may be that some existing Ren-C code that people don't have the attention span to keep up to date are retroactively backported to Redbol. (I did this with my blog generator.)

  • Binding has to be pushed further and understood in terms of basic practical cases of composition. You can't shortcut this and have the language live up to the hype; it will let people down once they get to any level of sophistication. I just got another reminder of it realizing the problems of abstracting loops

  • Pitching Rebol the language should be for the cleverness (esp. of Ren-C features). To the practically-minded, it should arrive via Trojan horse of a tool that is built with Rebol. So code golf and explaining FizzBuzz would be for the language people, while @BlackAttr's SQL-like find tool would be for the "what can it do for me people" who can appreciate the cleverness after-the-fact.

For year-end, I think it may be more realistic to say we have some cool videos and a somewhat Rebol2-compatible language in the browser, maybe even with a vue.js VID. But it will have the mechanics of Ren-C underneath it. Anyone whose project is in active use needs to be on Travis or another continuous integration so we know it stays working (that includes my blog generator...)

A tutorial which teaches Ren-C concepts may have to hedge and say it's a work in progress, and people are free to come join in the design.

Anyway, there are my thoughts...expect the commits and activity to resume a decent pace shortly!