Click Here
home features news forums classifieds faqs links search
6071 members 
Amiga Q&A /  Free for All /  Emulation /  Gaming / (Latest Posts)
Login

Nickname

Password

Lost Password?

Don't have an account yet?
Register now!

Support Amigaworld.net
Your support is needed and is appreciated as Amigaworld.net is primarily dependent upon the support of its users.
Donate

Menu
Main sections
» Home
» Features
» News
» Forums
» Classifieds
» Links
» Downloads
Extras
» OS4 Zone
» IRC Network
» AmigaWorld Radio
» Newsfeed
» Top Members
» Amiga Dealers
Information
» About Us
» FAQs
» Advertise
» Polls
» Terms of Service
» Search

IRC Channel
Server: irc.amigaworld.net
Ports: 1024,5555, 6665-6669
SSL port: 6697
Channel: #Amigaworld
Channel Policy and Guidelines

Who's Online
11 crawler(s) on-line.
 95 guest(s) on-line.
 0 member(s) on-line.



You are an anonymous user.
Register Now!
 kolla:  1 hr 1 min ago
 Hypex:  1 hr 26 mins ago
 ed:  1 hr 46 mins ago
 matthey:  2 hrs 13 mins ago
 MEGA_RJ_MICAL:  2 hrs 56 mins ago
 agami:  4 hrs 9 mins ago
 amigakit:  5 hrs 57 mins ago
 fordprefect:  6 hrs 32 mins ago
 redfox:  6 hrs 32 mins ago
 Karlos:  8 hrs 9 mins ago

Announcement   Announcement : Interview with Carl Sassenrath
   posted by Daff on 5-May-2007 17:03:51 (7615 reads)
To celebrate the 1000th article of the magazine Obligement, Carl Sassenrath returns through this long interview on its origins at Amiga Inc. in the 1980's (Manager of AmigaOS and Amiga CDTV system development, among others), the bankruptcy of Commodore, its passages at Apple Computer and Viscorp, Amiga NG, or on its new revolutionary language REBOL. A great name of Silicon Valley !

A very good read.
    

STORYID: 3750
Related Links
· More about Announcement
· News by Daff


Most read story about Announcement
APoV Issue 3 is Released

Last news about Announcement
REV'n'GE! #145
Printer Friendly Page  Send this Story to a Friend

Goto page ( 1 | 2 )

PosterThread
HMK 
Re: Interview with Carl Sassenrath
Posted on 5-May-2007 18:26:39
#1 ]
Regular Member
Joined: 17-Mar-2003
Posts: 246
From: Denmark

From interview:

Quote:
So, the grand vision of REBOL is that it must be a part of something much bigger than just a language. We proved that with REBOL/IOS. It was very powerful. Our plan is for REBOL to be the heart of programming a new type of virtual-OS that can span not only our office computers, but also our home systems, mobile devices, web browsers, web servers, and more.

And, of course, my ultimate goal is to someday press the power switch on my laptop or desktop computer and within just a second or two, the REBOL desktop appears on the screen, fully booted, with a wide range of smart and powerful distributed applications. No other OS under it. No other OS needed.


This is why I work with REBOL and why it's so cool.

 Status: Offline
Profile     Report this post  
DaFreak 
Re: Interview with Carl Sassenrath
Posted on 5-May-2007 19:00:11
#2 ]
Regular Member
Joined: 1-May-2005
Posts: 128
From: Berlin, Germany

That's a very interesting interview!

But about Rebol:
> As a simple comparison example, a language like C has 5 primitive datatypes (integer,
> float, char, etc). By comparison, REBOL 3 as 58 primitive datatypes. That factor gives
> REBOL an entirely new dimension of expression. And expression is what language is all
> about.

58 primitives?! Wow, I thought it's a pro for every programmer to have less as possible. That will be much easier (to compare, calculate, search.. like in databases). Expression is a fine thing but one can exaggerate it ...like at voice languages.

Or what's the experience of Rebol-programmers out there?


_________________
Sam440ep & AmigaOS4.1 @ Morex 3677 case
---
(DaFreak of Liquid Skies & Moods Plateau)

 Status: Offline
Profile     Report this post  
HMK 
Re: Interview with Carl Sassenrath
Posted on 5-May-2007 19:43:25
#3 ]
Regular Member
Joined: 17-Mar-2003
Posts: 246
From: Denmark

Quote:
Or what's the experience of Rebol-programmers out there?


It makes some things much easier as you can express code in much briefer syntax. For example, some normally cumbersome things to do become very simple:

Quote:
>> my-emailaddress: someplace@somewhere.com

>> email? my-emailaddress
== true


Purely because the data stored in my-emailaddress is of the email! datatype. REBOL figures this out entirely on its own. You have similar expressive power everywhere in the language.

The list of datatypes for REBOL 3 can be seen here.

But the number of datatypes is really one of the smaller (or more easy to explain) unusual features and it's tightly bound to other features like dialects (a kind of language subdomain), which provide a powerful and secure way to express yourself, using your very own words and language structures.

Dialects are built with parsers and provide a way to convey complex information in almost plain English:

Quote:
>> shares [buy AAPL shares at 100$]


That's fully legal code, but it can be further used as leverage to generate dialect code dynamically via other REBOL code. Imagine a share buying and selling dialect as shown above to be an API that other coders can use in their own programs, for example a GUI built on top. That's how REBOL's GUI engine Visual Interface Dialect works:

Quote:
view layout [button "Hello world!" [print "Hello world"]]


Try that in a REBOL console.

Last edited by HMK on 05-May-2007 at 07:45 PM.

 Status: Offline
Profile     Report this post  
CodeSmith 
Re: Interview with Carl Sassenrath
Posted on 5-May-2007 21:58:11
#4 ]
Elite Member
Joined: 8-Mar-2003
Posts: 3045
From: USA

That's great, but what is the price you pay for it? the runtime library must be pretty huge to support so many primitive types and a built-in GUI and language definition engine. No doubt it's very cool and my inner nerd salivates at the thought but I cringe at the thought of a runtime library that's probably a few dozen megs in size.

Last edited by CodeSmith on 05-May-2007 at 09:58 PM.

 Status: Offline
Profile     Report this post  
HMK 
Re: Interview with Carl Sassenrath
Posted on 5-May-2007 22:35:38
#5 ]
Regular Member
Joined: 17-Mar-2003
Posts: 246
From: Denmark

Quote:
That's great, but what is the price you pay for it? the runtime library must be pretty huge to support so many primitive types and a built-in GUI and language definition engine. No doubt it's very cool and my inner nerd salivates at the thought but I cringe at the thought of a runtime library that's probably a few dozen megs in size.


Let's ask REBOL:

Quote:
>> length? read/binary http://rebol.com/downloads/view.exe
connecting to: rebol.com
== 660992


This is REBOL/View 1.3 (with the version 2 of the core, not version 3 which is not out yet) for Windows. This includes among other things full graphics engine, GUI system, built-in text editor, mini-desktop, installer and networking.

If you take out the UI and graphics engine, you get REBOL/Core:

Quote:
>> length? read/binary http://rebol.com/downloads/core031.zip
connecting to: rebol.com
== 225532


Unpacked, it's 289.280 bytes.

I know it can be hard to understand. I've confronted people who flat out refused to believe this is possible. But yes, this is the entire REBOL language kept in such small executables. It's possible with the SDK to get even smaller executables.

I made a simple video some time ago (requires flash) which demonstrates some simple GUI and networking, here.

Last edited by HMK on 05-May-2007 at 10:37 PM.

 Status: Offline
Profile     Report this post  
CodeSmith 
Re: Interview with Carl Sassenrath
Posted on 5-May-2007 22:43:33
#6 ]
Elite Member
Joined: 8-Mar-2003
Posts: 3045
From: USA

@HMK

Cool

There must be some pretty cunning coding going on in there.

 Status: Offline
Profile     Report this post  
newbee 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 0:37:01
#7 ]
Regular Member
Joined: 18-Sep-2003
Posts: 175
From: Adelaide, Australia

@HMK

I consider myself a "tool writer" as i have very basic programming abilities (across a narrow range of languages)
and only revert to coding when I cannot find any other option.

With that in mind, I am completely SOLD on REBOL based purely on your "Hello World" demo.

Are their on line tutorials or an "idiots guide" anywhere that i can get my hands on.... I think I have just found my "preferred language".

Cross platform
Logical syntax (based on very limited sample... true)


Darren

edit: Typos, that's one reason why I'm not good at programming

Last edited by newbee on 06-May-2007 at 12:38 AM.

 Status: Offline
Profile     Report this post  
Debaser 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 5:30:42
#8 ]
Regular Member
Joined: 25-Mar-2003
Posts: 192
From: Syracuse, NY

REBOL Quickstart Tutorials:
http://www.rebol.com/docs/quick-start.html

REBOL Cookbook of Code Examples
http://www.rebol.net/cookbook/

 Status: Offline
Profile     Report this post  
CodeSmith 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 5:47:43
#9 ]
Elite Member
Joined: 8-Mar-2003
Posts: 3045
From: USA

Language is a bit on the opaque side... reminds me of the Scheme assignments I had to do back in school.

 Status: Offline
Profile     Report this post  
dirigent 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 7:25:29
#10 ]
Regular Member
Joined: 30-Mar-2003
Posts: 169
From: Unknown

@CodeSmith

I agree, it's a bit unusual if you are used to the standard high-level languages.. When I once looked at it a bit more closely, I was impressed by its self-referentiality, i.e. I believe there was something like "object.[property]", where [property] did not have to be specified at compile-time but was itself a variable. A little like C++ STL maps, only as standard language constructs.

 Status: Offline
Profile     Report this post  
CodeSmith 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 7:29:27
#11 ]
Elite Member
Joined: 8-Mar-2003
Posts: 3045
From: USA

@dirigent

Yes, that sort of thing is quite common in very high level languages.

 Status: Offline
Profile     Report this post  
dirigent 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 9:54:39
#12 ]
Regular Member
Joined: 30-Mar-2003
Posts: 169
From: Unknown

@CodeSmith

Is it? I know that Objective-C has a similar feature, which I also found very likeable.

 Status: Offline
Profile     Report this post  
PsyDarken 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 10:26:22
#13 ]
Member
Joined: 24-Jul-2004
Posts: 22
From: France

A bit opaque at the first sight, for sure.

I make software for a living and know well common languages, C++ at the top, derivate forms like C, Java, PHP... and at the bottom 680x0 (old demo guy :)) and x86 assembly.

I began with the tutorial and I have to admit it was hard to guess what the sample code was doing without reading about the meaning of the syntax.

I will read a bit more about it, maybe it's a new approach for programing that needs a bit of investments at the beginning.

 Status: Offline
Profile     Report this post  
HMK 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 10:47:26
#14 ]
Regular Member
Joined: 17-Mar-2003
Posts: 246
From: Denmark

REBOL allows a lot of self creating code. You have an enourmous amount of freedom to machine build REBOL code from other REBOL code, so the dynamic aspect of the language during runtime is far greater than Objective C offers. In essence, in REBOL, code is data and data is code. The two terms are completely interchangable.

The term "word" is used here to describe, what is normally a variable in other languages, because the word can be manipulated as much as its content.

You can say:

Quote:
>> a: 7
== 7

>> set 'a 7
== 7

>> do reduce [to-set-word 'a 7]
== 7

>> b: [to-set-word 'a 7]
>> do b
== 7

>> y: [5 7 9]
>> do reduce [to-set-word 'a second y]
== 7

>> y: [5 7 9]
>> write/binary %set-a-to-7.r compress mold [to-set-word 'a second y]
== #{
789C8B2EC9D72D4E2DD12DCF2F4A51504F54284E4DCECF4B51A88C0500748F08
DB19000000
}
>> do load decompress read/binary %set-a-to-7.r
== 7

>> y: [5 7 9]
>> set [i really want some cake] [set to-lit-word "a" second y]
== [set to-lit-word 'a second y]
>> i
== set
>> really
== to-lit-word
>> want
== "a"
>> some
== second
>> cake
== y
>> do reduce [i really want some cake]
== 7

Continuing from the last example:

>> set [water is good for you] [i really want some cake]
== [i really want some cake]
>> reduce [water is good for you]
== [i really want some cake]
>> reduce reduce [water is good for you]
== [set to-lit-word "a" second y]
>> do reduce reduce [water is good for you]
== 7


The two last ones are actually a simple dialect, created without parsing. All of them will set the word 'a to 7.

Another aspect is how to use it entirely without words. This is very strange to newcomers, but the thing is that you can create objects and series and manipulate them directly, without assigning them to a word. This reduces code size further.

Normally, if you want to make a block, containing the numbers 1, 2 and 3, and you want to create it with a little loop, you'd say:

Quote:
>> block: []

>> repeat i 3 [append block i]

>> block
== [1 2 3]

When in fact you can eliminate the block word:

Quote:
>> repeat i 3 [append [] i]
== [1 2 3]


Because the [], when first encountered during runtime, becomes allocated in memory at that time, you can start using it directly. When the loop is run through, multiple times, REBOL notices that a block is already allocated at that address and uses it again. This is just an example of how aggressively REBOL reuses existing data.

Last edited by HMK on 06-May-2007 at 10:56 AM.
Last edited by HMK on 06-May-2007 at 10:50 AM.

 Status: Offline
Profile     Report this post  
CodeSmith 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 12:41:15
#15 ]
Elite Member
Joined: 8-Mar-2003
Posts: 3045
From: USA

@HMK

OK, that looks *a lot* like Scheme (I'd give you some examples so you can see how similar the code would look, but I haven't done any Scheme or Lisp in about 10 years). It's a very powerful language, but it's let down by the constraint that *everything* (including code) is a list. You can do all sorts of crazy stuff with it because you can create a list, pass it around to other methods that modify it, and then execute it as if it were code, but the major downside is that any non-trivial program looks like bracket soup. Come to think of it, Lisp and Scheme also tend to have very small runtime libraries. Nice to see that someone has come up with a way to do the same sort of thing without the fugly syntax.

Last edited by CodeSmith on 06-May-2007 at 12:46 PM.

 Status: Offline
Profile     Report this post  
Zorro 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 15:39:34
#16 ]
Super Member
Joined: 30-Apr-2003
Posts: 1081
From: Italy

Great interview...

Carl... one of the creators of the Myth...


_________________
-------------------------------
AmigaOS, the last hope...

 Status: Offline
Profile     Report this post  
dirigent 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 15:57:44
#17 ]
Regular Member
Joined: 30-Mar-2003
Posts: 169
From: Unknown

Quote:
REBOL allows a lot of self creating code. You have an enourmous amount of freedom to machine build REBOL code from other REBOL code, so the dynamic aspect of the language during runtime is far greater than Objective C offers.


I had that impression when I had a look at the language once. I was considering how good it would be for expression-handling stuff, and I had the impression that for such purposes it is really very powerful. (It's in the name, after all..)

Speaking of Objective-C, actually the heavy use of cornered brackets around things gives a slightly similar appearance in a way - if you have spent uncounted hours working on code with a C++-like appearance, this is a bit of a change and slightly irritating at the beginning. But maybe REBOL is not (yet) intended to be the logical alternative choice for a problem you might otherwise solve using C++. What kind of problems would you say REBOL is best for?

The language is definitely interesting, and I'll watch for opportunities to use it.

Quote:
>> set [water is good for you] [i really want some cake]


My first thought was, what, is he creating two temporary, unnamed vector objects on the stack and then assigning one temporary vector object to the other? But I had a look at the REBOL docs and figured it out.

 Status: Offline
Profile     Report this post  
HMK 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 17:25:46
#18 ]
Regular Member
Joined: 17-Mar-2003
Posts: 246
From: Denmark

Quote:
What kind of problems would you say REBOL is best for?


It's hard to narrow down, because it has functions for practically anything. The current limitations come from some weaknesses in the core, such as the lack of multithreading and the math library does not offer high precision calculations or access to vector operations.
There is no way to handle 3D acceleration or complex sound at this time, but all of these issues are meant to be solved with REBOL 3 and then some.

It's probably better to say that it is very good for solving generic problems in a few minutes, although I use it mostly for creating and maintaining full-sized applications. If your boss wants to do something with a simple user interface, REBOL is excellent for that.

A few things I did with it in less than 30 minutes of coding:

- Dead link detector for websites.
- Price tag creation form and emailer client, sends me emails with price tag specifications from my brother so I can create DTP layouts for new price tags.
- Backup/restore system with a GUI for experimenting with an accounting system on a laptop. My brother needed a simple GUI to be able to use it himself.

In less than 1 day (1 hour and up):

- Proxy server to alter the contents of a German website to a Danish website with a different layout.
- Filetransfer tool
- Multi-file text search tool
- Power Point like presentation tool (didn't have MS Office or Open Office at hand and needed to present something).

Some generic things I made for myself:

- Source packing system
- On-demand compiler that works over network
- GUI based code testing tool
- List-view for the GUI
- Website generator that uses a dialect to describe the structure of the site.
- Bug database and management tool
- Monitor membership payments to a specific website.
- Social security card reader and parser
- Relations Engine

A few REBOL'ers and I started the Wikibook for REBOL programming, because we wanted to create a complete and more updated guide to REBOL

That was a foolish idea, because we then realized just how comprehensive REBOL really is, and we couldn't figure out how to focus it. It's still unfinished, because we have no time to work on it.

 Status: Offline
Profile     Report this post  
HMK 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 17:40:51
#19 ]
Regular Member
Joined: 17-Mar-2003
Posts: 246
From: Denmark

Quote:
But maybe REBOL is not (yet) intended to be the logical alternative choice for a problem you might otherwise solve using C++. What kind of problems would you say REBOL is best for?


Perhaps I should list what REBOL is not so good for:

- High performance arcade games. The graphics display system in REBOL 2 is not very fast as there is no hardware acceleration. However image processing is pretty fast.

- Sound. The sound system is singlethreaded and blocks whenever a sound is played. However, people have made

- Integration with the underlying OS. You can't use drag'n'drop into a REBOL window and the clipboard is restricted to text only.

- Some file operations are slow, due to the port system design.

Keep in mind that these things are going to be solved for REBOL 3 with proper multi-threading and proper access to the system hardware and a new port design.

Another interesting way to put, what REBOL is good for, when saying "almost anything" is that you can compare it with a typical web content delivery system.

Normally you'd use something the following Web 2.0 technologies:

- SQL for database
- PHP/ASP for server side scripting
- XML/AJAX/JSON perhaps for data transport
- HTML for structuring presentation
- CSS for visual presentation
- Javascript for client side scripting
- Java for client side plugins
- Webbrowser that upholds the standards for Web 2.0 usage.

When putting together a REBOL based solution for doing the same job:

- REBOL/Core database
- REBOL/Core for server side scripting
- REBOL/Core and View for data transactions between client and server using the built-in networking
- REBOL/View for presenting a GUI on the client that displays the content from the server

It does exactly the same. AltME is built exactly like that. It's REBOL everywhere and there's no need to change the language at any point in the process.

Last edited by HMK on 06-May-2007 at 05:41 PM.
Last edited by HMK on 06-May-2007 at 05:41 PM.

 Status: Offline
Profile     Report this post  
BobC. 
Re: Interview with Carl Sassenrath
Posted on 6-May-2007 17:51:24
#20 ]
Cult Member
Joined: 9-Mar-2003
Posts: 556
From: Mid Atlantic State USA

It's always interesting to read what Carl has to say. I find him to be a very talented, creative and seemingly nice guy!

This part nearly broke my heart though:

Quote:
At Apple, it was interesting to see what engineers thought of the Amiga. Most of them thought that the Amiga would totally destroy Apple. Technically, Amiga could have, but they did not know what I knew about Commodore marketing.


Especially considering the (latest) mess we're in now!


_________________

 Status: Offline
Profile     Report this post  

Goto page ( 1 | 2 )

[ home ][ about us ][ privacy ] [ forums ][ classifieds ] [ links ][ news archive ] [ link to us ][ user account ]
Copyright (C) 2000 - 2019 Amigaworld.net.
Amigaworld.net was originally founded by David Doyle