Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' 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

Go logo (79 pix) 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 versie 1.14 vrijgegeven met de volgende aankondiging:

Go 1.14 is released

Today the Go team is very happy to announce the release of Go 1.14. Some of the highlights include:

For the complete list of changes and more information about the improvements above, see the Go 1.14 release notes.

Versienummer 1.14
Releasestatus Final
Besturingssystemen Windows 7, Android, Linux, BSD, macOS, Windows Server 2008, 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 Bart van Klaveren

Downloads en Best Buy Guide

28-02-2020 • 07:18

12 Linkedin

Submitter: frickY

Bron: The Go Programming Language

Reacties (12)

Wijzig sortering
Go is een interessante taal, vanwege de snelheid en relatieve eenvoud. Er wordt daarbij ook serieus gewerkt aan het verbeteren van de taal en ecosysteem met een levendige community en discussies. Als je ooit twijfels tussen Ruby/Java/PHP/etc voor je nieuwe project: kies Go.
Kun je Go dan ook inzetten als web taal?
Natuurlijk. Zit gewoon een http server ingebakken en als ik me niet vergis is er ook FastCGI en ook CGI ondersteuning.

Ik gebruik het zelf als een wrapper rondom wkhtmltopdf om via een HTTP REST API PDFs te kunnen genereren.

Daarnaast ook nog een Go service geschreven die communicatie middels HTTP en AccountView mogelijk maakt (middels Backoffice server of COM-koppeling).

Verder zijn er tal van open source web applicaties die zijn geschreven in Go. Uit mijn hoofd Gitlab (voor een gedeelte). Moet mijn boommarks even nakijken wat er zoal nog verder is.

Caddy is ook een interessante webserver geschreven in Go.

[Reactie gewijzigd door Htbaa op 28 februari 2020 12:51]

Go is daar zelfs juist specifiek voor geschreven. Dat is juist het doel van Go.

Go is ook geen concurrent voor o.a. Java/C# als managed taal.
En Go is zeker geen concurrent voor C/C++ en Rust. Omdat het een garbage collector heeft en een vast concurrency model.

Go is een concurrent voor o.a. PHP/NodeJS/Ruby en Python op de webserver kant.

[Reactie gewijzigd door Immutable op 29 februari 2020 02:43]

Go is vrij low-level, en zeker niet vergelijkbaar met een PHP.
Tuurlijk. Met een hamer krijg je ook een schroef in een muur, maar het is niet ideaal.

Go is ook niet perse snel. Het maakt concurrency wel heel erg eenvoudiger.
Het is inderdaad een interessante zich nog sterk ontwikkelende taal, maar niet het perfecte gereedschap voor zomaar elk project.

[Reactie gewijzigd door frickY op 28 februari 2020 19:18]

De syntax is eigenlijk niet zo heel anders: https://engineering.carsg...x-comparison-c1465380b8ff

Benchmarks zijn altijd een heikel ding maar omdat Go native draait mag je wel verwachten dat Go door de bank genomen sneller is dan PHP.

Geen enkele taal is perfect. Als het om het even is welke taal je gaat gebruiken of als je een team hebt met een verscheiden achtergrond dan is Go het proberen waard.
Ondanks dat ik het zelf niet echt gebruik (op wat testprojectjes na), vind ik het wel een leuk taaltje om in de gaten te houden. Mooi dat er nu meer ondersteuning voor dependency management is vanuit de toolchain.

Ik ben benieuwd wat ze allemaal nog gaan doen met error handling. Laatste proposal dat ik ooit gelezen heb, ging over iets dat op defer leek, zodat je een soort catch all kon doen. Geen idee of dat er al in zit.
De wijzigingen voor errors staan even in de koelkast en komen waarschijnlijk pas met Go 2.
Kunt errors inmiddels wel "giftwrappen" vanuit de standard library.

[Reactie gewijzigd door frickY op 28 februari 2020 19:16]

Go is een niche taal.

Het doet bepaalde keuzes maken welke voor een bepaalde doelgroep positief uitpakken. Maar voor een groot andere doelgroep negatief.

Verder wel een goede taal maar niet multi-purpose. Kies Go alleen als je een project hebt waar de positieve zaken ook goed uit de verf komen.

Zo kiest Go voor bepaalde type garbage collector, en kiezen ze hard voor een bepaald concurrency model. Alles om het voor een bepaalde doelgroep heel makkelijk te maken.

Deze doelgroep is: een webserver programma. Ga je Go voor andere zaken gebruiken is het geen goede taal meer.

Go is daardoor versimpelt en doet bepaalde abstracties en aannames voor de gebruiker welke specifiek voor de webserver kant goed is.

Wil je toch de vrijheid van een goede allrounder, maar wel lastiger programmeren? C++ en Rust maken geen keuzes voor je en ondersteunen veel meer verschillende concurrency modellen. Maar daardoor ook lastiger programmeren. Kost developer tijd, omdat je zelf keuzes moet maken. Maar je hebt meer vrijheid en je hebt de mogelijkheid om meer performance eruit te persen dan Go mits je daar genoeg effort in steekt voor dit specifieke doel.

Go is geen heilige taal, puur een taal gemaakt voor een heel specifiek doel.

[Reactie gewijzigd door Immutable op 29 februari 2020 02:38]

Niche??? K8s, docker enz zijn geschreven in golang.
Zeker weten dat die Router geen TSN(Time Sensitive Networking) IEEE 1588v2. Voor hard real-time pakketjes over te sturen. Zo'n garbage collector gooit per direct al roet in het eten.

Je moet dat niet willen dus. Het is omdat het kan, maar niet de beste keuze en niet de bedoeling van Go lang.

Op dit item kan niet meer gereageerd worden.


Apple iPhone 11 Microsoft Xbox Series X LG OLED C9 Google Pixel 4 CES 2020 Samsung Galaxy S20 4G Sony PlayStation 5 Nintendo Switch Lite

'14 '15 '16 '17 2018

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