DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > Programiranje
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Programiranje Java, Perl, VB, ASP, .NET, C, C++, Pascal, Delphi Sponzor: VIP izazov 3

 
 
Alati teme Način prikaza
Staro 20. 01. 2013.   #6
ajankovic
Aleksandar Janković
Qualified
 
Avatar ajankovic
 
Datum učlanjenja: 16.10.2010
Lokacija: Bg-Sd
Poruke: 165
Hvala: 70
54 "Hvala" u 36 poruka
ajankovic is on a distinguished road
Default

Citat:
Posto ga ti poznajes, mozes li navesti razloge tj njegove prednosti i zasto bi ga neko pozelio koristiti i u kojim ambijentima?
U suštini mislio sam da je dovoljno da sami pogledate oficijalnu dokumentaciju ako vas interesuje ova tema da se ne bi svelo na puko prevođenje sa engleskog. Ali evo mojim rečima šta mi se najviše dopada onako iz glave:

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]
ajankovic je offline   Odgovorite uz citat
3 članova zahvaljuje ajankovic za poruku:
 



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum


Vreme je GMT +2. Trenutno vreme je 18:51.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.