Přechod na VB.Net   zodpovězená otázka

VB6/VBA

Zdravím, chtěl bych se jen zeptat, jestli když umím programovat ve Visual Basicu 6.0, tak jestli pro mě bude těžké přejít na VB.Net.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bohužel ano. VB.Net je oproti VB6 mnohem komplexnější. Nutí programátora přemýšlet objektově a znát spousty věcí. Plně přejít bude trvat relativně dlouho, obnáší to totiž naučení .NET Frameworku s nepřeberným množstvím funkcí, který se k běžným operacím využívá (práce se soubory, s formuláři atp.). Budete se ze začátku vztekat a tápat.

Na druhou stranu se učíte něco, co nabízí mnohem větší možnosti, technologii, která je tlačená největší softwarovou společností na světě a ve světě se velmi dobře uchytila. Je neuvěřitelně propracovaná a žádaná. Když budete psát hru, web, aplikaci pro mobil, či běžnou desktopovou aplikaci, pořád využijete ty samé funkce. Navíc komunita .NETu je velmi silná, nebude proto nouze o výukový materiál. Začátečnické problémy na těchto diskusních fórech jsou řešeny poměrně rychle.

Abych to shrnul, dá to zabrat, ale výsledek stojí za to :-). Mluvím z vlastní zkušenosti.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky moc za rychlou odpověď. Připravím se tedy na pořádné nervy, ale půjdu do toho. Ještě jednou díky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Osobně jsem přecházel asi tak rok, a dalo mi to docela zabrat. Ale stojí to za to.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mohu potvrdit. Je to jinačí a budete se vztekat (jako já)

'místo
něco = něco(něco(neco(něco)))
'budete psát
něco = něco.něco.něco(něco)

ale určitě má cenu přejít. Třeba mě donutilo to, že se mi VB6 ve Vistách nehorázně seká

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Určitě to smysl má, VB6 je dnes 10 let stará záležitost a navíc neskutečně pomalá. S tím přechodem na VB.NET to není zas tak hrozné.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pomalá ??? To nechápu. Zkuste si nějaký starý projekt z VB6 přepsat do VB.NET a ten ve VB.NET bude vždy o fous pomalejší. To je prostě dáno technologicky. Ve VB6 jsem pracoval deset let, ty programy jsou pochopitelně zastaralé, ošklivé a tak dále, ale jsou RYCHLÉ. Mnohem rychlejší než jejich .NETové protějšky.

Co mě ještě na .NETu neskutečně vadí je "rychlost" instalace frameworku. Kdo instaloval .NET 3.5 SP1 na nějaká XPčka, třeba na šest kompů v jedné firmě, aby tam mohl dát svůj soft, tak to pochopí. Runtime VB6 má asi mego a půl a instaluje se asi 5 vteřin ;-)

Možná jste myslel VB6 pomalá na vývoj, to samozřejmě platí, ve VB.NET se vyvíjí až řádově rychleji (primárně díky tomu, že dost je toho hotovo ve frameworku).

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nemluvil jsem o rychlosti instalace, je jasné, že .NET Framework jako obludně velká sada knihoven, která toho umí asi tak 100x víc než VB6 runtime knihovny, se bude instalovat o něco déle.

Jinak to, jestli je rychlejší aplikace ve VB6 nebo ve VB.NET, záleží především na tom, jak je aplikace napsaná a které komponenty používá. Nemůže nikdo čekat, že když ve VB6 udělám aplikaci s nějakou komponentou a tu samou aplikaci udělám ve VB.NET s jinou komponentou, která sice vypadá stejně a dělá to samé, ale vnitřně je napsaná úplně jinak a umí toho 50x víc, že to bude stejně rychlé.

.NETí runtime je nesrovnatelně výkonnější a pokud jde o algoritmy a matematické funkce, tak se .NET přibližuje daleko víc výkonu C++ než výkonu VB6. Zkuste si napsat nějaké třídění velkého pole (stejný algoritmus) a pustit to ve VB6 a ve VB.NET, uvidíte, že .NET bude (i několikanásobně) rychlejší. Je to už docela dávno, ale zkoušeli jsme v C++ na linuxu spustit jeden program (počítap pí nebo tak něco) a pak jsme pustili na stejném počítači ten samý kód přepsaný do C#, .NET byl o 4% pomalejší oproti nativně kompilovanému a pro daný procesor optimalizovanému kódu pod linuxem.

VB6 kompiloval sice (na rozdíl od VB5) do nativního kódu, ale nebyly tam skoro žádné optimalizace a všechno se dělalo přes runtimovou knihovnu, což dohně zpomalující. Vemte si třeba takovou práci s grafikou, všechny grafické funkce ve VB6 byly šíleně pomalé, když to člověk dělal přes Win API, tak to bylo třeba 50x rychlejší, to samé funkce pro práci se stringy a spousta dalších věcí.

Je fakt, že v .NETu je každá složitější komponenta ve WinForms psaná opravdu dost robustně (takový DataGridView se vším, co potřebuje, má přes 3MB zdrojáků, což je vyváženo tím, že toho umí opravdu hodně, ale někde se to samozřejmě projevit musí). Navíc dojem z .NETu kazí to, že se kompiluje před spuštěním a jednotlivé metody se dokompilovávají až za běhu, takže první použití každé funkce je znatelně pomalejší. Rozhodně není objektivní srovnávat DB aplikaci ve VB6 a ve VB.NET.

S výkonem v .NETu to fakticky není tak strašné (od verze 2.0), runtime je napsán opravdu dobře (dost se na něm podílejí i lidi z MFF UK). Co by mi na .NETu vadilo je paměťová náročnost, .NET si té paměti ukousne trochu víc (proto může být pomalejší než VB6, který si jí tolik nevezme, používá méně knihoven atd.), ale to je dáno principem technologie samotné.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Připadá mi, že používání proprietárních microsoftích jazyků je nehorázná ztráta času a energie. Produkt, který nedrží zpětnou kompatibilitu si nezaslouží pozornost uživatelů.

Možná mám jako "embedded" programátor celkem "přízemní" perspektivu, ale kompilátor je pro mne prostě matematická funkce, která má i po 50 letech při stejných vstupech dát stejný výstup. Už to, že vstupy nejsou žádná solidně definovaná data, ale něco těžko definovatelného co se jaksi nakliká myší je krize.

Je to škoda, Visual Basic je sám o sobě (aspoň ty starší verze s kterými jsem se setkal) poměrně dobře navržený nástroj.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Kdyby všichni trpěli touto vaší naprosto naivní představou, ještě dnes by byl vrchol uživatelského rozhraní monochromatické textové menu...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nejde o proprietární - neproprietární, ale o nízkoúrovňový - vysokoúrovňový. Čím "větší věci" Vám jazyk umožní dělat, tím pravděpodobnější je, že za ním stojí velká firma (Sun, Microsoft) nebo obrovská komunita.

Klikání myší programování nepohřbí, nebojte. Stále je třeba rozumět "code behind", požadavkům zákazníků, databázím, technologiím, postupům atd.

VB6 a VB.NET jsou dvě úplně odlišné věci, které spojuje mateřská firma a *lehce* podobná syntaxe, ale VB.NET není VB7.

VB, pokud vím, dobře navrženým nástrojem nikdy nebyl. Pracoval jsem ve VB4, VB5, VB6 a všechny byly víceméně paskvil. Teprve VB.NET je jaksi konzistentní se zbytem světa.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback