17. 01. 2013. | #1 |
Aleksandar Janković
Qualified
Datum učlanjenja: 16.10.2010
Lokacija: Bg-Sd
Poruke: 165
Hvala: 70
54 "Hvala" u 36 poruka
|
Go Programski Jezik
Za one koji ne znaju ekipa iz Googla je pre par godina lansirala Go programski jezik. Go je uspeo da dostigne verziju 1 i trenutno predstavlja stabilnu platformu za razvoj softvera.
Već duže vreme pratim događaje i članke vezane za Go jezik i na osnovu raznih izvora mislim da sam uspeo da steknem utisak o prednostima i manama ovakvog pristupa programiranju. Odvojio sam vremena da ga savladam i sada smatram da se zasniva na odlično osmišljenim konceptima i predviđam da će vremenom postati "mainstream" i preuzeti udeo u tržištu od glavnih konkurenata. Zato me najviše interesuje da li ima istomišljenika ili onih drugih ovde na forumu, odnosno u Srbiji? Kakvo je vaše mišljenje i iskustvo? I generalno kakvo je stanje sa primenom novih tehnologija u Srbiji ili izučavanjem u školama? Da li vidite primenu za ovakvu tehnologiju u svojoj firmi? Da li mislite da bi teško nalaženje radne snage predstavljao nepremostiv problem? Za najbolji način da se upoznate sa Go jezikom možete da posetite http://tour.golang.org.
__________________
ajankovic.com] |
17. 01. 2013. | #2 |
majstor
Wrote a book
|
Osim toga da sam cuo da postoji i da Google stoji iza - ne znam nista vishe. Ni u mom okruzenju ga niko ne koristi.
Posto ga ti poznajes, mozes li navesti razloge tj njegove prednosti i zasto bi ga neko pozelio koristiti i u kojim ambijentima?
__________________
|
18. 01. 2013. | #3 |
Branimir Momcilovic
Qualified
Datum učlanjenja: 15.02.2006
Lokacija: Beograd
Poruke: 167
Hvala: 47
25 "Hvala" u 8 poruka
|
Programski jezici postaju "mainstream" ne toliko zbog lepote sintakse ili ne znam čega, već uglavnom jer ih pogura neki spoljni faktor. Npr. ako programiraš za Windows verovatno ćeš završiti na c# .net varijanti ili na c++. Ako programiraš za iOS Objective C je prvi izbor. Ruby je bio Ruby i 90-ih ali bez odličnog frejmorka za web ne verujem da bi postao toliko popularan... Stoji i kontra argument, da nisu dobri ne bi ih izabrali Microsoft, Apple... Međutim na takve odluke više utiču poslovni neko tehnički razlozi.
Čini mi se da Go, za sad, nema takvu platformu koja bi pogurala prihvatanje jezika (morao sam do rečnika da nađem srpsku reč za "adoption"). Google to može da promeni, npr. kada bi Go dobio super frejmvork za Android... Što se tiče radne snage, mislim da bi većina c, c++, c#, c [šta god] programera moglo da se prilagodi dosta brzo. Nemoj da me držiš na reč ali ako bi mi bila ponuđena dva identična posla, osim razlike C, C++ vs Go, verovatno bih pre prihvatio Go, ako ništa drugo uvek bi imao priču, znate radim u onom novom jeziku... Za škole stvarno ne znam, ali si mi izmamio osmeh
__________________
Važnije je biti ljubazan, nego biti u pravu. |
3 članova zahvaljuje BraMom za poruku: |
18. 01. 2013. | #4 |
član
Certified
Datum učlanjenja: 03.10.2006
Poruke: 96
Hvala: 27
44 "Hvala" u 26 poruka
|
Sve cesce se cuje - "free lunch is over" ovih dana. Ta recenica se naravno odnosi na cinjenicu da vise ne mozemo da racunamo na to da ce procesori u nedogled postajati brzi. Mnogi pametni ljudi su to davno shvatili - i mnogi su se slozili da problem konkurentnog programiranja mora da bude resen na nivou jezika, i na tom polju je Go samo jedan od takmaca sa svojim goroutines (notable mentions: Rust, Erlang).
Kao sto BraMom kaze - sintaksa nije bitna - u eri desktopa bitne su bile biblioteke (npr frjmvorci) te su zato Java i C# danas toliko popularni. Ako pisemo kod za servere - bitan je runtime. Ovde danas malo sta moze da pridje Javi. Imajuci ovo u vidu, novi jezik pred sobom ima velike izazove (da se tako izrazim)... Mora da ponudi runtime koji moze da se takmici sa najboljima (uzmimo Javu koja postoji 20 godina i videcemo da to nije nikako lak zadatak) i mora da olaksa konkurentnost (dakle pisanje koda koji je trivijalno paralelizovati na n procesora/jezgara bez brige o pratecim zanimacijama) do te mere da bude bolji od solidnih biblioteka pisanih na vec postojecim platformama (Hadoop naprimer...). Ja bih rekao sledece - jezici koji nude konkuretnost kao deo jezika su definitivno buducnost, barem na strani servera. Kako istrazivanje bude napredovalo, sve vise ce se razlika praviti u zavisnosti od stabilnosti runtime-a/kvaliteta biblioteka. Go je medju prvima dosao na teren, ali utakmica tek pocinje, a konkurencija nije mala. Sto se tice naseg obrazovanja - nisam veliki optimista, iz prostog razloga sto nam je IT industrija kromanjonska pa se takvi kadrovi i traze (cast izuzecima). Poslednja izmena od djipko : 18. 01. 2013. u 16:20. |
"Hvala" djipko za poruku: |
18. 01. 2013. | #5 |
xyz
Grand Master
Datum učlanjenja: 25.10.2006
Poruke: 893
Hvala: 87
346 "Hvala" u 163 poruka
|
Nismo džabe na faxu imali 4 godine samo Modulu-2, dolazi i naših 5 minuta!!
|
3 članova zahvaljuje srdjan za poruku: |
20. 01. 2013. | #6 | |
Aleksandar Janković
Qualified
Datum učlanjenja: 16.10.2010
Lokacija: Bg-Sd
Poruke: 165
Hvala: 70
54 "Hvala" u 36 poruka
|
Citat:
Prvo i osnovno odlična dokumentacija. Bez dokumentacije je bilo koji projekat osuđen na propast. Statički kompajliran jezik - Kompajliranjem dobijaš jednu izvršnu biblioteku. Nemaš problema sa zavisnošću od verzija biblioteka i softvera na deployment mašini. Pošto je program kompajliran u mašinski jezik to podrazumeva i velika ubrzanja u izvršavanju koda u odnosu na platforme sa virtualnim mašinama, a ujedno i zauzimanje manje memorije. Kompajliranje je toliko brzo da postoji alat koji soruce file odmah izvršava. Odnosno alat samo u pozadnini brzo kompajlira source i izvrši rezultat. Garbage Collector - Programi nemaju problema sa curenjem memorije. Dobra osnovna biblioteka - Skoro sve bazične oblasti su pokrivene osnovnom bibliotekom. Ovde prevashodno mislim na rad sa stringovima koji su glavna boljka programa koji su bliži mašini. Možete da pogledate spisak osnovnih paketa u dokumentaciji http://golang.org/pkg/. Dobri alati za rad u razvojnom okruženju - Sa jednom komandom možete da svučete eksternu biblioteku, kompajlirate i uključite je u svoje razvojno okruženje. Npr. "go get github.com/orfjackal/gospec". Najbitniji aspekti razvoja na ovoj platformi su pokriveni "go" alatom. Ovo je iz mog ugla velika prednost. Platforma je dizajnirana za jednostavno korišćenje, a nije nastala kao skup različitih tehnologija koje moraju da se savladaju. Možete da pogledate spisak komandi go alata ovde http://golang.org/cmd/go/. Strong type system - Barem iz mog ugla je ovo prednost. Veliki broj grešaka se otkloni pri samom činu kompajliranja. Bagovi se svedu na funkcionalne probleme koji su ionako posao developera. Sintaksa i dizajn jezika - Generalno ovo je obimna tema i nemam vremena da iznesem sve što mi se sviđa i da objasnim svaku stavku. Ali mi se čini da je jezik oslobođen suvišnih teorijskih koncepata. Izabrani su samo oprobani koncepti koji su se pokazali dobro u praksi. Na primer funkcije su građani prvog reda da se tako izrazim. Sviđa mi se to što se error handling zasniva na povratnim vrednostima a ne na izuzecima. Funkcije mogu da vrate više vrednosti. Prednost po mom mišljenju je i to što objektno orijentisano programiranje nije implementirano na klasičan način. Nema hijerarhije tipova. Meni to mnogo olakšava rad i čini rešavanje problema jednostavnijim bez komplikovanih struktura. Nasleđivanje je urađeno putem kompozicije. Idiomatski je dobro osmišljen jer osnovne programske strukture kao što su uslovno granjanje, ponavljanje, kanali, rad sa podacima itd. su veoma često korišćene na sličan način i prepoznatljive od projekta do projekta. Jednostavno postoji samo jedan dobar način da se nešto sintaksno odradi. Ovo veoma pomaže u snalaženju u tuđem kodu. Do kog nivoa su išli da omoguće čitljiviji kod je i sledeći primer. Siguran sam da vam je poznato da u programiranju važi pravilo 20/80 za odnos pisanja i čitanja koda. Zato u go alatima postoji alat koji svaki source fajl formatira po utvrđenom standardu tako da svaki kod liči jedan na drugi. Tako se postiže bolja čitljivost koda bez obzira na developera. Odnosno nema rasprave da li idu tabovi ili spejsovi . Takođe preuzet je i C stil pisanja koda što čini samu sintaksu prepoznatljivom velikom opsegu developera. I već spomenuta ugrađena konkurentnost sa ugrađenim strukturama podataka koji olakšavaju sinhronizaciju između konkurentnih procesa. I da ne dužim dalje ima još dosta stvari koje mi se sviđaju. Možemo slobodono da prodiskutujemo o svemu ako vas interesuje. Ja sam stekao utisak da više može da se tumači kao poboljšan C nego da je glavni konkturent dinamičkim jezicima. Iz mog ugla mislim da su napravili dobar kompromis između približavanja mašini i apstrakcijama na višim nivoima programiranja. Osnovna vodilja nisu bili teorijski već praktični koncepti. I takav pristup mi odgovara.
__________________
ajankovic.com] |
|
3 članova zahvaljuje ajankovic za poruku: |
20. 01. 2013. | #7 | ||
Aleksandar Janković
Qualified
Datum učlanjenja: 16.10.2010
Lokacija: Bg-Sd
Poruke: 165
Hvala: 70
54 "Hvala" u 36 poruka
|
Citat:
Citat:
__________________
ajankovic.com] |
||
20. 01. 2013. | #8 |
Branimir Momcilovic
Qualified
Datum učlanjenja: 15.02.2006
Lokacija: Beograd
Poruke: 167
Hvala: 47
25 "Hvala" u 8 poruka
|
I meni je zaličilo na Modulu, ali reko da ne otkrivam koliko sam star . To je dobar primer odličnog jezika koji je nestao sa lica zemlje. Mislim da je imao i pristojno okruženja za razvoj u to doba, @Jablan je nosio neke diskete sa Top Speed kompajlerom...
Naravno da je programski jezik jako bitan programerima, uključujući i sintaksu, govorio sam o tome da to nije dovoljno da bi jezik postao "mainstream". Kao što kažeš direktna posledica "lepote" jezika je brzina kompajliranja, čitljivost koda... E sad "samo" da ga biznis malo pogura, npr. da iz nekog stora, marketplejsa ili čega već zove krenu da kaplju $$$ i tu smo. Pretpostavljam da si u pravu i da nije tako lako odvojiti uzrok i posledicu, verovatno je istina negde na sredini. Moguće i da bi jedan "hit" mogao da poveća zainteresovanost publike za sam jezik, pa da se tako izrodi komjuniti/frejmork i tako zavrti priča. Je l tako beše išlo sa Ruby on Rails pričom?
__________________
Važnije je biti ljubazan, nego biti u pravu. |
21. 01. 2013. | #9 |
član
Certified
Datum učlanjenja: 03.10.2006
Poruke: 96
Hvala: 27
44 "Hvala" u 26 poruka
|
Ovde sam mislio da nije presudna za to da li ce jezik kao jezik biti uspesan ili ne - mada verovatno ni to nije potpuno tacno... hmmm... recimo da ukoliko sintaksa jezika nije polje u kom on donosi inovacije - verovatno nece biti od znacaja za njegov uspeh. Bolje ?
|
07. 04. 2013. | #10 |
profesionalac
Professional
Datum učlanjenja: 08.11.2010
Poruke: 211
Hvala: 68
78 "Hvala" u 32 poruka
|
|
|
|