Log of the #nice channel on irc.freenode.net

Using timezone: Central European Time
* arjanb leaves00:33
* bonniot leaves01:57
* bonniot joins11:47
* arjanb joins11:53
* ArtemGr joins13:48
<arjanb>hi13:52
<ArtemGr>salute
<raboof>evening13:53
<ArtemGr>: )13:54
<raboof>hmm, is the syntax for an `unsafe' cast() in the manual?13:56
suppose I have a Vector, is there any way of telling whether or not it is a Vector<Integer> or not?13:58
<arjanb>where does that Vector come from?14:00
<raboof>out of nowhere, actually :)14:02
i guess it takes the Java one if I don't write it in Nice myself? or is it included in Nice?
<arjanb>yes it takes the Java one14:14
how do you get that Vector without a type parameter?
<raboof>i'm reading the paper claiming Java's generics suck, and i'm trying to reproduce his objections in nice to see if they hold14:19
the paper is a bit vague, but i believe one of his complaints is that in Java, you can't distinguish between a Vector<Integer> and a Vector<String> at run-time14:20
<arjanb>have you seen the post on the mailinglist about this?14:22
<raboof>jep
<arjanb>http://blogs.sun.com/roller/page/ahe/20041112#getting_the_point14:28
Nice uses also type erasure but doesn't have the problem of unintentional breaking type safety14:35
<bonniot>hi14:36
<ArtemGr>salute14:37
<bonniot>as I said in my answer, we don't have Vector, just Vector<Something>
<raboof>ah, that's what you mean by `raw type'? 14:39
<arjanb>yes a raw type is a type with parameters erased14:44
<raboof>so, say i have a generic `NiceVector<T>' class. If at some point I have an `Object collection', because of choosing type erasure, I cannot do 'if (collection instanceof NiceVector<Integer>) { ... }'?14:50
<arjanb>instanceof with type parameters isn't possible14:51
<raboof>anyway, indeed the article is rather single-sided (it doesn't seem to mention backwards/migration compatibility at all, which is bad), still i'd like to further rationalize his claims, like understand it and put it into perspective :)15:22
but that's for later, gotta go now.
<bonniot>raboof: yes, that will be useful15:35
* ArtemGr leaves18:58
<raboof>http://rafb.net/paste/results/XAMu2B13.html - Nice does the `right thing' here - but how? does it store the non-erased signature of the method, and link the caller to the correct callee at compile-time of the caller? hum. or how?19:48
<arjanb>your guess is right19:49
<raboof>and that keeps working when the callee is recompiled? sweet.
<arjanb>if a package in nice is recompiled all depending on it need to be recompiled too19:51
<raboof>ah ok19:52
so if you have a Nice library, and that library is updated, you need updates/recompiles for all software that uses that library, too19:53
<arjanb>yeah
<bonniot>you could avoid it if the public API of the lib hasn't changed20:06
<arjanb>does that always work?20:07
what if a private function is added with the same name and erased type as a public one?20:08
<raboof>bah, the use of superlatives in that paper is annoying :)20:10
`This is a complete violation of the type system and yet type checking succeeds. This defeats completely the purpose of the type system.'20:11
etc etc etc. bah. and that's allowed to call itself `Professor Dr.' :)
http://bzzt.net/~arnouten/comment.html for the `real' content of the paper i've seen so far20:19
* ChanServ leaves23:11
* ChanServ joins

Generated by Sualtam