[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Joel Spolsky on languages for web programmingr

Frank Davis

9/13/2006 2:15:00 AM

Ah, yes, the increasingly blurry line between Languages and their
Standard Libraries is fast becoming a sordid love-triangle between
Languages, their Standard Libraries, and their Virtual Machine. I
suspect Microsoft did themselves a disservice when they started calling
all of their products Dot Net. It has caused just as much confusion as
it would if I were to start calling all of my employees George.

It appears that when Kate refers to .Net, she is referring strictly to
the CLR (Common Language Runtime, technically an abstract machine) that
executes the bytecodes that result from compiling a (for example) C#
application. However, the CLR is not easily divorced from the " .Net
Framework ", a very large class library which includes complete support
for ASP.Net web development, and is arguably a "web framework". The CLR
relies on classes in the .Net Framework, which in turn relies on
services in the CLR, in a somewhat incestuous relationship.

Kate, I gather it annoys you just as much as it annoys me when people
refer to writing VB.Net or C# code as "Writing in .Net". Please be
careful not to make a similar mistake by equating .Net with the CLR.
ASP.Net is a complete web framework, and although it is IMHO old and
cranky and becoming frail in its advancing years, and not nearly as much
fun as Rails, in its youth it served its purpose well, to provide a web
framework that still looked like simple ASP, with a "Visual
Component"-based API that, while not ideal for web development, was very
comforting to the hordes of Visual Basic developers migrating to the
Net platform.


Frank

-----Original Message-----
From: kate rhodes [mailto:masukomi@gmail.com]
Sent: Tuesday, September 12, 2006 10:46 AM
To: ruby-talk ML
Subject: Re: Joel Spolsky on languages for web programmingr


On 9/10/06, Chad Perrin <perrin@apotheon.com> wrote:
> On Mon, Sep 11, 2006 at 07:52:10AM +0900, David Vallner wrote:
> > kate rhodes wrote:
> > >.NET and the JVM and Parrot are just virtual machines that by
> > >themself contribute absolutely nothing to the productivity of a web

> > >developer.
> >
> > .NET is the whole platform, the CLR is the VM.
>
> You beat me to it -- just as Rails implies the Ruby interpreter, so
> .NET implies the CLR.

You guys are right but the point still stands. The entire .net platform
is still not something that can, in any reasonable way, be compared to
Rails. They're completely different things with completely different
purposes in life.

You can't write a web app in .net. It's not a language and it's not a
web framework. You *could* write an app in Django / TurboGears that ran
under /within .net and THAT would be comparable but not because it's got
anything to do with .net. It would be comparable because Django and
TurboGears are both web frameworks like Rails.

--
- kate = masukomi


16 Answers

Chad Perrin

9/13/2006 2:27:00 AM

0

On Wed, Sep 13, 2006 at 11:14:41AM +0900, Frank Davis wrote:
>
> Kate, I gather it annoys you just as much as it annoys me when people
> refer to writing VB.Net or C# code as "Writing in .Net". Please be

Of course, she was the first to say "in .NET", as I recall. The rest of
us were talking about writing for .NET, or developing with .NET -- not
"writing in .NET". If that was the point of contention, she completely
misunderstood what was being said before that.

(assuming "Kate" means "she")

--
CCD CopyWrite Chad Perrin [ http://ccd.ap... ]
Amazon.com interview candidate: "When C++ is your
hammer, everything starts to look like your thumb."

Richard Conroy

9/13/2006 11:25:00 AM

0

Bringing the debate back on topic,
http://www.joelonsoftware.com/items/2006/...

Joel revisits his claims in his original article, particularly
the Ruby-is-slow claim.

Bira

9/13/2006 11:52:00 AM

0

On 9/13/06, Richard Conroy <richard.conroy@gmail.com> wrote:
> Bringing the debate back on topic,
> http://www.joelonsoftware.com/items/2006/...
>
> Joel revisits his claims in his original article, particularly
> the Ruby-is-slow claim.

I've read that - aren't his arguments a bit out-of-date, in the sense
that they've been answered on this list several times? More
specifically, I'm thinking of that huge "For Performance, Write it in
C" thread, in which the conclusion seemed to be that the choice of
algorithm had a much greater impact than the choice of language.

--
Bira
http://compexplicita.bl...
http://sinfoniaferida.bl...

Richard Conroy

9/13/2006 12:07:00 PM

0

On 9/13/06, Bira <u.alberton@gmail.com> wrote:
> I've read that - aren't his arguments a bit out-of-date, in the sense
> that they've been answered on this list several times? More
> specifically, I'm thinking of that huge "For Performance, Write it in
> C" thread, in which the conclusion seemed to be that the choice of
> algorithm had a much greater impact than the choice of language.

Haven't read those threads - I scanned them a few times like I did
with the unicode ones, but I got out quick. I am thick-skinned but
not fireproof.

IMO "For Performance, Write it in C" taken as it is written, seems
like a copout. If you are considering a language/framework/whatever
as your candidate for a new project, you usually want the answer
to be singular.

Language hybrid projects are rarely fun, especially if the second language
came in unforeseen, or as a workaround to a problem that the first
couldn't deal with.

The language bridge and marshalling can end up dominating the design
and dumbing down the strengths of your original language choice.

Bira

9/13/2006 12:14:00 PM

0

On 9/13/06, Richard Conroy <richard.conroy@gmail.com> wrote:
> IMO "For Performance, Write it in C" taken as it is written, seems
> like a copout. If you are considering a language/framework/whatever
> as your candidate for a new project, you usually want the answer
> to be singular.

That's just the thread's title, and if I recall correctly you've just
restated one of the very first dissenting arguments that were
presented in it. It's really best to read the original from the
archives rather than repeating the entire discussion :).

--
Bira
http://compexplicita.bl...
http://sinfoniaferida.bl...

Dick Davies

9/13/2006 12:16:00 PM

0

DHH tore him a new one last night:

http://www.loudthinking.com/arc/0...

On 13/09/06, Richard Conroy <richard.conroy@gmail.com> wrote:
> Bringing the debate back on topic,
> http://www.joelonsoftware.com/items/2006/...
>
> Joel revisits his claims in his original article, particularly
> the Ruby-is-slow claim.

--
Rasputin :: Jack of All Trades - Master of Nuns
http://number9.helloope...

Peter Hickman

9/13/2006 1:07:00 PM

0

It is not just the choice of algorithm that can affect performance, even
greater performance boosts can be had at the design stage. A bad design,
ie doing unnecessary work, will cripple any implementation / language.
If the data being passed through your system is being processed in any
way that is unnecessary to the task at hand then it does not matter how
efficiently it is doing that unnecessary task.

When you are looking at systems rather than programs the performance
boost will come from the design (or architecture as some people like to
call it). It's a rare designer that can say "we don't need to do that"
or "that is not a feature, it is an encumbrance". People seem to confuse
sophistication with complexity. Complexity is bad.

If you take a framework in one language and reimplement it in Ruby then
it is quite likely that the Ruby version will be much slower, no
surprise here. However if you take the problem the framework was being
used to solve and solve it from scratch in Ruby you will get a much
better result.


Richard Conroy

9/13/2006 1:15:00 PM

0

On 9/13/06, Bira <u.alberton@gmail.com> wrote:
> On 9/13/06, Richard Conroy <richard.conroy@gmail.com> wrote:
> > IMO "For Performance, Write it in C" taken as it is written, seems
> > like a copout. If you are considering a language/framework/whatever
> > as your candidate for a new project, you usually want the answer
> > to be singular.
>
> That's just the thread's title, and if I recall correctly you've just
> restated one of the very first dissenting arguments that were
> presented in it. It's really best to read the original from the
> archives rather than repeating the entire discussion :).

And if you take it back into the context of this thread, and some
of the arguments that were raised here, dropping down to C
pisses all over your developer cycles and makes a load of its
own problems too, especially if you really need platform
independence or don't have the staff who are confident to write
the C stuff.

"For Performance, Write it in C" really means "Do Without That Feature"
for a lot of people. If people suspect that they need a lot of those
DWTF's in their web app, then arguments for Rails start to look
shaky (and this is On-Topic for *this* thread).

I already hit upon an example that joel mentioned (in-HTML graphing).
I noticed that DHH made a really crap attempt at countering that.
One time image resize? WTF? Why couldn't he have just showed
the Railsy way of doing HTML graphing in a performing way or just
admitted that there was no Ruby+Rails ONLY way of doing it.


Also for people who look at languages that are evolving,
"For Performance, Write it in C" means "Get Lost, be happy with
its current level"

I went through the evolution of Java during its early days, which
was hyped as cross-platform for free, and twice as productive
as C++ to develop in.

Then the benchmarks rolled in, with Java looking 20x slower than
C++ or whatever and the same "fixes/arguments" were proposed:
-write it in C, call through JNI (aka ditch dev cycles & WORA)
-developer cycles are more important

But what also happened, while all the arguing was going on,
was that the performance aspect got itself fixed. People beavered
away at it, released specs and eventually pre-release runtimes
that were faster. Basic CPU utilisation issues simply dissappeared,
so that you could write various looping, parsing, string manipulatation
tasks without having to heavily optimise them afterward.

I think the Jython community had to go through similar stuff, but
I can't recall it too well, but in the end they just fixed their performance
issues.

Currently there is nothing on the Ruby radar for that. I mean Ruby
2.0 is in early discussion phase, and there seems to be something
inherently risky about using the alternatives (JRuby and YARV(?) )
in a production Rails project.

While I am comfortable enough that issues like multinational Rails
will disappear from the concern list over the next year (by people
implementing successful multi-national Rails apps with stuff like
Globablize and blogging their results), I don't see performance
going away soon.

Nobody expects to start writing scientific research algorithms
in Ruby, but they want the confidence that extended looping,
XML parsing or whatever-formatting will still work without
requiring heavy optimization right off the bat. They want to
write their code the way they are used to and keep their
developer cycles, and not have to bother about optimising
until later in the project, rather than later in the day.

James Gray

9/13/2006 1:40:00 PM

0

On Sep 13, 2006, at 8:14 AM, Richard Conroy wrote:

> Currently there is nothing on the Ruby radar for that. I mean Ruby
> 2.0 is in early discussion phase...

$ ruby_yarv -ve 'puts "In the early discussion phase!"'ruby 2.0.0
(Base: Ruby 1.9.0 2006-04-08) [i686-darwin8.7.1]
YARVCore 0.4.1 Rev: 527 (2006-07-19) [opts: [direct threaded code]
[inline method cache] ]
In the early discussion phase!

James Edward Gray II

Richard Conroy

9/13/2006 2:53:00 PM

0

On 9/13/06, James Edward Gray II <james@grayproductions.net> wrote:
> On Sep 13, 2006, at 8:14 AM, Richard Conroy wrote:
>
> > Currently there is nothing on the Ruby radar for that. I mean Ruby
> > 2.0 is in early discussion phase...
>
> $ ruby_yarv -ve 'puts "In the early discussion phase!"'ruby 2.0.0
> (Base: Ruby 1.9.0 2006-04-08) [i686-darwin8.7.1]
> YARVCore 0.4.1 Rev: 527 (2006-07-19) [opts: [direct threaded code]
> [inline method cache] ]
> In the early discussion phase!
>
> James Edward Gray II

What are their release dates? Have all of the library/ plugin and
existing code problems been addressed? How Rails compatible
are they? Has the rush to be version compatible with various
libraries introduced any exploits? Can I patch my customers
installations right now?

Basically "How soon can I hot swap my interpreter in my rails
app with No ill effects".

I am talking about how long it takes to:
- produce a X.0.0 revision
- produce a version with all the library issues worked out by the community
(either a X.0.(1..n), or more correctly, rev all the main libraries)
- build confidence in a particular version

These processes take time. Less than 12 months seems woefully
optimistic. 18-24 months maybe? Longer?