BCX

Crystal - Vaš sljedeći odabir u svijetu programiranja

#1

What the heck is Crystal?

Crystal je statički tipiziran, kompajlirani jezik koji ima preformanse C/C++, te sličnu sintaksu programskog jezika Ruby. Greške su uočene pri samom kompajliranju, gdje se prevenira postojanje grešaka pri produkciji.

Za kratke primjere i usporedbu jezika, odlučila sam ne koristiti svoj najvoljeniji Python, već Go, koji je poprilično sličan Crystalu. Golang je popularniji i dosta stabilniji jezik, sa dokumentacijom i već izgrađenom zajednicom, ali uzorak koji se da primjetiit kod Crystala je da će u idućih par godina zbog svoje izražajnost naspram Golangove jednostavnosti, uspjeti izboriti primat nad Golangom.

Sa druge strane, sintaksa Crystala, te jednostavnost iste je nešto što mi je primarno uticalo na izbor sljedećeg jezika za učenje (još uvijek sam n00b, nisam 1337). Ako ste Rubista (prev. Ruby developer), već u par sati možete shvatiti širu sliku.

U tom kontekstu, Crystal je savršen izbor za Rubiste, dok je za ostale potrebno da se uhvate za jureći voz i saznaju više o samom jeziku kroz učenje i primjere. Posebno za one kojima bi bio prvi dodir sa objektno-orijentiranim jezicima. Golang, ipak, može tu da parira Pythonu po jednostavnosti.

Komparacija Golanga i Crystala :

Kako zapravo izgleda Crystal?

Primjer HTTP servera u Crystal jeziku:

require "http/server"
server = HTTP::Server.new(8080) do |request|
  HTTP::Response.ok "text/plain", "Hello world! The time is #{Time.now}"
end

puts "Listening on https://0.0.0.0:8080"
server.listen 

Primjer HTTP servera u Golangu:

package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Welcome to my website!")
	})

	fs := http.FileServer(http.Dir("static/"))
	http.Handle("/static/", http.StripPrefix("/static/", fs))

	http.ListenAndServe(":80", nil)
}

Komparirajući oba, estetika sintakse je ono što Crystal, koji nije donio posebnost unutar spektra programskih jezika, izdvaja iz mase i daje mu prednost. Rijetko koji objektno-orijentirani jezik izgleda ovako lijepo.

Još jedan plus za Crystal se nalazi u brzini kompajliranja koda. U par sekundi, kod je kompajliran i prezentuje moguće greške unutar koda. Još jedan poseban plus ide za crystal tool format kojim se formatiraju kreirani .cr (objašnjenje: ekstenzija za Crystal kod) fajlovi.

Da li je Crystal dobar izbor?

U svijetu programiranja, kada biramo koji ćemo jezik novi učiti, postoje određeni parametri koji utiču na naš izbor. Neko će reći da je na njegov sljedeći programski jezik uticala radna atmosfera, zahtjevi klijenata ili želja za učenjem zbog jednostavnosti ili isprobavanja jezika.

No, nakon dugo vremena u istom svijetu, primjetila sam da moj najčešći odabir budu jezici koji razvijaju kulturu zajednice oko istog, sa postojanjem volje za pomoć i dokumentacije za pridošlice. U tom kontekstu, Crystal kao jezik okuplja oko sebe zajednicu spremnu da pomogne i uputi Vas unutar samog programskog jezika, sa developerima posvećenim razvoju jezika i pomoćnim materijalima, uključujući jako brze odgovore na pitanja pomoći.

Još jedan aspekt je da trenutno na tržištu nema puno poslova za Crystal jezik, što je apsolutno prihvatljivo sa obzirom na petogodišnju starost.

Crystal ima vrlo zanimljiv aspekt rasta i sigurno je da će do 2020. godine uzeti jedan od primata unutar objektno-orijentiranih jezika.

Materijali za dalje čitanje

a) Oficijalni GitHub : https://github.com/crystal-lang;
b) Oficijalna stranica : https://crystal-lang.org/;
c) Dokumentacija za učenje : https://crystal-lang.org/reference/overview/;
d) Instalacija jezika po operativnim sistemima: https://crystal-lang.org/reference/installation/;
e) Oficijalni Twitter: https://twitter.com/CrystalLanguage;

1 Like