Korundum Brings eXtreme RAD to Linux 53
anonymous writes "The Free Software community is on a quest for the next generation development environment. Is it .Net, is it Java? Many (including Havoc) are quick to dismiss some of the gems invented by the Free Software community itself. Yes, Ruby is an incredibly consistent and clean language designed specifically to incorporate many of the best features and ideas of predecessors. Absolutely everything in Ruby is an object and practically everything can be redefined or extended on the fly. The effects and resulting power of such flexibility can be quite astounding to those who have adapted to contemporary language limitations. Now, the Ruby environment has been seamlessly integrated into KDE through Korundum, meaning that well-integrated and first-class desktop citizens for Linux can be sketched and developed in an extremely short time. Caveat: No explicit compilation is required and programming seems so easy it feels like cheating."
Rubydium JIT too (Score:2, Interesting)
Count in one new Ruby fanatic (Score:3, Interesting)
After a long, long time mired in the quagmire of Java configuration files and the like I finally gave it a go with a small project (an app server). It took me roughly a tenth of the time it would have in Java and I'll gladly shoulder the cost of slower execution speeds with a little more processor power
Is it ok as a beginner's langage ? (Score:2)
Now I'm looking at some old Windows app and asking myself how hard it can be to build a GUI for some command-line only tools I now have to use...
So, is it ok as a beginner langage ? I mean all experience I have is with HTML and one have to start somewhere...
Re:Is it ok as a beginner's langage ? (Score:3, Interesting)
Yup, it's perfect. And actually, Alexey just started a forum [ruby-forum.org] for Ruby beginners. Might be a good place to ask questions...
Re:Is it ok as a beginner's langage ? (Score:4, Informative)
For a tutorial, check out Why's Poignant Guide to Ruby [poignantguide.net], or if that's just a bit too bizarre you might have a look at this Ruby tutorial [pine.fm].
Is Ruby good for numerical computing? (Score:2)
To my mind, efficient numerical computing requires an intrinsic array type, because a lot of numerical computing has to opera
The name (Score:1, Funny)
Re:The name (Score:5, Funny)
It McReminds me another McStupid McNaming McConvention.
Re:The name (Score:1)
Re:The name (Score:2)
who gives us guff.
Re:The name (Score:2)
Meh? (Score:2)
Personally, I'd love to see Ruby used as the next-gen language for Free Software application development. It rocks!
Re:Meh? (Score:2)
i'm looking forward to when we're closer towards a full fledged VM for ruby.. it's been interpreted since its inception as far as i know.
Re:Meh? (Score:3, Informative)
-- Richard
Re:Meh? (Score:2)
Re:Meh? (Score:3, Insightful)
The point being that the existence GTK/Gnome bindings for ages have failed to change the primary language for building Gnome apps, so there's little chance that these Qt/KDE bindings will usher in a new era of anything, either.
There needs to be some consensus in the community about such things and given we can't even agree on the One True text editor, it is unlikely we're going to agree on a next-generation application development language.
So
Re:Meh? (Score:2)
For Ruby GUI stuff, FxRuby [google.com] (FOX toolkit) is hands-down the most natural-feeling one in a Ruby environment.
Re:Meh? (Score:2)
FxRuby takes advantage of the standard Ruby features and seems like the smoothest transition between GUI and logic programming (I think GUI programming is painful). All of the toolkits offer basically the same functionality.
Re:Meh? (Score:1, Insightful)
It's slow, does nothing that Smalltalk wasn't doing better 20 years ago, and has crappy Unicode support to boot.
You might have guessed by this point that I disagree.
Re:Meh? (Score:2)
Apparently there are Gnome bindings for Smalltalk-80. If so, what are you waiting for, get hacking!
Re:Meh? (Score:1, Insightful)
I find it irritating that every few years someone releases a new scripting language, that is basically just Lisp or Smalltalk with new names for all the wheels the author has reinvented, and suddenly people are talking about how these new amazing buzzwords are revolutionizing programming.
Ruby is a fine language, but it's nothing new. It makes certain tasks very convenient, but it doe
Re:Meh? (Score:3, Informative)
Ruby and Smalltalk both think of everything as an object and have a "bullet list" of main language features that are similar, true.
However, they have a quite different environment integration, a quite different syntactic style, a different programming culture, leading to them being different in practice, with different strengths and weaknesses.
To be more specific:
Environment:
still waiting.. (Score:1, Interesting)
I'd love a Ruby IDE or "smart editor" but none of the ones I've used can even highlight synax correctly (ever had a regexp like this? %r{'\"(.*\))>} (just made it up)
Also attaching Ruby to KDE, wow. Ruby is so small and elegant, and KDE is.. so.. large.
I much
Re:still waiting.. (Score:1)
ScreenShots [rubyforge.org].
Aaargh (Score:3, Interesting)
One of the best features of Ruby is code blocks. I've skimmed through maybe half of that tutorial, and there are no code blocks in sight.
Now you may wonder why should anybody care about this. Well, simple: there are many, many ways of using Ruby's blocks to make code easier to understand. In the case of a GUI toolkit, I can think of two offhand:
Creating contained components in a code block passed to the container is no harder at all; in Ruby, just make the container's constructor yield self to its block. And what you gain is much nicer than what most people will give credit for: the code that creates the contained elements is visibly "inside" the code that creates the container. Once you're attuned to this convention, it becomes easier to see the structure of the GUI and the code from the indentation in the source.
Re:Aaargh (Score:3, Interesting)
It may be simple, but it isn't optimal. I'm going to need named callbacks, multiple callbacks, and mutable callbacks. Ruby blocks to not offer me this. The first two cases I use all the time. The third I use ocassionally, but when I need it I really need it.
Blocks are very nice things, but they are not omnipotent.
Re:Aaargh (Score:3, Interesting)
This makes it possible to handle all of your cases beautifully, even if blocks[1] had been the only core feature.
Eivind.
[1] Technically, passing the callback in the block slot of the method in question. Blocks is a syntactic structure.
and so? (Score:2, Redundant)
Re:and so? (Score:2)
wxPython works on all those platforms, too, and has GUI designers. So does PyGtk.
QtRuby looks like another reasonable binding, but functionally, it is just more of the same. Even the differences between Ruby and Python are negligible these days, since Python has blocks and all those other Ruby feature, too.
Re:and so? (Score:3, Interesting)
I have yet to see anything in Python that is equivilent to the expressiveness and power of Ruby's blocks. (but I'll admit, I haven't kept up with all the latest changes in Python, maybe they've added something recently)
In Ruby blocks are used extensively in the standard libs because Ruby had blocks from day one. Blocks are full closures in Ruby and they can contain any code (as I recall there are restrictions on lambda code in Python).
I have
Re:and so? (Score:3, Informative)
Re:and so? (Score:2)
You're absolutely right. However, I do tend to prefer Ruby's syntax for blocks over Smalltalk's, but that's a matter of taste.
they're referred to as closures,
In Ruby a block is an anonymous closure.
"fell flat"??? (Score:2)
They aren't used as much in Python because it also has some other constructs that are often preferred by users (eg list comprehensions).
Re:"fell flat"??? (Score:2)
Re:"fell flat"??? (Score:2)
Generally, I would prefer having a syntactically unrestricted lambda/block in Python, but between iterators, list comprehensions, and functional lambda, the need for any kind of complicated nested block almost never arises.
In the context of how these languages are used, blocks just don't make a significant difference
Re:and so? (Score:2)
Python also has list comprehensions, which are less general but more convenient:
Generic languages are not the solution (Score:2)
Re:Generic languages are not the solution (Score:2)
Re:Generic languages are not the solution (Score:2)
I'm finding that the logic of my systems goes up into the domain space where I want OO a lot, *and* that they go down into the database where I want the relational model a lot.
I agree with you that embedding SQL or query interfaces strongly based on SQL does not cut it; however, I'm uncertain if a special language will cut it, either.
I'm presently working
Note that Korundum has a RubyForge project page... (Score:2)
The activity graphs [rubyforge.org] show a lot of recent movement, too... good times!
Konundrum? Bury? Lips? (Score:1)
Korundum works well on *NIX (Score:1)
I hope in the future there will be even more expansion from what