Nedělní WTF: Základy programování v jazyce Boo
|
Při pravidelném proklikávání se službou Devlogy.cz jsem zaznamenal výskyt dalšího dílu seriálu Základy programování v jazyce Boo na serveru programujte.com. Vzpomněl jsem si na první díl seriálu, který jsem četl před časem, a opět se mi naježila srst. Šel jsem se tedy podívat, jak s tím autor vládne dál.
No děs a bída. Jestli se takhle někde programuje a ještě k tomu v Boo, tak to je mi moc líto. Boo vzniklo jako agilní jazyk inspirovaný jednoduchostí Pythonu a silou dotnetu. Sice je silně typový, ale nenutí nás typy explicitně vyjadřovat. V podstatě nás nenutí k žádným zbytečnostem. Jeho filosofii lze ukázat na následujících ukázkách výpisu Hello World na konzolu:
class Program {
public static void Main() {
System.Console.Write("Hello Wold");
}
}
Začal jsem nejjednodušším programem v C#, který vypíše na konzolu Hello World
. Teď to samé v Boo:
print 'Hello World'
Ano, to je vše.
Když se vrátím k článkům na programujte.com, je vidět, že autor netuší, která bije, když píše:
„Každý kód v Boo musí začínat jmenými prostory.“
A skutečně ukázku s Hello World okořenil krásně zbytečným importem jmenného prostoru System
. Není nad to mást začátečníky spoustou zbytečností, protože pak mají pocit, že se toho naučili hodně. :) Bohužel praxe ukazuje, že méně je mnohdy více a tak se posuneme o kousek dál. Tedy spíš zpátky na začátek, kde autor popisuje instalaci IDE. Už tohle je pěkná blbost, protože k vyzkoušení Boo žádné IDE nepotřebujete. Boo je totiž vybaveno interaktivní konzolou booish
, která je podobná těm, které můžete znát z dynamických jazyků Python, Ruby nebo třeba z mona – pro C#. Prostě konzola, kde píšete kód a rovnou se vám pod rukama vykonává. Pro začátečnické pokusy ideální.
Další skvělé expresivní zážitky najdeme v druhém a třetím díle v odstavcích věnovaných proměnným. Autor se zapomněl zmínit, že máme k dispozici celý typový systém dotnetu.
„Typů proměnných je více a my si probereme jen ty základní.“
A už začíná deklarovat jednu proměnnou za druhou.
celeCislo as int //definice, aktuální hodnota 0
celeCislo = 200 //inicializace proměnné
celeCislo as int = 5
Fakt krásné. Všimněte si prvního komentáře. To je stavební kámen další ukázky:
//příklad cyklu while
import System
i as int
while(i < 5):
print i
i++
Za takový kód bych si dobrovolně zakázal oběd, abych dostal trochu krve do mozku. Ukázka je bezesporu funkční, ale obsahuje zbytečný import, spoléhá se na implicitní inicializaci hodnotové proměnné, navíc zanáší šum v podobě zbytečných závorek. Takže jak se tedy Boo píše? Ukázka s proměnnými:
integer = 5
realNumber = 5.0
text = 'some text'
Jednoduše přiřadíme hodnotu a kompilátor už ví jakého je typu – a není to object
ani variant
. ;)
i = 0
while i < 5:
print i++
A tady je celá myšlenka ukázky cyklu while
. Proč je lepší?
- Používat komentáře je krásná věc, ale většinou je lepší psát tak, aby se komentáře používat vůbec nemusely. Většinou stačí slušně pojmenovat proměnné (nejlépe celým jménem). Tam, kde chcete napsat komentář, raději zvažte, zda není lepší vytvořit novou metodu s dostatečně popisným názvem.
- Zbytečným importem nic nezkazíme, ale zvýšíme šum. Někdo by dokonce mohl přemýšlet nad tím, proč tam ten
import
vlastně je. - Používat neinicializované proměnné je už na výprask. Než uvádět explicitně typ, to tam radši napište tu implicitní hodnotu, ten kód je pak mnohem srozumitelnější.
- No a závorka. Pokud na ní jste z Cčkových jazyků zvyklí, prosím, ale je to další zbytečné zašumění kódu.
- Hodit postfixovou inkrementaci na jeden řádek s printem už je jen taková třešnička na dortu.
Výborná je taky ukázka s for
cyklem nebo proměnné typu char
…
Psát texty pro začátečníky je těžké, proto se o ně ani nepokouším, ale neměl by je psát začátečník. Protože chyby, které se v „mládí“ naučíte a zažijete si je, budete pak opakovat a opakovat, než se z nich poučíte. A to stojí čas a ten jsou peníze…
Poučení z dnešního WTF: „Čím méně kódu napíšete dnes, o to se vám bude lépe spravovat zítra.“ :)
Okomentováno