PDC2008 - Anders i budućnost C#-a

OK, posle dva predavanja koja su bila OK ali ništa specijalno (napisaću jedan poveći post da ih skupim na jednom mestu), dolazimo na Andersa i to šta budućnost nosi za C# i šta će to postojati u C#-u 4.0. Pa da krenemo...

- Hm, 10-godišnjica jezika. I naravno, malo istorije, šta je bilo oko 1.0 i 2.0, i naravno 3.0, i naravno LINQ. Zanimljivo je da su generics bili planirani od samog početka. Naravno, sve se dešava zbog pomeranja ka jednom deklarativnom modelu, popularnosti dinamičkih jezika kao što su Python ili Ruby, i na kraju paralelizam. Super dijagram razlike između deklarativnog i imperativnog programiranja (razlika između "kako" i "šta"). Još jedna razlika, ovoga puta između dinamičkih i statičkih tipizacija. Naravno, ako ste ikada slušali Andersa, znate da on zauzima srednji stav, i jedno i drugo je dobro (Kao i erik Mejer (Eric Meyer) uostalom).

- VB i C# će naravno biti ko-evoluirane, odnosno trudiće se da se ide ka feature parity-ju. Naravno, neke stvari se neće dodavati, čuveni primer XML literala.

- I konačno, gde ide C# 4.0. I široko gledano, ide se ka dinamičnom programiranju, i to ne samo ka dinamičkim jezicima, većč i ka onim API-jima koji nemaju statičku šemu..

- Inovacije

-Dinamically Typed Objects‚

- Optional and Named Parameters

- Improved COM Interop

- Co and Contra-Variance

- Dinamically Typed Objects -> ideja da se postoji podrška koja nije Reflection, da se radi sa objektima koji nisu strogo tipizirani. Ključna reč dynamic, odredimo promenljivu kao ovaj tip. Još jedan način da se kaže System.Object. Iste ove imaju i runtime tip koji je onaj koji dodeljujemo. Aaaaa...dakle, sve se deferira u stvari u runtime. I sda je upravo pokazao demo sa javaScript-om. Dakle, jezik koji u sebi ima i statičko i dinamičko tipiziranje. Isto tako, u 4.0 :NET-u dolazi DLR OOB.

- Aha, mislim da je druga inovacija u stvari ideja koja postoji u VB.NET-u, a to je da ako su parametri opcionalni, onda ne moraj uda se navode u pozivu metoda. Po default-u će se staviti ili null ili nešto slično. Ovo pomaže kod treće stvari, COM Interop (pogotovo ako radite sa Office API-jem)

- Dodate su mnoge stvari da olakšaju rad sa COM-om. Recimo, automatsko mapiranje objeka na dinamički objekat, lakši deployment ("no PIA"), imenovani i opcioni parametri i tako dalje. Recimo, ako imamo dinamičke objekte, ne moramo da radimo downcast kada radimo sa Office objektima.

- Podržavaju safe co i contra-variance. Recimo, u IEnumerable<String>, niste mogli da String tretirate kao objekat, a sada možete. Ovo je malo veća tema od ovog pregleda (i malo boli glava) tako da očekujte posebni blog post na ovu temu.

- Šta je posle 4.0? Compiler as a service, ideja je da se kompajler otvori i da se da kao API programima i programerima da koriste. Recimo, iskoristimo taj API, prosledimo mu C# kod i on nam vrati ono što želimo (Expression trees, IL...). Okeeeeej...ovo je...moćno...to je slaba reč. Recimo, na demou je upravo napravio mali interaktivni prompt a-la pyhton (i IronPython), u koji možete da upišete kod koji želite, LINQ upite, kao i da dinamički kreirate WInForms aplikacije.

Anders, kao i uvek, nije razočarao. Jedna mala stvar sa Q&A sesije, za one koji vole dinamičke jezike ili funkcionalne jezike. U 4.0 verziji dolazi tuple u BCL kao tip.

Out.

B.D.

Published Wednesday, October 29, 2008 11:02 PM by blackdwarf
Filed under:

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Commercial Edition), by Telligent Systems