In order to reduce the size of the library interface between the REBOL kernel and its environment, R3 introduces the concept of a device. This is especially important for lower level REBOL ports (e.g. TCP networking).
Port a specific instance of a scheme. For example, when you read a file, the scheme is used to create a port that accesses the file and its data. Each open file has its own port.
Request is a lower level (C) structure used to communicate between a port and a device. In the case of a file, it passes fields like the file name, date, size, and data to be transferred.
Device is native C code that implements a standard set of access methods for a port. Example methods include open, close, read, write, create, and delete. This level is where file or network I/O actually happens.
Only ports that require native support need requests and ports. Higher level ports, such as HTTP, do not directly create requests. Typically, they use lower level ports, such a TCP, and those do use requests.
I plan to dive much deeper into the details at the 2007 DevCon in May. I will show a few examples of devices (such as TCP itself) and outline how you can write your own.
24-Apr-2007 14:08:49 This definitely sounds interesting. I look forward to the posting of your examples for those of us who can't make to DevCon.
26-Apr-2007 11:23:46 Brilliant! Some similarities to REBOL/Services which is outstanding. Very consistent implementation. Amazing really! My mind is literally overloaded with possibilities!
27-Apr-2007 11:03:12 The REBOL virtual machine will no longer be tied to a specific hardware. Like REBOL/Services the device developer will need to include only the commands it needs to operate, allowing scalability from the simplest DSP chip to the most complex CPU.
So there is a possibility that REBOL could be used for just about anything with no RT involvement.
If you take REBOL/Services and combine it with devices, you have an incredibly secure system that can literally do anything there is hardware to do.
Imagine any hardware device being able to communicate/control/cooperate/share with any other hardware device or software application with a line or two of code. That is what this creates.
It is the platform of infinite possibilities.