
Rhinos and Tigers - mqt
http://steve-yegge.blogspot.com/2008/06/rhinos-and-tigers.html
======
twism
I'm also working on a rhino/javascript web framework...I am about 15% to where
I want to be but the concept is there. With all this talk of "programmer's
insecurity" and release often and early (this might be too early) I thought i
should put this out and solicit feedback. Any would be appreciated, thanks.

(lacks documentation and tests, but if you look in the contexts folder I think
hackers should be able to grasp whats going on)

<http://code.google.com/p/env-framework/>

[http://code.google.com/p/env-
framework/source/browse/trunk/e...](http://code.google.com/p/env-
framework/source/browse/trunk/env-framework/contexts/hello-
world/controllers/home.js)

------
tlrobinson
Here's the actual talk: <http://www.youtube.com/watch?v=BttI-y9VzXQ>

------
sage_joch
"...people kept trickling in, and I estimate there were about 400 people
stuffed in the room by the end. It was standing-room only, and people were
spilling out into the hall. The conclusion? The other talks must have been
really boring."

Actual conclusion: people eat lunch. His talk was at 12:45, and the previous
round of sessions had completed at 12:30.

------
rtf
I don't really see a need for this; I can use haXe to get the additional
interoperability Yegge refers to with Rhino/Javascript, and I won't have to
use the JVM to get it.

That he pooh-poohs all static languages by pointing to some excess of Scala
and using a slippery-slope argument from there doesn't really help.

Plus the verbosity.

------
gojomo
Having skimmed it, I can reduce the 11,500 words to just 128:

\--

The future lies with dynamic languages; their success in big systems, and
Scala as a complex move in the anti-dynamic direction, are both inconvenient
developments for Java and static-typing orthodoxy. Still, the JVM and VMs in
general are good for dynamic language implementations.

Javascript/Rhino is better than you think, and among the best of the JVM
languages -- better than Java, and still easy to integrate with Java in both
directions. Rhino is getting investment from Google and elsewhere; remaining
objections will be conquered.

Google will open-source 'Rhino's not Ruby' (aka 'Rhino on Rails') this year
(he hopes). RnR has been used by a 20-developer team there to build a huge web
app in a small code footprint. Google's JSCompiler for compressing JS will
likely be open-sourced, too.

~~~
andreyf
_Still, the JVM and VMs in general are good for dynamic language
implementations._

Not just good, but vital for just-in-time optimization. The argument of JIT
bringing dynamic languages to the speeds of Java/C++ seems compelling...

------
ntoshev
The Scala argument in Paper Tigers is incorrect. If Java-style static typing
catches 90% of the bugs that can be caught with 5x more complex type system, I
would say some trade-off for simplicity is acceptable and it is reasonable to
just use the simpler type system.

I think types should be optional. ECMAscript actually supports optional types,
doesn't it?

The whole argument of static vs dynamic typing seems wrongheaded. It should be
all about minimal code size. Normally you want the shortest program possible.
But you also want some confidence that your program works, hence you write
unit tests. If tigers are too scary, than you can use the optional static
typing, write more unit test, etc - all at the cost of increasing code size.

------
jpeterson
Can one person really produce so much text? Does he have a team of writers or
what?

~~~
icey
I wish there was someone around who has had a chance to look at some of his
code. Something I've noticed from years of doing code reviews and consulting
is that people who are that verbose in their writing tend to be very verbose
in their coding. I wonder if Steve generates massive classes when they could
be done much smaller.

Again, it's totally unfounded, I'm just speaking from anecdotal evidence.

~~~
jauco
He's transcribing a speach. Speakings always more verbose than writing.

~~~
icey
Sure, but everything he writes is incredibly lengthy.

------
eb
+1 for the first person that posts a summary.

~~~
edw519
First. (You said "first". You said nothing about quality.)

To get from 11,494 words to 400 words, every 29th word:

Rhinos — it's bite-sized of find transcribing rest... a (out about been make
of not. nice. through drive JavaScript you, help JVM your of top who Empire
machines don't his get. it's last tent... And at the people. of And single of
best this talk hard!" dinner well, vs. And And you'll but introduced of of
that's do talk to And finally that It's of is they Kuperberg's], a kind it: —
running the change change the this for thick You to where are new. You're it,
spells to them recognize inadvertent: do a you Note: same access with client;
it's we Google want People picked this right, do it Yeah. the C mean, have you
for proof I I a it's which tried wrote Sure, right? But rehash compilers, ever
on It's we of the Wow. there's "Make came So You ability for you now or do but
in things. to So function, just bit to welcome to by "JVM So blocks little
compare stank. were it weighted comparisons much to leave an think work match
addChild(), people are it, is But they A fun! The who science said, probably
freaking You these he implement where application not not string language,
that, The Unit I thinks languages] testing (pointed if on have it conflicting
[Java] JavaScript cool. bottom Java literal using right? a called hundreds now
Subclassing! And And you extent, work when you you're And still room There're
you I'm shortly got Ruby": of didn't really to lost sort not So widely The
languages. their doing you people, Right? matter mind. Mmmmm, of Scala's
language a very system this types Haskell.] like, hear dynamic performance.
know tigers and not let's PHP. and static "Well! fun tiger need It's x) using
They Engineering camp what this extra story terms The maybe like, much the
have got to JavaScript up it that whatever think. here... You this Java a it,
In almost in thing> — and put species. and JSON sometimes for working pretty
get embed C# this That Now labels, to — Language a is bytecode. [roughly] you
pretty pop, interpreter fast. allocation. objects]. comparison] provable it's
And down You'll it's can true. code because Ajax So Which And a says, you try
be and RnR], there by think compilers folks. don't so to quickly, Google is:
not have? There brought to They're directions bugs. in thank

~~~
blogimus
I got as far as:

Virtual Machines are good because they help language interoperability, which
is something we need more of on the server side, but I gave up half way
through before I could glean "How" VMs actually help language
interoperability, but I think it has something to do with Rhine. Anyone care
to read the last half? I'd read the rest, but I need to figure out why my
virtual hosts aren't working in Apache on my new Debian server.

~~~
shaunxcode
I believe his point is that it increases interoperability if all languages sit
on top of the JVM.

~~~
blogimus
Right,I got that part, I thought I was clear that my question was "HOW?"

How does the JVM increase interoperability? What mechanism is special about
the JVM that is not available in the native machine that makes the JVM more
appropriate/better as a platform for language interoperability?

------
DanielBMarkham
I ran this through an automated text summarizer.

Didn't make much sense then, either. Best I got was a discussion on languages
running on top of the JVM and a mention of PG.

~~~
earthboundkid
OS X's Summarize service, by sentence:

> Basically I argued in that talk — successfully at Stanford, so I think that
> was... something — that for just-in-time compilers, it's becoming pretty
> clear, they have a lot better access, a lot better data at runtime about how
> you're actually using your program right now than the compiler ever had.

By paragraph:

> Case in point? Regular expressions. (raise hand) Who likes to write their
> own giant deterministic finite automata to do string matching? Heh. It's
> weird — nobody raised their hand.

So, something about people not wanting to write their own compilers?

~~~
Xichekolas
What I learned from your comment is that I should write my own 'summarizer
service' that picks a random sentence from a document, calls it a summary,
slap the phrase 'N-tier' on it, and sell it to Fortune 500 companies.

At least both those sentences are somewhat important points he had, but most
of the talk was about JVM languages and specifically Rhino.

