Výběr klienta jde do finále, rozhodujeme se nyní mezi Silverlightem a GWT.
Potřeboval jsem tu původní množinu možností z prvního článku nějak zúžit, abych je mohl detailně porovnat a vybrat nejlepší variantu.
Důvody, proč jsem vybral tyto dvě technologie a nevybral jiné:
- technologie nevybíráme úplně na zelené louce, nezačínáme od začátku - firma již má nějakou historii, má nějaké produkty, má nějaké know-how, má nějaké programátory, kteří mají určité znalosti. Není možné tedy říci, co bylo, to mě nezajímá, teď přichází budoucnost ...
- současný výběr technologie ovlivní vývoj ve firmě na dalších min. pět let, možná i více. Ze zkušenosti potřebuji mít aspoň nějaké garance, že technologie tuto dobu (a ideálně mnohem déle) bude existovat, bude podporována, musím z ní "cítit", že se s ní do budoucna počítá. Proto jsem vyřadil řešení jako OpenLaszlo nebo třeba vaadin, které se mi zdají výborné, ale nedovolím si na tom postavit strategii firmy na další roky.
Pozn.: možná by bylo vhodné uvést, že se bavím o firmě s více jak sto zaměstnanci, z toho čistý vývoj (bez konzultantů) čítá cca 30 lidí. - firma dosud hlavně vyvíjela tlusté klienty v Delphi, některé menší projekty mají webové uživatelské rozhraní. Servery jsou všechny psané v Javě. Toto má dva významné důsledky: přepsaní tlustých klientů do webových technologií nebude určitě bezbolestné a bude potřeba najít cestu nejmenšího odporu. Lidem se znalostí Delphi je bližší technologie .NET než webové technologie, navíc tu již nějaké znalosti .NETu jsou.
- jak jsem již uváděl v předchozím článku, tak Java na straně klienta u mě (bohužel) důvěru nemá. Nikdy to nebylo ono, a ani JavaFX ve mě nyní nebudí moc velkou důvěru. Sun tuto technologii hodně tlačil, ale Oracle je nyní pro mě v této oblasti velkou neznámou.
- výběr technologie souvisí s možnostmi sehnat (kvalitní) lidi s potřebnými znalostmi. Firma by se v tomto ohledu chtěla "otevřít" mladším ročníkům, absolventům. Také bude určitě dříve či později potřeba sehnat lidi pro nárazovou pomoc na projektech, takže je potřeba se dívat na její rozšíření a podporu v našich končinách.
- základní technologie je jedna věc a nabízená rozšíření třetích stran je druhá věc. Např. samotné GWT dobrý, ale nabídka třetích stran ještě lepší - SmartGWT, ExtGWT atd. To samé Silverlight - telerik, infragistics atd.
- při vývoji webových aplikací nechci řešit (nebo řešit co nejméně) kompatibilitu mezi prohlížeči. Chci používat nějaký produkt, nějaké komponenty, které to budou řešit za mě. Bohužel ze zkušenosti vím, že toto nikdy nebude 100%, viz moje zkušenosti z JSF a NetAdvantage.
- na serveru bude Java, to je jistá věc. K Javě má určitě blíže GWT než Silverlight. Dnes máme celkem velkou znalostní propast mezi lidmi, co dělají klienta a co dělají server, protože se používají úplně odlišné technologie. Jen opravdu minimum lidí rozumí obojímu.
Při volbě GWT budou mít oba světy k sobě blíže, bude možné lépe vytěžovat lidi - v případě potřeby podpořit více klienta nebo server. Teď to moc nejde, protože s Javou mi v Delphi nepomůžou a naopak
Naopak pokud zvolím Silverlight a ty světy budou více oddělené, pak by mohl být větší tlak na kvalitní API na serveru, byly by jasně dané hranice. Až za pár let se zase třeba bude měnit technologie na klientovi, tak server zůstane beze změn a jen se vymění klient. - v dnešní době je určitě nutné přemýšlet o mobilním přístupu k datům. Není to hlavní kritérium, ale ohled na to je potřeba brát.
- trochu mám obavu z přijetí Microsoftu u státních projektů. Je jasné, že Microsoft je u nás všude ve státní správě, ale přeci jen cítím, že státní projekty by měly být co nejvíce nezávislé a v tomto pohledu "mám lepší pocit" z Google než Microsoftu. Asi je to jen pocit.
Jdeme tedy do finále :). Zase budu moc rád za vaše komentáře a zkušenosti, protože takové věci jsou k nezaplacení.