Rhinos and Tigers
steve-yegge.blogspot.com
steve-yegge.blogspot.com
(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...
Actual conclusion: people eat lunch. His talk was at 12:45, and the previous round of sessions had completed at 12:30.
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.
--
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.
"to build a huge web app that never saw the light of day"
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...
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.
Again, it's totally unfounded, I'm just speaking from anecdotal evidence.
http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.htm...
http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.ht...
Also, it's not exactly like he's verbose in his writing. He was verbose in his talking, which makes sense if you think about his forum.
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
I wish I had a bite-sized rhino... Damn you, Steve Yegge!
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.
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?
We're actually using it in production for a couple things.
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.
> 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?
At least both those sentences are somewhat important points he had, but most of the talk was about JVM languages and specifically Rhino.