Céčko, Java, C#, Python? Ale prosím vás, toto jsou jazyky pro studenty středních škol. Dnes je v módě Small Basic od Microsoftu, který toho sice moc neumí, je s ním ale zábava.
Před dvěma lety na podzim se Microsoft světu pochlubil s programovacím jazykem a zároveň vývojovým prostředím Microsoft Small Basic. Jedná se o jednoduché (ale kupodivu použitelné) vývojové prostředí pro školou povinné a naprosté začátečníky. Stejně tak ale se Small Basicem snadno zabijete polední nudu.
Škola hrou
Small Basic je ve své podstatě dalším v dlouhé řadě studijních jazyků, jehož účelem je naučit mládež základní principy programování a tvorby algorimtů – stejně jako třeba výukový jazyk Karel, Logo a ve své podstatě i Pascal.
Prostředí Microsoft Small Basic s doplňováním kódu a interaktivní referenční nápovědou v pravém panelu
Databanka hotových skriptů od komunity
Small Basic je ve své podstatě pouze skript – přímo ve vývojovém prostředí si jej můžete spustit, podívat se, co umí a zase ho ukončit. Se svým výtvorem se ale můžete pochlubit i světu, hotový kód totiž můžete publikovat na webu Microsoftu, kde se bude interpretovat (a vykreslovat) pomocí Silverlightu. Každý takový zveřejněný „program“ má vlastní speciální identifikátor. Ten se vám bude hodit, libovolný kód si totiž pomocí tohoto identifikátoru můžete stáhnout do editoru a třeba vylepšit, případně pochopit algoritmus hry Tetris a dalších komplexních her.
Nakonec nesmím zapomenout ještě na jednu věc – Small Basic je rozšiřitelný o jednoduché knihovny. Ty mohou výrazně zvýšit funkčnost celého jazyka a několik jich budete mít k dispozici už po instalaci. Díky knihovně pro práci s fotobankou Flickr tak třeba na dvou řádcích napíšete skript, který stáhne náhodnou fotografii Prahy a nastaví ji jako tapetu Windows:
obrazek = Flickr.GetRandomPicture("Praha")
Desktop.SetWallPaper(obrazek)
Tento skript nevytvoří žádné okno, můžete ho ale samozřejmě rozšířit třeba o textový vstup, kde určíte, jaký obrázek se má stáhnout namísto Prahy. Jedná se o očební jazyk, komponenta Flickru tedy stáhne pouze jeho nejmenší rozlišení.
A ještě jedna drobnost. Několik ukázkových „programů“ najdete v adresáři C:\Program Files\Microsoft\Small Basic\Samples, respektive C:\Program Files (x86)\Microsoft\Small Basic\Samples na 64-bitových Windows.
Každý skript, který publikujete v katalogu, bude dostupný v silverlightovém
přehrávači – tady si třeba můžete vyzkoušet základy kolizní fyziky
Zábava pro geeky
Small Basic od Microsoftu je především hra a zábava pro znuděné geeky, které už nebaví večerní hra Diabla (mě ano), na druhou stranu lze schopností Small Basicu využít i pro nějaké to domácí užitečnější skriptování. Editor se spouští velmi rychle, má automatické doplňování kódu (lehce obarvený tradiční IntelliSense ze světa Visual Studia) a také knihovnu Math. Můžete si s ním tedy rychle spočítat matematickou úlohu a napsat i grafický plotr, který vykreslí i nějaký ten graf. Já pro jednoduché výpočty vždy používal PHP nebo Javascript, podobnou práci ale v podstatě zastane i Small Basic. V tomto směru má vlastně jenom jedno vážné mínus – absenci čtení a zápisu do souboru.
A teď už několik ukázek kódu.
Hrajeme si se Small Basicem
Každou minutu stáhne z Flickru fotku a nastaví tapetu
Rozšířený program nestáhne pouze jednu fotografii Prahy, ale bude ji naopak ze serveru Flickru stahovat každou minutu. Poté ji nastaví jako tapetu Windows. Jedná se o elementární nekonečnou smyčku s absolutně žádným nastavením, o to tu ale nejde. Jde tu o to, aby nebohé děcko pochopilo účel a funkci smyček a to nejlépe v kontextu moderní doby a mashupů – aplikací, které mixují data z různých zdrojů.
While ("True")
obrazek = Flickr.GetRandomPicture("Praha")
Desktop.SetWallPaper(obrazek)
Program.Delay(60 * 1000)
EndWhile
Sinusoida
Předchozí program nemá vlastní okno, to se ale vytvoří velmi snadno. Na výběr máte textové okno (formát příkazové řádky) a okno grafické, do kterého můžete zvesela čmárat pixely. Ve spojení s elementární funkcí pro vypočet funkce sinus vykreslíte sinusoidu.
GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.Title = "Můj skvělý program"
GraphicsWindow.Width = 850
GraphicsWindow.Height = 500
For x = 0 To 900 Step 10
y = 200+Math.Sin(x/100)*200
GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
GraphicsWindow.FillEllipse(x, y, 10, 10)
EndFor
Jak se stát mladým matematikem za deset sekund...
Želvák malíř
Tvorbu grafiky ale můžete i animovat. K tomu poslouží želva. Jedná se o objekt, který se chová jako hlava plotru. Můžete ji posunout na libovolné místo na plátně (tedy na okně) a želva vykreslí stopu. Proč je to želva? Jde tu o dějepis, kreslíci želvu totiž obsahoval stařičký jazyk Logo z konce šedesátých let minulého století, který pak insiproval hromadu dalších výukových programovacích jazyků včetně Small Basicu.
V našem případě můžete želvu přinutit, aby nakreslila třeba stromeček. Je to poměrně snadné, jedná se totiž o fraktál, tedy neustále se opakující algorimtus ve smyčce.
GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.PenColor = "LightGreen"
uhel = 30
delta = 10
vzdalenost = 60
Turtle.Speed = 9
KresliStrom()
Sub KresliStrom
If (vzdalenost > 0) Then
Turtle.Move(vzdalenost)
Turtle.Turn(uhel)
Stack.PushValue("vzdalenost", vzdalenost)
vzdalenost = vzdalenost - delta
KresliStrom()
Turtle.Turn(-uhel * 2)
KresliStrom()
Turtle.Turn(uhel)
vzdalenost = Stack.PopValue("vzdalenost")
Turtle.Move(-vzdalenost)
EndIf
EndSub
Jak takový program vypadá v praxi? Podívejte se na krátké video kresby fraktálového stromu. Chcete jiný úhel, rychlost, velikost větví a barvu? Zkopírujte kód z oficiální příručky do editoru SB a spusťte si vlastní verzi.
Vlastní Photoshop
Pomocí Small Basicu samozřejmě můžete pracovat i s myší a kreslit po plátně. Kód sice nenabízí žádné ovládací prvky, tento program byste ale mohli snadno rozšířit třeba tak, že si ovládací prvky sami nakreslíte, a doprogramujete logiku, která po klepnutí někde nahoře (na nakreslený ovládací prvek – známe pixelovou polohu ukazatele myši) třeba změní barvu a tloušťku pera. Pro začátečníky k nezaplacení.
GraphicsWindow.BackgroundColor = "Black"
GraphicsWindow.PenColor = "White"
GraphicsWindow.MouseDown = OnMouseDown
GraphicsWindow.MouseMove = OnMouseMove
Sub OnMouseDown
prevX = GraphicsWindow.MouseX
prevY = GraphicsWindow.MouseY
EndSub
Sub OnMouseMove
x = GraphicsWindow.MouseX
y = GraphicsWindow.MouseY
If (Mouse.IsLeftButtonDown) then
GraphicsWindow.DrawLine(prevX, prevY, x, y)
EndIf
prevX = x
prevY = y
EndSub
Několik málo řádků kódu a máte vlastní kreslítko
S pomocí Small Basicu můžete dále zachytávat kliky myši, klávesnicový vstup, můžete vykreslit zcela vlastní uživatelské rozhraní jako třeba ve hře Tetris, takže si mladý programátor osvojí docela širokou škálu znalostí. Především je to ale celé hra a experimentování s pixely a barvičkami. Pokud by se vám ale přeci jen podařilo něco napsat, můžete kód exportovat do velkého Visual Basicu a pokračovat v něm dál.
A to je všechno. Small Basic 0.95 od Microsoftu je už lokalizovaný do češtiny a běží nad .NET Frameworkem, k chodu pak budete potřebovat alespoň verzi 3.5. Pro majitele Windows 7 to překážka nebude, ti ostatní budou muset navštívit Microsoft Update.
Napište skript a podělte se
Napsali jste nějaký pěkný skript ve Small Basicu? Nasdílejte ho na web smallbasic.com a pochlubte se v diskuzi pod článkem odkazem na silverlightový „emulátor“, nebo napište alespoň identifikátor vaší aplikace.
Důležité odkazy:
Microsoft Small Basic 0.95
Licence: freeware, 5,7 MB
Autor: Microsoft
Web programu: smallbasic.com