From: Mike Calder Date: 2004-04-30T23:35:52+09:00 Subject: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" A word of warning from a potential friend. Please don't take this negatively, because I think you have something, and I'd like to help. If you can read through to the end, there's a modest proposal. It's too late and too early for you to start evangelising Ruby. That's a shame, because right now there's a major opportunity for grabbing hearts and minds. "Too late" because Ruby has grown beyond the early days when a product can be forgiven holes, and "too early" because it still has some big ones - getting newbies interested will leave a lot of them dismissing Ruby unnecessarily. I've only been using Ruby a few days, so I'm perfect to point out a few things; I've no emotion invested, and am almost (but not quite) totally ignorant about Ruby. The great opportunity is that I and a lot of people just like me have just realised (or are about to realise) that they have a serious need, and Ruby might be just it. But I need to be sure. That means I need to see some things about Ruby before I jump. They may exist, but I can't see them, and that itself makes the point. I'm a Java programmer, and am sitting on a product with world-wide usage and over a quarter-million lines of code. I'm deeply worried, after the Sun/ MediocreSoft rapprochement, about the potential future of Java. That's a shame, because for all its faults, Java is the best production language I've come across in over thirty years practical experience in the industry - and don't bother trying to engage me in a discussion over that; I know it's a personal evaluation. However I am sufficiently worried about the future of Java to consider alternatives, and after looking around, Ruby seems the best bet out of a narrow field. The criteria are: * Proper OO. * Write once, deliver once, run anywhere, in any language/locale. * Open Source with unrestrictive licence. * Comprehensive functionality, good libraries, easy extensibility. Now you ruby experts know that ruby is good for all this. My first point is, however, that after looking at ruby in some detail for well over a full day, I was reluctantly about to discard it as a possibility because it doesn't support Unicode, and that or something like it is necessary for "Write once, deliver once, run anywhere, in any language/locale". Yes, I know. But it took me two days to find out, and I *still* don't know how to write or handle Unicode strings in ruby code. Or where to go to find out. So, POINT 1. Needs improved documentation. As a minimum, a current features, capabilities, and extensions document. A central repository of HOWTOs would be nice (how about one on how to write and handle Unicode in Ruby? The world doesn't end in Japan and America.) Next point. To handle what I (and probably most Java programmers) want requires a good, configurable, GUI. I'd heard of Tcl/Tk, but most of the examples I'd seen were pretty simplistic and, how to say this politely, not overdesigned. Some of what I read mentioned others. It's nice there's a choice, but you can't make a choice without information. If you make the wrong choice because of lack of information, by the time you realise, you may have invested so much effort that you're stuck. I took a look at Fox for my eval. So, POINT 2. Needs improved documentation. As a minimum, some good examples of how GUI coding can be done with different packages, and INFORMATION about the different possible choices. Oh, and the GUI code comes from another website? It's a separate product? You mean I have to install *three* things? Ruby, the GUI toolkit, *then* the Ruby toolkit enabling stuff? Where's the documentation? Finally (for this posting at least; it's too long already), distribution. Windows users seem to have it nice; preconfigured downloadable distros. I use Linux, so of course I'm happy to download fifty-eight different source code tarballs from nineteen different websites for all the options I want, and configure, make, and install each of them (in the correct order so as not to muck up pre-requisites), *then* manually add links to put the libraries in the right place for my particular Linux distro, then copy files all over the place when it doesn't work. After all, that's what every Ruby hero has had to do over the years; that's how they learnt how Ruby works. Naah. If I had any sense I'd have dumped this and gone on to something productive days ago. 99% of the people you might want to attract would have; I suspect you've lost a few already. We're not all sysprogs, and you need the ordinary joes as well as the early adopters and enthusiasts. You need to have good packages for all the distros. Something like the Java SDK and Runtime packages. A single file download and install that contains *everything* (yes, Victoria, the GUI as well). OK, that means big files, but disks are big these days, and install procs can have things called options. Oh, and if you need to distribute applications to end-users (yes, those mythical beasts *do* exist), you need a tool to generate customised runtime install packages of Ruby and whatever extensions are needed (oh, and it needs to be able to recognise already installed rubies and do deltas). Documentation and Distro packages. It looks to me that Ruby has some serious good function and serious good technical people (and maybe a couple good designers). There are a lot of interesting sounding people in the Who's Who. Shame a lot of the links are broken. What Ruby needs is some thought to the process side and the needs of the non-techie user. I'm an application programmer, but for my sins I've had to do the marketing bit to persuade people to use my products, and that sort of thing gives you a perspective; it's dirty work, but someone has to do it. I think Ruby users at the moment are enthusiasts; if it's to grow, it needs a bit more ease of use. I'd say Ruby has reached the position where it needs something like a Red Hat (Ruby Turban?) to package it and represent it to the world. I'd be willing to get involved in that. What do you think? On Friday 30 April 2004 00:34, Simon Strandgaard wrote: > Josef 'Jupp' Schugt wrote: > > Simon Strandgaard wrote: > > > Sascha Ebach wrote: > > [snip] > > > >> And if not we could burst into a PHP meeting and try to convert > > >> some ;) > > > > > > A ruby crusade :-) the history repeats itself. > > > > "crusade" is a hard word. I'd prefer calling it evangelization the > > traditional Societas Jesu way >;-> Actually Sascha's idea reminds me > > of what Greenpeace did in the past. > > > > Anyway: Ruby evangelization is important because many people who > > don't use Ruby simply do so because the don't know it exists. > > Agree, we need to spread the word a bit more. > > Yesterday I went to the local library, and asked a guy looking at the > computer books, what he was searching fore. He wanted to learn perl5! > I of cause recommended him to learn Ruby (or secondary Python), > but unfortunatly no books at the library. My local library seems only to > buy bunches of Visual Basic books at the moment, which is unfortunate. If > somehow we could infect some libraries with books about Ruby, it would be > great. This is frustrating, any suggestions what to do? > > Also much more Ruby in the media would be an eye-opener. > > -- > Simon Strandgaard -- Clear skies! Mike Calder.