Når man har arbejdet med Ruby, så finder man ud af hvordan et sprog "burde" være :) og så mangler man næsten alt i C# Mit eksempel gik ikke på om det var muligt i c#, men for at vise at alt er objekter. Det er et uhyre rent sprog. Fx. er det vi kalder operatorer og som man skal lave operator overload for at lege med såsom +, - osv. alt sammen bare metoder på en klasse i ruby. + er fx. implmenteret på Fixnum klasse fra før så den kan lægge tal sammen. Jacob Atzens eksempel i det nedenstående viser også hvor utroligt let det er at lave en model lag i rails. Smukt og simpelt (jeg kunne blive ved, men jeg kan kun opfordre jer til selv at prøve). Ruby blev lavet at en - på det tidspunkt - ung fyr det var træt af de "etablerede" sprog, så han lavede noget der gjorde ham glad at arbejde med. Og et af de erklærede mål for rails er "happy developers". Det er ikke ligefrem det man føler når man arbejder med c#/.net (eller SharePoint for den sags skyld som meget af min c# udvikling pt retter sig imod). Nåh... nu skal jeg nok holde min udvikler mund, det var jo ikke rigtig det her som trådstarter var ude i :) |
Hey Jacob
Godt at høre fra dig :-)
Jeg kan godt se, at det kan være smart med Mocking og Stubbing, men jeg mener faktisk også at der er flere .Net frameworks der løser problemet. Jeg brugte typemock og den gjorde det faktisk rigtigt godt.
Det med at tilføje metoder til eksisterende klasser, kan man også i C# nu via extension methods, jeg er stor fan !!! Det foregår ikke dynamisk men på compile-time.
Som jeg ser det har .Net mfl. hugget med arme og ben fra Ruby, og det spændende er nu om der er mere at stjæle!
Meta-programmering kunne være en kandidat, uden at vide præcist hvad det er, så Googlede jeg lidt og fandt ud af man kunne lave meta-programmering med C# via et eller andet Text-Transformation tool, sikkert en inferior løsning, der kunne det godt være af værktøjsbælte i fremtiden.
Kunne du uddybe meta-programmerings fortræffeligheder ?