RebolLanguage is an elegant, ultra-high-level multiplatform language. Why isn't it as popular as PerlLanguage or JavaLanguage? This is in my opinion why:
- It used to be proprietary. Sure, you can use Rebol/Core and Rebol/View for free, but as soon as you decide to flex Rebol's db connectivity muscle, you have to cough up $200 or so: [not true anymore rebol has released FREE ODBC Driver to connect to MS Access, Oracle, SQL Server, MYSQL, ... which even supports DNSLess connection]. Why, when there are many other ScriptingLanguages that do the same while being OpenSource?
- This is the big one for me. I like the language, but I'm just not willing to trust the future of my software to REBOL Technologies.
- For me, there aren't any other languages that do what REBOL does (and I've got a lot of them here :) I use, and develop, both proprietary and Open Source software; Open Source is a noble thing, but it's not easy for people to make a living at it; I don't have a problem with paying for something if I'm using it to make money, I think it's fair.
- This has changed! Rebol is now Open Source. See http://www.rebol.com/cgi-bin/blog.r?view=0519
- It is difficult to read. While having elegant syntax, RebolLanguage can be dubbed as LISB (Lots of Intimidating Square Brackets). Even with brace-matching-editor, it is sometimes hard to determine where the missing bracket should go [Why would it be more difficult for brackets as for braces ? The problem is rather lack of dedicated editor with colored syntax]. (Well, I have this problem with most languages, having grown up in a happy BasicLanguage family.)
- Most people complain about the fact that there aren't brackets around argument lists and such, so you can't easily see where the args for a function call end. That's part of what is special about REBOL though. I'm an old BASIC hound myself.
- Rebol/View is a pain to program in. It is pretty much impossible to create a resizable window with resizing controls. And how many events does a usual control have? And Rebol/View has some focus-getting/setting problems as well.
- To be perfectly fair here, Rebol is unequaled when it comes to putting together simple GUIs quickly. It does indeed get harder when you want to write something more complex, but that's also the case with most GUI-building tools. But when you just want to throw up a GUI to display or get some data, Rebol is currently king of the hill.
- Something a lot of people don't know (and those that know tend to forget), is that VID (the Visual Interface Dialect in REBOL) wasn't meant to be the be-all, end-all GUI design language for REBOL. It's there by default, and it's implementation is *tiny* (which is why they're willing to include it), but it's meant for two things: 1) simple GUIs and 2) to be an example of how to write your own GUI dialect. For #2 more docs on the internals need to be written but maybe #1 makes up for it because you can push it way beyond simple GUIs (check out detective.surfnet.nl/en/index_en.html as an example). There are at least two smart-resizing libraries for it out there, and some other very cool frameworks people have built. Focus handling is an issue though, but no worse than the web. :)
- Every programming language must have its own quirk. Either everything is a string, or you indent instead of bracing, or it looks like chars service output, or it emulates classes through tables. Or it treats strings and other series the very unusual way. EverythingIsa says Rebol's quirk is that EverythingIsa "dialect". Why does that quirk make Rebol less popular than other languages?
- Because people don't get it. New ideas take time to catch on, or massive marketing pressure, or both. For those that do get it, it's hard to go back to other languages. :)
- Well, Rebol/View syntax is a dialect, and it's horrible. But working with series is much worse. If s is a string, then s is also a pointer to a character in that string.
I assume you mean VID when you say REBOL/View; if so, what GUI dialect do you like better, or find more natural? As far as how series! values work, you can hate them if you want; I don't. What is your language of choice, and what are the things you like most about it? --Gregg Irwin
>> s: "I hate this approach"
== "I hate this approach"
>> s: next s
== " hate this approach"
But this 'I' isn't lost.
>> back s
== "I hate this approach"
>> s
== " hate this approach"
>> s: head s
== "I hate this approach"
Of course, you can index the string
>> s/1
== #"I"
But you can't calculate the index in place.
>> s/(2 - 1)
** Syntax Error: Invalid path -- s/
** Near: (line 1) s/(2 - 1)
>> s/2 - 1
== #"^_"
>> i: 1
== 1
>> s/i
** Script Error: Invalid path value: i
** Near: s/i
>> s/:i
== #"I"
Advanced path notation, with evaluation, is something they're considering. I've never needed it, and I think it will open a can of worms in some respects, but I guess enough people want it that they're looking at it. --Gregg Irwin
- Its object model works like RubyForms?.
Maybe because its name sounds like it is a rehashed version of COBOL?
Then it should be extremely popular. Or does rehashing invert properties?
When CobolLanguage was popular, there wasn't much competition, and the competition wasn't very good at data processing. Nowadays we have all sorts of FreeSoftware languages that are good at "internet scripting". Whatever advantages RebolLanguage may have, they aren't worth using a proprietary language to get.
REBOL isn't a scripting language; not really. Sure, you can use it that way, and most of us today are using it as a scripting/programming language, and in that context it acquits itself remarkably well. Technical advantages aside, REBOL is an elegantly-designed language (no offense to messrs Wall, Van Rossum, Matsumoto, et al) that suits some people's taste very well. --Gregg Irwin