ORR2013 - Bewertungsphase
OpenRheinRuhr 2013
Ein Pott voll Software
Referenten | |
---|---|
Harald Weidner |
Programm | |
---|---|
Tag | 09.11.2013 - 2013-11-09 |
Raum | Vortragsraum 3 |
Beginn | 14:40 |
Dauer | 01:00 |
Info | |
ID | 218 |
Veranstaltungstyp | Vortrag |
Track | Programmierung |
Sprache der Veranstaltung | deutsch |
Programmieren in Go
Go ist eine neue, imperative und modulare Programmiersprache mit Anleihen aus der funktionalen und objektorientierten Programmierung. Der Vortrag stellt die Sprachelemente von Go und die Standardbibliothek vor. Schwerpunkte sind dabei die Unterschiede zu gängigen Sprachen, Designentscheidungen der Entwickler und typische Konstrukte.
Die Entwicklung von Go begann 2007 als 20%-Projekt bei Google. 2009 erfolgte die erste Veröffentlichung, seit 2012 ist die Sprache in Version 1 stabil. Compiler und Standardbibliothek stehen unter BSD-Lizenz. Go wurde im Hinblick auf große Softwareprojekte, skalierbare Netzwerkdienste, Cluster und Cloud Computing entwickelt. Die Sprache eignet sich aber auch für Kleinprojekte und zur Ausbildung.
Go ist eine statisch und streng typisierte Compilersprache. Sie bietet jedoch zahlreiche Möglichkeiten dynamischer Sprachen wie größenveränderbare Arrays, variadische und polymorphe Funktionen und Reflection. In die Entwicklung von Go flossen Erfahrungen mit zahlreichen Sprachen wie C/C++, Java, Modula-II, Perl und Algol ein. Neben dem Compiler von Google steht auch ein Frontend für GCC zur Verfügung. Zur Sprache gehören auch Frameworks zum Testen, Benchmarken und Profilen von Go-Programmen.
Der Vortrag ist in vier Teile gegliedert. Er behandelt zunächst das Modulkonzept und die grundlegenden Sprachelemente wie Funktionen, Variablen, Datentypen und Kontrollstrukturen. Anschließend werden die Verbundtypen (Struct, Array, Slice und Map), die Möglichkeiten der Objektorientierung und Reflection beschrieben. Im dritten Teil geht es um nebenläufige Programmierung mit Goroutinen und Channels. Den Abschluß bildet ein Überblick über die Standardbibliothek, insbesondere die Ein-/Ausgabe- und Netzwerkfunktionen, und weiterführende Informationsquellen.
Für den Vortrag werden Kenntnisse in einer Sprache der C- oder Pascal-Familie und/oder einer dynamischen Skriptsprache (z.B. Perl, Python, Tcl) vorausgesetzt.