Domain: rubyonrails.com
Stories and comments across the archive that link to rubyonrails.com.
Comments · 132
-
Django is not really an improvement
Everything your code does is something the framework doesn't do for you: the real problem is not customization, but how cleanly the framework allows you to extend it, how stable the interface (between the framework core and your extensions) is, and so on.
That's why I'm surprised to hear people recommend switching from Rails to Django. My experience in going through that route is that Django is less flexible and harder to customize than Rails. For example, in both frameworks you can write custom SQL queries, but while find_by_sql in Rails returns fully-formed model objects (as long as you fetch all the needed attributes in the query), raw SQL queries in Django only return raw data tuples. You cannot integrate your custom SQL with Django's ORM (ie, you cannot get a Django model object from cursor.execute), so you end up getting a bunch of IDs from your custom SQL, and then passing them to Django so it can query the database again for the same objects, using two queries to do the work of one.
Next time I want to make a web application in Python, I'm going to skip Django and look into Pylons instead. -
Re:Documentation Sucks
Insightful? Why would you have to troll thru thousands of lines of source code just to find a public method? Ever tried google? There's great Ruby/Rails API documentation out there
...
If you google something like 'Ruby String' you get the normal documentation, often on ruby-doc.org ( http://www.ruby-doc.org/core/classes/String.html )
If you google something like 'Rails Activerecord' you get the normal documentation, often on api.rubyonrails.com ( http://api.rubyonrails.com/classes/ActiveRecord/Base.html )
You can browse API sites or you can just look at the same HTML documentation that's generated on your local PC when you install Ruby/Rails or any RubyGems. You don't need internet connectivity.
I don't know why people think that screencasts like those on Peepcode have *anything* to do with documentation because they don't. You can watch screencasts for learning C#/Java/etc too. It's not something that's unique to Ruby or Rails, it just so happens that there are some very nice Ruby/Rails screencasts (notable via Peepcode and Railscasts). Java has books - so does Ruby. Hibernate has books - so does Rails. They all have local and online documentation.
That said, I read the source code for Ruby apps to find the answers to my questions quite often. Ruby is very expressive so much of the code reads like documentation ... if I want to see what is done with a variable I pass in, NO language's documentation could help that ... you'll ALWAYS need to read the source code.
I'm baffled by why people think of Ruby/Rails screencasts negatively ... I've never heard people bash Lynda.com before ... what's wrong with people wanting to supplement the learning tools out there? Seriously. There's a lot of Ruby/Rails documentation ... I've been using Ruby for 3+ years and Rails for 2+ and I can't remember ever having trouble finding documentation (and I came to Ruby/Rails from .NET & Java).
I'm sorry if you're using some old legacy Ruby library and the developers didn't provide any documentation but you can't generalize that to the whole of the Ruby and/or Rails communities. It's simply wrong. There's lots of great documentation out there. -
What a false dichotomy!
I've now written two large business applications in Rails. I did the UML modelling first. Then I wrote a fully constrained RDBMS schema, normalised to 3NF, using the Rails naming conventions. Then I wrote the Rails app on top of the rigorously constrained database.
If you want multi-key uniqueness constraints, just define it in your database already! Why do you think Rails prevents you from configuring your database layer?
When I need to do transactions, I use Rails' full support for transactions. There, that wasn't so difficult, was it?
I let Rails save me hours of backbreaking labour writing conventional SQL queries. Then I use the completed application, identify the query bottlenecks (thanks to Rails' built-in profiling) and re-write the slowest of the dumb auto-created SQL using hand-written SQL, which I can get to using find_by_sql, finder_sql, etc. Rails lets you put your own SQL into the application almost anywhere. -
What a false dichotomy!
I've now written two large business applications in Rails. I did the UML modelling first. Then I wrote a fully constrained RDBMS schema, normalised to 3NF, using the Rails naming conventions. Then I wrote the Rails app on top of the rigorously constrained database.
If you want multi-key uniqueness constraints, just define it in your database already! Why do you think Rails prevents you from configuring your database layer?
When I need to do transactions, I use Rails' full support for transactions. There, that wasn't so difficult, was it?
I let Rails save me hours of backbreaking labour writing conventional SQL queries. Then I use the completed application, identify the query bottlenecks (thanks to Rails' built-in profiling) and re-write the slowest of the dumb auto-created SQL using hand-written SQL, which I can get to using find_by_sql, finder_sql, etc. Rails lets you put your own SQL into the application almost anywhere. -
Re:Why rewrite existing systems?
This url does not work. The parent claims it should.
That said, even if RoR had a few PHP pages, that would not indicate that RoR is incapable of serving high loads... it might just mean that there is no legitimate reason for that page to be backed by rails (nothing particularly dynamic, etc.)
Everyone on slashdot is an idiot, and you're proof of why. You not only defend a wholesale attack based on a single, pointless fact, but you do so even when that fact isn't true.
Thanks for reminding me why this site is useless. -
Re:so... ruby?
Ruby is a dynamically typed, strongly typed, runtime-interpretted, very object-oriented programming language. It was created about the same time as Python (10+ years ago?), but is less well-known in the United States as it originated in Japan. It is the langauge that the Ruby on Rails web framework is based on. See the official Ruby website for more information.
-
Re:Perl Out, Ruby In - Thank God
Ruby has a lot of work in the library department, and a HELL of a lot of work in the documentation department.
I never really understood the documentation complaint about Ruby (I use Rails, mostly). Most everything I need to know about the core libs is in http://www.ruby-doc.org/ and http://api.rubyonrails.com/ is nearly complete. It is no worse than the PHP online documentation. Actually, it is better. I find RDoc much faster to search (CTRL-F). And you can get the first edition of the book, Programming Ruby: The Pragmatic Programmer's Guide online at http://www.rubycentral.com/book/ to get more in depth knowledge of how Ruby works. The IRC channels are very active and helpful (I help lots of people there myself). There is a great mailing list/form at http://www.ruby-forum.com/forum/3 And there are a million Rails tutorial out there. I learned Ruby/Rails to a point where I could do useful things in like 5 days without any prior exposure with no hassle. So what is missing, exactly?
-matthew -
what's so good about dreamweaver?
Dreamweaver FTW!
What kind of advantage would using dreamweaver give you in a situation like this?
I first started with HTML/websites in the mid 90s with AOLPress, then Adobe Pagemill, NetObjects FUSION, GoLive Cyberstudio (which was bought by adobe and turned into GoLive), and eventually, I dropped all of these studio apps in favour of vim using PERL and eventually moved on to PHP.
I've since started using this great app called TextMate, and when I get a complete site that I need to work on, I pipe the code through a handful of PERL programs I wrote to make it readable and make sure all tags are properly closed, then open it in TextMate to start working.
I haven't used any of those big apps (GoLive et al) since the late 90s, so they may have improved since then, but aside from their WYSIWYG aspect and their built-in validators, what other advantages does it earn you? How do those apps aide you when you've got embedded code or PHP or whatever? Do they have built-in interpreters?
I dunno, I've just found that you really need to have a full webserver to properly work on a site. I wonder when Adobe is going to embed apache/php/perl/mysql/etc into GoLive/Dreamweaver to get a proper environment for the previews.
and, I dunno if you can answer this, but how well does Dreamweaver handle Ruby on Rails? I can't imagine it supporting rhtml (erb) or yaml code. -
Re:Patch details
Yes. But I was addressing the specific example of "reading file X". Anyway, the bug specifically involves the execution of ruby code in places like the script/ directory (e.g. script/profiler could cause a DoS). There is also apparently some way to cause dataloss. Link:http://weblog.rubyonrails.com/2006/8/10/railIt's doubtful Rails would have a '../../etc/passwd' type bug since very few of the urls have any direct correspondence to the filesystem. (e.g. mail/send/1 executes the send method of an instance of the MailController class).
But... the default setup for Rails (or at least, last time I played with it) is to map /controller/action/-style URLs for you, so if you managed to upload a Ruby file which just happens to contain your malicious subclass of ActionController, well, you'd pretty much own the site.s -1-1-6-backports-and-full-disclosure -
Re:I'd rather maintain Ruby than J2EE
The creator of Rails has expressed regret for that video, because it gives people the impression that CRUD generation is the most important feature of RoR. 99% of the J2EE work I've seen doesn't require high-performance, low latency distributed messaging engines. That's the edge case that Rails doesn't and can't handle right now. If JRuby ever progresses, it will get that. (I wonder if we could bolt a messenger framework to a Rails app, open sockets maybe?) Speaking of edge cases, Hibernate still kicks ActiveRecord's ass. For those of us who live in that 99% of projects that don't require those edge cases (or can drop down to SQL when AR doesn't hold up), there's a lot of productivity and elegance to the Rails community's projects. Have you seen Migrations? Things like that are a delight to code with. In the same vein, check out the config for URL mapping if you've ever been frustrated by web.xml. Tag libs and filters, features I appreciated when going from PHP to Java in 2001 are more straightforward in Rails. In the Java world I was already convinced that Hibernate/Spring was the way to go, and wanted to avoid EJB's as much as I could. I've worked with them, and they're f&*()g messy, barely testable, slow abominations. In Rails, I've got all the features I wanted to deal with in J2EE... so far, no regrets. But speaking of edge cases and awesomeness... have you played at all with Ruby (not Rails)? There's been a few times I've done thing in Ruby I simply couldn't have in Java, thinking "Fuck, I always wondered why it was so complicated".
-
Podcast with Django's Adrian Holovaty
In an attempt to combine all the best of web frameworks into one event, I interviewed Adrian Holovaty of Django on the Ruby on Rails podcast: Adrian Holovaty on the Rails Podcast He's a smart programmer and it helps to see the different philosophies behind the way popular web frameworks were constructed.
-
Re:I knew it!
LOL. You're right.
When I look at the ROR real world sites http://wiki.rubyonrails.com/rails/pages/RealWorldU sagePage1 I would love to see some medium level (or higher) financial institutions on here. Then again many public utility companies (gas, electric, water, phone, and credit card companies as well) allow customers to pay and review their account online. The lack of these transaction heavy companies running ROR leads me to believe that the ROR evangelists do a great job hyping ROR but the big boys don't seem to be buying into the ROR self-promotion. -
Re:Rails needs to be more mature
Uhhh...
Support for saving database records using database function. In other words, I want Rails to automatically perform a query that looks like this...
Create a column called "created_at" and Rails does it automatically according to which db adapter you're using. No function call (on your end) needed.
- Apache integration is still too immature. I don't know about Apache 1, but Apache 2 integration using FastCGI doesn't work *at all*. The documentation on the website about Apache integration is very messy: different pages suggest different things. After much research I found out that
I think the Agile Web Development with Rails book addresses this and I know that my book does, but either way that configuration is quickly becoming a thing of the past. FastCGI is slow, cumbersome, and hard to configure compared to using mod_proxy and pointing at a bunch of Mongrel (a Ruby/C based web server) instances. If you must use this setup, then look here: http://wiki.rubyonrails.org/rails/pages/FastCGI
If you really want the best setup, look here and here.
Documentation is still too immature. While the API references are pretty good, the Wiki is very messy (see Apache integration).
Agreed and work is being done on that, but don't discount Rails because of the bad wiki. Hit up Planet RubyOnRails, Planet Ruby, and RubyCorner: Ruby blogs are where the info is. If you like what you see, shell out the money for one of the books. I don't know if Ruby for Rails is a great place to start, but however you think you'll learn best, go with it: learning the language first (Ruby for Rails), learn the language from the framework (Agile Web Development with Rails), or a quick (50~ page)run through and then Rails (Mr. Neighborly's Relevant Ramblings, Thoughtful Theories, and Pointed Pontifications on Ruby and Rails -- my book).
-Jeremy -
Re:Still no Unicode
That's pretty ironic given that ruby was developed by Japanese developers. I wonder what they did to deal with japanese characters.
There's a well-known dislike of Unicode in Japan. They mostly use other character encoding schemes, such as SJIS. For more information on how to use UTF-8 in Rails so far, see HowToUseUnicodeStrings on the rails wiki.-Dom
-
Still no UnicodeThe biggest problem with Ruby - and, by extension, Rails - in my book is almost complete lack of Unicode support. See for yourself:
Please note that right now Rails basically knows nothing about Unicode and pretends everything is just bytes. It means that validates_length_of for multibyte characters will trigger errors at the wrong places, various kinds of Unicode whitespaces are not going to get trimmed and sometimes Rails will cut right into your characters. Absolute most of Rails internals makes no notion that multibyte text even exists, Rails just delegates all to the Ruby string handling code (which in current Ruby is all single-byte).
It might not look like a big deal to English-speaking people, maybe also for Western Europe (they can usually get away with Latin-1). But the rest of us do need it... that, or going back to multiple charset/encoding hell.This is being looked at, but in the meantime you use UTF8 encoded strings at your own risk and you can expect (and wil get) bugs and problems.
So, for now, it's Java or Python, and associated frameworks for me. But not RoR.
-
Podcast with Author Bruce TateSHAMELESS PLUG:
I interviewed the article's author, Bruce Tate, for the Ruby on Rails Podcast. He's a brilliant thinker and has taken bold steps to embrace Ruby inspite of his fame in the Java community.
-
Re:I haven't heard much
You mean something like this?.
-
Re:Getting started
First, despite what some people say, I think you really have to learn the Ruby language first. Yes, you can get by coding 'by rote' but a deep understanding of this really elegant language will help a lot. Second, there are some great tutorials at the Ruby on Rails site but I think the best is the Agile Web Development with Rails book, though it hasn't yet been updated with the new Rails 1.1 features.
-
Re:Rails users, evangelize
you could go to http://rubyonrails.com/ and scroll down a little bit to see fancy looking sites that use rails.
-
Re:Looks interesting
I used that tutorial at the weekend - you'll obviously have to setup MySQL yourself but it's a great guide. Use a Subversion repository, and I'm sure Switchtower could be integrated to allow easy deployment too.
-
Re:Another great tutorial, but....It's not a manual, but the API docs are very conclusive. In addition to explaining what each component does and giving examples, it answers almost any question, including yours.
"Hmm... a time selector. That's probably related to date_select. Oh, look at that! ActionView::Helpers::DateHelper has a datetime_select function!"
And, if you're wondering why it doesn't have a time_select function, that's because your database doesn't have a time data type either. If you really, really want one anyway, you can use datetime_select, it just takes a little more work. -
Re:But where would you use it?There are many hosts for Ruby on Rails, all you need to do is some clickety, clickety on the wiki: Asia
- FreeOnRails Offers free RubyOnRails hosting with FastCGI support using cPanel/Fantastico - 100 MB space/1 GB Bandwidth. (By India based developer)
- Hardfocus Media Full-service hosting in Japan. cPanel, Ruby on Rails, FastCGI, PHP, MySQL, etc. (Support in English)
- RailsHost.cn We support Ruby on Rails, FastCGI, PHP, MySQL, SSH-access and so on. (Chinese speaking)
Australia
- Hostcentral Australian based hosting provider with full Ruby-on-Rails support. MySQL, PostgreSQL, PHP, Python and Perl support also provided. Melbourne based servers with 99.5% SLA.
- SegPub Segment Publishing is a Sydney, Australia-based company who specialise in standards-compliant web development and FreeBSD-powered web hosting. Supports PHP, Perl, Python, Ruby on Rails (via Lighttpd), Subversion and more.
- WebSpace.net.au Australian web hosting company providing ruby on rails support, as well as support for all the other well known web-development languages (PHP, Perl, Python,
.NET). All of our staff are technically minded (either systems administrators or programers), and are committed to bringing you the best support and web-hosting experience possible, bar none!
Europe
- Blackcurrant Hosting Blackcurrant Hosting offers Free Ruby on Rails hosting (FastCGI) with Unlimited MySQL databases. PHP4 & PHP5 also provided, as well as SSH access. cPanel-based hosting. Free--£0/year! We also offer paid plans from £25/Year.
- GsFactory.Net Ofertamos RoR con todos nuestros planes Linux, desde 3.5$/Mes. Ademas de PostgreSQL y JSP/Servlets con Tomcat. Now we offer RoR with our Linux Packages. Starting from 3.5$/Month.
- gradwell dot com Gradwell dot com Ltd (www.gradwell.com) offers ruby on rails hosting, with mysql, ssh access and others like php, mysql etc. Hosted on our own big unix server cluster in London. Customer support provided by a small team of 10 in Bath, South West UK.
- ProInet.se Now offering Ruby On Rails with our standard packages, we are one of the first Swedish hosting companies so offering this. Starting from 10:-SEK/Month for the cheapest package.
- nobudget hoster Now offering Free Typo Hosting! Cheap Plans with full suport. We install evrything you need to runn your Application! We currently provide Ruby on Rails, Symfony and Django, a lot more coming soon!
- Bytemark Hosting provide Linux Virtual Machines from ?15p.m. (this package has 80MB RAM, 4GB disc space and 25GB transfer). This is plenty for supporting a Rails application, MySQL database and lighttpd, and we're happy to use and support Rails ourselves. Plus you get root access; no sharing necessary.
- Happy Gecko - English speaking ISP in Spain 500mb web space, 150 euros per year including PHP, ASP, Ruby on Rails and MySQL support. SSH access also included.
- Hospes.pl : hosting Probably first in Poland hosting service based mainly on PostgreSQL. Offers both fundamental and advanced services for corporate and regular customers. Supports Ruby on Rails, PHP, Perl, CGI, Python
-
Re:missing
As far as ruby on rails... who in the business world uses that? Can you name any website or application currently in production that does.
As far as ruby on rails is concerned, the easy answer can be found here:
http://rubyonrails.com/applications -
chucking the lot
I'm increasingly of the opinion that for all but the simplest of sites, there just aren't any good "off the shelf" content management systems, unless you have no problem with your site looking like the default installation of whichever CMS you chose.
Here's the logic:
1. A very basic site (read: a blog) with a very basic CMS is generally not hard to set up.
2. The technical issue: as sites get more complicated, the level of sophistication required by the user to install and maintain them increases. (In the extreme case, I submit Xaraya, a CMS so complicated that trying to create a site as simple as "I just want a page with our contact information on it!" becomes an exercise capable of inducing intra-cranial hemmorage). Additionally, any templating system required grows more and more arcane, until it is essentially indistingushable from the actual programming language in which it's written.For example: the easiest way of getting a Drupal site laid out and usable quickly is to use the PHPTemplate plugin - in other words, to just write PHP code. David Heinemeier Hansson, no stranger to controversy, went a step further than this and labeled general-purpose CMSes "pipe dreams," and said "I believe the time has come to mark a date in the not too distant future for celebrating the death of the general-purpose content management system." (Not like he doesn't have his own thing to push, but that's as may be. See also Jeff Veen's frustration with open source CMSes
3. The social issue: as the content management system grows more and more complicated, they become more and more intractable for the average end user. Responsibility for day to day site updates is pushed to the IT department, which is absolutely not where it belongs. (Once again, I give you the one, the only, Jeffrey Veen.) -
Easier than the articleJust use the excellent prototype javascript library instead. Saves a ton of time. It's cross platform, dev language agnostic, and has super sweet functionality built in.
I guess you can use JSON, and XML data formats with prototype, but I just use plain old text to accomplish whatever I want.
Prototype is also used in Ruby on Rails and its PHP analogue CAKE, and also the excellent perl framework Catalyst
-
Re:Java frameworks: Which are good for web apps?
MySQL does have transaction logging if you make sure to use the InnoDB table ISAM when you create the tables.
As for reducing development time, you may want to look into using Ruby on Rails. I know the Java fanboys here will throw a fit, but for the size of project you are talking about, Rails sounds like a perfect fit. You should be able to have something useful up in a matter of days if not hours. Just look at the of the demos and follow a couple tutorials and see what I mean. Java is NOT the way to go for reduced development time. Especially if you are a novice.
-matthew -
Powered by Ruby on Rails?
I hear this may be powered by Ruby on Rails.
http://weblog.rubyonrails.com/articles/2005/10/31/ bbc-is-using-rails-for-programme-catalogue-of-a-mi llion-shows -
Re:DisingenuousHehe...thanks for the laugh. \n Rails is basically a hobby-ist environment
Trolling, but you find a more conciliatory tone towards the end for whatever reason, though I think you may be misunderstanding the use case for Rails.
Firstly, I've used basecamp for my projects for a few months now, and despite their many many users I've never appreciated any problems with its perfromance. As well, the rails main site never seems to get slashdotted when it gets linked. IMHO it's too early for anybody to say what scale rails can work on, we have not yet seen the triple-digit-blade load-balanced rails application (which the framework does support, theoretically).
Secondly, rails for a developer like me has been fantastic because I have zero formal CS education, and for years I have been making "a couple of internal projects" in things like FoxPro, Paradox, 4th Dimension and Filemaker Pro -- these are the real targets of Ruby on Rails. There are alot of functions in any company that might be automated through a web application -- simple billing and invoices, job tickets, things that were specific to their business -- and now they can just do it, without having to buy anything, and it'll work on the web.
I work in film sound, and I've been writing a web app for ADR, a process that has alot of special data requirements and has untiil very recently been done on paper, or in filemaker databases, or in some god-awful dongled 4th Dimension app some guy wrote and wants $600 for. I able to do it in my free time (when I'm not submitting to
/.). There's a huge demand for small web apps that do what filemaker and it kin have been taking care of up until now.While I don't concede that rails can't power a 1000-hit-per-second website, I don't believe that's what all the exitement is about, either. I would never go back to filemaker, and frankly if you're good at FMP and you can write HTML, you can code rails.
-
Re:RoR is maintainable enough -- but...
-
Or, if you're using RoR...
Look into acts_as_tree.
http://api.rubyonrails.com/classes/ActiveRecord/Ac ts/Tree/ClassMethods.html -
Re:It's obvious...
This is exactly right. The scaffolding is seen as the major feature of Ruby on Rails by far too many people. It's not. In fact, if anyone were making a serious, production-level app, they wouldn't even use the scaffolding. It serves only three purposes: to help newcomers to the language become familiar, to jumpstart a simple Web app, and to look amazing on the screencasts.
Ruby on Rails is great. At the very least, everybody should try it. It's no silver bullet, but it is a huge improvement over most everything else out there.
Using Rails is a bit like using a Mac: you always run into these little helpful features that make you think it was created just for you. -
Author has it all wrong
Judging by how this article was written you haven't used rails at all, or maybe used it for something extremely trivial. The "automatic code generation" (scaffolding) is only there to help you get started on a project. You can completely bypass it if you want.
I'd be willing to bet that if you used rails for an hour or two, you wouldn't have written this article. In fact, the entire article depends on your assumption that the code *has* to be generated automatically.
So what are you waiting for? Try it and see! -
Re:Multi-tier
Or just use Ruby On Rails http://www.rubyonrails.com/
-
Re:Ahem...
For the record (literally), Ruby on rails has Find_by_sql which lets you use plain sql, with all the pros and cons.
-
Re:Why rails annoys me...I love it's lack of "funny" characters (for the most part).
if you're referring to a lack of odd people in the ruby community you'll be horrified to know there's many.
thanks for your post, all valid opinion
.. i just suspect you're one of these highly intelligent programmers that trip over some minor features you find annoying and then blow your frustrations out of perspective.(anyone who's farmiliar with rails will understand the underscores)
granted some of the method names are overly verbose! i've thought that often when looking through the APIs and docs. but that criticism needs to be tempered by pointing out the verbose methods are used very infrequently. 99% of the methods i use are small and concise, like: truncate(), h(), link_to(), redirect() etc.
The biggest annoyance was automated code generation
see this i'm finding hard to understand. when i want to start a new model and controller, i type a line in a prompt, and it makes the few files i need to begin. 'begin' being the operative word. there endeth the code generation.
my method of automated code generation is copy and paste.
If I made changes to the database, I either had to a) wipe the directory and start over reimplementing my changes. Or b) go through all the MVC code and find the references to the database
i've NEVER experienced this. never never never. and i have no idea what you're talking about. one of the real clinchers of rails for me is its use of ActionRecord to interface with the database. i modify my database constantly without breaking any code. the only case i can think of when what you describe could happen is if i were to rename a column in the database, then my row.name object wouldn't match. but i would consider a broken website due to this the fault of a stupid developer.
to be able to connect to my database, retrieve a record and update it, in 1 line in some cases, becomes rather neccessary for a developer once they've tried it.
Mydb.update(id,
will do all of these. i take a wee dance on the grave of large-scale php development everytime i use that. :name => 'John')But I'd like to see the video of someone doing a large project in rails
and here is where i'm convinced that you are what i think you are (an intelligent programmer who's taken big issue over minor irritations). large scale use of rails is very easy to find if you visit the rails site . It's also very easy to find a larger list, and a list of interesting apps to boot. granted, not moving pictures, but
.. oh go away. -
Re:Why rails annoys me...I love it's lack of "funny" characters (for the most part).
if you're referring to a lack of odd people in the ruby community you'll be horrified to know there's many.
thanks for your post, all valid opinion
.. i just suspect you're one of these highly intelligent programmers that trip over some minor features you find annoying and then blow your frustrations out of perspective.(anyone who's farmiliar with rails will understand the underscores)
granted some of the method names are overly verbose! i've thought that often when looking through the APIs and docs. but that criticism needs to be tempered by pointing out the verbose methods are used very infrequently. 99% of the methods i use are small and concise, like: truncate(), h(), link_to(), redirect() etc.
The biggest annoyance was automated code generation
see this i'm finding hard to understand. when i want to start a new model and controller, i type a line in a prompt, and it makes the few files i need to begin. 'begin' being the operative word. there endeth the code generation.
my method of automated code generation is copy and paste.
If I made changes to the database, I either had to a) wipe the directory and start over reimplementing my changes. Or b) go through all the MVC code and find the references to the database
i've NEVER experienced this. never never never. and i have no idea what you're talking about. one of the real clinchers of rails for me is its use of ActionRecord to interface with the database. i modify my database constantly without breaking any code. the only case i can think of when what you describe could happen is if i were to rename a column in the database, then my row.name object wouldn't match. but i would consider a broken website due to this the fault of a stupid developer.
to be able to connect to my database, retrieve a record and update it, in 1 line in some cases, becomes rather neccessary for a developer once they've tried it.
Mydb.update(id,
will do all of these. i take a wee dance on the grave of large-scale php development everytime i use that. :name => 'John')But I'd like to see the video of someone doing a large project in rails
and here is where i'm convinced that you are what i think you are (an intelligent programmer who's taken big issue over minor irritations). large scale use of rails is very easy to find if you visit the rails site . It's also very easy to find a larger list, and a list of interesting apps to boot. granted, not moving pictures, but
.. oh go away. -
Easy installation
For a window platform, download Instant Rails
Or for linux, install mod_scgi and follow the instructions here
It's stinkin' easy, I can do it in about 5 minutes. Any hosting admin worth their salt can even script it in about 10 minutes. -
Re:Commercial equivalent is...?
I'm curious to know whether there is a commercial equivalent to Ruby on Rails.
Well, if you mean a commercial equivelent in ruby, then no. I guess there might be a Java framework of some kind, but that's not really my realm. Furthermore, rails is licensed under the MIT license: http://dev.rubyonrails.org/svn/rails/trunk/railtie s/MIT-LICENSE. This means you can already "use, copy, modify, merge, publish, distribute, sublicense, and/or sell" rails. I'm not sure what advantage you would get over rails from a commercial equivelent, unless it was technically superior in some way.
http://wiki.rubyonrails.com/rails/pages/AvailableF orHire is a pretty good spot to start looking if you needed support or consulting. There are alot of freelancers working with rails right now.
-mix -
Re:Commercial/Enterprise use?
-
Re:When?
-
Re:Commercial equivalent is...?
-
Re:Lies, Damned lies and Statistics
Parent is almost certainly referring to the recent upswing at O'Reilly, on the order of some thousands of percent, in the sale of Ruby and Ruby on Rails books, while Python remains flatish.
-
Interpreted Versus Compiled
The big issue here is speed of development and ease of use. Java is a bitch to learn, it requires a compiler, and it has a syntax that's byzantine as hell. Compare that to an interpreted language like Python or Ruby that has a very spare syntax, is interpreted, and are quite easy to learn.
That isn't to say that Java doesn't have its place, just as an IBM mainframe has its place, but the vast majority of tasks don't require a mainframe. For doing something like simple text process, Java's syntax just gets in the way - why build a massive application in Java when you can bang out a much simpler and easier system in Perl, Python, PHP, or Ruby?
Look at Ruby on Rails - the idea that you can create a simple but powerful framework that does an excellent job of getting out of your way is nothing short of revolutionary. Struts provides many of the same benefits, but has nowhere near the elegance of Ruby and nowhere near the simplicity.
It's all about the KISS principle, and syntactically and practically Java is just too complex - it's like trying to dust a room with a jackhammer.
-
thunderbird?
was mozilla thunderbird completely overlooked in this FUD-filled article?
I second the webmail thing. Before I quit my last windows-dominated job (to try my hand at this full-time), it was common for me to use the IE-based Outlook Web Access client since Outlook itself was often buggier. -
Re:PHP alternatives
When you hear Ruby in the context of web applications, the speaker definitely means Ruby on Rails. For writing more than the simplest web application, it's probably a php killer, on account of its price ($0) and relatively flat learning curve (even if you've never done ruby). Others have observed that RoR has subtle ways of making you do the right thing in a given programming situation, even if you don't know what that is at the time. I dare say that rails teaches the coder alot about object-oriented programming just by using it.
RoR is just 1.0 now, and though the API is still shifting around a bit, it does so only about as much as php, and rails is just a framework, not the whole language. The ruby language itself is quite stable at this point. OTOH, I found that porting my existing web app over to RoR was impossible, or at least so difficult that it wasn't worth the trouble over re-coding it from scratch (and making it a much better app in the process).
-
Re:Ruby On Rails is going to anniliate ASP.NET
Yeah, right. Rails is SO robust and handles database problems SO well. Just look at this, and the 10 month old bug report.. And don't give me that crap about needing to use native DB drivers. Rails is buggy, immature and not ready for the prime time. If I was feeling malicious, I'd also add that it's the over-hyped darling from the same stable of over-hyped "technologies" as eXtreme Programming.
Jon. -
IRC is helping me out with Rails dev
I quit my job a couple of weeks ago to try my hand at full-time Rails development (I was stuck in corporate ASP/SQL Server land for too long, with a nagging love for OS X...). I have found that #rubyonrails on freenet is "OK" for the most part, and I've already been able to help others on it as I slowly assimilate all of Ruby and Rails. I found an awesome chat client called Colloquy and I'm pretty much always on the channel lately.
-
The fault also lies with those who ostensibly care
It would obviously benefit the consumers as well as us who work in this industry if everyone small- and medium-sized wasn't afraid to go near the 900lb. gorilla in the room for fear it will sneeze out a legal document. Microsoft has successfully established itself as the "safe" choice both for corporations as well as uninformed consumers. Microsoft is after all the new IBM, and they are seemingly too big for even a coalition of competitors to gang up against.
Did something go wrong along the way?
Part of the problem is you guys. Yes, you. YOU have not fought management enough on their mindless devotion to Microsoft BizTalk, Outlook and Exchange Server. YOU have not spent enough weekends building a kickass app using open-source tools that you could use to prove your faith to management or the client or both. YOU have failed to convince your Windows-using friends to try anything else, even though they still go to you for Windows assistance. YOU know how hard it is for them to get past that mental block, so go ahead and put your money where your mouth (and heart) is and lend them a used or rebuilt machine for a while. YOU, the army of independent thinkers, of underdog fans, of any thought or decision that looks too lemming-like, you PHB despisers and abhorrers of the status quo... need to not only hold your ground, but advance! (Disclaimer: I'm not just all talk- I just quit my decent-paying, Microsoft-technology-focused and totally-time-consuming salaried-worker-abusing Big 4 consulting job so I could focus on mastering some open-source technologies that the corporate world has not gotten a whiff of yet, and to try my hand at building great stuff with it... and I already have a paying project...) -
Andreessen gets it wrong it again
-
Have to chime in here as a new Railer...
I know this is about PHP but as a long-time web developer, I'm sure a lot of other web devs will be reading this, so here are my observations on RoR.
I've started my first small-scale Ruby on Rails project, having done work in the past in ASP, .NET and PHP. Here are some thoughts.
1) RoR may be highly buzz-worthy but it is certainly NOT a panacea. It has a definite and slightly steep learning curve, especially if you are also new to Ruby and/or OOP and/or MVC (I am sort of but not completely new to all of these). You will still have to do the work of developing your application- you just won't have to do the "stupid" kind of work that much (repeating code in views, bubbling new database fields through umpteen app tiers to the surface of your app, hand-validating everything, building a mechanism to bubble errors or notifications to the surface, etc. etc.)
That said...
2) I can see that if I can get past the little syntactic things that are currently tripping me up, a lot of the RoR technology (and all the assistance its framework provides, once you get to know it... again, that takes time) helps to make web development a breeze.
3) MVC certainly seems like a pattern to seriously consider for anything other than a small web app. Mixing code in the presentation layer is not the way to go if you want easy unit testing, separation of view from code (so your graphic designers can go in and do their thing separately), arbitrary mixing of controller code with different views, etc.
4) Ruby itself is a pretty great language to code in and highly readable. It has a few quirks (doesn't every language?) but if you are aware of them then they won't get in your way. Some of the things I like about it were apparently "borrowed" from Perl (as I never really got that into Perl). If you are not a static-typing purist, I'd say check it out on its own.
5) Installing some Ruby/Rails components that depend on each other is not at ALL as painless as it should be on OS X. For example, I'm currently having issues with RMagick and GraphicsMagick even though I followed a guide I found online, to the letter. I think the darwinports, fink, and rubygems people should get together and work some shit out, as all the different default paths these packaging/deployment tools install their stuff to causes mutual interdependencies to sometimes fail. I've also seen some MySQL issues that will require good troubleshooting to resolve, for some people- some of it is based on incompatibilities with GCC 4.0, or between the password hashes of different MySQL versions, or... Basically, this is all stuff that as a Rails scripter (as opposed to a C++ programmer) you wouldn't want to focus too much time on. If you want to know what I'm talking about just google "rmagick 'os x'" or "mysql rails 'os x'" and read up. That said, if you can get a good host with good Ruby/Rails support, you might not need to worry about such things... Unless you want to develop locally on that shiny Powerbook (grrrr). You better be a good troubleshooter, as Google won't get you out of EVERY bind!
6) The people on the #rubyonrails IRC channel on freenode are generally helpful, but not at all hours of the day. It also helps if you put up small PayPal rewards to get someone to help you over those time-sensitive humps ;)
7) Managers at big corporations (such as my employer) who have been out of direct touch with technology for a while will only tend to recommend the "usual big stuff"- in this case Java/EJB/Oracle, or .NET. I suppose this falls under the "Nobody ever got fired for recommending IBM" paradigm, but the si