Go (gjuhë programimi)
Usual file extensions | .go |
---|---|
Paradigma | Multi-paradigëm: konkurrente urdhëruese, funksionale[1] e orientuar nga objekti[2][3] |
Viti i paraqitjes | nëntor 2009, 10 |
Dizajnues | Robert Griesemer Rob Pike Ken Thompson[4] |
Zhvillues | The Go Authors[5] |
Disiplina e shkrimit | E inferuar, statik, e fortë,[6] strukturorel,[7][8] emërore |
Implementimet madhore | gc, gofrontend |
Ndikuar nga | S’u arrit të rikrijohej vetia influenced by: Vetia influenced by s’u gjet. |
Ndikoi në | Crystal, V (Vlang) |
SO | DragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD,[9] Plan 9,[10] Solaris, Windows |
Licenca | 3-clause BSD[5] + patent grant[11] |
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]
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 | Redakto nëpërmjet kodit]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]
- Shtypja statike dhe efikasiteti i kohës së ekzekutimit (si C )
- Lexueshmëria dhe përdorshmëria (si Python ) [23]
- Rrjetëzimi dhe multiprocesimi me performancë të lartë
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 | Redakto nëpërmjet kodit]Përshendetje Botë
[Redakto | Redakto nëpërmjet kodit]package main
import "fmt"
func main() {
fmt.Println("hello world")
}
Zbatimet
[Redakto | Redakto nëpërmjet kodit]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]
Referime
[Redakto | Redakto nëpërmjet kodit]- ^ "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ë!) - ^ "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ë!) - ^ "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ë!) - ^ a b "Language Design FAQ". The Go Programming Language (në anglishte amerikane). 16 janar 2010. Marrë më 27 shkurt 2010.
- ^ a b "Text file LICENSE". The Go Programming Language. Marrë më 5 tetor 2012.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "The Go Programming Language Specification – the Go Programming Language".
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "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ë!) - ^ 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ë!) - ^ "lang/go: go-1.4". OpenBSD ports. 23 dhjetor 2014. Marrë më 19 janar 2015.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "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ë!) - ^ "Additional IP Rights Grant". The Go Programming Language. Marrë më 5 tetor 2012.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ 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.
- ^ 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ë!) - ^ "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ë!) - ^ "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ë!) - ^ "Go 1.11 is Released". 24 gusht 2018. Marrë më 1 janar 2019.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "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ë!) - ^ "FAQ: Implementation". The Go Programming Language. 2 gusht 2021. Marrë më 2 gusht 2021.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "gollvm § Is gollvm a replacement for the main Go compiler? (gc)". Git at Google.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "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ë!) - ^ "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ë!) - ^ 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ë!) - ^ "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ë!) - ^ 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ë!) - ^ Pike, Rob (2012). "Less is exponentially more".
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Griesemer, Robert (2015). "The Evolution of Go".
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ 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"/>