80 Comments
- SnapETom, on 10/12/2007, -1/+20Dugg. The article's not flamebait or anything. He's merely pointing out the elephant in the room. The guy's a software engineer at Google and loves RoR. It should be read by the RoR community.
- captaindan, on 10/12/2007, -1/+12A namespace is a group of unique names. Names have to be unique within a namespace but can be reused in other namespaces. In a programming context, names are things like variables, constants, and functions. So you can create a variable called boogers in one namespace, and another variable also called boogers in a second namespace, and they will be two separate variables. Namespaces are good for organization and preventing collisions in team development, or when you're using someone else's code.
- wildster, on 10/12/2007, -0/+8to answer two of his points
There is a good IDE - http://www.radrails.org/ and it is based on eclispe so it is likley to evolve
There is lots of good hosting for RoR - http://www.typosphere.org/trac/wiki/TypoHosting
Some of his points about the attitude of the RoR community are spot on though - ScoTTeh, on 10/12/2007, -6/+13as if Korn wasnt mainstream.
- adam.lindsay, on 10/12/2007, -0/+7Like it matters. Why do people care. The world has changed and everything is going online/web. If you language/framework can produce API's and render to a browser, then there is no reason it can't be used. Who cares if it is mainstream?
I love Rails, it allows me to build sites quicker then ever before. When something comes along that does this better, then I will use that. The framework/lanugage means very little. Only geeks worry about that. The important part is output or the end result. Right now my clients and users get great output, so all is right with the world. - thewise1, on 10/12/2007, -1/+8a namespace is used to declare a scope that will help to organize code and create globally unique types.
- fireball74, on 10/12/2007, -0/+6Technically, it doesn't.... yet. The author got it right as of the current and past versions of PHP. PHP6 will most likely have namespaces, if they don't implement them in late versions of PHP5 first.
I love PHP for it's simplicity and the fact that it's just about everywhere, which makes it much more viable for relatively quick development. RoR needs to be a nobrainer to install. As of now, you have to compile it for your platform, and most webhosts are reluctant to add anything past their installation of whatever control panel software they have installed. That's a big negative. - lukes, on 10/12/2007, -0/+6Nice article, I've been a happy Rails customer for about a year and I'm always in to hearing other perspectives. The article is very fair, and oddly seems to hype the framework and Ruby at every opportunity. It's a bit of a devil's advocate piece in that regard.
It's interesting the point that Rails behaves too differently for mainstream developers to adopt. I think that as individuals mainstream developers can see tools that genuinely make your life easy as being essential to your toolkit. The medium-larger companies will stay away for the same checklist of reasons why a corporation of a certain size wouldn't quickly adopt anything that is open source, new on the scene and something no one has 'certification' for (yet). It is also a framework that has yet to make a name for itself as a framework that can handle large-scale development.
I do agree with his point about the Rails community often appearing garishly evangelical, to the point of annoyance. I cringe when I see these kinds of posts on Digg and Slashdot and often mark them down where I can. I'm a quite Rails and Ruby enthusiast, and the act of programming is how I show my appreciation of the framework and its language. I think some of those who use Rails shoudl act with a little more respect. It would be the best thing they can do for the adoption of the framework if that's what they desire. - zootm, on 10/12/2007, -1/+7If you'd read his justification, you might have become a little more enlightened on the point. :)
- Cossins, on 10/12/2007, -1/+7Quoi? It doesn't.
There's even an online petition for it: http://www.petitiononline.com/phpns/petition.html
- Simon - FredScarran, on 10/12/2007, -0/+5Another interesting article http://zacker.org/ruby-on-rails with some statistics and percentage data/comparison between Ruby and other programming languages. Also you may find this list of popularities interesting http://www.tiobe.com/index.htm?tiobe_index
- whalesalad, on 10/12/2007, -5/+10Excellent read. He did a great job laying down all the facts.
P.S. Wtf is a namespace? - SolariPicasso, on 10/12/2007, -0/+4I have recently taken up learning ROR. It was a challenge to understand at first. Mainly the way the folder structure works, and it relationships. I think the tutorials available out there do a good job of leading the novice through the initial aspects of RoR. The place where all of these tutorials have fallen down is defining the syntax. They uncover RoR bit by bit, I am wondering if there is s guide to the syntax style, or list of commands...?
I think the main appeal (to me) about Ruby is the fact that all components are free, including the OS if you use Linux. That alone may keep it going, coupled with the speed. I have to agree with the author it will never be mainstream, however Ruby is an important lesson, especially to DotNet, on how easy things could be when doing basic Database functions. Microsoft take notice, this is an idea worth incorporating. - morn, on 10/12/2007, -0/+4AFAIK, development on FastCGI has been resumed. There is also the new alternative called SCGI which is currently under heavy development.
- lukes, on 10/12/2007, -1/+5@fireball - "RoR needs to be a nobrainer to install. As of now, you have to compile it for your platform"
- You only need to have Ruby on the platform first, which if you're using Windows can be installed with a 1-file binary (double-click and it installs). When Ruby is installed, you go to the command prompt and type in 'gem install rails', and it installs. It's not compiling anything, but is downloading from the gem server the codebase that comprises the Rails framework. - alspar, on 10/12/2007, -1/+5Its precisely because its elegant that you have to learn new syntax. Ruby may look confusing at first but you really only have to learn the basics. From then on in, it is designed to match your expectations (Principle of Least Surprise) as long as you don't expect it to have the quirks you got used to in other languages.
- geminitojanus, on 10/12/2007, -2/+6Korn is also a shell, ksh. (it's also my favorite :3)
..but then again I have no idea if that's what the parent was talking about. - nakedcellist, on 10/12/2007, -0/+3Ik agree with a lot of points. I am learning ruby, and I love the elegance of it, but it is not an easy language. Furthermore, I am worried about the stories about scalability, and hope that those issues will be resolved. After watching ruby, I find it hard to go back to php again.. and finally I am quite happy with textmate as an editor (though not really an IDE of course)
- collywolly, on 10/12/2007, -0/+3".....I love the elegance of it, but it is not an easy language"
Ok, I'll might be wrong here, because I've only had a fairly quick look at Ruby, but as a Perl programmer, it looks pretty similar, but they have tidied it up and made it properly object oriented. I am keen to give it a shot, and just waiting for an appropriate project that I can suggest using it for at work, as the Rails framework does look great.
There are a lot of us Perl programmers out here, and Perl 6 doesn't appear to be coming any time soon. Is it going to be that heard for all us Perl programmer to learn Ruby? - cntp, on 10/12/2007, -1/+4I'm learning RoR now, and I must say that I'm very impressed with it, but also that I agree with his statements...
I hope he's wrong too. - funpet, on 10/12/2007, -0/+3Anyone can write an article saying something is NOT going to become mainstream.
- adolfojp, on 10/12/2007, -0/+3A namespace is a collection of classes.
They allow you to nicely organize your code in things like:
mysql.connect() instead of mysql_connect()
They might seem trivial at first, but once you understand their power in software design and engineering they become virtually essential. - reverendpaco, on 10/12/2007, -0/+3it's not a new syntax... It's a method call, to the singleton object of the class itself.
This is the heart of Ruby's power (witness the attr_reader 'syntax' as well)...
The ability to metaprogram in Ruby, allows you to declare 'syntaxes' which look
like something from a language or DomainSpecific Language when, in fact, they
are merely the same standard methods we use everyday...
With these techniques, you can craft your application from the bottom up
(much like they do in lisp), and create DSL(domain specific languages) of your
choice.
RoR is a DSL for MVC web applications. 'attr_reader' and ilk are a DSL for 'beans'...
If all this sounds too egg-headish, let me mention the primary benefit
that a RoR type DSL gives you: the ability to write once, and only once, the
logic/relationships of your entites...
If you've ever used a Java-based framework, you've probably run into
the headache of having to synch the relationships between your components
and their back-end table entites in bouth your Java code, as well as the
numerous configuration XML files... Sometimes you use XDoclet, or Ant
to perform these mundane tasks...
well, guess what? You've been metaprogramming, only using/learning an
entirely different syntax... XDoclet and annotations, and XML config files
are just a DSL for OR mapping....
Now, wouldn't it be nice if you could do this all in one language? Wouldn't
it be nice if this one language allowed you to seemlessly embed these
types of DSL's into your normal language code?
Well that's what Ruby (and to a much greater degree, Lisp) gives you.
RoR is as powerful and hyped as it is for one reason only: the underlying
power of Ruby. - X-Cruciating, on 10/12/2007, -1/+4I think it is unfair to compare ROR at this moment with J2EE. J2EE is a full-grown stack with enterprises like Sun, Oracle, BEA, IBM, etc. backing it. What these two domains provide is completely different. Take for example the following:
- JMS
- Clustering (Including session failover, state replication, etc.)
- Business components (EJB3 for sure is trying to resurrect itself back)
- etc.
ROR is a very brave child, challenging the way things have been until now. Read Bruce Tate's "Beyond Java". I am all for it and with a vibrant community behind, I feel confident that over time the Enterprise would be won :) - knotty, on 10/12/2007, -0/+3Why ? It's quite useful when you are learning - and you don't HAVE to use it - Ruby/Rails doesn't REQUIRE you to scaffold models - it's just there as a helper should you need it.
Once you have learned the framework, you might not use it all - but that's no reason to remove it. - lukes, on 10/12/2007, -1/+4Sorry, you're right, I was talking about the Windows 1-click installer which is the platform I've installed Rails on. The Windows binary comes with gems. But the kinds of people (like myself) who find installing and building something a hassle are probably the people who can use the Window binary : ).
- infradead, on 10/12/2007, -0/+3@collywolly
I've been looking at Ruby and Python in light of Perl 6's non-appearance. I must admit I prefer Python for elegance but Ruby seems to be the "in thing" atm so I'm not sure which one to use on a daily basis. Perl 6 is starting to look like Netscape at the end of the 90s: yes, it's going to be very kewl, and it's what we're all waiting for, but where is it? I've invested literally years in Perl (started using it in '94) but it's been vapourware for so long now.
: Ruby is by far the number two language in my toolbox behind Java
I was right with the author of the original article until he said that ;-) I've never understood why anyone would like or prefer Java. I'm sure there are people here who could enlighten me. To me, it seems arcane, obtuse, verbose and bloated, just what I don't want from a programming language. Both Python and Ruby are concise, legible and trim (so is Perl if you write it "right"). - t35t0r, on 10/12/2007, -1/+4why ruby on rails isn't mainstream yet:
It's very difficult to setup under Apache!!!!!!!!!! yes I've read lots and lots of howtos and I still don't understand why it doesn't work. - knotty, on 10/12/2007, -0/+3'Web Applications' in 1979 ? That was pretty forward thinking of him ...
- icoms, on 10/12/2007, -1/+3i agree, its a pain in the ass to setup ruby under apache
- captaindan, on 10/12/2007, -0/+2I played with Ruby a few years ago and found it to be a very enjoyable and capable language. The transition was easier than my transition to Perl, but I have to admit that Perl was, to me, a real oddball when I picked it up. I would use Ruby as my daily driver instead of Perl, but the product I work on is written in Perl so it's just easier to stick with what I use most of the time anyway. Still, I toy with Ruby every now and then just for fun. The only problem I have is fighting the urge to put semicolons at the end of each line. I suppose it makes sense to just use end-of-line as the statement delimiter, but it still drives me batty.
And no, I'm not usually this incoherent. :-) - prockcore, on 10/12/2007, -4/+6My problem with Ruby on Rails is you can't use mod_ruby and you are forced to use FastCGI, which is abandonware.
Make mod_ruby work, and I'll use RoR for something substantial. - rawktron, on 10/12/2007, -0/+2Well, I tried 'blog this' but it crapped so you can read my whole spiel here (http://dadmobile.com/trawler), but in a nutshell, I think this is one of the better 'critiques' of the whole Rails hype out there, but that said, I'm a big believer in RoR and think he makes some dubious assumptions in the post. I don't think he's necessarily wrong, his opinion is just coloured by his own experience (as everyone's is).
Most notably, he harbours some serious doubts about the abilities of the average programmer - apparently he thinks that Rails is just too hard for the average joe to grasp. Not sure that's true. Most of his points stem from the fact that Rails is a young framework, and is just starting to gain momentum in the mainstream. Give it time. - swein515, on 10/12/2007, -1/+3If you're on a Mac, you don't even need to "install" RoR at all:
http://locomotive.raaum.org/home/show/HomePage
Complete runtime dev (and deployment) environment for RoR. - CaughtThinking, on 10/12/2007, -1/+3Java doesn't have to be bloated/verbose. That's typical FUDslinging. Ultimately, if you look at the language and find it hard to use, or consider it messy, you probably still have some learning to do. It's object orientation is complex, but very powerful in the end; there's no denying it takes some study. Likewise, proper practice is a little hidden too, but books like Effective Java by Joshua Bloch take you a long way towards it once you've learned the core items.
It should be part of the Java programmers responsibility to study up on available software too (at least until some tool comes out that integrates a list of available software into your IDE!). Jakarta/Apache hosts a lot, java-source.net has some, and Sourceforge of course. If the core API/distribution tried to make all the "easy libraries" available to you, Java would have some gigs to distribute at runtime, everything from search engines, to hardware graphics apis, to orm tools, to irc/aim bots, etc etc ;) - lukes, on 10/12/2007, -0/+2MVC has been round since 1979 when Trygve Reenskaug designed his architecture for web applications. If you think of MVC as being a "feature" of a framework then you're not really unstanding what a framework is.
For an example of some 'new' features that Rails does actually offer, see RJS implementation, which just rolled out a couple of weeks ago. http://weblog.rubyonrails.org/articles/2006/03/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things - lukes, on 10/12/2007, -0/+2criticisms about rails' scaffolding - the one way to weed out which criticisms are coming from people who know what they're talking about, and those who are taking a wild stab in the dark. in case it's not clear - you don't need to use scaffolding, and, as clearly stated in any tutorial you'll find about rails, is only there to provide you with an instant way of using database CRUD actions before you tear it down and replace it with your own code. my scaffolding lasts about 30 seconds on average.
- cmer, on 10/12/2007, -1/+3RadRails is good, but FAR from excellent. Surely not the quality of Visual Studio 2005!
There's no debugger and no auto-complete for example. I think it should also handle restarting the webbrick automatically when it needs to. - zootm, on 10/12/2007, -0/+2@aneeley
That Poignant Guide is fantastic! I'm tempted to read it even though I wasn't planning on learning Ruby - it's just so entertaining! - MinnesotaTwins, on 10/12/2007, -0/+2It is a pretty good article. Is Rails really that hard to support from a hosters point of view? I just created a site on dreamhost and it was very simple, and works great.
- Herolint, on 10/12/2007, -0/+2I think you are right. However, it doesn't take long to realize how completely gay ASP and .NET are once you try other programming languages for the web (PHP, RoR, etc.) Hopefully these students will try some of these other tools and see the error of their training.
ASP.NET is the Visual Basic of the internet. Move beyond the "basic" everyone. - ataja, on 10/12/2007, -0/+2First off, yes, I like RoR, but love Ruby. Ruby has it's flaws, but so does everything else. RoR does take some time to learn, if you really want to know what's going on and how to use it effectively.
Most people seem to be looking for the drag and drop gui development equivalent in RoR. Drag and drop development does not equate to being a developer (programmer, whatever). Real coding requires a lot more understand of what you are working with. People seem to want to be able to code websites with little to no knowledge of what they are working with. I'm sure you can do this with a few frameworks, but don't expect to do anything not in the framework without learning something.
Ruby is elegant and has a lot of power. This is a good thing. Companies will pick up on this because it takes less people to do more work. I've coded JAVA/JSP,etc.. for years and it takes a lot to structure your code correctly. In other words, to create a flexible framework in JAVA requires a lot of time and effort.
If it's a big shop with the resources to have a decent sized IT department, then JAVA may be the best solution. There's nothing wrong with JAVA if you have the resources. For small to medium and even some larger businesses, then JAVA may be overkill depending on your application.
From what I've seen, RoR is a good application for the places JAVA shouldn't be used. It's young and getting better. I'm sure more will pop up, maybe Nitro will get some more traction? - quesera, on 10/12/2007, -0/+1That's exactly correct. And Rails isn't trying to replace J2EE in the applications where J2EE is needed, but the argument is that J2EE isn't needed nearly as often as people think it is.
I agree with this completely. I've been writing web applications since CGI was added to NCSA httpd. I've spec'ed tens of millions of dollars of software from BEA, IBM, ATG, Tibco, Oracle, etc over the years (there was a time when clients didn't believe you were doing real work if the software didn't cost them a few million dollars...).. and I can honestly say that for the vast majority of applications, Ruby on Rails would have been perfecly adequate, if it had been available.
The exceptions are very high throughput messaging requirements (Mqueue stuff) for a telecom company, and very high availability/reliability requirements (Veritas, Tibco, etc) for the financial services market. These apps were destined to be monstrosities no matter what platform they were built on. - CaughtThinking, on 10/12/2007, -0/+1I wonder about that aspect too. Everyone follows mvc or model 2 architecture by this point anyway. It's like saying this care is awesome because it has a cd player! *shrug*. I guess the difference is you don't have to download and install the packages seperately, saving you about an hour or so?
- zootm, on 10/12/2007, -0/+1@infradead
"I've been looking at Ruby and Python in light of Perl 6's non-appearance. I must admit I prefer Python for elegance but Ruby seems to be the "in thing" atm so I'm not sure which one to use on a daily basis. Perl 6 is starting to look like Netscape at the end of the 90s: yes, it's going to be very kewl, and it's what we're all waiting for, but where is it? I've invested literally years in Perl (started using it in '94) but it's been vapourware for so long now."
On the Python vs. Ruby thing, there is a couple of attempts out there at replicating a Rails-like framework for Python (Django and TurboGears spring to mind). I prefer Python too, but as you say, Ruby is very much the "in thing".
"I've never understood why anyone would like or prefer Java. I'm sure there are people here who could enlighten me. To me, it seems arcane, obtuse, verbose and bloated, just what I don't want from a programming language. Both Python and Ruby are concise, legible and trim (so is Perl if you write it "right")."
Java's a lot more verifiable than dynamic languages, you get a considerable more pre-runtime guarantees. Also, Java is essentially a language crying out for an IDE -- once you apply NetBeans or Eclipse to it, the reason for all of the "bloat" becomes clear. The stuff in it is generally justified quite well, and in particular when writing very large systems Java comes into its own, simply because of all of the things that seem like "bloat". Hello World looks complex, but Java wasn't designed for that. The repetition adds clarity, and with an anyway-decent IDE, it becomes an afterthought.
Dynamic languages like Python have the advantage of being terse, of course. One project which really impresses me is the Boo language, which is similar in scope to C#, but with syntax very close to that of Python. Well worth a look if you're interested. - headzoo, on 10/12/2007, -0/+1Like a few other people have said, it seems a bit early in RoR's life to declare it dead in the water. Many of the author's criticisms will likely be fixed as Rails continues to develop as a language. Did PHP v1.0 have an IDE? I don't think so. Now every text editor++ supports PHP, and there are many IDEs specifically targeted to PHP.
Once RoR hits v3.0, then I'll decide if I think it's dead or not. BTW, I don't even use Ruby or RoR, so I'm not a fan boy, I just think it's a bit ridiculous for the author to make those kinds of claims when Ruby is so young. - quesera, on 10/12/2007, -0/+1"you're web application should not require you to run commands to generate files before you start coding" Eh??
Whether you click to run an installer or run them from the command line, you're still running commands to generate files.
I think you're trying to say that you don't like code generation, which is a reasonable stance. It just doesn't apply here because there's zero requirement to do so in Rails. Install it once to put the essential files in place, but never run code generation again.
Personally, I'm fine with generating very small directory structures and files (~8 mostly-empty files, including stubs for test code). None of the actual code ever gets used in production, but it's great for quickly adding new data to the database while still in development.
I know where all of the files go and what they're used for. If I didn't, it would probably bug me. I look at it like a tiny support shell script that I would write to do minor tasks... I use vi for all of my development, but most people use IDEs that do the equivalent of code generation (getters and setters, etc). - probablycorey, on 10/12/2007, -0/+1You can use mod_ruby... http://wiki.rubyonrails.com/rails/pages/mod_ruby.
- quesera, on 10/12/2007, -0/+1I'm sorry, but that's just wrong.
Rails is dead simple to set up under Apache.
If all you know about Apache is how to cut and paste the lines that activate mod_php and CGIs, then, well...you need to learn the different set of lines to cut and paste for Rails...but there's nothing inherently different about it.
Or, if you have the option of using lighttpd, which is superior to Apache for many applications, there's no configuration necessary -- it all happens automatically for you. You'll want to adjust some settings, but you'll be up and running in under five seconds. - Phoenyx, on 10/12/2007, -0/+1I think RadRails is making huge strides. Much faster than VS. I wouldn't be surprised to have those features soon.
-
Show 51 - 78 of 78 discussions



What is Digg?
The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official