Mýty o Basicu

25. června 2018 v 9:19 | zxretrosoft |  RETRO Atari C64 ZX MZ 821
Skvělý článek převzatý s dovolením autora z blogu http://zxretrosoft.infoblog.cz

V tomto příspěvku je shrnuto několik obvykle se vyskytujících mýtů a názorů o programovacím jazyce Basic včetně jejich vyvrácení či komentáře k nim. Basic má na trhu stále své místo a některé i velké firmy (Microsoft, Fantaisie Software, The Game Creators Ltd.) ho intenzivně rozvíjejí.
Trocha psychologie
Pro začátek mi dovolte několik drobných psychologických postřehů.

Basic je víc než kterýkoli jiný jazyk zatížen svou minulostí, protože dříve byl implementován v primitivní podobě do 8-bitových počítačů a dnes již dospělí lidé o něm mají povědomí především z nich. Navíc, v prvopočátku byl navržen jako jazyk "pro začátečníky" (což byla dříve marketingová výhoda, dnes to však zůstalo jakýmsi stigmatem). Zatímco třeba jazyk C na 8-bitech nebyl a dělala se mu od začátku reklama coby "jazyka profíků" (viz CHIP). Proto je tolik vývojářů, kteří vyprávějí příběh: Začínal jsem na Basicu, pak assembler a pak C++. Samozřejmě, dříve měli 8-bitový počítač a na 8-bitech měli jen Basic a pak ASM, pokud ho zvládli. Nic víc. Proto ty první dva jazyky, zákonitě. (Paralelně a v mezidobí také figuroval Pascal, ale ten nebyl přímo implementován.) Pak si kolem r. 2000 koupili PC a tam zase pro změnu dlouhou dobu nebyly etablované moderní Basicy, bylo tam rozjeté C a objektové programování (to už bylo ostatně i na 16-bitech). To si osvojili a k nějakému novému Basicu se už pak neměli ani potřebu vracet. Jejich představa o Basicu skončila s 8-bity.

Protože jde o časovou posloupnost, působí to, jako by šli od jednoduššího po složitější. Respektive evoluční linka. Zkráceno: "Od Basicu -> k Céčku" (čti: "od dítěte k dospělosti"). Já jsem třeba začínal na Javě a skončil na Basicu. To je ale zvláštní příběh, že? Ten už působí poněkud zvráceně, vypadá to, jako bych na cestě něco "nezvládl", jako bych se utekl od těžšího k lehčímu. Přitom je to jen "kulturní atmosféra" vycepovaná komercí a trhem, která dělá tento efekt. Zkrátka chce to nad tím trochu přemýšlet, než převzít štafetu toho stigmatu.

Mnoho vyšších jazyků (Python, CerberusX...) také vycházejí z Basicu, ale chytře se od toho distancují. Dokonce předstírají dojem něčeho naprosto nového a moderního, "hrají si na něco víc". Mnoho jazyků také prorazilo díky marketingovému odpoutání se od Basicu (Xojo, dříve název RealBasic aj.). Mainstream vyžaduje kombinaci nového, silného. Je těžké čechrat někomu ego, pokud má pracovat v jazyku, kde je přímo v názvu obsaženo slovo "základní". Programátor se musí cítit jako geroj, který krotí predátora, i když jde o tisíc a jednu variaci na normální Basic. Z těchto důvodů (a nejen z nich) vznikla o Basicu řada mýtů uchovávajících se v hlavách veřejnosti i programátorů dodnes.

---
GOTO je nejrychlejší způsob, jak ztratit kontrolu!
Odpověď: NE.
Tento argument o ztrátě kontroly vymysleli vývojáři objektových jazyků, protože jim přišlo zkostnatělé, že GOTO, v prvopočátcích existence Basicu, odkazovalo na fixní čísla řádků. To už se sice přes 30 let neděje, ale ani tak to nebyla tragédie (tehdejší kódy v Basicu šly běžně automaticky přečíslovávat včetně odkazů GOTO a GOSUB, např. už na Sam Coupé 1989, příkaz RENUM). Ovšem přímo groteskní je to v kontextu toho, že zrovna v OOP se často více než polovina času vývojářského života kód odlaďuje (samozřejmě hlavně kvůli neefektivní kontrole :-) ). GOTO je naopak mnohdy nejrychlejší (a často jediný) způsob, jak zasmyčkovat určitou část programu zcela bez starostí.
Basic je pomalý!
Odpověď: NE.
Tento mýtus vznikl v období 70. a 80. let minulého století. Má svůj zárodek v tom, že dříve nebyl na 8-bitových počítačích jiný jazyk než Basic nebo Assembler, plus také to, že Basic bývával interpretovaný jazyk. V Assembleru se psaly všechny náročnější aplikace (např. hry), protože na ně byl tehdy Basic pomalý. Proto se začala vžívat dichotomie: Assembler rychlý - Basic pomalý. Stejná dichotomie se dá ale vyjádřit o kterémkoli vyšším programovacím jazyce, protože Assembler bude vždycky - už z principu - nejrychlejší. Např. Assembler rychlý - C++ pomalé; Assembler rychlý - Swift pomalý atd. Ovšem dnes je situace diametrálně odlišná. Vyšší jazyky včetně Basicu jsou prakticky stejně rychlé, počítači je úplně jedno, jestli do strojového kódu překládá z Pythonu, C++ nebo Basicu. V jakémkoli moderním Basicu (PureBasic, SpiderBasic, FreeBasic, DarkBasic, AGK2, PlayBasic) můžete psát naprosto stejně všechny aplikace, hry nebo velké projekty - jak na PC, mobil, tak webové, aniž by to mělo vliv na rychlost.
Basic se hodí na menší projekty
Odpověď: NE.
I když lidé pod tíhou argumentů i důkazů Basic uznají za plnohodnotný jazyk, můžete slyšet, že často nakonec vyvodí tento předsudky zatížený závěr: "Ano, ale na větší projekty se již hodí objektové programování, Basic spíš na menší aplikace a hry." Neexistuje nic, co byste udělali v objektovém programování a nemohli to udělat v Basicu. Moduly jsou dnes běžné i pro moderní Basicy. Nadto existují nejrůznější překladače do dalších jazyků a není potřeba se tedy trápit ani tím, že zbytek týmu pracuje na jiné technologii. Vše je řešitelné a průchodné. V Basicu lze udělat libovolně náročný a mohutný projekt, od databází po 3D hry. Obvykle se v jazycích včetně Basicu používají stejné (podobné) knihovny a frameworky (např. OGRE3D https://www.ogre3d.org ).
Strukturované programování je nepřehledné!
Odpověď: NE.
To říkají lidé, kteří neumí programovat strukturovaně. Obvykle žijí v optimistickém dojmu, že objektové programování jim situaci výrazně zpřehlednilo. Strukturovaným kódům, protože kdysi byly psány pouze vertikálně, přezdívají pejorativně "špagetové kódy". Ovšem vertikální kód (tzv. "špaget") má naprosto stejný pořádek jako horizontální kód (tzv. "štrůdl"), pokud v něm ten pořádek děláte. A obráceně. Pokud máte bordel ve špageťáku, tak jste bordelář a budete ho mít patrně i ve štrůdlu. V každém kvalitním Basicu současnosti se dá navíc programovat jak vertikálním, tak horizontálním způsobem.
Strukturované programování má výhodu enormní kontroly nad průběhem kódu (což má význam např. pro kritické systémy, kyberbezpečnost atd.) a ruku v ruce s tím jde rychlost odhalení chyb. Není mi ostatně znám jediný důvod, proč by měl být strukturovaný kód méně přehledný než jakýkoliv jiný. Takže tento mýtus pokládám spíše za emotivní výkřik, na který lze těžko racionálně reagovat.
Basic se dnes nemá smysl učit, zaměstnavatelé chtějí JAVA a C++/C#
Odpověď: ANO i NE.
Fakt, že se inzeráty hemží omezeným množstvím jazyků, svědčí častokrát o hluboké mezeře ve vzdělanosti zaměstnavatelů v oblasti vývojařiny a o důkazu, jak jsou poplatní marketingově protlačeným produktům a mainstreamu. Volí tak dominantní a tzv. "spolehlivé" technologie. Je mnoho jazyků, které jsou špička a přesto se v inzerátech neobjevují (Fortran, Go, Swift...).
Existují v zásadě dvě cesty, kterými se můžete profesionálně vydat. Můžete se pragmaticky učit přesně to, co vyžadují aktuální inzeráty na trhu práce. Ty většinu lidí přesvědčí svým množstvím a nabízeným nástupním platem. Nese to však riziko, které zase většina lidí nedomyslí nebo je jim takříkajíc jedno. To spočívá v tom, že se stanete "ovcí v davu", sponou v řetězu, "dělníkem u pásu", a navíc bude existovat ohromná konkurence lidí, kteří přesně v těchto jazycích budou umět také a lépe. Takže možná dosáhnete požadovaného úspěchu, ale bude to mít svá úskalí a snadno sklouznete do šedého průměru.
Druhá cesta je vlastní cesta. Velmi často můžete slyšet od úspěšných lidí jednu a tu samou myšlenku: Dělat věci jinak než je dělá většina lidí, je základ úspěchu. Přesto se jí většina lidí neřídí a jdou raději tou první cestou. Je to volba každého.
Zaměstnavatel je obvykle pragmaticky uvažující člověk. Nezaměstnává lidi jen proto, aby měli práci. Zaměstnává je proto, že chce, aby mu dodávali určitou službu a on na ní ještě dále vydělává. Pokud dodáte zaměstnavateli produkt (aplikaci, modul) v Basicu a ten bude umět přesně to, co bude umět ten v Javě, respektive to, co chce aby uměl, věřte nebo ne, bude mu v tu chvíli úplně jedno, v čem je vyroben. Koupí vám s radostí počítač i s předinstalovaným Basicem. Musíte ho ale přesvědčit, že to v této technologii zvládnete a že s vámi může na určitou práci / službu počítat. Že z Basicu, pokud na tom trvá, můžete kód snadno v konečné fázi přeložit např. do Javascriptu. To nemusí být tak obtížné, pokud nějaký moderní Basic budete opravdu ovládat.
 

3 lidé ohodnotili tento článek.

Komentáře

1 Hynek Hynek | Web | 5. července 2018 v 19:45 | Reagovat

Dámské kabelky: https://www.hgm.cz/kabelky/

Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.
 

Aktuální články

Reklama