2011. június 30., csütörtök

Mihez kezd János a .NET kimúlásáról szóló szóbeszéddel?

Egy nagyon érdekes és tanulságos történetet olvastam tegnap este a devPortal-on Novák István blogjában. Ez a történet természetesen kitalált, de sokunkra ráillik János szerepe, legyünk bár hivatásos vagy hobbi fejlesztők...

Történetünk szereplője a valóságban nem létezik, de mint minden kitalált történetben, remélhetőleg ebben is, valóságosnak fog tűnni. Hívjuk ezt a fickót Jánosnak. János már több mint 20 éve szoftver fejlesztőként keresi a kenyerét.

Valamikor régen a Fox cég egy dBase klónjával kezdett dolgozni, majd a FoxPróra váltott. Éveken keresztül nagyszerű szoftvereket készített szerényebb üzleti vállalkozásoknak, akiknek az alkalmazásában állt. Felhasználói varázslóként tekintettek rá; mindig gyorsan megoldotta a problémáikat, és ha valami új kis fejlesztésre volt szükség, néhány nap vagy hét alatt elvégezte azokat. Néha néhány óra alatt.
1998-ban azt hallotta a Microsofttól, hogy a Visual FoxPro életútjának végére ért. Sokat filózott ezen. Nagyon szerette a FoxPrót és semmi mást nem ismert, ami olyan jól megfelelt volna a saját ügyfeleinek. De végül is a Visual Basic akkoriban legfrisebb változata nem nézett ki rosszul, és még néhány internetes képességgel is rendelkezett, amelyeket a Microsoft erősen ki is hangsúlyozott.
Így hát János VB6-ra váltott. Ez némi időt vett igénybe, először megtanulnia a VB nyelvet, majd a meglévő üzleti szoftverét migrálnia.
A VB nem rendelkezett azokkal az objektum orientált képességekkel, mint a Visual FoxPro, és rosszabb adatkezelési képességei voltak. Egy csomó külső komponenst és plug-int kellett használnia, bár jónéhány újszerű dolgot is el tudott vele végezni. János még mindig hiányolta a FoxPrót.
Meglévő alkalmazásainak jelentős részét már VB-re konvertálta, amikor 2000 nyarán meghirdették a .NET-et. Mire 2002-ben a .NET kibocsátásra került, már végzett a VB6-ra átállással. Rászánt egy kis időt és vetett egy pillantást arra az új csodára, amit Visual Basic .NET-nek hívtak. Ez már sokkal jobb objektum orientált képességekkel rendelkezett, de néhány rutinfeladatnál sokkal több munkát igényelt. Szóval, még egy kis ideig ellenállt és folytatta a VB6-os változatainak fejlesztését.

Adolfnak is tele van...

Két évvel később a munkája kapcsán szüksége volt néhány internetes dologra. Addigra már megtanulta, hogy ezek a VB6-ban is elvileg támogatott internetes dolgok gyakorlatilag használhatatlanok voltak, és János némiképpen elárulva érezte magát. Haszálhatta volna a klasszikus Active Server Pages technológiát, de az “misztikus” dolgok ismeretét követelte meg. Mindezek mellett, akkoriban a .NET már kezdett vonzóvá vállni, szóval belevágott, vett néhány könyvet, és hozzálátott a VB.NET, a WinForms és az ASP.NET megtanulásához.
Szüksége volt a WinForms-ra, mert szeretett volna nagyszerű felhasználói élményt biztosítani az ügyfeleinek. Az ADO.NET nagyon újszerű volt ahhoz képest, amit korábban adatkezelésre használt, de kitalálta hogyan boldogulhat el vele. Elég ASP.NET oldalt pakolt össze ahhoz, hogy néhány alapvető dolgot megvalósítson az üzlete számára. Igencsak nehéz dolog volt az összes ilyen technológiát megtanulnia. Végül is, ő is csak egy egyszerű fickó volt. De túltette magét ezeken a nehézségeken.
A szoftverei kétrétegű alkalmazásmintát követtek, mindezek ellenére. Nem volt valójában elegendő ideje arra, hogy elmélyedjen az n-rétegű architektúrákban, a web biztonságában, vagy akár csak a remotingban. Továbbra is közvetlen adatelérést használt a felhasználói felület kódjából.
Megoldásai működtek, de elvesztette “varázsló” hírnevét. Tovább tartott neki a problémák megoldása és új képességek megvalósítása, mint korábban. De komolyan elszánta magát, és 2006-ra minden kódját átmozgatta.
Akkoriban történt, hogy a Microsoft meghirdette a .NET következő verziójában használt új felhasználói felület technológiát, és tudatta, hogy a WinForms fejlesztését befagyasztja – éppen akkor, amikor János végre a legtöbb fontos kódját átmozgatta.
Átállt Visual Studio 2005-re, és ez többé-kevésbé rendben működött. De egyre nehezebbé vált Visual Basic példákat találni azokhoz a dolgokhoz, amelyeket szeretett volna megcsinálni. A .NET súgófájljai soha nem voltak jók, így igencsak szüksége volt a mintapéldákra. De addigra János már .NET veteránná vált, legalábbis ami az alapszintű kétrétegű alkalmazásokat illette.
Ugorjunk tovább 2008-ra. A Visual Studiónak új változata jelent meg, de ebben semmi nem volt, amire Jánosnak igazán szüksége lett volna. Megpiszkálgatta a WPF-et egy kicsit, és teljesen összezavarodott tőle. Ugyanez történt vele a WCF kapcsán. Tényleg azt gondolták róla, hogy majdnem mindenhez XML fájlokat fog szerkeszteni? Mert nagyon úgy nézett ki.
Hogy még rosszabb legyen, cikkeket talált arról, hogy a Visual Basic-nek annyi, és mindenki a C#-ra ugrik rá. Megnézte a C#-ot de nem igazán értette, miért is van mindenki annyira oda érte? Olyan cicomás. Ahol a VB kódszerkesztője a lehető legjobban kitalálja, hogy János mit szeretne, és oda is rakja; a C# sértődötten ragaszkodik ahhoz, hogy ő kézzel kiírjon minden zárójelet, minden kulcsszó és változó helyesen tartalmazza a kis- és nagybetűket.
A kezdeti kísérletei során János rendszeresen rossz kapcsos zárójelek közé rakja a kódot. Már nem érzi annyira rosszul magát, amikor látja, hogy a Microsoft előadói is ugyanazokat a hibákat követik el a színpadon. Ő ezeket soha nem követte el a VB-ben, és nem igazán érti, miért is akarna bárki egy ilyen elrontott nyelvvel dolgozni.
A VB mégsem hal meg, szóval János tovább használja. Az az ismerős érzése támad, hogy a dolgok nem fognak jól végződni, mert már keresztül ment ezen a FoxPro kapcsán.
Végül, 2009-ben János lát néhány példát arra, hogy mit is csinál a XAML, és úgy találja, a Silverlightra átállás segítségével egységesíteni tudja az általa használt különböző fejlesztési irányokat. Most már webes és asztali felhasználói felületeket is tud készíteni. Mindezek mellett elkezd aggódni a WinForms támogatása miatt, hiszen azt már öt éve befagyasztották. Szóval, a korábbi WPF bevételére tett sikertelen kísérletei ellenére újabb fejest ugrik ebbe az újszerű technológiába.
Ez nehéznek bizonyul – a legnehezebb átállás, amit valaha is végigcsinált. A helpfájlokkal szív. A példák érthetetlenek. Az adatokat teljesen más módon kell kezelnie. Ebben a világban János már határozottan nem egy varázsló. Szerencsés, ha egyáltalán egyáltalán el tud készíteni valamilyen egyszerű adatbeviteli képernyőt.
Cikkeket olvas és megpróbálja megérteni, mit is csinál rosszul. Azok az MVC-ről, az MVVM-ről és a kompozit felületekről beszélnek, meg WCF Data Services-ről, és egy csmó komplikált dologról. Elveszettnek érzi magát, de büszkeséggel tölti el, hogy ő olyan valaki, aki már több átállást sikeresen végigcsinált. Szóval, tovább vergődik.
És pár év alatt végre képes a Silverlighttal dolgozni. Silverlight alkalmazásai ugyan semmi speciálisat nem tartalmaznak, de már legalább annyira jók, mint a korábbi WinForms-os alkalmazásai – többé-kevésbé. És csak most kezd el olyan dolgoknak is utánanézni, amelyeket még soha nem használt korábban, mint például az animáció. Segíteni akar az ügyfeleinek, ezért olyan felhasználói felület mintákat igyekszik felkutatni, amelyek sokkal jobbak, mint amilyeneket ő korábban készített. Abban reménykedik, hogy ha lassan is, de állhatatosan tovább tud mozogni ebben az irányban – a rendelkezésre álló kevés időben, ami a hibajavítások és az új kérések megvalósítása között egyáltalán megmarad.
És akkor azt hallja amint az egyik Microsoft vezető azt mondja: “megváltoztattuk a Silverlight stratégiánkat”. János már tudja ez mit jelent. Azt jelenti, hogy a Microsoft nem hisz a technológia jövőjében – vagy legalábbis eddig mindig ezen a módon tették ezt a többi technológia kapcsán.
Majd egy másik Microsoft vezető rajongva beszél arról, hogy a HTML5 és a JavaScript a jövő. Jánosnak összeszorul a gyomra, ha arra gondol, hogy ez mit is jelent. Éppen csak most fejezte be karrierje legnehezebb átállását, annyi korábbi átállás után. Ezek az átállások egyre nehezebben mennek, és úgy tűnik, hogy egyre gyakrabban követik egymást.
János már negyvenes éveiben jár, és nem biztos abban, hogy mégegyszer végig akarja ezt az egészet csinálni. Még soha nem gondolkodott azon, hogy mit is csinálna a szoftverfejlesztés mellett. Ez a munkája, és soha nem is akart mással foglalkozni.
De most fél. Arról győzködi magát, hogy már képtelen egy újabb átállást végigcsinálni.
És úgy érzi, elárulták. Már jó hosszú ideje szív a Microsoft platformjaival. Rengeteg feladatot tudott velük megoldani, de azt is látja, hogy gyakran félrevezették: A WebClass-ok zsákutcát jelentettek, a Visual Basic lassan elhomályosodik a .NET világában, a WinForms-t befagyasztották és elavult, az ADO.NET DataSet-eket, amit a .NET korszak kezdetén megtanult, nem támogatja a Silverlight. És most a Silverlightot is kicsinálják, vagy egyszerűen hagyják kimúlni, mint a WinForms-t? Senki nem mond semmit.
De hát, mihez is kellene kezdenie? Nem tudja. A Microsoft semmit nem mond, kivéve azt, hogy milyen nagyszerű lesz a HTML5 és a JavaScript, meg a Windows 8 majd a jövőben sokkal jobb lesz, mint az iPad. Már nincs különösebb oka, hogy megbízzon a Microsoftban, van néhány indoka, hogy miért ne. Úgy tűnik számára, hogy a Microsoft magára hagyta a szoftvervilágnak azt a szegmensét, ahol János eddig dolgozott. Minden eszköz, amely a 90-es években az olyan szakembereket célozta meg, mint ő – FoxPro, Access, Visual Basic – vagy stagnálnak, vagy már nyugdíjazták őket. Minden új eszköz olyan kockáknak készül, akik imádják a bonyolult szoftverfejlesztést, és sokkal többet törődnek a legfrissebb tervezési mintákkal és az agilis módszerekkel, mint az ügyfeleik megelégedettségével. Homályos utalásokat hall valamilyen Silverlight eszköz kapcsán, amit LightSwitch-nek neveznek, de ki tudja, mi is fog történni, ha a Microsoft a hangsúlyt a HTML5-re tereli?
És János elkezd körbenézni. Megírja első PHP programját néhány óra alatt. Nem igazán tetszik neki, de érti, és biztosan érzi, hogy ez nem fog a közeljövőben eltűnni. És ott van a Ruby on Rails nevű dolog is, ami sokkal egyszerűbbnek tűnik, mint a C# vagy a HTML5…

További részletek és kommentár itt olvasható a témával kapcsolatosan.

0 megjegyzés :

Megjegyzés küldése