SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (20)

Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
 
Golang getting started
Golang getting startedGolang getting started
Golang getting started
 
Introduction to HTTP/2
Introduction to HTTP/2Introduction to HTTP/2
Introduction to HTTP/2
 
Ixia presentation
Ixia presentationIxia presentation
Ixia presentation
 
How To Break Odoo's Security [Odoo Experience 2018]
How To Break Odoo's Security [Odoo Experience 2018]How To Break Odoo's Security [Odoo Experience 2018]
How To Break Odoo's Security [Odoo Experience 2018]
 
gRPC with java
gRPC with javagRPC with java
gRPC with java
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
State Monad
State MonadState Monad
State Monad
 
Netcat - A Swiss Army Tool
Netcat - A Swiss Army ToolNetcat - A Swiss Army Tool
Netcat - A Swiss Army Tool
 
gRPC and Microservices
gRPC and MicroservicesgRPC and Microservices
gRPC and Microservices
 
VLAN Network for Extreme Networks
VLAN Network for Extreme NetworksVLAN Network for Extreme Networks
VLAN Network for Extreme Networks
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
Web services SOAP
Web services SOAPWeb services SOAP
Web services SOAP
 
Developing for Node.JS with MySQL and NoSQL
Developing for Node.JS with MySQL and NoSQLDeveloping for Node.JS with MySQL and NoSQL
Developing for Node.JS with MySQL and NoSQL
 
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
 Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
 
Go and Uber’s time series database m3
Go and Uber’s time series database m3Go and Uber’s time series database m3
Go and Uber’s time series database m3
 
Intro to JSON
Intro to JSONIntro to JSON
Intro to JSON
 
FEX -PPT By NETWORKERS HOME
FEX -PPT By NETWORKERS HOMEFEX -PPT By NETWORKERS HOME
FEX -PPT By NETWORKERS HOME
 
VoiceBootcamp Ccnp collaboration lab guide v1.0 sample
VoiceBootcamp Ccnp collaboration lab guide v1.0 sampleVoiceBootcamp Ccnp collaboration lab guide v1.0 sample
VoiceBootcamp Ccnp collaboration lab guide v1.0 sample
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de Netcetera

Plus de 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
 

Dernier

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (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 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
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
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

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