Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie

Software-update: Go 1.14.4 / 1.13.12

Go, ook aangeduid als golang, is een programmeertaal die sinds 2007 wordt ontwikkeld door Google en de opensourcegemeenschap. De taal wordt onder andere door CloudFlare, Google, Netflix en Uber gebruikt. Go-code kan worden gecompileerd voor Android, Linux, macOS, FreeBSD en Windows, op i386-, amd64- en ARM-processorarchitecturen. De syntax van Go is vergelijkbaar met die van C en soortgelijke programmeertalen, hoewel er ook enkele opvallende verschillen zijn. Ook biedt Go de mogelijkheid voor gedistribueerd programmeren, waarbij verschillende processen tegelijk worden uitgevoerd. Het team heeft Go versies 1.14.4 en 1.13.12 vrijgegeven met de volgende aanpassingen:

go1.14.3 includes fixes to cgo, the compiler, the runtime, and the go/doc and math/big packages.
go1.14.4 includes fixes to the go doc command, the runtime, and the encoding/json and os packages.

go1.13.11 includes fixes to the compiler.
go1.13.12 includes fixes to the runtime, and the go/types and math/big packages.
Versienummer 1.14.4 / 1.13.12
Releasestatus Final
Besturingssystemen Windows 7, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2012, Windows 8, Windows 10, Windows Server 2016
Website The Go Programming Language
Download https://golang.org/dl
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Japke Rosink

Meukposter

Update-historie

Reacties (14)

Wijzig sortering
Ik vind go een interessante taal maar het pakket beheer en "namespacing" is een absolute nachtmerrie, dan liever nog C.

Als ze daar nou eens wat aan doen dan zou ik er maar wat graag meer mee aan de slag willen.
kvind go nog steeds beetje iffy omdat het veel issues heeft die C ook heeft. Daarnaast is het ook nog es garbage collected. In mijn ogen is Rust een "Go/C" replacement zonder de downsides. Go zie ik als prototyping, Rust als serieus.

[Reactie gewijzigd door jabwd op 3 juni 2020 01:51]

Garbage collection is op zich geen slechte functionaliteit; het is gewoon geheugen vrijgeven als de refcount 0 is. In Rust geef je het geheugen ook niet handmatig vrij, toch? Volgens mij bepaalt de compiler wanneer geheugen wordt vrijgegeven, in plaats van (zoals bij Go) de executable at runtime.

In mijn ogen zijn Go en Rust beide serieuze talen, met verschillende doeleinden. Go is een goede vervanger voor slome Python scripts. Het heeft alle moderne hippe features van Python, maar dan razendsnel, en zonder de dependency hell. Het is vooral handig voor het snel implementeren van bijvoorbeeld http api's, met zijn ingebouwde http server, channels en go routines. Als Go meer aan populariteit wint zie ik Go Python nog wel eens verdrijven.

Rust zie ik meer als potentiële vervanger van C of C++, al verwacht ik dat veel C/C++-ontwikkelaars de kat uit de boom kijken en Rust daardoor moeilijk van de grond komt. Desalniettemin wil ik als Go-fanboy ook graag Rust leren, het lijkt me een enorm interessante taal. :)

[Reactie gewijzigd door Bergen op 3 juni 2020 06:06]

Ik zie C en C++ eigenlijk langzaam uit het veld verdwijnen. C++ na versie 2011 komt nauwelijks voorbij en C alleen nog in realtime embedded apps waar geen enkele GC taal het zou kunnen vervangen.

Of heb ik dat mis?
C++ wordt nog doorontwikkeld. C++17 is de geldende standaard en C++20 wordt nu uitgewerkt.
Ja, C++ heeft voornamelijk als ‘last’ dat C compatibel moet zijn met C++, maar niet andersom. Daarnaast heeft C++ geen eigenaar.
Beiden hebben andere doeleinden maar ze zijn zeker serieus.

Rust is een "C++ vervanger" voor snelle en veilige applicaties.

Go is een snelle scriptvervanger met focus op de webwereld (heeft bijv. een ingebouwde productieklare webserver).

De gelijkenis met C begrijp ik niet helemaal, wat zijn die issues? Go heeft geen header files, de linker is automatisch, je kunt klasses, interfaces en inheritance gebruiken (op de Go manier), er zijn private members, dealloceren van geheugen wordt door de garage collector afgehandeld en er zijn ingebouwde standard libraries.

[Reactie gewijzigd door Ablaze op 3 juni 2020 07:45]

Go heeft wat iffy dingen, ja. Maar wij zijn er hier erg tevreden over als vervanging van nodejs en php om http microservices in te schrijven. Het is razendsnel, concurrency (goroutines) is eigenlijk een speelgoedversie van de echte mulithreading hell van C++ - in de zin dat het meeste werk voor je gedaan wordt, maar het werkt eigenlijk uitstekend.

Het vervult een (voor ons) grote behoefte - namelijk het snel kunnen ontwikkelen van microservices die aansluiten op onze e-commerce aan de voorkant en caches, AMQP queues en databases aan de achterkant. Alhoewel ik Rust niet heel goed bekeken heb, is het vergeleken met NodeJS een verademing.

En alhoewel ik eerst dacht : wat een "my first programming-language" omdat de taal zelf echt heel simpel is en niet zo heel veel fancy features heeft, is dat tegelijk ook wel de kracht. De eenvoud van de taal zorgt dat het heel leesbaar is en razendsnel te leren is.

[Reactie gewijzigd door Crew One op 3 juni 2020 08:39]

Als je een interessant alternatief wilt, kan je Crystal proberen ( https://crystal-lang.org/ ). Zit deze dagen dicht tegen de 1.0 release en is veel meer krachtige taal ( generics, macros, simpel om te gebruiken, geen gezeik met path structure en geforceerde modules via github ...).
Crystal’s syntax is heavily inspired by Ruby’s, so it feels natural to read and easy to write, and has the added benefit of a lower learning curve for experienced Ruby devs.
Niets mis mee, maar dat is nou niet bepaald een alternatief voor Go.
Kun je daar over uitwijden? Wat is er mis met de namespacing? In het begin is het een beetje raar, als je moet uitvinden wat de 'bedoelde' structuur onder $GOPATH moet zijn, maar sinds de invoer van modules is het veel flexibeler geworden. Het is een kwestie van begrijpen hoe en waar Go precies zoekt naar de packages, dan is het allemaal heel logisch.
Dat valt sinds de invoering van modules, een jaar of wat geleden, toch wel mee? En je hoeft ook geen GOPATH meer te gebruiken.

Of bedoel je dat je meerdere namespaces in een project krijgt? In Go houd je je programma's over het algemeen klein en splits je de hoofdfunctionaliteiten op in packages. Dat gaat goed samen als je microservices maakt en maakt testen makkelijker.


En liever C? Mee eens, voor embedded software en zeer tijdkritische applicaties. Maar voor normale desktop software/CLI's en web zeker niet, dan ben je in Go drie keer zo snel klaar en kun je je project met een commando bouwen voor welk platform dan ook.

[Reactie gewijzigd door Ablaze op 3 juni 2020 08:00]

Is dat zo ja? De applicaties moet onderhouden gebruiken helaas allemaal nog GOPATH, zal er eens induiken of hier omheen te werken is. Zou het al wat werkbaarder maken.
In hoe verre is Go een improvement op Python? Omtrent snelheid, web apps en concurrency? Ik ben benieuwd naar jullie kijk en ervaringen hierop
Naar mijn mening is go prettig compact, concurrency is supersoepel. Python voelt aan als een legodoos met te veel blokjes die bijna hetzelfde kunnen.
Maar ik ben opgegroeid met C en een beetje C++ dus python voelt dan aan als msbasic.
Er staan talloze Go VS Python vergelijkingen op het web, en meestal wint Go (al kan dat aan mij informatiebubble liggen).
Python is alleen onverslaanbaar in AI achtige dingen omdat er fantastische bibliotheken en voorbeelden beschikbaar zijn.

Op dit item kan niet meer gereageerd worden.


Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True