Qte skriver om Java Tiger
Qte - min studiekammerat der lige har startet sin egen blog – skriver i en af sine første posts om den nye version af Java codename Tiger (my emphasis):
…it occurs to me that Java beat C# to the punch when it comes to the new feature everyone requests in both languages “Generics” and when Java 5.0 at the same time adds features as
* Boxing – Primitive types can now be assigned directly to e.g. Integer, which comes really in handy when using generics.
* Foreach loop – although implemented using the old *for* keyword it functions the same was as in C#
* XML – one of the things I missed most in the previous Java versions was core support for XML, and now it is here – no need for using external packages.
Qte, der for ikke så længe siden (faktisk op til at vi skulle påbegynde dette semester) fandt .NET og C#, mener at Java nåede målstregen først med en ny feature som vi alle venter på i spænding, nemlig Generics. Som selvbestaltet .NET og C# evangelist på vores uddannelse kan jeg selvfølgelig ikke lade være med at kommentere. So here goes
At Sun har frigivet en virtuel maskine med understøttelse for Generics i sit programmeringssprog kan der selvfølgelig ikke ændres på. Men Generics er ikke bare Generics. Der findes flere versioner af det, og de der deltog i Microsoft arrangementet med Anders Hejlsberg i september, vil vide at designet og implementationen af Java Generics og C# Generics er dybt forskellig. På overfladen ser de meget ens ud – de benytter stort set samme syntaks – men graver man sig ned i detaljerne, vil man hurtigt finde forskellige. En af de vigtigste fra mit synspunkt er at Sun har valgt at basere deres Generics på Erasure teknikken. Grunden til dette er at man fra Suns side har prioriteret kompatabilitiet med tidligere versioner højt, og derfor valgt at deres ændringer i Tiger skal ske i compileren og ikke i VM’en. En grund man kan mene er rigtig eller forkert, men ikke desto mindre en grund, der har betydelig indflydelse på hvad man kan lave. Kort fortalt betyder Erasure at compileren under kompileringen erstatter alle de steder hvor der står Generic Type information med object. Man får typesikkerhed og typecheck på compiletidspunktet, men altså ikke på runtime, fordi man på det tidspunkt ikke ved noget som helst omkring den generiske type.
I C# Generics derimod er der tilføjet funktionalitet til CLR’en, der gør for det første at alle .NET sprog har mulighed for at benytte generics, men også at type informationen bliver bibeholdt og er tilstede på runtime. Fordi C# Generics er inkluderet i CLR’en kan man også lave en række performanceoptimeringer, som ikke kan lade sig gøre i Java Tiger.
Spørgsmålet er altså hvad man mener man har fået ud af at have tilføjet Generics i Java. Lidt har man selvfølgelig, for man har det nu, men jeg synes det virker lidt som om “de andre har, så derfor vil vi også, men vi gider ikke rigtig arbejde så meget for det”.
At Sun har tilføjet boxing til Tiger er en kærkommen udvidelse. Lige siden jeg lavede mit første Java program har jeg været ved at blive sindsyg over at der ikke er nogen som helst mapning mellem den primitive type verden og objekt verdenen.
At der er kommet bedre XML understøttelse i Java er også kun en fordel, for helt ærlig den var rimelig crappy før.
Nuvel vi kan vel blive enige om at de nye features i Java Tiger er gode, rare og velkomne, men tager man sin helikopter for at se det hele lidt ovenfra, melder der sig nogle andre spørgsmål. Ja, Sun kom før Microsoft med de nye sprog features, men til næste år kommer .NET 2.0, og så er Microsoft igen en hestelængde foran (hvis det kan gøre det). Det er lykkedes Sun at lappe deres sammen, og få det op på niveau, men de vil formodentlig ikke holde den plads længe. Det samme gælder XML understøttelse.
Sun er efterhånden røget i en catch-up position, hvor andre delvist definerer hvad man skal have, og ikke have – det gælder attributes/annotations, boxing, foreach, enumerators, native XML support, param/varargs, etc. Bevares det var også den retning de skulle gå, men det virker nu stadig påfaldende at Sun efter .NET kom ud begyndte at snakke om boxing, properties og alt muligt. Hvor mon de fik inspirationen fra?
Så at sige Sun rykker fra Microsoft og er dem dre sætter standarden fra nu af, vil nok være en overdrivelse*
En lang post, vist den længste jeg har skrevet. Håber ikke jeg har trådt nogen over Java-tæerne, det er ikke meningen. Men når Qte spiller op, så skal der svares
*: Den kommer jeg nok til at høre for…
If you like my writing you should subscribe to my RSS feed.
Qte blogger
En fra mit studie – Brian Jørgensen aka Qte – er begyndt at blogge.
Qte’s blog - Subscribed!
If you like my writing you should subscribe to my RSS feed.
Negativ download = upload ?
Hmm… -2% færdig… hvad mon det betyder….
Modtaget af Malm fra min Uni gruppe
Credit where credit due.
If you like my writing you should subscribe to my RSS feed.
Om at købe dyrt legetøj
Bill skriver i sin post (my emphasis):
Well, I totally respect his [Brains n Brawn, ed.] viewpoint but I have very little of substance in my life so purchasing expensive toys gives my life meaning. And now I can check my email from my phone, my PDA or my watch. The only bad part is that I haven’t gotten much but spam lately.
Hvad siger det så om mig
If you like my writing you should subscribe to my RSS feed.
Developer Evangelist i SF
Så er det bare med at komme igang med at søge
Via: David Waddleton
If you like my writing you should subscribe to my RSS feed.
UPS: Hvor dum har man lov at være?
Min UPS, der holder liv i mine servere, når/hvis strømmen går har brokket sig den sidste uge, og sagt at den skulle have et nyt batteri, eller i det mindste have kørt en selv-test. Så her i går nat klokken 01:00 mente jeg, at det var et godt tidspunkt at lave en sådan selv-test på inden jeg bestilte et nyt batteri. Og i vanlig “jeg har bare styr på det her, så jeg gider ikke lige tjekke på nettet” mente jeg at jeg kunne huske at man godt kunne køre en selv-test uden at strømmen gik til serverne. Det kan man ikke! Jeg gentager: Det kan man ikke!
Så hele skidtet bragede ned. Flot mand!
Så inden jeg kunne gå i seng måtte jeg lige tjekke at alt var som det skulle være.
Moralen: Selv ikke en UPS beskytter dig mod almindelig dumhed
If you like my writing you should subscribe to my RSS feed.
PHP, magic quotes gpc og addslashes()
Her i går var jeg i gang med at fejlfinde noget PHP kode jeg har overtaget fra en anden studerende her på Universitetet. Der var dukket et problem op, der gjorde at folk som tilmeldte sig et arrangement modtog mail som bekræftelse, men de blev ikke skrevet som tilmeldte i databasen. Efter fejlfinding viser det sig så at maqic_quotes_gpc ikke er slået til; dette betyder at tekst sendt via GET og POST ikke bliver escapet, og man derfor, hvis ikke man er vågen, får nogle db queries der fejler, fordi der eksempelvis er en ‘ i.
Nå, men ham, der havde lavet koden, havde altså ikke været vågen, og derfor blev disse ting ikke escapet ordentligt, og derfor kunne ovenstående fejl ske.
Bittert, men heldigt at det virker nu.
NB: Alt det her lugter så meget af SQL Injection Attacks at jeg næsten ikke tør tænke på det. Uha!
If you like my writing you should subscribe to my RSS feed.
Channel9, Podcasting og Scobelizer
Speaking of Channel 9, we’re now including enclosures in the videos RSS feed. It’ll be interesting to see if I can get it to shove these things onto my cell phone automatically.
Så var der enclosures i feed’et før eller efter jeg skrev til ham? Det forbliver nok et mysterie
Men pyt, for nu kan jeg få de seneste Channel9 videoer downloadet automatisk til min PDA. Hvor kanon er det?
If you like my writing you should subscribe to my RSS feed.
Podcasting og XBox
If you like my writing you should subscribe to my RSS feed.
Qtek 9090 – Hvordan får du fat i en
If you like my writing you should subscribe to my RSS feed.
I am a self employed independent software development consultant at