mboost-dp1

Debatniveauet omkring Microsoft i Dansk IT


Gå til bund
Gravatar #51 - arne_v
14. jan. 2010 19:59
Windcape (37) skrev:
Grunden til man har brug for Extension Methods i sammenhæng med en implementation af lambda, er for at kunne implementere hvad der svarer til System.Linq i Java.


De er ikke nødvendige, men ved at have dem:
- er man mere bagudkompatibel, da gamle klasser som implementerer diverse interfaces stadig vil compile
- man undgår duplikering af funkltionalitet for interfaces som er implementeret af flere klasser

Windcape (37) skrev:

Dette her er ret handy:


var zin = users.Single(user => user.UserName == "Zin");


Frem for at skulle skrive en manuel iteration.


Hverken var, lamda eller extension methods er grunden til at der ikke er en eksplicit løkke. Grunden til dette er at man genbruger en funktion. Det kan Java også gøre. Ja - det kunne Fortran faktisk gøre for et halvt århundrede side.

Den tilsvarende kode i Java ser ud som:


User zin = Finder.single(users, new FinderComparer() {
public boolean match(User user) {
return user.getUserName().equals("Zin");
}
});


Det fylder lidt mere. Men er præcis samme programmerings stil. Det tager formentligt ikke engang længere tid at læse, fordi substansen er præcis den samme.

Windcape (37) skrev:
Events og Properties ville være super godt i Java, da det ville forbedre integrationen med GUI creation i både Applets og stand-alone applikationer, og properties ville være specielt godt til integration med JEE, i stedet for at bruge reflection til at finde alle get* metoder med tilhørende set* metoder.


Properties undgår ikke reflection.

Og faktisk bliver de til get_ og set_ metoder.
Gravatar #52 - arne_v
14. jan. 2010 20:23
Windcape (37) skrev:
og desværre har Java en attitude om at lave tingene "korrekt" i stedet for "nemt" som arne_v har påpeget.


Java har nogle eksempler på total overengineering.

Mit yndlings eksempel er compiler API'et i 1.6.

Umiddelbart vil man da tro at en kaldbar compiler må have et rimeligt simpelt API.

Men det er blevet generaliseret ud i det absurde.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login