SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Beyond Java: Go for Java developers
Go or no go
Andrej Vckovski <andrej.vckovski@netcetera.com>
Before we start …
Netcetera | 3
Netcetera | 4
Motivaton
• About me, us and them
• The showcase
Go programming
• The language
• Running go programs
• Tool-chain
• Ecosystem
So What
1978
1980
1982
1984
1986
1988
1990
1992
1994
1996
1998
2000
2002
2004
2006
2008
2010
2012
2014
BASIC/HP
Pascal/CP/M For fun or merit
BASIC/MS-DOS For money
ASM/MS-DOS
C/MS-DOS
Pascal/MS-DOS
Fortran/VMS
Clipper/MS-DOS
C/C++/Windows
C/C++/Unix
Tcl/Unix
Java/Unix
Go/Unix
For my father’s
engineering office
Hannes Keller
Computerzentrum
Abakus Informatik
As Freelancer
Netcetera
Diploma Thesis @
ETH
PhD @
UniZH
High School
in ZH
JDK 1.0 Pre-Beta problems
Andrej Vckovski (vckovski@gis.geogr.unizh.ch)
Fri, 29 Sep 1995 14:56:34 +0100 (MET)
•Messages sorted by: [ date ][ thread ][ subject ][ author ]
•Next message: Arthur van Hoff: "Re: more casting (sort of)"
•Previous message: Jim Graham: "Re: peer classes?"
Hi,
I have some problems when running some of the examples of the JDK
pre-beta distribution and also own JAVA code.
All tools (java, jdb, appletviewer) produce a seg fault with some
examples. It seems to me that it is somehow connected to the call of
java.net.InetAddress.getByName(InetAddress.java)
This happens for example with ImageTest demo and many others. I've
seen some msg earlier indicating a wrong version of 'putmsg' in the
binaries ?? Is that it?
BTW, I'm running Solaris 2.4 on arch sun4c.
Here is an example thread dump:
SIGSEGV 11* segmentation violation
si_signo [11]: SIGSEGV 11* segmentation violation
si_errno [0]: Error 0
si_code [1]: SEGV_ACCERR [addr: 0xc]
stackbase=EE17B000, stackpointer=EE1777A8
6
Netcetera, May 2015
0
50
100
150
200
250
guru expert medium little 7
Netcetera | 8
By Stickophobe (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons
Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
250+ engineers
• Java/J2E
• Java/Android
• Objective-C/iOS
• C#/.NET
• JavaScript/any
10
11
The application:
Very Instant Massive (Audience) Polling
 Presentations like
this one
 TV shows with
added
interactivity
 Pause
entertainment in
a stadium
 Flipped
Classrooms
© Loozrboy
© Chris Lawrence
© Jeff Chenqinyi
© Nhenze
12
Browser
that
displays
questions
and
allows
voting
Presentation Software (e.g., PowerPoint)
Browser that displays voting
results
directpoll
server
System context
Browser
that
displays
questions
and
allows
voting
Browser
that
displays
questions
and
allows
voting
go
JS
JS
JS
JS
13
Browser
that
displays
questions
and
allows
voting
Presentation Software (e.g., PowerPoint)
Browser that displays voting
results
ipoll
server
Browser
that
displays
questions
and
allows
voting
Browser
that
displays
questions
and
allows
voting
go
JS
JS
JS
JS
WebSockets
 Full-duplex conversation over
TCP connection
 RFC 6455
 Available in most modern
browsers
 Simple JavaScript binding
 Handshake by HTTP, then
user-defined messages over
the same socket
Client
(Browser)
Server
HTTP GET Request,
special attributes
HTTP response
“switch protocol”
Message
Message
Message
Message
Message
14
Browser
that
displays
questions
and
allows
voting
Presentation Software (e.g., PowerPoint)
Browser that displays voting
results
directpoll
server
Multiplexer
and
Demultiplexer
Browser
that
displays
questions
and
allows
voting
Browser
that
displays
questions
and
allows
voting
15
The Language
16
Language itself
•Syntax, Concepts,
Static and Execution
Semantics, Type
System
•Features
Implementation
•Runtime
•Performance
•Deployment
Toolchain
•What is there to
support the
development
process
Ecosystem
•People,
Organizations,
Groove
17
Out of the box tools
 go tool
– Fetching packages
– Building, installing
– Instrumenting (race detection
– Running tests (also with coverage)
– Static code analysis
– …
 gofmt and goimports
 Godoc
 cgo for linking with legacy (a.k.a. C-code)
darwin
dragonfly
freebsd
linux
netbsd
openbsd
plan9
solaris
windows
64-bit x86
32-bit x86
32-bit ARM
19
Runtime
 Go is compiled/linked into machine code (also
cross-compiling)
 Executuable embeds type information for
introspection
 Executable does not use dynamic/shared
libraries (i.e. all static)
20
Performance
Pure CFastest
•C++
•Rust
•Go
•Java/Scala
Almost
as fast
•Node.js
•Ruby
•Python
•Tcl
•PHP
Slower
Go executes with similar speed as Java, but uses usually
considerably less memory
21
http://benchmarksgame.alioth.debian.org/
22
http://www.techempower.com/benchmarks
23
Ecosystem
 Many web frameworks
 Many proposals for language extensions (about 50
proposals for generics ;-))
 Not yet established at Universities for teaching
 No formal certifications yet
 Active community
 Many commercial users, mostly for «heavy-duty» Web
work
24
SO WHAT?
25
1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035
Language Adoption
1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035
Developers
1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035
Cumulative LOC
Hype LegacyState of the art
Maintenance!
26
By Rick Dikeman (Image:Wayne Gretzky 1997.jpg) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons
27
In >> OutIn > Out
28
From time to time, it is good to clean the desk
Change to where the future will be
Go is sufficiently new, very pragmatic, fast to
use, based on experience and not to fancy
29
If you can, go go.
30
Resources
Learning
http://tour.golang.org
http://golang.org/wiki/LearnCommunity
Community
http://golang.org/project
31

Weitere ähnliche Inhalte

Was ist angesagt?

Company Profile - ZNSoftech Pvt Ltd(New)
Company Profile - ZNSoftech Pvt Ltd(New)Company Profile - ZNSoftech Pvt Ltd(New)
Company Profile - ZNSoftech Pvt Ltd(New)
Nazish Ahsan
 

Was ist angesagt? (20)

PMBOK_5th_Project Management Framework
PMBOK_5th_Project Management FrameworkPMBOK_5th_Project Management Framework
PMBOK_5th_Project Management Framework
 
Integrating Black Duck into your Agile DevOps Environment
Integrating Black Duck into your Agile DevOps EnvironmentIntegrating Black Duck into your Agile DevOps Environment
Integrating Black Duck into your Agile DevOps Environment
 
Project Cost & Schedule Integration Lessons Learnt
Project Cost & Schedule Integration Lessons LearntProject Cost & Schedule Integration Lessons Learnt
Project Cost & Schedule Integration Lessons Learnt
 
Web Performance: 3 Stages to Success
Web Performance: 3 Stages to SuccessWeb Performance: 3 Stages to Success
Web Performance: 3 Stages to Success
 
Chap 8.1 Plan quality management
Chap 8.1 Plan quality managementChap 8.1 Plan quality management
Chap 8.1 Plan quality management
 
PMP Exam Prep 2021 free sample module 1
PMP Exam Prep 2021  free sample module 1PMP Exam Prep 2021  free sample module 1
PMP Exam Prep 2021 free sample module 1
 
Atppmp1ov1
Atppmp1ov1Atppmp1ov1
Atppmp1ov1
 
projec kickoff presentation template
 projec kickoff presentation template projec kickoff presentation template
projec kickoff presentation template
 
Track code quality with SonarQube - short version
Track code quality with SonarQube - short versionTrack code quality with SonarQube - short version
Track code quality with SonarQube - short version
 
Android kotlin coroutines
Android kotlin coroutinesAndroid kotlin coroutines
Android kotlin coroutines
 
Socket.IO
Socket.IOSocket.IO
Socket.IO
 
PMP Chap 7 - Project Cost Management - Part 2
PMP Chap 7 - Project Cost Management - Part 2PMP Chap 7 - Project Cost Management - Part 2
PMP Chap 7 - Project Cost Management - Part 2
 
Golang @ Tokopedia
Golang @ TokopediaGolang @ Tokopedia
Golang @ Tokopedia
 
IT account review template
IT account review template IT account review template
IT account review template
 
Know About PMP Exam - Ins & Outs
Know About PMP Exam - Ins & OutsKnow About PMP Exam - Ins & Outs
Know About PMP Exam - Ins & Outs
 
Chap 7.3 Determine budget
Chap 7.3   Determine budgetChap 7.3   Determine budget
Chap 7.3 Determine budget
 
Company Profile - ZNSoftech Pvt Ltd(New)
Company Profile - ZNSoftech Pvt Ltd(New)Company Profile - ZNSoftech Pvt Ltd(New)
Company Profile - ZNSoftech Pvt Ltd(New)
 
Microsoft Project and Portfolio Management
Microsoft Project and Portfolio ManagementMicrosoft Project and Portfolio Management
Microsoft Project and Portfolio Management
 
Chap 7.2 Estimate Cost
Chap 7.2 Estimate CostChap 7.2 Estimate Cost
Chap 7.2 Estimate Cost
 
Project Execution Powerpoint Presentation Slides
Project Execution Powerpoint Presentation SlidesProject Execution Powerpoint Presentation Slides
Project Execution Powerpoint Presentation Slides
 

Andere mochten auch

Boldly go where the Java programming language has never gone before
Boldly go where the Java programming language has never gone beforeBoldly go where the Java programming language has never gone before
Boldly go where the Java programming language has never gone before
elliando dias
 

Andere mochten auch (8)

Boldly go where the Java programming language has never gone before
Boldly go where the Java programming language has never gone beforeBoldly go where the Java programming language has never gone before
Boldly go where the Java programming language has never gone before
 
A Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to GoA Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to Go
 
Golang server design pattern
Golang server design patternGolang server design pattern
Golang server design pattern
 
Golang for OO Programmers
Golang for OO ProgrammersGolang for OO Programmers
Golang for OO Programmers
 
Practical Look at Erlang
Practical Look at ErlangPractical Look at Erlang
Practical Look at Erlang
 
Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1Golang basics for Java developers - Part 1
Golang basics for Java developers - Part 1
 
HTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusHTTP/2 and Java: Current Status
HTTP/2 and Java: Current Status
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 

Ähnlich wie Beyond Java: Go for Java developers

Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
george.james
 
Tuenti teams - Php Conference
Tuenti teams - Php ConferenceTuenti teams - Php Conference
Tuenti teams - Php Conference
Guille -bisho-
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
Vishal Mittal
 

Ähnlich wie Beyond Java: Go for Java developers (20)

Webtechnologies
Webtechnologies Webtechnologies
Webtechnologies
 
JAZOON'13 - Andrej Vckovski - Go synchronized
JAZOON'13 - Andrej Vckovski - Go synchronizedJAZOON'13 - Andrej Vckovski - Go synchronized
JAZOON'13 - Andrej Vckovski - Go synchronized
 
Go Synchronized
Go SynchronizedGo Synchronized
Go Synchronized
 
Windows Server and Fast CGI Technologies For PHP
Windows Server and Fast CGI Technologies For PHPWindows Server and Fast CGI Technologies For PHP
Windows Server and Fast CGI Technologies For PHP
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
.Net without spending a buck
.Net without spending a buck.Net without spending a buck
.Net without spending a buck
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
 
OpenSourceSchools
OpenSourceSchoolsOpenSourceSchools
OpenSourceSchools
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007
 
GoralSoft
GoralSoftGoralSoft
GoralSoft
 
Tuenti teams - Php Conference
Tuenti teams - Php ConferenceTuenti teams - Php Conference
Tuenti teams - Php Conference
 
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?Как да станем софтуерни инженери и да стартираме ИТ бизнес?
Как да станем софтуерни инженери и да стартираме ИТ бизнес?
 
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk AdvocacyCincom Smalltalk: Present, Future & Smalltalk Advocacy
Cincom Smalltalk: Present, Future & Smalltalk Advocacy
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
Javascript - Getting started | DevCom ISITCom
Javascript - Getting started | DevCom ISITComJavascript - Getting started | DevCom ISITCom
Javascript - Getting started | DevCom ISITCom
 
Linux for Web Developers
Linux for Web DevelopersLinux for Web Developers
Linux for Web Developers
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
 

Mehr von Netcetera

Mehr von Netcetera (20)

Payment trend scouting - Kurt Schmid, Netcetera
Payment trend scouting - Kurt Schmid, NetceteraPayment trend scouting - Kurt Schmid, Netcetera
Payment trend scouting - Kurt Schmid, Netcetera
 
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, NetceteraBoost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
 
Increase conversion, convenience and security in e-commerce checkouts - Silke...
Increase conversion, convenience and security in e-commerce checkouts - Silke...Increase conversion, convenience and security in e-commerce checkouts - Silke...
Increase conversion, convenience and security in e-commerce checkouts - Silke...
 
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
 
Digital Payment in 2020 - Kurt Schmid, Netcetera
Digital Payment in 2020 - Kurt Schmid, NetceteraDigital Payment in 2020 - Kurt Schmid, Netcetera
Digital Payment in 2020 - Kurt Schmid, Netcetera
 
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
AI First. Erfolgsfaktoren für künstliche Intelligenz im UnternehmenAI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
 
Augmenting Maintenance
Augmenting MaintenanceAugmenting Maintenance
Augmenting Maintenance
 
Front-end up front
Front-end up frontFront-end up front
Front-end up front
 
The future of Prototpying
The future of PrototpyingThe future of Prototpying
The future of Prototpying
 
EMV Secure Remote Commerce (SRC)
EMV Secure Remote Commerce (SRC)EMV Secure Remote Commerce (SRC)
EMV Secure Remote Commerce (SRC)
 
Online shopping technology in the fast lane?
Online shopping technology in the fast lane?Online shopping technology in the fast lane?
Online shopping technology in the fast lane?
 
Merchant tokenization and EMV® Secure Remote Commerce
Merchant tokenization and EMV® Secure Remote CommerceMerchant tokenization and EMV® Secure Remote Commerce
Merchant tokenization and EMV® Secure Remote Commerce
 
Seamless 3-D Secure e-commerce experience
Seamless 3-D Secure e-commerce experienceSeamless 3-D Secure e-commerce experience
Seamless 3-D Secure e-commerce experience
 
Augmenting Health Care
Augmenting Health CareAugmenting Health Care
Augmenting Health Care
 
Driving transactional growth with 3-D Secure
Driving transactional growth with 3-D SecureDriving transactional growth with 3-D Secure
Driving transactional growth with 3-D Secure
 
Digital Payment Quo Vadis
Digital Payment Quo VadisDigital Payment Quo Vadis
Digital Payment Quo Vadis
 
EMV® Secure Remote Commerce
EMV® Secure Remote CommerceEMV® Secure Remote Commerce
EMV® Secure Remote Commerce
 
Context: The missing ingredient in multilingual software translation
Context: The missing ingredient in multilingual software translationContext: The missing ingredient in multilingual software translation
Context: The missing ingredient in multilingual software translation
 
Digital Payments - Netcetera Innovation Summit 2018
Digital Payments - Netcetera Innovation Summit 2018Digital Payments - Netcetera Innovation Summit 2018
Digital Payments - Netcetera Innovation Summit 2018
 
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
 

Kürzlich hochgeladen

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Kürzlich hochgeladen (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

Beyond Java: Go for Java developers

  • 1. Beyond Java: Go for Java developers Go or no go Andrej Vckovski <andrej.vckovski@netcetera.com>
  • 5. Motivaton • About me, us and them • The showcase Go programming • The language • Running go programs • Tool-chain • Ecosystem So What
  • 6. 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 BASIC/HP Pascal/CP/M For fun or merit BASIC/MS-DOS For money ASM/MS-DOS C/MS-DOS Pascal/MS-DOS Fortran/VMS Clipper/MS-DOS C/C++/Windows C/C++/Unix Tcl/Unix Java/Unix Go/Unix For my father’s engineering office Hannes Keller Computerzentrum Abakus Informatik As Freelancer Netcetera Diploma Thesis @ ETH PhD @ UniZH High School in ZH JDK 1.0 Pre-Beta problems Andrej Vckovski (vckovski@gis.geogr.unizh.ch) Fri, 29 Sep 1995 14:56:34 +0100 (MET) •Messages sorted by: [ date ][ thread ][ subject ][ author ] •Next message: Arthur van Hoff: "Re: more casting (sort of)" •Previous message: Jim Graham: "Re: peer classes?" Hi, I have some problems when running some of the examples of the JDK pre-beta distribution and also own JAVA code. All tools (java, jdb, appletviewer) produce a seg fault with some examples. It seems to me that it is somehow connected to the call of java.net.InetAddress.getByName(InetAddress.java) This happens for example with ImageTest demo and many others. I've seen some msg earlier indicating a wrong version of 'putmsg' in the binaries ?? Is that it? BTW, I'm running Solaris 2.4 on arch sun4c. Here is an example thread dump: SIGSEGV 11* segmentation violation si_signo [11]: SIGSEGV 11* segmentation violation si_errno [0]: Error 0 si_code [1]: SEGV_ACCERR [addr: 0xc] stackbase=EE17B000, stackpointer=EE1777A8 6
  • 8. Netcetera | 8 By Stickophobe (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. 250+ engineers • Java/J2E • Java/Android • Objective-C/iOS • C#/.NET • JavaScript/any
  • 9.
  • 10. 10
  • 11. 11
  • 12. The application: Very Instant Massive (Audience) Polling  Presentations like this one  TV shows with added interactivity  Pause entertainment in a stadium  Flipped Classrooms © Loozrboy © Chris Lawrence © Jeff Chenqinyi © Nhenze 12
  • 13. Browser that displays questions and allows voting Presentation Software (e.g., PowerPoint) Browser that displays voting results directpoll server System context Browser that displays questions and allows voting Browser that displays questions and allows voting go JS JS JS JS 13
  • 14. Browser that displays questions and allows voting Presentation Software (e.g., PowerPoint) Browser that displays voting results ipoll server Browser that displays questions and allows voting Browser that displays questions and allows voting go JS JS JS JS WebSockets  Full-duplex conversation over TCP connection  RFC 6455  Available in most modern browsers  Simple JavaScript binding  Handshake by HTTP, then user-defined messages over the same socket Client (Browser) Server HTTP GET Request, special attributes HTTP response “switch protocol” Message Message Message Message Message 14
  • 15. Browser that displays questions and allows voting Presentation Software (e.g., PowerPoint) Browser that displays voting results directpoll server Multiplexer and Demultiplexer Browser that displays questions and allows voting Browser that displays questions and allows voting 15
  • 17. Language itself •Syntax, Concepts, Static and Execution Semantics, Type System •Features Implementation •Runtime •Performance •Deployment Toolchain •What is there to support the development process Ecosystem •People, Organizations, Groove 17
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Out of the box tools  go tool – Fetching packages – Building, installing – Instrumenting (race detection – Running tests (also with coverage) – Static code analysis – …  gofmt and goimports  Godoc  cgo for linking with legacy (a.k.a. C-code) darwin dragonfly freebsd linux netbsd openbsd plan9 solaris windows 64-bit x86 32-bit x86 32-bit ARM 19
  • 39. Runtime  Go is compiled/linked into machine code (also cross-compiling)  Executuable embeds type information for introspection  Executable does not use dynamic/shared libraries (i.e. all static) 20
  • 40. Performance Pure CFastest •C++ •Rust •Go •Java/Scala Almost as fast •Node.js •Ruby •Python •Tcl •PHP Slower Go executes with similar speed as Java, but uses usually considerably less memory 21
  • 43. Ecosystem  Many web frameworks  Many proposals for language extensions (about 50 proposals for generics ;-))  Not yet established at Universities for teaching  No formal certifications yet  Active community  Many commercial users, mostly for «heavy-duty» Web work 24
  • 45. 1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035 Language Adoption 1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035 Developers 1985 1990 1995 2000 2005 2010 2015 2020 2025 2030 2035 Cumulative LOC Hype LegacyState of the art Maintenance! 26
  • 46. By Rick Dikeman (Image:Wayne Gretzky 1997.jpg) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons 27
  • 47. In >> OutIn > Out 28
  • 48. From time to time, it is good to clean the desk Change to where the future will be Go is sufficiently new, very pragmatic, fast to use, based on experience and not to fancy 29
  • 49. If you can, go go. 30