From: Chad Perrin Date: 2006-09-04T11:34:48+09:00 Subject: Re: Joel Spolsky on languages for web programming On Mon, Sep 04, 2006 at 02:13:24AM +0900, Alex Young wrote: > David Vallner wrote: > >Utter pants. I mean, you used the word "bloat", which should make people > >lose any debate by default. > > > >Alvin Ryder wrote: > >>Java and C# are no guarantee for success. > > > >Neither is Ruby / Rails. *No technology* is a guarantee for success, no > >technology ever was, and I'll bet a gold bar against a plastic spoon no > >technology ever will. Technology used is a very important decision to > >make, but it never single-handedly moves you from doable to undoable or > >vice versa. > That's the wrong argument to pick. Try calculating the full dynamics of > a modern metropolitan water supply network with just pen and paper. > Technological advances *do* move us from undoable to doable, and it's > specific technologies that do it. . . . and in any case, I don't think anyone was saying Ruby was any kind of guarantee of anything. The point is that Joel Spolsky's characterization of ultraconservative technology choices as necessarily "right" is chaff and nonsense. Despite Joel's usually intelligent and well-reasoned commentary, he dropped the ball on this one, effectively saying that Ruby is a guarantee of failure. Bollocks, I say. > > >Also, initial development cost isn't a very important factor. Recalls > >your uni software lifecycle charts about how much of a project's life is > >maintenance. For a successful project, the numbers are very much true. > >With a successful product comes the responsibility of supporting it and > >keeping it successful, and in some cases this responsibility creates > >ongoing costs that dwarf the initial development horribly. > No argument there whatsoever. I have a caveat to add: It's true that initial development is often one of the cheaper parts of a "successful" project, cost of initial development is still critically important. If your initial development is too costly, you never get to maintenance. Additionally, if you think middle managers think ahead enough to just ignore initial development costs (even when they can afford to do so) in favor of long-term cost savings, you probably haven't dealt with middle managers as much as I have. CxO-types are even worse, because their job success metrics are more tied to quarterly stock prices and market shares than anything more long-term (generally speaking). > > >>Ok, sure Java's OO may be nicer than Perl 5's but once you brew > >>HTML/Javascript/JSP/JSTL/EL/tags/JSF or Struts together the result > >>isn't exactly what I'd call pretty. Java is in no way a safe bet. > > > >Noone cares about pretty. It's also a completely irrelevant issue when > >deciding on implementation language if you're at least remotely > >responsible. > Actually, pretty does matter. The comfort of a problem solver directly > impacts his/her approach to a problem. That's just human nature. . . . and how much more do you think it costs in the long run to maintain code that is a nasty, overly complex, ugly mess? Pretty matters. > > >Speaking purely theorethically, Ruby can not be made as performant as > >Java or C# could be made if they had ideally performing implementations. > >Latent typing makes it almost impossible to do certain optimizations as > >static typing does. That's pure fact. > I remain unconvinced by this - and it's mainly JIT optimisation that > keeps me on the fence. Dynamic optimisations can beat static - but not > in all cases. I believe this is what one calls an "open research" question. Unfortunately, JIT implementations haven't been subjected to the same long-term scrutiny and advancement as more traditional persistent binary executable compiling implementations. As a result, I don't think the state of the art is there yet -- leaving JIT implementations effectively slower by nature until they get some more advancement over the years to come. I really believe that gap will be closed rapidly in the near future. Only time and experience will tell whether it can be made as fast or faster, though I have no doubt that it can at least be made close enough that most of us won't care. -- CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ] "The first rule of magic is simple. Don't waste your time waving your hands and hopping when a rock or a club will do." - McCloctnick the Lucid