rebolution3

Thanks to Gerad Cote who notified me on twitter about Carl’s Blog post as he wrote:

It’s time for changes to the main RT website and how we market and promote REBOL. Plans are being made. Your input is appreciated.

So here’s mine - though I don’t feel at ease when writing lengthy opinions as my english is not native so I fear I may not use the right words but I’ll try.

First, I must say that I’m not part of the Rebol Community as Guru, you won’t find me on altme or rebol mailing (though it’s due to technical issues with my pc but I ask stupid questions on Stackoverflow so thanks to Rebol Gurus who go there and answer them :) ): I’m just a Rebol User who setup this Blog a few months ago. But I think that makes me an outsider or more objective observer.

I have heard of Rebol since nearly its birth (I remember I was looking for something to parse yahoo finance csv file that’s why parsing csv is one of my first tutorial here :) ) and so have followed the Rebolution for a long time. Though I agree that Rebol Language is indeed revolutionary, as a professional IT, I do care more about Solutions than about Revolutions. If you look at the teaser of my blog “Real World Examples”, this should be obvious. Still these examples do only reflect the viewpoint of a Rebol Hobbyst.

From the viewpoint of a Professional, I tend to think like Joel Spolky, one of the founder of Stackoverflow, who ranted about how software became complicated:

There was a time when if you read one book by Peter Norton, you literally knew everything there was to know about programming the IBM-PC. Over the last 20 years, programmers around the world have been hard at work building abstraction upon abstraction on top of the IBM-PC to make it easier to program and more powerful. But the law of leaky abstractions means that even as they built the abstractions that are supposed to make programming easier, the sheer amount of stuff you have to know to be a great programmer is expanding all the time. Becoming proficient, really proficient, in just one programming world takes years.

But at the same time need to recognize that there’s no real choice when it comes to “Serious Business Stuff”:

Ruby is a beautiful language and I’m sure you can have a lot of fun developing apps it in, and in fact if you want to do something non-mission-critical, I’m sure you’ll have a lot of fun, but for Serious Business Stuff you really must recognize that there just isn’t a lot of experience in the world building big mission critical web systems in Ruby on Rails, and I’m really not sure that you won’t hit scaling problems, or problems interfacing with some old legacy thingamabob, or problems finding programmers who can understand the code, or whatnot. I for one am scared of Ruby because (1) it displays a stunning antipathy towards Unicode and (2) it’s known to be slow, so if you become The Next MySpace, you’ll be buying 5 times as many boxes as the .NET guy down the hall. Those things might eventually get fixed but for now, you can risk Ruby on your two-person dormroom startup or your senior project, not for enterprisy stuff where Someone is Going to Get Fired.

As I fully agree with him, my viewpoint is that Rebol 3 should clearly focus on these IT issues:

Scalability, Security, Performance and InterOperability.

Writing White-Papers which explain in detail how Rebol 3 could solve them and participating in Seminars like the ones on InfoQ are the ways to make People who are the Prescriptors of Technology in Enterprise - and not only the Hobbysts - really aware that Rebol 3 is a serious language. From that perspective, multi-threading in Rebol 3 should be really a priority and pushed forward. Particularly about performance, people are very skeptical due to the scripting nature of Rebol so benchmarks should also be built to show Rebol’s capability on that point. If Rebcode can really boost the performance, it should be demonstrated in some cases and publicized. For example, since Cheyenne already exists and is a real world application, it would be interesting to know its performance compared to others and also to compare Cheyenne R2 vs Cheyenne R3 when it will be ported.

More generally Joel Spolky also remarked:

Lots of other languages which are totally, truly brilliant programming languages worthy of great praise, but just don’t have the gigantic ecosystem you need around them if you want to develop web software.

I’m sure Joel would admit Rebol is “truly brilliant” but as for the Ecosystem, there is indeed a huge lack in Rebol, even for the most basic libraries like Web Session Management for example. Sure Rebol can do it - no need for Rebol 3 for that - but today many people do not have the background knowledge to do low-level programming and they don’t have time either to learn or write them because they have to tackle higher level issues like presentation, accessibility, performance, etc.

And when one would take the time, it’s hugely difficult as the examples in Rebol Cookbook are too simple and Rebol.org which contains some really good code snippets is still missing some Real World sample Applications (a calculator doesn’t fit the definition whereas a small accounting application targeting freelancers and small business owners does). This lack of complex examples can a be a huge barrier for people to embrace a new paradigm, as you can read this testimony about TDD, which should also apply to master a new language (because mastering a language for real world application requires more than just learning the syntax):

The purpose of this is to reveal to others some of the issues that I had and hopefully provide some insight on how to overcome such.

The Examples Are Too Simple

This barrier was by far the most difficult for me to overcome. I would read up on all of the buzz about how to add unit tests to your code and how to apply unit testing into TDD. I would follow the examples and understand it and be fine; however, I would always stall out whenever I tried to do it in a real world scenario.

I myself find it was and still is true for me. So I think that a solution to this would be to create Ready-Kit-Applications a bit like what Microsoft does with Visual Studio Express Editions: a Membership Webkit for example is a great way to learn how to create a full website that is close to reality.

Nearly last but not the least, about VID, for me it’s a lost battle like Sun’s past AWT. Java has never succeeded with AWT because as JoelOnSoftware puts it once again:

Java apps have menus in the right places but there are all these keyboard things that don’t work the same way as every other Windows app and their tabbed dialogs look a little scary. And there is no way, no matter how hard you try, to make their menubars look exactly like Excel’s menubars. Why? Because Java doesn’t give you a very good way to drop down to the native facilities whenever the abstraction fails. When you’re programming in AWT, you can’t figure out the HWND of a window, you can’t call the Microsoft APIs, and you certainly can’t intercept WM_PAINT and do it differently. And Sun made it plenty clear that if you tried to do that, you weren’t Pure. You were Polluted, and to hell with you.

VID has the same problem with “purity” obsession whereas Eclipse did shy away from mentality:

After a number of highly publicized failures to build GUIs with Java (e.g. Corel’s Java Office suite and Netscape’s Javagator), enough people know to stay away from this world. Eclipse built their own windowing library from the ground up using native widgets just so they could write Java code that had a reasonably native look and feel.

What if I want to craft rounded skinned Widgets which would stay on top of all other windows for making a Visual Dashboard for example ? Well I cannot do that with VID. In my opinion, if developers are not free to craft the look and behavior of the GUI, it’s not really worth to put the effort to publicize that part. Also a tiny detail that may count from Marketing point of view is that you cannot even get rid off the Rebol’s icon which means that little software editors who need to brand their own softwares wouldn’t buy Rebol just for that little reason whereas a little scripting language like Autoit has a packager with an option to change the .ico when you convert the script into an EXE. On VID chapter, complex examples are also lacking for creating appealing visual components (Combobox, Treeview, Toolbar, Menu, …).

Last but really the least, I did joke about the look of RT’s site whereas I think that it’s not really a priority at the moment ;) More important would be the visibility of the Community on the Web so that it could grow.

rebolution3-thumbnail

I may add more during next week and will then post the comment to Carl’s Blog. You can tell me what you think if you want in this blog comment before I do so.

Bookmark and Share