8965. crazy babe (82.132.139.160) –
30 Jul 2009 16:02:58
[ FLAMING TEXT ]
were lou lou
|
|
8964. crazy babe (82.132.136.202) –
30 Jul 2009 16:01:44
[ FLAMING TEXT ]
hya
# |
|
8963. Hadderz Babesss x (genld-217-047.t-mobile.co.uk) –
30 Jul 2009 16:01:09
[ FLAMING TEXT ]
heyy gurlies xx |
|
8962. crazy babe (82.132.139.160) –
30 Jul 2009 16:00:28
[ FLAMING TEXT ]
back |
|
8961. Hadderz Babesss x (genld-217-047.t-mobile.co.uk) –
30 Jul 2009 15:59:44
[ FLAMING TEXT ]
heyy gurlies xx |
|
8960. crazy babe (82.132.139.160) –
30 Jul 2009 15:59:11
[ FLAMING TEXT ]
brb
|
|
8959. crazy babe (82.132.136.202) –
30 Jul 2009 15:58:02
[ FLAMING TEXT ]
brb
|
|
8958. crazy babe (82.132.136.202) –
30 Jul 2009 15:57:45
[ FLAMING TEXT ]
hya gurls
|
|
8957. WoNgi.. (cpc1-salf1-0-0-cust294.manc.cable.ntl.com) –
30 Jul 2009 15:56:10
[ FLAMING TEXT ]
Hiyaaaaaa amy lewigh its louise w ere :P |
|
8956. crazy babe (82.132.136.203) –
30 Jul 2009 15:54:41
[ FLAMING TEXT ]
hya gurls
|
|
8955. William (pool-68-162-171-5.pitt.east.verizon.net) –
30 Jul 2009 14:43:57
[ JavaScript rant ]
I implemented yield-based iterator-generators in SML/nj using call/cc. Now that we have a precise specification -- in terms of a well-defined host language -- there's nothing to fear! :)
exception No_more
type 'a iterator = unit -> 'a (* raises No_more *)
val withYield : (('a -> unit) -> 'b) -> 'a iterator |
|
8954. Tom 7 (h-67-100-132-217.phlapafg.dynamic.covad.net) –
30 Jul 2009 06:24:05
[ Erie and Zurich ]
J: The hearing protection is the Leightning L3 (http://www.google.com/products?q=leightning+l3) which have something like 34dB sound reduction if you get a good fit (i.e. don't have a lot of hair around the ears -- check!). They're made for construction and gun ranges. At $20 it's a way better deal than noise-cancelling electronics which are more like 10dB reduction and $300. I always travel with them and sometimes put earbuds underneath to listen to music, which works great. It's one of those possessions that I'd replace immediately if it were lost or damaged or attacked.
E: Thanks! |
|
8953. Anonymous (linux3.gp.cs.cmu.edu) –
30 Jul 2009 04:53:12
[ JavaScript rant ]
You can look at the spec of any halfway popular language or platform and find ugly warts. Few people have the motivation, ability, time or luxury to write something like the definition of Standard ML, itself not without flaws, not to mention that those with an abundance of these characteristics still tend to produce crap (cf. monad transformers).
The claim---that you might not actually be making but that seems apparent from your rant---that elegance is impossible in Javascript is not justified by the numerous, granted, deficiencies of the language.
And I hope you guys at google who know what's what will be more involved in the next iteration of Javascript instead of leaving it again to unschooled hackers and standards committee suits to fuck up. |
|
8952. AstroEriKKKKKa (pool-173-75-22-233.pitbpa.fios.verizon.net) –
30 Jul 2009 01:27:19
[ Erie and Zurich ]
awwww I loved this whole post! Especially that last story. And plane sleep walking is weird. |
|
what is your industrial-grade hearing protection? |
|
That looks like a shelf-mushroom. in all seriousness, I've been told no shelf mushrooms are poisonous. |
|
8949. Ezra (209-6-216-58.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com) –
27 Jul 2009 22:41:08
[ JavaScript rant ]
This one really galls me: 'The inscrutable contextually-dependent semi-sameness of 0, null, false, undefined, 0.0, "", {}?'
The scoping is broken but I've learned to work around it, like a battered wife.
The semi-sameness I can't deal with. |
|
8948. ✄✄✄✄✄✄✄✄✄✄✄✄â... (cse-dhcp-10-158.ucsd.edu) –
27 Jul 2009 16:02:53
[ JavaScript rant ]
✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄
✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄
✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄
✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄
✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄✄ |
|
8947. matus (cse-dhcp-10-158.ucsd.edu) –
27 Jul 2009 15:59:53
[ JavaScript rant ]
does all this dynamic web shit still use xmlhttprequest? hahaha what an abomination.
also A+ on the pwnage |
|
8946. Jason Ganetsky (207.10.176.34) –
27 Jul 2009 13:59:47
[ JavaScript rant ]
That last post was me. |
|
I can assure you that, with respect to my claims, these ugly details like the Date object and regular expressions are not what I'm calling elegant. I haven't pored over the specification, and I'm certainly grateful that other people have. I do think Brendan Eich is a pretty smart guy, and understands language design (maybe not with the same exact values you hold). He certainly does regret the bad parts of Javascript, and no one is claiming that Javascript is anywhere near perfect. Also, I'm not judging it in terms of how easy it is to write proofs about, or to judge the correctness of a compiler... although these are ultimately important.
I'd like to focus some more on what I started talking about. With regards to your closure example: that's a canned argument you could apply to any language with closures that's not default immutable. Languages where names are bound to mutable variables tend to function the same way as Javascript. Scheme, Python, Perl, etc all behave this way. Java awkwardly "fixes" this by requiring you to declare any closed-over variable final. Take an ML program, make all variables refs, and it will behave the same way too.
All these dynamic languages look everything up by string, as well. The fact is, I think Javascript does these things better than Perl/Python/Ruby/PHP etc. And my point was that, instead of having a giant, messy object system, it has a small one that is flexible and easy to reason about. Javascript has first-class function support, and methods are really just properties in objects that point to closures... so this (and the pervasive use of closures in libraries like jQuery) is why I think Javascript has gotten millions of web developers, untrained in the art of programming, to think in a functional way.
But, ultimately, I don't think it's even close to the best language out there. Erlang, with all it's flaws, is flat-out better than Javascript in my book (and probably yours too).
You should avoid calling people you argue with "crazy". I think the CMU PL department has gotten a reputation for behavior like that. |
|
8944. Scott (ip70-179-94-234.dc.dc.cox.net) –
27 Jul 2009 02:57:59
[ JavaScript rant ]
Oh, Zurich. That is what I get for not really reading your blog sometimes, but trying to post comments other times. |
|
8943. Scott (ip70-179-94-234.dc.dc.cox.net) –
27 Jul 2009 02:56:38
[ JavaScript rant ]
Wow. Pull no punches. I'm curious now if you're familiar with Lua. Lesser known for sure, but I've seen mention of it as a small, elegant language with some functional capabilities.
Where'd you fly? |
|
8942. Jason Ganetsky (cpe-72-225-160-217.nyc.res.rr.com) –
27 Jul 2009 01:13:46
[ JavaScript rant ]
The idea of every variable being a property of some object is exactly what I found very nice about the language. The notion that the global namespace is really just an object, every activation record is just an object, and every object is an object... is minimalistic. This makes Javascript a small language at its core. This is nicer than Scheme, where looking up a variable by name is done by one of two mechanisms... the variable is either lexically scoped, or is in the global "dynamic environment". Meaning, if the compiler comes across a reference to "x", and "x" has not been declared, it will emit code to look up "x" by name at runtime to find a (define x ...). I would say what Javascript did is unify Scheme's two mechanisms, AND prototype-based objects, in one fell swoop. Scope chains and prototype chains are pretty much the same thing.
var does have to do with variable declaration... if you omitted var, you would be putting elt into the global object instead of into the function's activation object. For the code that you wrote, you can use the new "let" keyword to make an activation object mid-function and get the behavior that you expect.
I think looking everything up by string is great for a dynamically typed language. It gives you flexibility. I don't think compilers have to be too complex to optimize that away.
Yes, I see there's a giant mess in the details of Javascript's specification, and the ECMAScript definition is like a big program. I would only hope that they fix this in Javascript 2. |
|
8941. Tom 7 (h-67-100-132-217.phlapafg.dynamic.covad.net) –
26 Jul 2009 14:24:32
[ Theme from Zürich ]
Hi! Please come back at least every 12 years, I promise something new! :) |
|