Staňte sa Rockstar Developerom!
S rastúcim počtom IT Jóbovi a neustálym podstavom vývojárov a ďalšie "ajťáckych" profesií ŠÚ recruiter a personalisti nútení hladom nové predpokladaný termín, Ako pritiahnuť NOVÚ pracovnú silu. Objavujú sa rôzne revolučne benefity, od straveniek až po home office raz do tyzdna, Ako vedľajší produkt občas ai Vyššie platy. Najnovšie au marketingu obľúbeným nástrojom sa však stali tzv. Kreatívne inzeráty. Firmy nám v nich týkaj a lanária nás na Pozície typu "Ninja coder", "Senior Javascript Guru" Alebo "Rockstar Developer".
Že netušíte, čo od vás Mozu na takejto pozíciám chciet? Málokto tuší Niečo viac než tikajúce deadline a overtime na dennom poriadku. Vy však Moze ohúriť a prihlásiť sa na žiadanú pozíciám Rockstar Developera s unikátnym skillom - programovaním v jazyku Rockstar!
Čo to je?
Špecifikácia jazyka Rockstar vznikla v roku 2018 so zámerom vytvoriť naozajstný (ai ked zbytocne) programovací jazyk, aby recruiter a HR manažéri prestali používať spojenie "rockstar developer". Celý jazyk je postavený na myslienky, že program by mal hoci aj v duchu a forme rockových pesničiek z 80. rokov minulého storočia. Jazyk je dynamicky typizovanom a zatím (10/2018) príliš nepodporuje objekty.
Pre Rockstar existuje už v súčasnosť niekolko interpretovať a transpilerov, napr. Do JavaScriptu, C #, Pythone, Javy, C a ďalšie. V prípade zaujmú ich najdete cez Vyššie uvedený odkaz na GitHub, jedným z Najjednoduchšia na použitím je napr. Rockstar-py, ktory preložte váš Rockstar do Pythonu. Je ale nutné dodať, že kvoli "čerstvosti" jazyka a jeho prebiehajúcemu vývoj nie su jeho implementácie este úplne bug-free a často ani na 100% up-to-specs.
Subor so zdrojovým kódom v Rockstar sa ukladajú do plaintextu, štandardne
s príponou .rock
. V ROCKSTAR tak mozem "vyvíjať" prakticky
kdekolvek as čímkoľvek. Poďme sa už ale pustiť do programovaním.
Premenné
Existujú 2 rovnocenné predpokladaný termín, Ako v Rockstar vytvoriť premennú:
- Všeobecné premenné začínaj jedným z kľúčových
slov
a
,an
,the
,my
Aleboyour
za ktorým nasleduje unikátny identifikátor danej premennej. Ten smie Obsahovo ľan lower-case ASCII písmená od a po z. Kľúčové slovo na zaciatky je tiez Súčasti identifikátora, takže napr.a boy
je odlišná premenná odthe boy
. - Vlastne premenné ŠÚ už podľa názvu vlastne podstatné
mená - začínaj sa veľkým začiatočným písmenom a mozu sa skladá z
viacerych slov oddelených medzerou (za predpokladu, že tiez začína veľkým
písmenom). Identifikátor Samozrejme nesmieme obsahovej ziadna Kľúčové
slová jazyka. Hľa ked sa tymto sposobom ÚDAJOV vytvára premenné Ako
Customer ID
AleboCena Produktu
, špecifikácia Odporučte používať skóre idiomatické názvy AkoTommy
,Doctor Feelgood
,Billie Jean
AleboJanie
.
Zámenou
Pomocou kľúčových slov it
, he
,
she
, him
, her
, they
,
them
, ze
, hir
, zie
,
zir
, xe
, xem
, ve
, a
ver
sa vieme odkazom na posledný použitú premennú. Odporúčam
ale túto feature nepoužíva, keďže vacsinou Implementácia Rockstar ju ešte
nepodporuje.
Podobne Ako v Pythone Alebo Ruby, ai Rockstar je dynamicky typizovanom jazyk a nemusíme ani deklarovať premenné predtym, ako ich začne používať.
A K je premenná vytvorená mimo funkciám jedná sa o tzv. Globálne premennú, teda viditeľné v čelo zvyškov programu (od riadku, na ktorom je vytvorená Ďalej). Premenné vytvorené v rámci Funkcie ŠÚ lokálne a dostupné ľan do dokončením danej funkciám.
Typy
Ako sami uvidíte, typový systém v Rockstar je podobný tomu z ECMAScript
(až na to, že undefined
neznie Veľmi rockovo, tak sa Namiesto
neho používa mysterious
):
Mysterious
Reprezentuje hodnotu premennej, ktorej este nebola priradená Žiadna
hodnota. Tento typ má ľan jednu Hodnota Označenie kľúčovým slovom
mysterious
.
Null
Podobný význam Ako v ostatných jazykoch. Pri porovnaní s nulou a hodnotou
false
vrátí pravdivý Výsledok. Okrem null
Moze
Použiť ai rovnocenné aliasy nothing
, nowhere
,
nobody
, empty
a gone
.
Boolean
Logický typ, mozem nadobudnem hodnoty true
Alebo
false
. Kľúčové slová maybe
a
definitely
maybe ŠÚ vyhradené pre možné budúca využitie. Pre
true
ŠÚ definovanej hľa aliasy right
,
yes
a ok
. Pre false
ŠÚ definované
aliasy wrong
, no
a lies
.
Number
Čísla v ROCKSTAR ŠÚ Ukladanie v dátovom type DEC64. Pre oddelenie desatinnej časti sa používa bodka.
String
Stringy ŠÚ podľa Špecifikácie vnutorna reprezentovanej Ako sekvenciám 16-bitových unsigned integerov, ktore reprezentujte hodnoty z kódovaním UTF-16.
Stringy v kóde ŠÚ ohraničené dvojicou úvodzoviek. Apostrof (single
quote) v sekvenciám 's\W+
(apostrof nasledovaný malým písmenom
s a ľubovoľným počtom whitespace znakov) sa Preložte Ako is
(vysvetlenie nižšími v článku), Všetky ostatné výskyty apostrofov ŠÚ
ignorované.
Object
Kolekce pomenovaných vlastností inych dátových robn, podobne Ako v ECMAScripte.
Komentára
Použitím komentárov v Rockstar sa dôrazne neodporúča. Toto je rock'n'roll, publikum si má vo Vašo Diele najst zmysel samo. Ak ale absolútne trváte na komentároch vo svojom kóde, použite okrúhle zátvorky.
Tommy was a lean mean wrecking machine. (initialises Tommy with the value 14487)
Áno, znamená to, že nemozem používať zátvorky v aritmetických výrazoch. Je možné, že zložitejšie výrazy budete musiet rozložiť do viacerych menších a Využiť viacerích priradení.
Priradenie
Priradenie do premennej sa označuje kombináciám kľúčových slov
put/into
:
Put 123 into X
vloží do premennejX
hodnotu123
Put "Hello San Francisco" into message
vloží do premennejmessage
hodnotu"Hello San Francisco"
Inkrementovanie premennej (zvýšením ho hodnoty o 1) dosiahneme výrazom
Build {premenná} up
, dekrementovanie zase cez
Knock {premenná} down
. Viacnásobné opakovaním slov
up/down
sposob opakovaniami daného úkonu. Ciarka Medzi
jednotlivými up/down
ŠÚ povolenej.
Build my world up
zvýši hodnotu premennejmy world
o 1Knock the walls down
zníži hodnotu premennejthe walls
o 1Knock the walls down, down, down
zníži hodnotu premennejthe walls
o 3
Aritmetické výrazy
{a} plus {b}
- sčítaním. aliaswith
{a} minus {b}
- odčítaním. aliaswithout
{a} times {b}
- násobením. aliasof
{a} over {b}
- delením.
Príklady
Put the whole of your heart into my hands
priradí do premennejmy hands
hodnotuthe whole
krátyour heart
My world is nothing without your love
priradí do premennejyour love
hodnotunothing
(0) mínus hodnota premennejyour love
If the tears of a child is nothing
vrátitrue
/false
podľa toho, či sathe tears
kráta child
rovná nule
Poetic literals
Dostávam sa k konaj z najzaujímavejších vlastností jazyka Rockstar, a
síce k možnosti pri priraďovaní do premenných vypustiť obsah svojho
básnického CREVE. Jedná sa o alternatívu k priradeniu pomocou
put into
.
Pre hodnoty true
, false
, nothing
,
nobody
a nowhere
sa poetické priradenie skladá z
identifikátora premennej, kľúčového slova is
a hodnoty, ktory
priradzujeme:
My heart is true
priradí do premennejMy heart
hodnotutrue
Tommy is nobody
priradí do premennejTommy
hodnotunull
(pomocou aliasunobody
)
Poetické priradenie stringu prebieha Rovňák, ľan používa Kľúčové
slová says
. Všetko od neho až po koniec riadku sa vyhodnotí Ako
string, ktory sa priradzuje:
Tommy says Hello San Francisco!\n
priradí do premennejTommy
hodnotuHello San Francisco!
San Francisco says Hello back\n
priradí do premennejSan Francisco
hodnotuHello back
Poetické priradenie čísel je ale najzaujímavejšie. Začína
identifikátorom premennej, do ktorej priradzujeme, nasleduje keyword
is
(prípadne aliasy was/were
). Zvysoka riadku sa
vyhodnotí Ako reálne číslo, ktoreho cifry ŠÚ dĺžkami jednotlivých slov.
Aby sa vyriešil nedostatok 1 a 2-písmenových rockových slov (a umožnila
cifra 0), dĺžka každého slova este prechádza cez modulo 10. Prvá bodka
funguje Ako desatinný oddeľovač, Všetky Ďalším znakom okrem písmen ŠÚ
ignorované.
Tommy was a lovestruck ladykiller
uloží do premennejTommy
hodnotu100
Sweet Lucy was a dancer
uloží do premennejSweet Lucy
hodnotu16
My dreams were ice. A life unfulfilled; wakin' everybody up, taking booze and pills
uloží do premennejMy dreams
hodnotu3.1415926535
Porovnávaním 2 Hodnotu sa v Rockstar vykonáva operátorom is
.
Z toho Dovod je možné porovnanie výkonov ľan v rámci nejakého ineho
výrazu - to, čo by bolo Pôvodne podmienky, by sa osamote vyhodnotilo Ako
priradenie:
Tommy is nobody
priradí do premennejTommy
hodnotunull
(cez aliasnobody
)If Tommy is nobody
vykoná Nasledujúci blok kódu v pripade, že Tommy == null (hodnota premennejTommy
jenull
)
Pre negáciám využijeme keyword not
. K dispozícii je aj alias
ain't
, ktory moze Použiť Ako náhradu k is not
. To
sa moze zdať byť trochu v rozpore s angličtinou, kde "Tommy is not anybody",
"Tommy is not nobody" a "Tommy is not not nobody" z nejakého Dovod znamenajú
to isté.
Ďalšie relačných operátorov
Ďalšie relačné operátory ŠÚ:
is higher/greater/bigger/stronger than
- Väčšíis lower/less/smaller/weaker than
- menšieis as high/great/big/strong as
- Väčší Alebo rovnýis as low/little/small/weak as
- menšie Alebo rovný
Input / Output
Pre načítaním jedného riadku z STDIN
použijeme
Listen
. Pre Uloženie tajte hodnoty do premennej napíšeme
Listen to premenná
. Spustite: Say premenná
vypíše
obsah premennej premenná
do STDOUT
. Moze Použiť
hľa aliasy Shout
, Whisper
a Scream
.
Listen to your heart
načítava Riadok zo vstupu a uloží ho do premennejyour heart
Say Tommy
vypíše hodnotu premennejTommy
Flow control
Podmienky
Podmienené výrazy začínaj keywordom If
, ktory je
nasledovaný logickým výrazom. Ak sa vyhodnotí na true
, vykoná
sa nasledovný blok prikazovať. V opačnom prípade sa vykoná vetvy
Else
(ak je prítomná), alebo sa neudeje nič.
Cykly
Podobne Ako pri podmienkach, cyklus je označený keywordom
While
Alebo Until
a vykonáva sa dovtedy, kým platí
zadané podmienky.
Tommy was a dancer While Tommy ain't nothing Knock Tommy down
Hore uvedený kód vytvorí premennú Tommy
s hodnotou
16
a vo while cykle bude znižovať ho hodnotu, až kým nebude
rovná nule.
Keyword break
a continue
Existujú ai v Rockstar
a fungujú Rovňák Ako v inych jazykoch. K dispozícii ŠÚ este aliasy
Break it down
pre break
a
Take it to the top
pre continue
.
Bloky
Blok kódu v Rockstar začína keywordom If
, Else
,
While
Alebo Until
a pokračuje až po prázdny Riadok
Alebo koniec subor.
Tommy was a dancer While Tommy ain't nothing Scream Tommy Knock Tommy down Shout "Done!"
Funkcie
Funkcie ŠÚ deklarované svojím názvom, kľúčovým slovom
takes
a svojimi argumentmi, ktore oddeľujeme keywordom
and
.
Multiply takes X and Y
Love takes Man and Woman
Telo funkciám je sekvenciám príkazový bez akýchkolvek prázdnych
riadkový, ktore by ich oddeľovala. Prázdny Riadok ukončuje telo funkciám.
Ak má funkciám Vracia nejakú hodnotu, využijeme keyword
Give back {hodnota}
.
Funkcie zavoláme keywordom taking
:
Multiply taking 3, 5
je výraz vracajúci (pravdepodobne) 15Love taking Tommy and Jane
Príklad
Nasleduje objasňujúci program "Fizzbuzz" v minimalistickom Rockstar kvoli prehľadnosti:
Modulus takes Number and Divisor While Number is as high as Divisor Put Number minus Divisor into Number Give back Number Limit is 100 Counter is 0 Fizz is 3 Buzz is 5 Until Counter is Limit Build Counter up If Modulus taking Counter, Fizz is 0 and Modulus taking Counter, Buzz is 0 Say "FizzBuzz!" Continue If Modulus taking Counter and Fizz is 0 Say "Fizz!" Continue If Modulus taking Counter and Buzz is 0 Say "Buzz!" Continue Say Counter
A tu je verze v trochu umeleckejšie pojatom Rockstar a bez odsadenia:
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
Dúfam, že Vás článok o jazyku Rockstar aspon pobavil a ovládate o jeden ezoterický jazyk viac Ak vytvoríte nejaké programy v tomto jazyku, nebojte sa s nami podeliť v komentároch pod článkom.