Computer Science Canada Rebol |
Author: | btiffin [ Sat Jan 26, 2008 11:52 am ] |
Post subject: | Rebol |
Hello, There is a new release of the REBOL programming language in active development. Carl Sassenrath (responsible for the Amiga operating system) is hard at work with the third major version of the Relative Expression Based Object Language. R3. R3 went to public alpha status on January 8th. If you ever wanted to influence the design and implementation of a language, Carl is very open to suggestions and feedback. http://www.rebol.com is the home page http://www.rebol.org is the public script library http://www.rebol.net is the developer resource page http://www.reboltalk.com is one of the public discussion forums Alpha release announcement at http://www.rebol.com/article/0347.html The new REBOL release 3 is alpha, so before trying it out, please follow the Download links from rebol.com for the current release verions of REBOL 2 just to get your feet wet with this somewhat under utilized and very powerful system. REBOL 2 comes in two main flavours, REBOL/Core and REBOL/View. REBOL/Core is for console and CGI applications. REBOL/View includes a very simple yet powerful GUI builder. Multiple platforms are supported, but it's mainly GNU/Linux, Windows and Mac/OS. For example this script is a graphical Hello World with a close button (on all supported platforms) REBOL [ Title: "Sample" ] view layout [text "Hello REBOL World" button "Close" [unview/all halt]] This script will display the html of the REBOL website REBOL [] print read http://www.rebol.com Thanks for listening. Brian Tiffin REBOL programmer and evangelist, just wanting to spread the word. |
Author: | Dan [ Sat Jan 26, 2008 4:58 pm ] |
Post subject: | RE:Rebol |
Can you tell us more about REBOL btiffin? Like what advantages it might have over other languages or a comparison to them? Who is this language aimed at? |
Author: | btiffin [ Mon Jan 28, 2008 2:23 pm ] |
Post subject: | Re: Rebol |
Absolutely; I grew up a polyFORTH programmer but my quest to learn programming enviroments lead me to REBOL. REBOL is a marvelous little gem of a scripting language. First the evalgelising. REBOL makes network and graphical programming a breeze. It is interpreted, so it is not a systems programming tool but aside trom that, covers most general programming domains. REBOL is freely redistributable but portions are not Open Source. The whole system is a 600K download. Carl Sassenrath the language designer is in California, but REBOL is used all over the world with a fair number of the users being from France. Compares well to Ruby, Python, Forth, Lisp, Java and others (in that apps will usually be smaller in terms of lines of code). REBOL is rich in datatypes, highly reflective, interactive and very network capable. Syntax is based on context, and there are a few design issues that make it different from most programming environments. It's graphics engine is very powerful and easy to use. Datatypes include computer science related as well as abstract types. REBOL is value based, where values have a type and a contents. There is integer!, decimal!, binary! and the expected numerical types as well as string!, char!, and with Release 3, full Unicode support. The power comes with some of the other lexically defined datatypes. email!, url! for the network, block!, map!, object! and struct! as some of the structures and then types like money!. send user@host.moc "This string will be sent as email" a: [this is a block of REBOL word! values $23.00 will load as money! http://www.rebol.com will load as url!] Conceptually, REBOL is based on series! data. Series in REBOL cover such things as string!, block! and other abstracted types such as port!. Functions such as HEAD, TAIL, NEXT, BACK, SKIP are used to traverse series and access functions such as FIRST, SECOND, NINTH or PICK. REBOL includes a very powerful pattern matching function called PARSE. Parse allows for REBOL dialects. Dialects can be user defined domain specific languages or syntax helper structures. REBOL functions, (type function!) are fixed parameter but can include refinements for optional arguments. Source code for mezzanine and user functions is available from the console with the SOURCE fucntion. REBOL object! structures are prototyped based objects. Namespace and value bindings are part of the object! concept. REBOL is currently on release 2, with a /CORE and a /VIEW version, both of which come with a console, but /CORE is well suited to running CGI and Server applications. /VIEW adds the graphics. A gui is REBOL can be as short as view layout [text "Hello World"] and a form can be posted with something as short as view layout [ h1 "Contact App" label "Name" name: field label "Phone" phone: field button "Find" [lookup name phone] button "Add" [create name phone] ] The Visual Interface Dialect can also support animations and far more than just forms. Webservers, databases and many other applications are available. rebol.org the public script library site is supported completely through REBOL CGI scripts. With REBOL release 2, some professional featrures (access to run time libraries for one) are commercial. That will change with the third release. Much of the fast and furious REBOL communications occur inside a REBOL application called AltMe (Alternate Messaging) and the main REBOL3 world is by invitation. Dropping a note on reboltalk.com can help getting in. Why might a compsci.ca reader care? Aside from REBOL being a very capable entry on any programmers utility belt, REBOL is on the brink of release 3. Not a bad time to pick up this beauty of a tool kit, language, enviroment. Some key documents can be found at http://rebol.com/docs/core23/rebolcore.html (the core manual online) and http://rebol.com/rebolsteps.html (REBOL in ten steps, more in depth than just an intro but a short read). Cheers, Brian Tiffin |
Author: | btiffin [ Thu Jan 31, 2008 3:32 am ] | ||||||
Post subject: | Re: Rebol | ||||||
Hi, More REBOL evangelizing. Here is a web server in one line of code ... not exceptionally readable REBOL. It serves files out of the current working directory
Author: Cal Dixon How about a one line paint program?
Author: Nick Antonaccio How about a digital clock?
Author: Ammon Johnson These examples are more useful for demonstration than actual function, but it does highlight the power of my favourite programming environment. Cheers, Brian Tiffin |