Mission statement

This is as good as any place to start this. If there's a better category we can move it. Let's all have a go at developing a mission statement so that we know where we are going. Everyone can participate in this process. No C skills needed!

Long Term

To build the best practical cross-platform programming language for people to use.

Near Term

To reach functional equivalence to Rebol2. Currently missing are

  • an easy to use FFI ( rebol2 had load/library )
  • proxy support
  • GUI.

Is this for REBOL 3?

Well, yes since we don't have access to the sources for rebol2.

What I was thinking of in my unspecific way might be something like, which REBOL 3. I don't follow it closely, but I gather that there are several initiatives under way. There is the REBOL source code put into github and I don't know if anyone is doing anything with that, there is the REN-C that I only have heard of, there is a REBOL 3 used internally by Atronix Engineering, there is the Saphirion web page that lists as the company staff half a dozen people whose names are basically "household words" in the world of REBOL. And of course RED. I don't quite know what to make of all this. Maybe it's more of a social problem than a technical one. Herding cats as they say.

What would be the end point? What I myself would like to see would be the ability to go to the REBOL web site and download a REBOL 3 executable just like the REBOL 2 executable, and use it, and have it contain all the functionality necessary to write useful programs. That would be those items you mentioned, plus some others probably (https, sftp).

Maybe we have to consider that Carl might not know everything, specifically, he might not have had a lot of experience with open source projects. Maybe he opened the source, but forgot one key part:

To build the best practical cross-platform programming language for people to use

I agree we need to start somewhere, but in this statement, I find wanting something to be the "best" is vague and relative. My personal opinion is that the programming world doesn't really need or want a new general-purpose programming language. Furthermore the rebol family of languages have some pretty critical design aspects which are a deal-breaker for some programming domains. Rather than being limitations, however, I see this as liberating and I find myself in the camp of "rebol isn't for everyone. nor is it ideal for many programming domains".

  • rebol is one of the most dynamic and homoiconic languages in existence, while at the same time being simple, high-level and user-friendly.
  • The ability to create domain specific languages and to achieve data-wrangling/text-munging in more literate ways are just some of its super-powers.

In my opinion, we focus on the things that set rebol apart from other languages rather than the areas of overlap, areas which have been done, delivered, and documented so well in other languages that rebol has no place except in the rare case of a total rewrite.

1 Like

That is an interesting way of looking at it. I use REBOL for what some (including me) would consider insignificant little things. Maybe the the significance of REBOL is that with it I CAN do "insignificant" little things so quickly. That means that the features at the top of the wish list are those that I use (or would like to have) all the time for those projects, GUI, sftp, https, the "call" function, the "browse" function, ODBC, in a package that is a single executable interpreter that I can just download and run.

I also use rebol for short, quick-and-dirty shell-scripting, mostly for data wrangling, but I've made a few basic GUI apps and run a couple of CGI-based websites using rebol. And I think rebol is great for this. On the other hand, much of what I do with rebol is stuff that you can do with (almost) literally every other programming language, and the brevity and quickness of writing a rebol script is a subjective/personal/matter-of-taste thing. Hate to say it, but what do most devs who need to write a script/function/feature do -- they don't code it themselves, they take it from an existing library, codebase or framework, or worst-case they fish it off of stack-exchange and hack it into their project. I sound old, but I really think that today that many/most programmers don't want to write their own original code. It's just easier to follow the herd and enjoy safety in numbers.

We have a book floating around here called "Unix Power Tools" which is about how to do stuff with unix.

Based on my own past experience, I wonder what would happen to a person's mind if the first computer language he learned was REBOL.

At one time I started some notes for a programming class that I tentatively called "Coding Shop Class" that would be twelve one-hour lessons, using REBOL, that would get a person to the point where he could program some actual useful stuff on his own computer. The "shop class" idea comes from the classes offered in seventh grade many years ago called "industrial arts" where children, usually boys, learned how to use various tools through the process of building things (the drill press to make a cribbage board for example). I thought that REBOL would be good for this because it has all the needed parts in one package.

So, contemplating all that, as long as we are embracing the vagueness of "the best practical cross-platform programming language for people to use," how about spicing it up with "building the power tool for personal computing." Then the features we need are those that can make that happen.

the power tool for personal computing.

I think this statement is aimed in a better direction. As long as we're embracing the uniqueness and different-ness of rebol.

We are interested in this development because we loved our experience in using R2 that gave us tools to do many tasks we wanted to do using our computer, and felt using R2 was way simpler than using any other alternative that included many dependencies and complexities. Exactly in the way CS described it, fighting Software Complexity. So:
We want to recreate that R2 experience, being able to control our own computers, using the open sourced R3 alpha code and make an improved Rebol out of that, that will serve us in all those tasks we want to do on our various devices.

At the risk of sounding too opinionated, I'm not in love with a vision which seeks to relive or recreate the past. I also doubt R2 is a good frame of reference for anyone new to rebol, except perhaps from a historical perspective.

One of the reasons why I'm excited by HostileFork's work is that he really gets the how and why rebol is so unusual and that it will continue to be that way-- it needs to be that way. If the language design decisions were more conventional rebol would a lot more like other languages, and what's the value in that? HF has been pushing into some areas of really deep rebol voodoo, and I believe that this will help it evolve away from some of its legacy gaps/problems-- so the brilliant and somewhat immature "child" rebol that CS brought into the world can grow into a more fully-formed sui generis langauge that it has in its genes.

1 Like

Well Rebol isn't new so that invalidates that argument! Best is intended to be vague since it depends on what your needs are. I used the term practical but perhaps I meant rapid.

Yup! I'm tilting at windmills. Thanks for putting it out there so we can all pick it apart!

Carl wanted a language for everyone but then in one of his last blogs he backtracked and said Rebol was for experts.

I think if you're building anything decent, then yes, Rebol is for experts.
But if you want to do some simple scripting, Rebol also fits the bill.

JFI, mission statements for Reddit could have been, to be the front page of the internet, twitter where you can influence the most people for the least effort, github to be the world's source code repository, stackoverflow the place for the world to ask questions.

Well, by "everyone" he meant anyone who would consider writing code/markup for personal computing, but yeah.

Yes, I think CS modified his goal a bit based on real-life experience with rebol. It's 2018, not 1987 and conditions are not such that a network-aware, x-platform Logo-ified XML paired with a HyperCard UI is going to become a popular programming paradigm anytime soon, despite the underappreciated merits of that combination of tech.

JFY, mission statements for Reddit could have been, to be the front page of the internet, twitter where you can influence the most people for the least effort, github to be the world’s source code repository, stackoverflow the place for the world to ask questions.

Yes, this is a good way to look at it. Simple and concise, just like rebol. This is weak, but something like "Rapid programming solutions via the power of human language."

I think that comes to expressiveness and the wanting to make the language as english like as possible which @hostilefork is wanting to keep hence the picking away at expressions like length?.

1 Like

Amended mission statement to now read

To build the best rapid and practical cross-platform natural language programming language for people to use.

The R3/hf (ren-c) branch already has all of these. Sftp is ftp over ssh so not going to happen. But ftps which is ftp over ssl is easy enough since we already have ftp and ssl.

R3/a (Atronix) also has the GUI but doesn't have ODBC, or fixes to UDP for multicasting and other exotic stuff that I use.