golang

Boekbespreking De Go programmeertaal Program

Boekbespreking De Go programmeertaal Program
De Go programmeertaal, door Alan A. EEN. Donovan en Brian Kernighan, wordt besproken in dit bericht. Brian Kernighan staat bekend als de co-auteur van The C Programming Language, en dat boek zelf is al generaties lang als standaardtekst doorgesneden. Go wordt vaak de 21e eeuw C genoemd en de Go-programmeertaal is misschien wel de standaardreferentietekst ervoor.

Het begin

Het boek begint sterk met een zelfstudie hoofdstuk waarin u een eenvoudig "Hallo, wereld"-programma krijgt en ook enkele voordelen van het gebruik van Go . laat zien. Het minimalisme zal zeker in de smaak vallen bij programmeurs die het hebben gehad met opgeblazen bibliotheken. Je kunt een variabele niet declareren en niet gebruiken in de rest van je Go-programma. Je kunt een bibliotheek niet importeren en niet gebruiken in je code. Het compileert gewoon niet. U hoeft geen ruzie te maken over het formaat van uw code. Bijvoorbeeld de eeuwenoude strijd tussen:

fun hoofd()

//En
fun hoofd()

Wordt geregeld door de compiler die alleen de eerste accepteert en niet de laatste. Andere nuances worden opgelost door tools zoals gofmt, die je Go-bronbestand op een gestandaardiseerde manier formatteert. Dus alle Go-programma's volgen dezelfde conventie, wat op zijn beurt de leesbaarheid van de code verbetert.

Het eerste hoofdstuk legt de nadruk op deze verkoopargumenten en geeft de lezers echt een goed idee van waar Go echt over gaat: een taal voor algemene doeleinden die is ontworpen voor het genereren van statische binaire bestanden met zo min mogelijk opgeblazen gevoel.

Beknoptheid

Ervaren programmeurs zijn het beu om steeds weer over dezelfde concepten te leren, zoals for-loops, if-else-statements, enz. Het eerste hoofdstuk sluipt in al deze vervelende informatie door de gebruikers aan te moedigen om eenvoudige Unix-y-programma's te schrijven (zoals het geval was met de programmeertaal C).

Een nadeel hiervan snelle introductie is het feit dat nieuwe lezers volledig verbijsterd zullen raken door syntaxis?. Programma's beginnen snel de puntoperators en verschillende objectgeoriënteerde programmeerconcepten te gebruiken na twee of drie voorbeelden in het allereerste hoofdstuk. Dit is belangrijk om de snelheid en beknoptheid van de algehele leeservaring te behouden en is een zeer bewuste keuze van de schrijvers.

Het boek gaat er ook van uit dat lezers bekend zijn met ten minste één programmeertaal, voordat ze dit boek oppikten. Dit kan Python, JavaScript, Java, C of een andere algemene taal zijn.

Bijbehorende website

Het boek wordt geleverd met een bijbehorende website. Je kunt de programma's in het boek rechtstreeks van deze website importeren en uitvoeren zonder te typen (of te kopiëren en plakken vanuit je Kindle-app). Je kunt zelfs het eerste hoofdstuk (dat trouwens mijn favoriet is) gratis bekijken op deze website en beslissen of dit boek iets voor jou is of niet.

De auteurs hebben aandacht besteed aan de pijn van een programmeur die een nieuwe taal probeert te leren. Afleiding wordt tot een minimum beperkt met de weblink van elk programma erbovenop. Dus je kunt de code ophalen, uitvoeren, aanpassen en erop voortbouwen, als je wilt.

Er wordt ook een uitgebreide lijst met errata bijgehouden op deze website, en u kunt ernaar verwijzen als u denkt dat er iets niet klopt.

Serieuze zaken

Als je een eenvoudige handleiding voor causale scripting verwacht, is dit niet het boek voor jou. De reden is dat eerst veel grond wordt behandeld en dat de details vervolgens worden ingevuld naarmate we verder gaan naar latere hoofdstukken.

Dit boek is bedoeld voor mensen die de constructies, de details van hoe Go werkt, willen begrijpen. Je gaat GIF's maken, webservers schrijven en Mandelbrot-sets plotten en nog veel meer, maar het zou geen zin hebben tenzij je aandacht hebt besteed aan de fijnere punten die in de voorgaande hoofdstukken zijn gemaakt (waarbij Hoofdstuk 1 enigszins een uitzondering is, omdat het is bedoeld als een overzicht van de taal).

Het grootste deel van de rest van het boek richt zich op verschillende syntaxisgerelateerde details over Go, inclusief dingen regellussen, variabelen, functies, methoden, Go-routines en nog veel meer. Dit alles wordt geïllustreerd door de lezer door nuttige programma's te laten gaan en niet door verzonnen idealistische scenario's.

Zelfs als je de meeste hoofdstukken uit het midden van het boek wilt overslaan, raad ik je ten zeerste aan om hoofdstuk 5 door te spitten voor een goed begrip van paniek, foutafhandeling en anonieme functies. Ik zou echter sterk aanbevelen om alle hoofdstukken opeenvolgend door te nemen voordat we bij het kroonjuweel van Go komen - Concurrency.

Nadruk op gelijktijdigheid

Go-taal is ontworpen, van de grond af met gelijktijdigheid in het achterhoofd. De meeste moderne processors zijn multicore en multithreaded, maar programmeurs verachten de complicaties waarmee ze worden geconfronteerd bij het schrijven van programma's om op dergelijke architectuur te draaien. Nu cloudcomputing op weg is naar gedistribueerde systemen, zal gelijktijdige code binnenkort de enige goed presterende code zijn.

Het hoofdstuk over gelijktijdigheid is geschreven om de angst voor gelijktijdig ontwerpen uit ons hoofd te bannen. Het is ingewikkeld, ja, maar niet hopeloos. Het boek geeft goed weer hoe Go je kan helpen om hieruit de juiste mindset te ontwikkelen.

Conclusie

De ervaring van Kernighan uit de vroege UNIX-dagen is nog steeds heel erg levensvatbaar in de moderne tijd van cloud-desktops, GPU's, IOT, cloud en wat er daarna zal volgen. Hij en Donovan hebben uitstekend werk geleverd door deze wijsheid van applicatieontwerp en UNIX-filosofie over te brengen met behulp van een eenvoudige, moderne taal met prestatie in het achterhoofd, en ik aarzel niet om dit boek aan te bevelen aan iedereen, van een middelbare scholier tot een senior software-engineer met tientallen jaren ervaring.

Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...
Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...
Microsoft Sculpt Touch draadloze muis Review
Ik las onlangs over de Microsoft Sculpt Touch draadloze muis en besloot hem te kopen. Nadat ik het een tijdje had gebruikt, besloot ik mijn ervaring e...