Pa mogu li onda programski jezici biti nešto potpuno neozbiljno i zabavno? Odgovor je srećom (ili nesrećom, kako već gledate na te stvari) potvrdan. Nekima od najpoznatijih primjera zabavnih jezika pozabavit ćemo se u današnjem, malo „opuštenijem“ tekstu.
Rockstar
Svi znamo što pojam „Rockstar“ (rock zvijezda) označava u stvarnom životu. Ono što je možda malo manje poznato je to da se taj isti pojam dosta često koristi u svijetu programera u obliku „Rockstar Developer“. Što je to rockstar developer? To je programer koji spada u grupu najboljih od najboljih. Programer koji sam može odraditi isti posao kao desetorica drugih „normalnih“ programera. Sveti gral svih softverskih kompanija koje bi u svojim redovima htjele imati upravo takve pojedince. Cinici bi dodali – ali da ih pri tome i dalje plaćaju kao jednoga običnog programera.
Naravno da svaki programer ne može biti rockstar. Bar to nije mogao biti sve donedavno, odnosno sve dok se nije pojavio programski jezik pod nazivom Rockstar, jer posljedice pojave takvog programskog jezika vrlo su zabavne. Ako znate napisati program u programskom jeziku Rockstar, što ste onda zapravo? Naravno, rockstar developer. Čak i ako niste baš najbolji od najboljih u njegovu korištenju.
Upravo takvom logikom u stvaranju novoga programskog jezika krenuo je Dylan Beattie. Riječ je o čovjeku koji predstavlja skoro pa idealnu kombinaciju rokera i programera. Dylan voli istaknuti da uživa u rock glazbi otkada zna za sebe, a uz to voli i programirati! Što zapravo i nije tako rijetka kombinacija, bar ne kod nešto starijih programera. Ovi mlađi znaju „zabrazditi“ i u neke druge glazbene smjerove.
Adresu s koje se može skinuti Python transpiler za prevođenje programskog koda napisanog u Rockstaru pronađite na https://github.com/yyyyyyyan/rockstar-py.
Pogledajmo sada što je nastalo kao rezultat njegova rada. Programski jezik u kojem napisani kôd izgleda kao dijelovi rock-balade na engleskom jeziku. Evo primjerice ispravan program napisan u Rockstaru:
Midnight takes your heart and your soul
While your heart is as high as your soul
Put your heart without your soul into your heart
Give back your heart
Desire is a lovestruck ladykiller
My world is nothing
Fire is ice
Hate is water
Until my world is Desire,
Build my world up
If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing
Shout “FizzBuzz!”
Take it to the top
If Midnight taking my world, Fire is nothing
Shout “Fizz!”
Take it to the top
If Midnight taking my world, Hate is nothing
Say “Buzz!”
Take it to the top
Whisper my world
Ako ne znate baš engleski i mislite da je to hrpa nabacanih riječi bez ikakvog smisla, probajte prethodni tekst proslijediti Googleovu prevoditelju. Dobit ćete hrvatsku baladu sa stihovima u rangu nekih domaćih autora, što opet može biti pozitivno ili negativno, ovisno o tome kako gledate na te stvari.
Kad bi se ovaj programski jezik automatski preveo u Pythonov programski kod (što zapravo i radi jedan od pratećih alata), dobilo bi se nešto poput:
def Midnight(your_heart, your_soul):
while your_heart >= your_soul:
your_heart = your_heart - your_soul
return your_heart
Desire = 100
my_world = False
Fire = 3
Hate = 5
while not my_world == Desire:
my_world += 1
if Midnight(my_world, Fire) == False and Midnight(my_world, Hate) == False:
print(“FizzBuzz!”)
continue
if Midnight(my_world, Fire) == False:
print(“Fizz!”)
continue
if Midnight(my_world, Hate) == False:
print(“Buzz!”)
continue
print(my_world)
Adresa s koje se može slobodno preuzeti Python alat za prevođenje Rockstar koda je: https://github.com/yyyyyyyan/rockstar-py.
Na istoj stranici je u potpunosti opisan postupak njegove instalacije i korištenja. Nakon pokretanja gorenavedenog Rockstar koda, kao rezultat izvođenja dobije se nešto poput:
1
2
Fizz!
4
Buzz!
Fizz!
7
8
Fizz!
Buzz!
...
94
Buzz!
Fizz!
97
98
Fizz!
Buzz!
Svakako treba napomenuti da, osim ove implementacije u Pythonu, postoji čitav niz implementacija u drugim programskim jezicima. Njihov popis dostupan je na adresi: https://github.com/RockstarLang/rockstar.
Stranicu s pregledom dostupnih Rockstar implemetacija u različitim programskim jezicima pronađite na https://github.com/RockstarLang/rockstar.
Ako želite vidjeti kako izgleda izvođenje Rockstar koda bez potrebe za prethodnom instalacijom dodatnih paketa na vlastito računalo, to možete napraviti izravno online u pregledniku preko adrese: https://codewithrockstar.com/online.
Na istoj web adresi (samo s nastavkom /doc umjesto /online) dostupan je opis svih mogućnosti jezika, što uključuje deklaraciju varijabli i polja, korištenje operatora, petlji i svega ostaloga što je potrebno za pisanje vlastite rock balade, pardon, vlastitog programa. Tako da na raspolaganju imate zaista sve što vam je potrebno da postanete „rockstar developer“. Pri tome se korištenje komentara (iako je moguće) strogo obeshrabruje. Na kraju krajeva, svaki slušatelj balade (ili korisnik programa) treba u sadržaju pronaći vlastiti smisao, a ne da ga netko drugi navodi na to kako nešto treba interpretirati!
Mjesto na kojem možete online testirati svoj Rockstar program pronađite na https://codewithrockstar.com/online.
Emojicode
Kao što ste to mogli zaključiti na temelju prethodnih rečenica, Rockstar je krasan programski jezik za rokere koji voli balade. Ali što ako ste više onako vizualno orijentirani lik. To ćete lako prepoznati po tome što svaka vaša poruka u nekom od komunikacijskih alata sadrži bar nekoliko emotikona. Ili, još radikalnije, veliki dio poruka pišete isključivo emotikonima.
Za takav profil programera (ili onih koji to tek žele postati), mnogo privlačniji programski jezik je Emojicode (https://www.emojicode.org/). Riječ je o skoro pa pravom programskom jeziku (po mogućnostima znatno naprednijem od Rockstara), kod kojeg su sve naredbe programskog jezika jednostavno zamijenjene emotikonima.
Zašto mislimo da je Emojicode znatno napredniji od Rockstara? Zato što osim osnovnih tipova podataka i kontrolnih struktura ima ugrađenu podršku za obradu grešaka, objektna proširenja, upravljanje nitima, pozivanje biblioteka napisanih u drugim programskim jezicima te sve druge „drangulije“ koje se očekuju od modernog programskog jezika. Jedino što se prilikom pisanja koda nigdje ne koriste uobičajene naredbe, nego se sve isključivo kodira pomoću emotikona.
Programski jezik za vizualno orijentirane pojedince pronađite na https: //www.emojicode.org/.
Na primjer, na pratećim slikama uz tekst pogledajte kako u programskom jeziku Emojicode izgleda uvjetno izvođenje dijelova programskog koda ili korištenje objektnih proširenja. Primjere programskog koda nećemo ovaj put priložiti kao naredbe u okviru samog teksta, jer unatoč hvalevrijednog znanja i truda ekipe koja slaže časopis, tko zna kako bi Emojicode zgledao nakon slaganja, što je ujedno i jedan od najvažnijih problema u korištenju ovog jezika u uobičajenim editorima za pisanje programskog koda. Srećom pa postoje posebni programi za pisanje upravo Emojicode programa. Na primjer, IDE alat dostupan na: https://danielb987.github.io/EmojicodeEditor/.
Za razliku od Rockstara, ovaj programski jezik možete preuzeti i instalirati na vlastita računala koja koriste različite operativne sustave. Izravno su podržani macOS i Linux, ali Emojicode možete koristiti i na Windowsu 10 uz preduvjet korištenja odgovarajuće sistemske komponente (Windows Subsystem for Linux).
Emojicode primjer 1: Primjer uvjetnog izvođenja programskog koda.
Na podržanim operativnim sustavima, Emojicode stvarno može generirati pravi izvršni kod, baš kao da je nastao u nekom „pravom i ozbiljnom“ programskom jeziku. Dakle, ako ste vizualno orijentirani tip, evo konačno programskog jezika koji ste godinama čekali. Nema više opravdanja za korištenje emotikona samo za pisanje poruka pripadnicama suprotnog spola.
Nekoliko ozbiljnijih rečenica za kraj
Iako oba programska jezika na prvi, drugi i na sve ostale poglede izgledaju prije svega kao primjer dobrog IT zezanja (dobro, Emojicode možda nešto manje zbog ugrađenih mogućnosti), kad se malo bolje razmisli, oni možda naznačuju budućnost razvoja programskih jezika na nekim područjima.
Zamislite da umjesto stihova rock-balade u nekom budućem programskom jeziku (nešto kao ApproveLoan) djelatnici banke mogu opisati različite karakteristike potencijalnog klijenta u dobro poznatoj bankarskoj terminologiji, kako bi dobili program koji precizno zna odrediti kome se može odobriti kredit, a kome ne.
Ili da u grafički orijentiranom jeziku, nasljedniku programskog jezika Emojicode (nešto pod nazivom ArrangeMolecules), možete jednog lijepog dana u bliskoj budućnosti razvijati procedure pomoću kojih kvantna računala istražuju i predlažu nove kemijske spojeve. A da pri tome nemate pojma o qubitima i drugim posebnostima takvih računala. Zar ne bi bilo zgodno da umjesto emotikona jednostavno koristite grafičke simbole za atome, molekule i veze među njima?
Ako se jednom ostvari nešto od navedenog, možda se sjetite ovog teksta, njegova autora i preciznog predviđanja budućnosti u rangu Nostradamusa.
Toliko za ovaj put. Sljedeći se put opet vraćamo ozbiljnijim temama.