Bohužel asi nejde, některé komponenty si verze sdílejí, nejde odlišit co se má otevírat v jaké verzi, nelze distribuovat balíčky, nelze provozovat vícero verzí AX komponent, problémy s NTLM atd. Ve velké firmě se do takového dobrodružství asi nikdo pouštět nebude. Ona stačí migrace na novou verzi IE, která vždy není bez problémů. Nezapomneňte, že se jedná o intranety, kde je prohlížeč často úzce svázán s prostředím a využívá více komponent než na internetu.
Můžeme polemizovat o tom, že lehký klient pak není až tak lehký, ale to je tak to jediné…
Intranet mnohdy v jiném browseru nepojede. U FF a Opery chybí řada pokročilých technik (třeba ActiveX). MSIE 7 a vyšší zase přináší změny v instalaci doplňků, blokování pop-upů, stahování souborů atd. Vezměme si například to blokování pop-upů. V MSIE 7 se místo pop-upu objeví lišta s hlášením o zablokování pop-upu. Když na ní kliknete a vyberete zobrazení pop-upu, tak se provede refresh stránky, ze které byl pop.up vyvolán. Jistě chápete, že to řadě webových aplikací způsobí problémy.
Aplikace lze pochopitelně přepsat. Ale není to levné ani rychlé (ani při zachování MSIE). On jeden den vývojáře stojí i desítky tisíc korun. Potom samozřejmě přichází dokumentace, testování, případně školení, a to všechno jsou další náklady. Přitom ten intranet s MSIE 6 prostě funguje. Utrácel byste v dnešní pohnuté době třeba 10 průměrných firemních platů jen proto, abyste se zbavil MSIE 6? Některé firmy to prostě neudělají.
Ano, to máte mezery ve vzdělání. ActiveX vám totiž umožní například v browseru tisknout z podnikové aplikace. Java, Flash, QuickTime, Microsoft Virtual Earth, různé 3D prohlížečky, a nakonec i původní AJAX jsou aplikacemi technologie ActiveX. Přitom ActiveX komponenty můžete používat nejen v browseru, ale kdekoliv ve Windows, třeba v Excelu.
Chi chi chi, ActiveX = pokročilá technika :-DDD. Tedy takhle jsem se již dlouho nezasmál. Pane, já je kdysi pln mladické naivity programoval. Brrr, pánbů s námi a zlé pryč!!!
Všem webovým programátorům doporučuji přestat MSIE6 podporovat. Jeho uživatelé pak rádi přejdou na kvalitní moderní prohlížeč (což vylučuje vše od Mrkvosoftu).
Jaké standardy? Máte na mysli nezávazná doporučení W3C? Kdyby na ta doporučení nemrdal Nescape, tak bychom neměli třeba HTML frames (Netscape 2.0). Kdyby na ně nemrdal MS, neměli bychom AJAX (XMLHTTP ActiveX control v MSIE 5, použito v Exchange OWA). A protože W3C se za 11 net nedostalo od CSS2 k CSS2.1, a pohybuje se tedy rychlostí mrtvého hlemýždě, tak je asi potřeba na W3C mrdat. Vyjma toho W3C občas přijalo naprostý nesmysl, který byl v rozporu se stavem webu, jako nechvalně známý box model. Pak si můžete vybrat: držet se doporučení W3C a zbořit kompatibilitu webu, nebo mrdat W3C? MS si vybral to druhé, a z W3C tehdy vystoupil.
Zkusil jsem to napsat jazykem, který vám bude blízký. Snad se to povedlo :)
> U FF a Opery chybí řada pokročilých technik (třeba ActiveX).
Co třeba NS pluginy? Ty v Opeře i FF jdou a dokáží to samé. Zajímavé je, že nejsou tak moc zneužívané jako ActiveX a přesto je MS kvůli „bezpečnostním obavám“ z IE vyhodil.
> Vezměme si například to blokování pop-upů. V MSIE 7 se místo pop-upu objeví lišta s hlášením o zablokování pop-upu. Když na ní kliknete a vyberete zobrazení pop-upu, tak se provede refresh stránky, ze které byl pop.up vyvolán. Jistě chápete, že to řadě webových aplikací způsobí problémy.
Proč se dělá refresh? To vypadá, že při návrhu někdo nepřemýšlel.
NS pluginy jsou specifické pro Netscape. ActiveX lze použít v jakékoliv aplikaci, včetně browseru. To umožňuje sdílení binárních komponent mezi desktopovými a webovými aplikacemi. K tomu přičtěte vývojové kvalitní prostředí pro ActiveX prvky (včetně legendárního VB, ve kterém je dodnes ve firmách velká spousta SW).
Refresh je při odblokování pop-upu nutný proto, že všechny jiné přístupy mají větší nevýhody. Vezměte v úvahu, že pop-upy jsou otevírány prostřednictvím skriptů, a ty skripty a s nimi pak mohou manipulovat. Když otevření pop-upu zablokujete, tak to později nelze napravit jinak než refreshem.
Řešení je neskutečně jednoduché, IE by mohlo „zablokovat“ vyskakovací okno tak, že by se pozdrželo vykreslení a uživatel by si mohl vybrat, kdyby pak klepl, že okno opravdu chce otevřít, proces by se jednoduše dokončil. Co je na tom těžkého? Ale to by někdo musel připsat pár řádků kódu a to je velmi velmi těžké. Jinak, kde pracujete, že tam vývojářům platí tisíce korun za den? :-) Projížděl jsem nabídky, ale takovou sumu prostě nikde nenabízí a mám dojem, že ani u MS ne. Zajímavé.
Jo a s W3C máte docela pravdu, čekám na CSS3. :D Jenže ono to nebude jen organizací jako takovou, ale i jinými, kteří si lpí na tom svém. Příkladem si vezměme právě MS. Vezměte si, že jsem web vývojář a chci na stránkách používat pěkné fonty. Krom Verdany a dalších rozšířených písmem si ale neškrtnu a zachránit mě mohou jen deklarace rodin písem, někdy je však velmi těžké najít podobné písmo. Tohle všechno by vyřešilo možností ukládat fonty na server. Jenže MS nechce. Dělá si nároky na tak standardní věc, jako je tvar písma atd. Uživatel by prostě měl platit za to, že jej používá. Existují free fonty, tak proč jich nevyužít? Využití písem od MS bych asi vynechal kvůli licenčním podmínkách, jelikož je jejich použití v tomto ohledu sporné. Ono já bych chtěl, aby můj web vypadal všude naprosto stejně, alespoň na PC, co je tak špatného na standardu? Kdybych pak použil MS písma, nezobrazilo by se to lidem bez Windows. To je špatně. Alespoň tak jsem to já pochopil. Já jedu na linuxu a uráželo by mě, kdyby tu zas byly optimalizace jen pro MSIE, které nemohu (či bych neměl) používat (vzhledem k tomu, že mám na Win licenci, tak v tom ale problém nevidím). MS se prostě bojí Linuxu, ale proč na tom mají strádat běžní uživatelé?
A activeX, já je dřív používal, ale když jsem přešel na FF, neškrtl jsem si, takže tato technologie je pro mě pasé. Já dělám přístupné weby, ne jen pro někoho. Lidé to oceňují, adminovat stránky ode mne mohou kdekoliv a kdykoliv, třeba i z mobilu. A to je důležité – multiplatformnost. Z toho důvodů nemusím ani flash a jiné fíčury, které na starších počítačích fungují vcelku pomalu a je to k ničemu, zatím.
A ještě si rýpnu, těší mě to – vývojář, který si nechá platit takovou sumu, jak vy píšete, by se měl stydět, že nedokáže psát multiplatformní aplikace. Jde to. ;)
Takže podle vás by bylo řešením, kdyby byl pop-up prostě neviditelný. To bohužel znamená, že by pro něj byla alokovaná paměť, žral by CPU, a mohl by například asynchronně komunikovat se serverem, nebo otevírat další neviditelné pop-upy. Navíc autorům mnoha webů je jedno, jestli reklamu uvidíte. Jsou placení za její zobrazení, takže by byl web plný neviditelných pop-upů, žeroucích přenosové kapacity, paměť a procesory.
Tisíce korun na den vydělá v ČR běžně senior developer. Kdekoliv jinde v civilizovaném světě tolik dostane i junior. Navíc jsem mluvil o ceně pro zákazníka, a ne o platu vývojáře. Cena pro zákazníka je vyšší, protože musí pokrýt více věcí, než jen plat vývojáře.
MS odešel z W3C tuším někdy v době schválení CSS 2, takže za zpoždění CSS 2.1 nemůže. U písem jste na velkém omylu. Běžnost nějaké věci ještě neimplikuje její bezplatnost. I když se to nezdá, písma jsou celkem složitá věc. Výroba kvalitního písma stojí velikou spousta času vysoce kvalifikovaných typografů. „MS“ fonty jsou autorským dílem Monotype Corporation či jiných autorů, a MS je pouze licencuje. MS nemůže povolit volné šíření fontů společnosti Monotype. A společnost Monotype ty fonty zcela běžně prodává, podívejte se na jejich web.
Free fonty jsou zpravidla dost nekvalitní. Chybí kvalitní ruční hinting, chybí rozšířené znakové sady, chybí vlastnosti OpenType fontů. Nakonec i proto většina uživatelů Linuxu začíná instalací kvalitních „MS“ fontů.
ActiveX komponenty se minimálně ve firmách nepoužívají pro tvorbu přístupných webů, ale pro tvorbu intranetu. Představte si, že chcete udělat webový workflow designer. Budete v něm myší umisťovat a propojovat události, aktivity atd. Výsledné workflow by mělo vypadat řekněme takhle:
http://upload.wikimedia.org/…gProcess.jpg
Jak to uděláte v čistém HTML? Přitom stačí napsat jednu ActiveX komponentu. Tu pak můžete použít na webu, stejně jako v desktopové aplikaci. Našly by se další příklady, ale tohle myslím stačí.
Vývojář, za kterého dá firma hromadu peněz za každý den, musí psát efektivně. Určitě nebude volit méně efektivní vývoj jen proto, že může být výsledek multiplatformní. Stejně by pro ty další platformy musel někdo dělat testování a support, což by bylo opět příšerně drahé. Výjimkou je jen situace, kdy je multiplatformí SW opravdu třeba. Všimněte si toho slova výjimkou.
NS pluginy nejsou specifické pro Netscape, jen byly vyvinuty pro Netscape. Jsou specifické pro browsery (s výjimkou IE). Problém je v tom, že MS se rozhodl NS pluginy nepodporovat, čímž zavinil silný vendor lock in (který, jak se ukazuje, je tak silný, že blokuje i přechod na novější verzi IE).
Zajímavé, že v Konqueroru to s těmi pop-upy funguje i bez reloadu, detaily implementace jsem ale nezkoumal.
NSAPI je primárně API Netscape. Samozřejmě se ho mohou naučit i další aplikace. Podobně jakákoliv aplikace (včetně Firefoxu) může používat ActiveX prvky.
Pluginy pro Forefox často nebývají kompatibilní mezi verzemi. Kdyby si firmy psaly vlastní pluginy pro FF, také by byly blokované při upgradu FF. Jenže firemní intranety se psaly pro MSIE, protože tehdy byl FF ve stavu, kdy se za něj autoři museli stydět.
V Konqueroru jde webu tak asi půlka, takže u něj je asi možné všechno :)