More about VID3.4

A Frequently Asked Question right now about VID3.4 is what is meant by having a stronger link between networking and VID, because it would seem that we can already do that. But apparently:
button “Run Script” [do http://somewhere/script.r]

is not simple enough.

I haven't mentioned this, because I was afraid I would get it wrong and Carl would bash me for it. Happy What I'm writing here below is one of the reasons to switch to a webbrowser mentality. It was also one of the the reasons for dumping VID3. During late design discussions of VID3, Carl focused very much about the ease of use of VID3, and apparently it failed those tests.
Carl wanted a VID3 that could help building a web-like infrastructure of programs and services, all made in REBOL. To build infrastructure, you need extremely simple tools and the way Carl talked about this, it sounded like he struck gold, because then he said “This is going to blow the socks off everything else.”

Infrastructure!


Webbrowser mentality helps building infrastructure, very quickly. You have webpages, hyperlinks and a browser provides the navigational tools to “surf the web”, as they said back in the 90’s. Webbrowsers are also recognizable to most people and a webbrowser is today one of the most used programs in the world, next to the operating system itself. With HTTP, HTML, the webserver and a webbrowser, you have all the basic tools necessary to build an information infrastructure.
When you create a link in a webpage, it takes only a few tags in one line of code (even inline) to do that. You only need to provide the link. The browser takes care of handling the events of displaying the link properly, clicking on the link and all the networking that goes on when you click that link. You don't have to worry about TCP ports or wait for acknowledge from the server. The basic philosophy that goes behind hyperlinking is its extreme simplicity, which is why it's so widespread. It's easy to grasp and easy to code. You can build an entire infrastructure with hyperlinks.

When you for example write in a forum, you are often capable of providing hyperlinks. As a result, hyperlinking is available to any users, who have just the basic knowledge of coding, which to them means "typing funny chars to make a link". Most 10-year olds can do this. But you are really creating program code that the computer can react to in a rather complex way. That is part of the brilliance of hyperlinks.

There is now a stronger link between VID3.4 and networking in the same way as there is a natural link between HTML and HTTP. But where HTML only provides a hyperlink, VID3.4 would provide more kinds of actions in place.

Carl wants something equally powerful and simple as hyperlinks in VID3.4 for basic communication, where you must currently work with ports and do some programming and make complex decisions, and you usually also need to understand what’s at the other end. That level of detail must not be sacrificed of course, but there is a simplifying element that's missing, and that is to use buttons directly as a kind of hyperlink that perform scripts or network oriented actions, like doing a call to a REBOL/Services server without needing to get your hands dirty in protocols and schemes and handling the response. If successful, anyone could code simple VID GUIs.

For further evidence, I asked this: “I've often thought about how to make ad-hoc connections between computers in the same way as you write a VID GUI for simple use in minutes, just to transfer a file or two. Or a message. Or a GUI. Or something else. Happy All without having to mess around with ports.”

Carl responded: “I think we are all thinking alike!”

I'm still sure I'm getting it a bit wrong, because there are no real code examples out yet. This is the best level of detail I could get. There's not much point discussing it right now, so I only tell you this to let you know some of the reasons behind the switch. He emphasized very strongly about building infrastructure through very simple methods that most people can understand and use. He talked about this more than about VID itself, so I guess it’s very important for him to get it right the first time, which is why it takes a little time to do.

So there you have it. More to come, when we have better details.
|

Another REBOL 3 Status

Carl returned briefly to discuss a few things regarding VID3 and I’m quickly going to mention that here.

VID3 as we know it has been dropped and development of it has been suspended for now. Now before you spontaneously jump out of the window in despair: It is replaced by a user interface system that is yet to be named, but has internally been known as VID3.4 for some time. We’ve been waiting for more details on it for about two months now, but only very few details have emerged. A few other names were thrown around, particularly because it’s different from VID, but the details are very scarce on what exactly it does. It’s not so much about its graphical capabilities as it is about how it’s used in relation to networking. Carl has only mentioned briefly that it would be roughly as capable as VID3, but would emphasize on simplicity combined with networking. It’s a bit like how HTML (presentation) relates to HTTP (networking). That has been the focus on the development of this new user interface system in the past few weeks for REBOL Technologies.

Oh, here’s a very, very small code sample. You can create links as simply as:
button "Go there" goto http://....

And, for internal links:
button "Go here" goto 'page2

It doesn’t tell us much, except it will in some cases behave more like HTML.

VID3 development might continue depending on how many features overlap with the new user interface system. If too many features are overlapping, there’s no point in continuing.

The REBOL Desktop, also known as Viewtop will be dropped as well. It will be replaced by a webbrowser form factor. This is an important step towards making REBOL more recognizable for what it can do, as the Viewtop has been proven to be more confusing than simplifying. The webbrowser of today is becoming a primary way to run applications. REBOL Technologies believes that having this form factor makes it easier to relate to REBOL applications. I think of course nothing will change with regards to being able to create and run REBOL applications in separate windows. But having this browser-like facility to run tools, view interactive documents and entire applications in a more recognizable user interface sounds very cool to me.

In fact I proposed that very idea of replacing the Viewtop with a browser a few seconds before Carl turned up to mention that it was exactly what he intended!

It also fits nicely with how the new user interface system might be geared more towards documents with VID like interactivity. Whether this browser will be capable of showing HTML documents, time will tell.

Imagine a REBOL based GMail client starting up in 0.2 seconds. Cool, huh? That will give those damn webbrowsers a run for the money.

That’s basically it for now.
|

REBOL 3 status

It's been too long since there was a status of R3, so I'll bring you some tidbits.

What's going on right now:

There's a big discussion going on about VID3's design and how the current style design model is a little too complex for style designers to make new styles for. The dialect itself feels OK and the capabilities of VID3 are not likely to be reduced. Currently, creating a style is a process in change, so I don't get to do work on skinning at this time. It makes no sense for me to do that, if I have to throw it out again later, or if Gabriele Santilli, the designer and creator of VID3, will have to waste time rewriting my style designs.

There's also another big discussion about what VID3 is supposed to be usable for and there has been some confusion about whether it will be usable for heavy application building or whether it's more for media applications like MythTV. I suggest you look at this blog post here, for more clarifying answers about that.

Unicode

This part takes quite a bit to get used to, since you can no longer assume what format the content of a string represented as a binary can be. Many functions are changed because of the inclusion of unicode. This makes a few things a little more elaborate to code (READ is always binary, for example), but other things are much simpler as a result of moving certain natives to working only on binary!. You can for example now directly READ a website and WRITE it to disk without any refinements or additional input.

Builds

The latest executable we have internally is called View12.exe. It's called that way, because it's the 12th release of the unicode version of REBOL 3. The first 7 contained no graphics engine, but with release 8 it came back in, only without LAYOUT. We discovered then a serious bug in the graphics system that will cause R3 to crash, just by dragging a scrollbar in a test user interface. What that bug is, is still being determined.

Meanwhile, some additional tools for debugging and development have been added: DT executes a code block and tells you how long it took. DP executes a code block and tells you some memory statistics on what happened in that code block. Example:

>> dp [a: 2]
== make object! [
timer: 113
evals: 10
eval-natives: 3
eval-functions: 1
series-made: 1
series-freed: 0
series-expanded: 0
series-bytes: 432
series-recycled: 0
made-blocks: 1
made-objects: 0
recycles: 0
]


HTTP

Our new HTTP scheme is made to completely adhere to HTTP/1.1 and it was designed by Gabriele Santilli. On a particular note, Carl Sassenrath commented on how nice the code looked, and indeed it's a very beautiful piece of code, right for the textbooks. There is a single bug in it, however, but don't tell anyone that. It will be fixed.

Bugs

The number of bug reports is steadily climbing. We are today at 471 reports. The new test vector system is not yet online due to other priorities. A thing worth mentioning is that the console window now will quit in the Windows version, when clicking on the close button, without showing the kill window. (It also revealed some horrors in how Windows handles the console window...). As a small side effect, QUIT has ceased to work. Happy

REBOL/Services

It's strongly desired to move DevBase to R3 and for this process, it's necessary to port REBOL/Services to R3. Since R3 has a different port model and has unicode support, this takes a little time to do. Also just today, some bugs in the ENCLOAK function, which is basic to the functionality of encryption in REBOL/Services have been found.

What will go on in the near future:

The HTTP scheme will be included and when the VID3 discussion is complete, Gabriele can continue working on the style system, and work can resume work on the test vector system. When VID3 has seen significant advance in the style design area, I will begin working on more styles for it.

The target platform for these tests right now is Windows only. It's easier to do that, because the Linux and OSX versions are missing rudimentary console cursor controls, which make them a serious pain to use. Meanwhile anyone testing on Linux or OSX are encouraged to do so in VMWare, Wine or CrossOver.

Sorry, no screenshots in this round.

Well, I guess I can give you one:

Picture 2


Enjoy! Happy

|

VID3 Skins

REBOL 3's next VID 3 prototype now supports skins. For a test three different skins were made by Gabriele Santilli, where the last two are derivatives of the first. These skins demonstrate the scalability of the user interface:

Picture 1

Click read more for more screenshots and source code.

Read More...
|

An Important Message

Ladies and Gentlemen, Carl Sassenrath of REBOL Technologies would like to announce that all R3 development has been cancelled and that you should all go home and play with Perl instead. Or Python.

......

Wait a minute. Let me rephrase that:

REBOL 3.0 Alpha 1 for Windows is out! You can download it here:

http://www.rebol.net/builds/rebol3/alpha/rebol29904031.zip

Carl has made a blog entry about it here:

http://www.rebol.com/article/0347.html

Please note that this is alpha software and represents a work in progress! Be nice to the developers. There's no support for you yet, but it will come later. Now play with it and be good.
|

R3 on Linux

In the first porting effort, R3 is now running on Syllable Server, which is based on the Linux kernel. No graphics on the Linux version yet. The same goes for the OSX version, which is also not yet running graphics, but things are moving quietly along. The process will of course be documented for future porting efforts to other OS'es.
|

LIST-VIEW for RebGUI and VID3?

Every now and then I get the question whether LIST-VIEW will be available for RebGUI. As I'm a VID person, there's little chance I'll ever get to do a RebGUI version. I know only little about RebGUI and so it would take even longer for me to figure out the inner workings of RebGUI to do a port.

Therefore, if you are a RebGUI developer/user and really want LIST-VIEW there, I will support a port of it! In fact, I will go so far as to answering questions you may have about the inner workings of LIST-VIEW. Nice, eh?

Some requirements would be that the VID version and RebGUI version remain in sync. So if I make some changes for the VID version, they can get in the RebGUI version as well without too much fuss.

Perhaps this can be done by building LIST-VIEW for each GUI system with a simple build script, but we'll get to that.

LIST-VIEW for VID3


LIST-VIEW is a large, monolithic beast, with currently over 100 kb of code, of which about 20% of it is not used at all. This is currently more than the entire of VID3's source code (excluding styles) and is of course unacceptable. Furthermore the graphics system in VID3 is quite different from that used in VID and the mechanisms of drawing the list can't be done without a rewrite.

Therefore there will not be a straight port of LIST-VIEW for VID3. Instead, the VID3 team will work on a very capable list view style that won't do everything that LIST-VIEW can, but instead have essential features, be faster, smaller and be easy to expand with more features. Furthermore some data processing features like filters and sorting are likely to be moved outside of the style. The final result will hopefully be better than the current LIST-VIEW.
|

The Awakening of DevBase

DevBase went online yesterday for a few internal testers. It shows great promise as one of the main tools that we will be using for managing source code submissions around REBOL3, but also of the DevBase code itself and REBOL/Services. In fact the REBOL/Services code was not there in the beginning, but was uploaded in a couple of minutes, ready for the world to scrutinize. Read More...
|

A small R3 FAQ

I don't work for RT and don't have full access to the juicy details of RT's source code for R3 and all the future plans, but I have some insight that many people don't have. It makes me feel very special and important. Read More...
|

REBOL3 Syntax

People sometimes ask if the syntax in R3 is different from R2. Is R3 code hard or too different to read, when you are a hardened R2 user? Is R3 harder to start with for a beginner? Read More...
|

REBOL3 DocBase

If you are an experienced REBOLer, you may have come to frustrations about how to do a specific thing and not being able to find good documentation about it. The documentation in the past was generally made by Carl Sassenrath, inventor of REBOL, alone.

While the documentation there is, is OK, it's very sparse and some existing features that are greatly lusted for, by the REBOL community, are simply not documented, so we can't use them.
The amount of contributions you could make, was pointing out spelling errors, only to find them uncorrected for months, if ever.
Another problem is that documentation only exists in a reasonably new version in HTML format.

For REBOL3 this changes completely. Read More...
|

VID3 Design Process

VID3 is a very different beast from the good/bad old VID that we know and love/hate from REBOL/View 1.3 (hereafter named R2). The design of VID3 has been the subject of rather intense debate among R3 developers and this blog post is an attempt at avoiding such a debate again, because VID3 ain't your daddy's old VID! There are a number of reasons why VID3 isn't just a "completed VID", but changes its philosophy quite a bit. Read More...
|

More REBOL 3 Hype

If you've worked with VID under REBOL 2, you know it takes quite a bit of code to, say, attach a scroller to a text area. VID under REBOL 2 knows nothing about the relationship between a text area and a scroller, and so you have to construct the mechanics to translate the scroller position to a y-position in the text-area and update it correctly.

The way VID is constructed under REBOL 3 allows the output value from one face to be attached to another face in a startlingly simple fashion. A new feature of each face is to process events from other faces and act on these data in any way that suits the face. This value is the same one as you get with GET-FACE. While this part is not yet complete, I think I can show this example:
l: layout [
a: slider
b: field
]
attach b a
view l

ATTACH works on values that make sense. For FIELD, it shows the percentage value. For a scroll-panel, it scrolls it, etc.

This is all you need for a simple coupling!

But, even simpler, you can attach relatively to the two previously stated faces:
view [progress slider attach]

And now the progress bar will move as the slider moves. Simple!
(The LAYOUT function has been built into VIEW, so you don't have to type that anymore either.)

That's it for now. Happy
|

REBOL 3 progress

People are working very hard on various parts of REBOL 3. One of these things is the prototype for the next version of VID, which already now can do some things easily, which are difficult to do in the old VID.

Two of these things are:

- Resizing of window will make the elements adapt to the new window size automatically.
- The look of the UI will be separate from the feel code, so it's much simpler to redesign the skin.

The obligatory screenshot:

vid3

OK, back to work! Happy

|