[quote="mesic"]I komentari? Kako vam se činilo predavanje? Što je za zapamtiti od toga i na što paziti 'in the future'?
Ja bi osobno volio da je bilo više detalja i teorijice, ali to onda nebi bilo u MS stilu. :twisted:
[/quote]
Slazem se da je predavanje bilo drugacije od uobicajenih seminara (na kojima obicno ima puno vise detalja i teorijice:), ali nije lose koji puta vidjeti i malo prakticnijih stvari. Stil predavanja je inace karakteristican onom koje se moze vidjeti primjerice na Windaysima (ovo je nazivno imalo level 300).
Inace, nisu nuzno sva MS-related predavanja as simple as that. Primjerice, baci pogled na neka od predavanja s PDC'05 (MS je zatvorio sluzbeni site i sad masno naplacuje DVD-ove tog eventa, ali mislim da bi se do pokojeg unofficial streaminga jos uvijek moglo doci; vidjeh tako pred nekih mjesec-dva Herb Sutterov talk o C++0x).
[quote="mesic"]
Jedan kolega (sorry, ne znam ime) je na pitanje prof. Mangera od objektnim bazama rekao da su one pokopane?!? Kol'ko ja znam caché radi čisto dobro. Postoji i nekakav standard i razvija se nova verzija standarda... A, ono, i relacijske baze su prvih podosta godina imale problema sa implementacijama i sa brzinom rada (čak se sjećam da sam čitao članke koji tvrde da se to ne može implementirati zadovoljavajuće). Uhm?![/quote]
Moram priznati da nikad nisam radio s Cacheom, ali sjecam se interviewa sa sefom tog projekta u nekom broju IEEE-ovog Computera (ili ACM Communicationsa) i ukoliko sam dobro zapamtio tip je tvrdio kako se u pozadini i dalje uglavnom nalazi (hijerarhijski) relacijski engine, dok objektni i xml pristup handlea vrlo efikasni low-level middleware. Naravno, api je napravljen tako da izvana sve izgleda kao da se radi s pravom objektnom bazom.
Inace, i za relacijski i za hijerarhijski model baze postoje vrlo jaki teorijski rezultati o slozenosti izracunavanja upita nad njima (postoje donje ograde na minimalnu slozenost pripadnih algoritama i bolje od toga se ne moze). No, sve ovisi o tome koliko ekspresivne upite zelis postavljati. Ako su upiti opisivi logikom prvog reda (aka relacijska algebra) stvari se dobro ponasaju i na poljima i na stablima, no, za sve iznad toga stvari se po pitanju slozenosti pocinju bitnije komplicirati.
(teaser: mozda ove godine cujete i na mtr-u nesto o tome:).
No, da se samo jos nesto vratim ontopic, napomenuo bih kako DLINQ kao tehnologija nije bas nesto pretjerano inovativna, takva stvar je cvrsto ustolicena u Java svijetu vec dosta vremena -- trenutno aktualni su JBossov Hibernate ili Sunov EJB 3.0 (no, postoji jos barem 10ak drugih frameworka:). Zapravo, postoji ih sigurno toliko i za .NET (say, NHibernate), a vjerujem da je slicna situacija i s drugim platformama. Problem mapiranja objekata na relacije (i obrnuto) postoji prakticki otkad je relacijskih baza i objektno orijentiranih jezika, a intenzivno s rjesava sigurno barem zadnjih 10ak godina i rekao bih da se tu vec dosta dobro zna kako se treba nositi s pojedinim stvarima (s onima koje su rjesive, of course:), pitanje je samo izgradnje dovoljno dobrog alata koji ce biti u stanju automatski napraviti sto je moguce veci dio posla za programera.
XLINQ je druga prica, to je konceptualno daleko svjezija stvar, pa stoga vjerojatno i tehnoloski zanimljivija. No, treba biti svjestan da mehanizam mapiranja u ovoj domeni jos uvijek nije niti teorijski do kraja rijesen i postoji dosta otvorenih pitanja. Naime, iako je type system XML Scheme originalno bio zamisljen kako bi se omogucilo jednostavno mapiranje XML metamodela na objektni metamodel, praksa je pokazala da su stvari sve samo ne jednostavne. Evo, recimo kao jednostavan primjer probaj razmisliti kako mapirati restrikciju XSD tipa (<xs:restriction>)? (hint: nadji kontraprimjer koji pokazuje kako subtyping nije rjesenje:).
Usput, na razvoju XLINQ-a je radilo nekoliko jako pametnih ljudi iz MSR-a (oni su to razvijali pod okriljem projekta tadasnjeg radnog naziva Comega; key person projekta je Erik Meijer); ako te zanima, na njihovom webu ima lijepih clanaka o tome sto su tocno radili.
Jedna stvar koja mene u cijeloj ovoj prici pomalo zacudjuje jest smjer u kojem Microsoft krece sa svojim mainstream jezicima. Sintakticka integracija LINQ upita unutar novog C#-a i VB-a bez sumnje ce predstavljati rado koristen syntactic sugar kod krajnjih programera, no, koliko je dugorocno dobra opcija da jedan domain specific language poput SQL-a (i to u vrlo nestandardnom obliku) opterecuje ionako vec i u verziji 2.0 dovoljno kompliciranu (da ne kazem dokazivo nejednoznacnu:) gramatiku jednog C#-a? (da bude jasnije -- LINQ ce biti dio buduceg .NET frameworka (valjda 4.0:) i time ce se dobiti type safety queryja neovisno o njihovoj integraciji u keyworde programskog jezika).
mesic (napisa): | I komentari? Kako vam se činilo predavanje? Što je za zapamtiti od toga i na što paziti 'in the future'?
Ja bi osobno volio da je bilo više detalja i teorijice, ali to onda nebi bilo u MS stilu.
|
Slazem se da je predavanje bilo drugacije od uobicajenih seminara (na kojima obicno ima puno vise detalja i teorijice:), ali nije lose koji puta vidjeti i malo prakticnijih stvari. Stil predavanja je inace karakteristican onom koje se moze vidjeti primjerice na Windaysima (ovo je nazivno imalo level 300).
Inace, nisu nuzno sva MS-related predavanja as simple as that. Primjerice, baci pogled na neka od predavanja s PDC'05 (MS je zatvorio sluzbeni site i sad masno naplacuje DVD-ove tog eventa, ali mislim da bi se do pokojeg unofficial streaminga jos uvijek moglo doci; vidjeh tako pred nekih mjesec-dva Herb Sutterov talk o C++0x).
mesic (napisa): |
Jedan kolega (sorry, ne znam ime) je na pitanje prof. Mangera od objektnim bazama rekao da su one pokopane?!? Kol'ko ja znam caché radi čisto dobro. Postoji i nekakav standard i razvija se nova verzija standarda... A, ono, i relacijske baze su prvih podosta godina imale problema sa implementacijama i sa brzinom rada (čak se sjećam da sam čitao članke koji tvrde da se to ne može implementirati zadovoljavajuće). Uhm?! |
Moram priznati da nikad nisam radio s Cacheom, ali sjecam se interviewa sa sefom tog projekta u nekom broju IEEE-ovog Computera (ili ACM Communicationsa) i ukoliko sam dobro zapamtio tip je tvrdio kako se u pozadini i dalje uglavnom nalazi (hijerarhijski) relacijski engine, dok objektni i xml pristup handlea vrlo efikasni low-level middleware. Naravno, api je napravljen tako da izvana sve izgleda kao da se radi s pravom objektnom bazom.
Inace, i za relacijski i za hijerarhijski model baze postoje vrlo jaki teorijski rezultati o slozenosti izracunavanja upita nad njima (postoje donje ograde na minimalnu slozenost pripadnih algoritama i bolje od toga se ne moze). No, sve ovisi o tome koliko ekspresivne upite zelis postavljati. Ako su upiti opisivi logikom prvog reda (aka relacijska algebra) stvari se dobro ponasaju i na poljima i na stablima, no, za sve iznad toga stvari se po pitanju slozenosti pocinju bitnije komplicirati.
(teaser: mozda ove godine cujete i na mtr-u nesto o tome:).
No, da se samo jos nesto vratim ontopic, napomenuo bih kako DLINQ kao tehnologija nije bas nesto pretjerano inovativna, takva stvar je cvrsto ustolicena u Java svijetu vec dosta vremena – trenutno aktualni su JBossov Hibernate ili Sunov EJB 3.0 (no, postoji jos barem 10ak drugih frameworka:). Zapravo, postoji ih sigurno toliko i za .NET (say, NHibernate), a vjerujem da je slicna situacija i s drugim platformama. Problem mapiranja objekata na relacije (i obrnuto) postoji prakticki otkad je relacijskih baza i objektno orijentiranih jezika, a intenzivno s rjesava sigurno barem zadnjih 10ak godina i rekao bih da se tu vec dosta dobro zna kako se treba nositi s pojedinim stvarima (s onima koje su rjesive, of course:), pitanje je samo izgradnje dovoljno dobrog alata koji ce biti u stanju automatski napraviti sto je moguce veci dio posla za programera.
XLINQ je druga prica, to je konceptualno daleko svjezija stvar, pa stoga vjerojatno i tehnoloski zanimljivija. No, treba biti svjestan da mehanizam mapiranja u ovoj domeni jos uvijek nije niti teorijski do kraja rijesen i postoji dosta otvorenih pitanja. Naime, iako je type system XML Scheme originalno bio zamisljen kako bi se omogucilo jednostavno mapiranje XML metamodela na objektni metamodel, praksa je pokazala da su stvari sve samo ne jednostavne. Evo, recimo kao jednostavan primjer probaj razmisliti kako mapirati restrikciju XSD tipa (<xs:restriction>)? (hint: nadji kontraprimjer koji pokazuje kako subtyping nije rjesenje:).
Usput, na razvoju XLINQ-a je radilo nekoliko jako pametnih ljudi iz MSR-a (oni su to razvijali pod okriljem projekta tadasnjeg radnog naziva Comega; key person projekta je Erik Meijer); ako te zanima, na njihovom webu ima lijepih clanaka o tome sto su tocno radili.
Jedna stvar koja mene u cijeloj ovoj prici pomalo zacudjuje jest smjer u kojem Microsoft krece sa svojim mainstream jezicima. Sintakticka integracija LINQ upita unutar novog C#-a i VB-a bez sumnje ce predstavljati rado koristen syntactic sugar kod krajnjih programera, no, koliko je dugorocno dobra opcija da jedan domain specific language poput SQL-a (i to u vrlo nestandardnom obliku) opterecuje ionako vec i u verziji 2.0 dovoljno kompliciranu (da ne kazem dokazivo nejednoznacnu:) gramatiku jednog C#-a? (da bude jasnije – LINQ ce biti dio buduceg .NET frameworka (valjda 4.0 i time ce se dobiti type safety queryja neovisno o njihovoj integraciji u keyworde programskog jezika).
|