96 Comments
- inactive, on 10/12/2007, -4/+38Apple vs Orange vs Elephant
Tim Bray outlines the basic advantages of blending each of these three items (or rather two fruits and one ***** elephant if you're scoring at home) - gharding, on 10/12/2007, -5/+33I decided I wanted to make my own metric chart based on the funability of a bunch of different languages. Mine's better because it has NUMBERS.
http://www.cogjam.com/funability.jpg - quine, on 10/12/2007, -3/+27"Tim’s metrics don’t really exist on a quantitative level nor are they based on any published statistics — just a very informed intellect and a privileged position."
...So? Basically this guy is talking out of his ass. Lame. - sonofagunn, on 10/12/2007, -5/+23Dug down because "apples vs oranges" is a pet peeve of mine.
An apple is crunchier than an orange. An orange is juicier. Oranges have more Vitamin C than apples.
There, I did it. I just compared apples to oranges. It's a perfectly natural thing to do so it shouldn't be used as a saying against things that shouldn't be compared.
By the way, it makes perfect sense to compare web development in Java vs web development with PHP vs web development with Ruby on Rails. - unununium, on 10/12/2007, -1/+18Digg is built on PHP and seems to be able to handle a constant Digg effect
- bignickolson, on 10/12/2007, -1/+18Also, for the record, Ruby is a language too. Rails is the framework...just as there a number of PHP and Java frameworks out there as well.
- prab, on 10/12/2007, -0/+17He should have tested his website for scalability.
http://www.duggmirror.com/programming/PHP_vs_Java_vs_Ruby - noodlez, on 10/12/2007, -2/+16i've said it before in similar topic threads and i'll say it again:
each language is like a tool, and what language you should use depends on your problem at hand.
can you hammer in a screw? yes. but thats not the intent. use a screwdriver. - orxor, on 10/12/2007, -2/+16But a screwdriver is much to light and flimsy to be used to hammer screws in.
- onebit, on 10/12/2007, -1/+13I'll sum up the article: compare your options and choose the best one for your purpose.
The article should be titled "How to choose a web programming language" since it does not actually compare PHP, Ruby, and Java. - aantix, on 10/12/2007, -1/+13Finally someone points this out. It's so irritating to have people use Ruby and Rails interchangeably.
Ruby is the language, Rails is a framework built on top of that language.
Can someone please inform my project manager on this differentiation? - noodlez, on 10/12/2007, -0/+12deploy time != scalability
- alainb, on 10/12/2007, -1/+12For the real info, visit Tim Bray's blog post here:
http://www.tbray.org/ongoing/When/200x/2006/11/10/Comparing-Frameworks
As much as I respect Tim Bray, I have to disagree with his assessment in two particular areas: scalability, and dev tools.
I will admit that I do have a bias. I love Ruby and I love Rails, so take what I say with a grain of salt.
I disagree with his deduction on scalability because, and I quote:
"As for Rails, I think it’s probably the case that you can build a Web-scale app, just like Java and PHP, but we don’t know because nobody’s done it yet."
Come on! Has Tim Bray even heard of BaseCamp, Kongregate or Campfire? They're enterprise level web-apps that hosts thousands of users. Hell, Penny Arcade uses Rails and they probably get hit by a several million users every month, albeit PA doesn't have that much interactivity beyond the forums.
Secondly, his assessment of Dev Tools doesn't take into account that Rails is a framework that bleeds out the neccessity for a super-expensive dev tool. You don't need an over-complicated IDE if the language doesn't neccessitate it. Thats why TextMate fits fine for most Rails developers. They don't need anything else. Case in point, Rails doesn't have much in Dev Tools but its still the fastest to develop on AND maintain the code set. - grexeo, on 10/12/2007, -3/+13So, does anyone still find that funny?
- quine, on 10/12/2007, -0/+7Riddle me this: how does he develop a bar chart without metrics?
- dent, on 10/12/2007, -1/+83 languages - ruby on rails is a framework...
- RetroRufio, on 10/12/2007, -3/+10Wouldn't ASP.NET be the "Elephant?"
- rarkai, on 10/12/2007, -6/+12ASP is a clunky piece of *****.
- astatine, on 10/12/2007, -1/+6Thankyou, Matt Damon.
- aantix, on 10/12/2007, -0/+5Read David Heinemeier Hansson's blog post entitled "It's boring to scale with Ruby on Rails" ( http://www.loudthinking.com/arc/000479.html ).
Basically, all session management is decoupled from the framework and rests solely in the hands of the backend database. This is primarily how most PHP sites scale.
So the scalability has nothing to do with the framework stack; the scalability is a function of how well the backend db scales (clustering, etc).
This setup is called "shared nothing" and is quite proven in a number of enterprise configurations. - MotionAesthetic, on 10/12/2007, -6/+11Shouldn't there be a python in there?
- richardiscool, on 10/12/2007, -0/+5Myspace uses Coldfusion, and it's not the best example of stability...
- zoom1928, on 10/12/2007, -0/+4
> it[PHP] doesn't even come close to Java in that regard.
Then it doesn't sound like you've actually benchmarked it. One of our modest servers is handling just over 900 PHP hits per second at peak every single day. The Apache PHP module can load the PHP script, interprets it, and sends-out the output in less than a millisecond. A small null JSP we wrote for Apache Tomcat on the same hardware took 12 milliseconds to run. We'd have to have around 20 times the number of servers to use Java because it is so much slower than PHP. It is just too heavy weight.
I've programmed on and off in Java since the summer of 1996, and I like it much better than PHP (as I assume all real programmers do!), but I can't afford the performance hit. I still do some CGI programming in Java, but that's only for smaller sites. - gharding, on 10/12/2007, -6/+10Wow. PHP was ranked highest for scalability? In my opinion, it doesn't even come close to Java in that regard. Also, as both a Java AND PHP developer, I'm pretty sure I can deploy a finished app in Java quicker than PHP.. especially with the help of the nice, performance-tested frameworks out there (Spring, Struts, Shale, JSF, etc..). The guy that wrote this article doesn't seem like he knows much. His comparison was basically a chart made in Word. Impressive.
- JaredRR, on 10/12/2007, -0/+4I blogged on Rails and scalability yesterday. http://www.jaredrichardson.net/blog/2007/01/31/#rails_scales
Short story: check out Alexa.com's stats for ChaCha.com It's a Rails app serving in the enterprise. - lucid270, on 10/12/2007, -1/+5PERL!
- seanieb, on 10/12/2007, -0/+3I'll take your Lame and raise you a stupid. Stupid article I really don't agree with lots and lots of things that are said here.
- TBagwell, on 10/12/2007, -5/+8so... maybe php wasn't the right tool for the job?
- addicted68098, on 10/12/2007, -0/+3In a nutshell,
performance/devtime/Scallabity
Ruby - Slow/Fast/OK
PHP - Med/Medium/Good
Django Fast/Fast/OK-Good
Ruby seems to be something that is simply trendy but less functional then less trendy Django - addicted68098, on 10/12/2007, -1/+4It seems like Python is faster then Ruby, and faster then PHP, Django is very easy to develop in, and its also very fast at the same time.
Also all languages are probably equally scalable. - prab, on 10/12/2007, -5/+8bury this
- eecue, on 10/12/2007, -0/+2Thanks for pointing out the scalability issue. Also don't forget about one of my favorite sites, Chowhound... mmmm chow. Not only does it run on RoR, but the developers keep a very helpful blog, where they talk about the tools they use. Cool.
- slicedoranges, on 10/12/2007, -1/+3Thank you, person who doesn't know that thank and you are two words.
- PleaseJustDie, on 10/12/2007, -0/+2Lame, it has 4 scales only talks briefly about one of them and gives no justification for why he ranked the other scales like he did.
- jbond, on 10/12/2007, -0/+2"PHP is still interpreted and Java is JIT compiled and therefore significantly faster. "
Sigh. Anyone running a large site on PHP will be using a PHP accelerator. Either eaccelerator or APC. Both intelligently JIT compile and cache the results.
Any real world website is going to be database bound not web server bound. And with a decent load balancer you can just throw another blade webserver at it if you run out of steam at the front end. But scaling the DBMS takes skill, effort and good initial design. And it has almost nothing to do with the language used to write the front end. So what was the "Scalability" that Tim Bray was expressing an opinion about? - Philodox, on 10/12/2007, -0/+2And Penny-Arcade has ongoing problems, so maybe it's not exactly the poster boy for rails.
- sonofagunn, on 10/12/2007, -0/+2It is lacking a numerical scale. However, he explains that it's just an unquantifiable measurement (aka personal opinion). There's nothing wrong with that. The chart's meaning is pretty clear to me. Higher == Better.
Could he have made some anal-chart-people happier if he'd given the vertical axis a meaningless scale of 1-10 - like the scale upon which we rank women? :) - inactive, on 10/12/2007, -0/+2Ruby is not a framework. Rails is a framework. Ruby is a language.
- SolarisX, on 10/12/2007, -1/+3I work in an organisation that has a bias for opensource sytems.. Im soo sick of php mysql combos... any new development I do always relies on the sweet ass candy j2ee/struts/hibernate. PHP is dead!!!! :-)
Flame on! - BigSlacker, on 10/12/2007, -1/+3I can't even remember the last time I started any new development in perl It's just too freaking slow and error prone for modern applications. It was pretty cool in it's time.
- palmer, on 10/12/2007, -1/+3Except nobody hosts on Windows. My ISP doesn't even offer it anymore.
- palmer, on 10/12/2007, -0/+2^^ That was the big prediction in 1993. Never happened. The closest we got to reusable components was VBXs, which enabled you to throw together an MFC app in Windows.
- Wootery, on 10/12/2007, -0/+1@ghard
I like the way you've given 'BRAIN' and '*****' different funability ratings... though apparently BRAIN ranks higher. - cosmo7, on 10/12/2007, -0/+1Thanks for mentioning MVC.
I've found that the framework used is generally more significant than the language. Essentially:
Zend Framework > Usual PHP *****
Spring MVC > Insanely complex Java mess
Django > typical Mad Scientist python operation - stanchan, on 10/12/2007, -0/+1Python wins in scalability cause it's the language of choice at Google/YouTube!
- cherouvim, on 10/12/2007, -0/+1@cosmo7: OK, and what do you propose?
- sintaks, on 10/12/2007, -0/+1Anyone who's taken a beginning CS class should know that pre-increment is faster... unless you went to my college, in which case you probably don't.
In some cases, the compiler optimizes that anyhow, making it a matter of personal preference. As we all know, we should never succumb to premature optimization. ;-) - bdunwood, on 10/12/2007, -0/+1For those in the thread who don't know who Tim Bray is, its worth your time to check a bit of his history. Not many folks bring the perspective he has to the table. See: http://en.wikipedia.org/wiki/Tim_Bray. His blog is also enlightening: http://www.tbray.org/ongoing/. He's currently director of Web Technologies at Sun.
I find that the take away from his comments and the article is the focus on software lifetime and total cost of ownership. Tim said it best: "Good apps, once built, tend to be in production for an astonishingly long time. Which means that they have to be maintained for an astonishingly long time. Which means that maintainability is important."
In my opinion, if you're building real apps and not prototypes, ease of development and scalability are nothing compared to ease of long term maintenance and extensibility.
Disclosure:
I run www.cmswire.com and yes, we had a server meltdown yesterday. Thanks for all the love! - BigSlacker, on 10/12/2007, -0/+1I don't agree. The lack of type checking makes it highly vulnerable to unexpected failure. For example you can't make the assumption a particular variable holds a number so that adds a test case and a failure mode every time a numeric is expected. Those add up real quick
- sintaks, on 10/12/2007, -0/+1@cosmo7
Django is surprisingly simple. The thing I love best about it is the loose coupling of your actual Django applications. You can have a single instance of a Django app being used in multiple projects without having duplicated directories or funky symlinks going everywhere. A Django app is essentially just a Python package. A view is a function call in that package.
People get confused because they say there "is no real controller". In a sense, that's right. The Django developers themselves have insisted that Django is a MVT framework - Model, View, Template. If you were to put it into MVC terms, Django's "Controller" is the framework's router and the View function called, and it's proper "View" is the Template.
Now... if only someone would implement a Ruby-version of Django...
Mawp. -
Show 51 - 92 of 92 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