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

Update-historie

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.

Kies score Let op: Beoordeel reacties objectief. De kwaliteit van de argumentatie is leidend voor de beoordeling van een reactie, niet of een mening overeenkomt met die van jou.

Een uitgebreider overzicht van de werking van het moderatiesysteem vind je in de Moderatie FAQ

Rapporteer misbruik van moderaties in Frontpagemoderatie.



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

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee