Die Programmiersprache Go



Ähnliche Dokumente
Grundlagen von Python

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Einführung in die Informatik Tools

SEMINAR Modifikation für die Nutzung des Community Builders

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Online-Publishing mit HTML und CSS für Einsteigerinnen

Was versteht man unter Softwaredokumentation?

Webentwicklung mit Mozilla Composer I.

Einführung in Javadoc

YouTube: Video-Untertitel übersetzen

Programmieren in Java

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Python SVN-Revision 12

CGI Programmierung mit Ha. Markus Schwarz

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Version 0.3. Installation von MinGW und Eclipse CDT

Einführung in PHP. (mit Aufgaben)

SMART Newsletter Education Solutions April 2015

Java Einführung Packages

C# im Vergleich zu Java

Internet und WWW Übungen

Dokumentieren mit Eclipse und Doxygen

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Django - ein Python Web-Framework

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Kurzanweisung für Google Analytics

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Workshop: Eigenes Image ohne VMware-Programme erstellen

Was meinen die Leute eigentlich mit: Grexit?

Java: Vererbung. Teil 3: super()

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Übung: Verwendung von Java-Threads

IT-Basics 2. DI Gerhard Fließ

Testen mit JUnit. Motivation

Qt-Projekte mit Visual Studio 2005

Arbeiten mit UMLed und Delphi

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Installationsanleitung CLX.PayMaker Home

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

DLLs (dynamic loaded libraries) mit MingW erstellen

Präsentation Von Laura Baake und Janina Schwemer

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

FRONT CRAFT.

Databear Software Installer

1 Was ist das Mediencenter?

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

SharePoint Workspace 2010 Installieren & Konfigurieren

Vererbung & Schnittstellen in C#

Wir machen neue Politik für Baden-Württemberg

Übung - Datensicherung und Wiederherstellung in Windows Vista

Verkaufen Sie doch wo Sie wollen. Ihr einfacher Weg zu mehr Umsatz und dauerhaft steigendem Erfolg im E-Business

Neuer Releasestand Finanzbuchhaltung DAM-EDV E Inhaltsverzeichnis. 1. Neuerungen Schnittstelle Telebanking mit IBAN und BIC...


Datensicherung und Wiederherstellung

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Support-Tipp Mai Release Management in Altium Designer

Algorithmen mit Python

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Robot Karol für Delphi

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Viele Bilder auf der FA-Homepage

Installationsanleitung CLX.PayMaker Office

Schnittstelle Drittmeldepflicht Ab ImmoTop

EasyWk DAS Schwimmwettkampfprogramm

Druckerscriptsprache

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

SharePoint Demonstration

Import und Export von Übergängern

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

impact ordering Info Produktkonfigurator

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

BIF/SWE - Übungsbeispiel

NCDiff Testmanagement leicht gemacht

TeamSphere. Die Geo-Wissensdatenbank. Entwickelt von

REGIOGRAPH Tipps & Tricks im Umgang mit RegioGraph. GfK 2015 Tipps & Tricks im Umgang mit RegioGraph RegioGraph Praxistage 10./11.

Elexis-BlueEvidence-Connector

Vorkurs C++ Programmierung

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Geany Just Not Another Editor

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

» Export von Stud.IP-Daten auf eigene Web-Seiten» Workshop Donnerstag,

Windows Server 2012 R2 Essentials & Hyper-V

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

EXASOL Anwendertreffen 2012

CodeSaver. Vorwort. Seite 1 von 6

Transkript:

. http://golang.org 25. Mai 2013..

. Inhalt 1 Go Was ist das? 2 Überblick Syntax 3 Bibliotheken Werkzeuge..

. Entstehung entstanden als Nebenprojekt der Autoren bei Google erster Entwurf 2007 von Robert Griesemer, Ken Thompson und Rob Pike Go 1 erschien am 28. März 2012 gegenwärtig: Go 1.1 vom 14. Mai 2013..

. Warum Go? alle wichtigen Programmiersprachen sind mehr als 10 Jahre alt aber die Anforderungen haben sich geändert Parallelität Netzwerkprogrammierung komplexe Frameworks Softwareentwicklung ist anstrengend und langsam..

. Warum Go? Go ist einfach parallel universell schnell flexibel langweilig..

. Inhalt 1 Go Was ist das? 2 Überblick Syntax 3 Bibliotheken Werkzeuge..

Überblick. package main import "fmt" func main() { fmt.println("hello world!") }..

Überblick. Consensus drove the design. Nothing went into the language until [Ken Thompson, Robert Griesemer, and myself] all agreed that it was right. Some features didnt get resolved until after a year or more of discussion. Rob Pike Funktionalität ausgewählt nach Nutzen für den Programmierer kein schlampiges Programmieren fördern Orthogonalität aller Sprachbestandteile mache nur eine Sache und mache sie gut..

Überblick. Daher: Zeiger, aber keine Zeigerarithmetik Objekte, aber weder Klassen noch Vererbung Parallelität als Kernbestandteil der Sprache automatische Speicherverwaltung..

Überblick Zeiger. Zeiger geben Kontrolle über die Ausrichtung von Datenstrukturen Speicherschutz durch fehlende Zeigerarithmetik type Point struct { X, Y int } var imagea [][]Point var imageb [][] * Point..

Überblick Objekte. klassische Objektorientierung ist unflexibel existierende Klassen zu korrigieren ist aufwendig Schnittstellen bieten einen flexiblen Ansatz Schnittstellen werden implizit implementiert type Stringer interface { String() string } // * Point implementiert Stringer func (p * Point) String() string { return fmt.sprint(p.x, p.y) }..

Syntax. Syntax soll intuitiv sein sich kurz fassen einfach analysierbar sein nicht vom Code ablenken..

Syntax. Syntax soll intuitiv sein sich kurz fassen einfach analysierbar sein nicht vom Code ablenken Die Syntax von Go ist einfach (z. B. nur 25 Schlüsselwörter) hat wenige, mächtige Kontrollstrukturen ist leicht analysierbar wird automatisch formatiert..

Syntax Typen. var a, b int var c rune = ~ // UTF-8 var buf []byte // slice von bytes var chan1 chan Point // channel von Point var chan2 chan int // channel von int // map von uint32 auf string var dict map[uint32]string type foo int // foo ist unterscheidbar von int n := int(c) // Deklaration mit Zuweisung primes := [5]uint{2, 3, 5, 7, 11} iszero := func(x int) bool { return x == 0 }..

Syntax Parallelität.. c1, c2, c3 := make(chan int), make(chan int), make(chan int) throw := func(a <-chan int, b chan<- int, s string) { for x := range a { fmt.printf("%s gibt den Ball %d ab.\n", s, x) b <- x } fmt.printf("%s ist fertig.\n",s) } go throw(c1, c2, "Alice") ; go throw(c2, c3, "Bob") for i := 0; i < 100; i++ { c1 <- i // Ball werfen c1 <- <-c3 // auffangen und werfen <-c3 // nochmal werfen } close(c1); close(c2); close(c3)..

Syntax Komplettes Programm. package main import ( "os" ; "image/png" ; "log" ) import "github.com/fuzxxl/ppm" func main() { image, err := ppm.decode(os.stdin) if err!= nil { log.fatal(err) } } err = png.encode(os.stdout, image) if err!= nil { log.fatal(err) }..

. Inhalt 1 Go Was ist das? 2 Überblick Syntax 3 Bibliotheken Werkzeuge..

Bibliotheken Standardbibliothek. Universelle Werkzeuge zur Lösung häufiger Aufgaben Betriebssystemabstraktion vollständig Unicode-kompatibel Bildverarbeitung Kryptographie Webentwicklung (HTML-Templatesystem, CGI, Webserver) generische Datenbankanbindung Serialisierung (JSON, XML) vieles mehr ḥttp://golang.org/pkg..

Bibliotheken weitere Bibliotheken. Anbindungen an GTK, QT, wxwidgets, curses, X11, Windows GUI MySQL, MongoDB, PostgreSQL, SQLite OpenGL, SDL OpenAL, PulseAudio GStreamer, ffmpeg, libvlc JavaScript, Python, Lua, Perl vieles mehr ḥttp://code.google.com/p/go-wiki/wiki/projects ḥttp://go-lang.cat-v.org/library-bindings..

Bibliotheken Eigene Bibliotheken. Bibliotheken erstellen ist einfach Alle Dateien in einem Verzeichnis bilden ein Paket Großgeschriebene Symbole werden exportiert Importpfad ist URL unter der die Bibliothek zu finden ist code.google.com/p/gosqlite/sqlite Plattformabhängiger Code wird in extra Dateien abgelegt go build baut Code vollautomatisch ohne Konfiguration Jedes Projekt kann eigenen $GOPATH haben..

Werkzeuge Compiler. Zwei Implementationen gc von Ken Thomposon, basierend auf Plan 9-Konventionen gccgo als Frontend für gcc Werkzeug go abstrahiert den Compiler go help für Details apt-get install golang..

Werkzeuge Dokumentation. godoc erzeugt automatisch Dokumentation Wahlweise HTML oder Plaintext godoc kann als Webserver laufen Dokumentation wird aus Kommentaren erstellt kein besonderes Format für Kommentare func ExampleFoo ist ein Beispiel, dass in der Doku ausgewiesen wird..

Werkzeuge Tests und Benchmarks. go test führt Unittests aus TestFoo ist ein Test, BenchBar ein Benchmark Tests können flexibel und automatisch bei jeder Kompilation ausgeführt werden Mehr dazu im Paket testing ḥttp://golang.org/pkg/testing..

Werkzeuge weitere Werkzeuge. go fmt formatiert Quelltext cgo linkt gegen C-Code go fix korrigiert veralteten Code go vet funktioniert wie lint go get lädt Pakete und Abhängigkeiten aus dem Internet..

Weiterführendes http://golang.org http://code.google.com/p/go-wiki http://fuz.su/ fuz/go..