Go është një gjuhë programimi e nivelit të lartë e shkruar në mënyrë statike, e përpiluar e krijuar në Google [12] nga Robert Griesemer, Rob Pike dhe Ken Thompson . [4] Është sintaksisht e ngjashme me C, por gjithashtu ka sigurinë e memories, mbledhjen e mbeturinave, shtypjen strukturore, dhe njëkohësinë/konkurencën e stilit CSP . [13] Shpesh quhet Golang për shkak të emrit të tij të mëparshëm të domenit, golang.org, por emri i tij i duhur është Go. [14]

Go
Usual file extensions.go
ParadigmaMulti-paradigëm: konkurrente urdhëruese, funksionale[1] e orientuar nga objekti[2][3]
Viti i paraqitjesnëntor 2009, 10; 14 vite më parë (10-11-2009)
DizajnuesRobert Griesemer
Rob Pike
Ken Thompson[4]
ZhvilluesThe Go Authors[5]
Disiplina e shkrimitE inferuar, statik, e fortë,[6] strukturorel,[7][8] emërore
Implementimet madhoregc, gofrontend
Ndikuar nga

S’u arrit të rikrijohej vetia influenced by: Vetia influenced by s’u gjet.

Ndikoi nëCrystal, V (Vlang)
SODragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD,[9] Plan 9,[10] Solaris, Windows
Licenca3-clause BSD[5] + patent grant[11]

Ekzistojnë dy zbatime kryesore:

  • Zinxhiri i veglave të përpiluesit të vetë-strehuara të Google [15] "gc", që synon sisteme të shumta operative dhe WebAssembly . [16]
  • gofrontend, një frontend për përpiluesit e tjerë, me bibliotekën libgo . Me GCC kombinimi është gccgo; [17] me LLVM kombinimi është gollvm. [18] [a]

Një përpilues i palës së tretë nga burimi në burim, GopherJS, [20] përpilon Go në JavaScript për zhvillimin e faqes së përparme të uebit .

Historia

Redakto

Go u projektua në Google në 2007 për të përmirësuar produktivitetin e programimit në një epokë me shumë bërthama, makineri të lidhura në rrjet dhe baza të mëdha kodi . [21] Dizajnerët donin të adresonin kritikat ndaj gjuhëve të tjera në përdorim në Google, por mbanin karakteristikat e tyre të dobishme: [22]

Dizajnerët e tij ishin të motivuar kryesisht nga mospëlqimi i tyre i përbashkët për C++ . [24] [25] [26]

Shembuj

Redakto

Përshendetje Botë

Redakto
package main

import "fmt"

func main() {
  fmt.Println("hello world")
}

Zbatimet

Redakto

Go ka gjetur një adoptim të gjerë në fusha të ndryshme për shkak të librarisë standarde të fortë dhe lehtësisë së përdorimit.

Aplikacionet e njohura përfshijnë: Caddy, një server në internet që automatizon procesin e konfigurimit të HTTPS, Docker, i cili ofron një platformë për kontejnerizimin, duke synuar të lehtësojë kompleksitetin e zhvillimit dhe vendosjes së softuerit, Kubernetes, e cila automatizon vendosjen, shkallëzimi dhe menaxhimi i aplikacioneve të kontejnerizuara, CockroachDB, një bazë të dhënash e shpërndarë SQL e krijuar për shkallëzueshmëri dhe qëndrueshmëri të fortë, dhe Hugo, një gjenerues statik faqesh që i jep përparësi shpejtësisë dhe fleksibilitetit, duke i lejuar zhvilluesit të krijojnë faqe interneti në mënyrë efikase. [27]

  1. ^ "Codewalk: First-Class Functions in Go". Go supports first class functions, higher-order functions, user-defined function types, function literals, closures, and multiple return values. This rich feature set supports a functional programming style in a strongly typed language. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  2. ^ "Is Go an object-oriented language?". Marrë më 13 prill 2019. Although Go has types and methods and allows an object-oriented style of programming, there is no type hierarchy. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  3. ^ "Go: code that grows with grace". Marrë më 24 qershor 2018. Go is Object Oriented, but not in the usual way. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  4. ^ a b "Language Design FAQ". The Go Programming Language (në anglishte amerikane). 16 janar 2010. Marrë më 27 shkurt 2010.
  5. ^ a b "Text file LICENSE". The Go Programming Language. Marrë më 5 tetor 2012. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  6. ^ "The Go Programming Language Specification - the Go Programming Language". {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  7. ^ "Why doesn't Go have "implements" declarations?". The Go Programming Language. Marrë më 1 tetor 2015. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  8. ^ Pike, Rob (22 dhjetor 2014). "Rob Pike on Twitter". Arkivuar nga origjinali më 2022-04-07. Marrë më 13 mars 2016. Go has structural typing, not duck typing. Full interface satisfaction is checked and required. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  9. ^ "lang/go: go-1.4". OpenBSD ports. 23 dhjetor 2014. Marrë më 19 janar 2015. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  10. ^ "Go Porting Efforts". Go Language Resources. cat-v. 12 janar 2010. Marrë më 18 janar 2010. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  11. ^ "Additional IP Rights Grant". The Go Programming Language. Marrë më 5 tetor 2012. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  12. ^ Kincaid, Jason (10 nëntor 2009). "Google's Go: A New Programming Language That's Python Meets C++". TechCrunch (në anglishte amerikane). Marrë më 18 janar 2010.
  13. ^ Metz, Cade (5 maj 2011). "Google Go boldly goes where no code has gone before". The Register. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  14. ^ "Is the language called Go or Golang?". Marrë më 16 mars 2022. The language is called Go. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  15. ^ "Go 1.5 Release Notes". Marrë më 28 janar 2016. The compiler and runtime are now implemented in Go and assembler, without C. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  16. ^ "Go 1.11 is Released". 24 gusht 2018. Marrë më 1 janar 2019. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  17. ^ "Installing GCC: Configuration". Marrë më 3 dhjetor 2011. Ada, Go and Objective-C++ are not default languages {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  18. ^ "FAQ: Implementation". The Go Programming Language. 2 gusht 2021. Marrë më 2 gusht 2021. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  19. ^ "gollvm § Is gollvm a replacement for the main Go compiler? (gc)". Git at Google. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  20. ^ "A compiler from Go to JavaScript for running Go code in a browser: Gopherjs/Gopherjs". GitHub. Arkivuar nga origjinali më 12 dhj 2023. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  21. ^ "Go at Google: Language Design in the Service of Software Engineering". Marrë më 8 tetor 2018. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  22. ^ Pike, Rob (28 prill 2010). "Another Go at Language Design". Stanford EE Computer Systems Colloquium. Stanford University. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  23. ^ "Frequently Asked Questions (FAQ) - The Go Programming Language". The Go Programming Language. Marrë më 26 shkurt 2016. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  24. ^ Binstock, Andrew (18 maj 2011). "Dr. Dobb's: Interview with Ken Thompson". Arkivuar nga origjinali më 5 janar 2013. Marrë më 7 shkurt 2014. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  25. ^ Pike, Rob (2012). "Less is exponentially more". {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  26. ^ Griesemer, Robert (2015). "The Evolution of Go". {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  27. ^ Hopkins, Brandon (13 shtator 2022). "Static Site Generation with Hugo". Linux Journal. Arkivuar nga origjinali më 8 prill 2023. Marrë më 8 shtator 2023. {{cite news}}: Mungon ose është bosh parametri |language= (Ndihmë!)


Gabim referencash: Etiketat <ref> ekzistojnë për një grup të quajtur "lower-alpha", por nuk u gjet etiketa korresponduese <references group="lower-alpha"/>