0
GOLANGIT
Italian gophers!
I came, I saw, I GO!
2014 golangit meetup @
@giorrrgio
@liuggio
GOLANGIT
I founder
GOLANGIT
Nascita di un logo
original gopher by Renée French
GOLANGIT
Nascita di un logo
Creare un punto di
riferimento per gli
sviluppatori GO italiani
GOLANGIT
Uno UG dedicato a GO
Lavorare insieme per far
diffondere go nel mercato
italiano
GOLANGIT
Uno UG dedicato a GO
Aiutare i neofiti a crescere
GOLANGIT
Uno UG dedicato a GO
da dove partire?
GOLANGIT
Uno UG dedicato a GO
sudo apt-get install golang
GOLANGIT
Uno UG dedicato a GO
GOLANGIT
Uno UG dedicato a GO
Parlane con i tuoi amici
nerd!
GOLANGIT
Uno UG dedicato a GO
Nella prossima soa in cui
metterai mano, un
servizio go sarà il tuo
apprezzatissmo easter
egg!
GOLANGIT
Uno UG dedicato a ...
Aspettiamo le tue PR :-)
http://golangit.github.io
GOLANGIT
Uno UG dedicato a GO
GOLANGIT
Perché GO?
Abbiamo troppi core!
GOLANGIT
Problema 1
Abbiamo bisogno di un linguaggio di
programmazione di basso livello
che ci permetta di sfruttare
efficientemente le archit...
Sì, ma ...
GOLANGIT
ERLANG?
GOLANGIT
ERLANG?
GOLANGIT
ERLANG?
Linguaggio di basso livello per lo
sviluppo su architetture
multiprocessore
GOLANGIT
GOLANG!
Nato con la concorrenza
in mente
GOLANGIT
GOLANG!
Nato con la semplicità
in mente
GOLANGIT
GOLANG!
no type inheritance
no method or operator overloading
no circular dependencies among
packages
no pointer arithmetic
no ass...
Scrivere software multi-
thread
non è complicato
GOLANGIT
GOLANG - Goroutines e Channels
Non è così immediato far
comunicare i thread
GOLANGIT
GOLANG - Goroutines e Channels
Communicating
Sequential Processes
canali di comunicazione tra thread
instanziabili direttamente dai
programmi
GOLANGIT
GO...
Feature decisiva per lo sviluppo
multi-thread:
Decidere esattamente quando
distruggere un oggetto condiviso
tra più thread...
No virtual machine
No JIT-compiling
Compilatore statico
GOLANGIT
GOLANG - No large runtime env
archive, bufio, builtin, bytes, compress,
container, crypto, database, debug,
encoding, errors, expvar, flag, fmt, go,
has...
net/http: webserver integrato
fastcgi: utilizzabile con qualsiasi
webserver
GOLANGIT
GOLANG - Amico del webdev
Occhio: una request, una nuova
goroutine
Possibilità di condivisione channel
tra diverse request (e quindi
client)
GOLANGI...
HTTP CLIENT
Html parsing
Templating
GOLANGIT
GOLANG - Amico del webdev
Google (ma dai?) - Docker -
Canonical - Heroku -
Digital Ocean - SoundCloud
- Bitly - CloudFlare - BBC
World News - Nokia
...
GOLANGIT
OH MY GO ANOTHER LANGUAGE ...
GOLANGIT
Go to ‘60
GOLANGIT
Go to ‘78
GOLANGIT
Go to 2007
GOLANGIT
GO SCALABILITY
GOLANGIT
GO FEATURES
// Java / php style
Class MyGreatService
{
doSomething(AcmeLibLogInterface
logger)
{
logger->info('boom');
}
GOLANGIT
JAVA...
// GO LANG
import "...loggerFunnyLib"
type logger interface {
info()
}
func doSomething(log logger) {
log.info('boom')
}
G...
GOLANGIT
Reference
http://www.meetup.com/golangit/
https://golangit.github.io
golangit su google groups
Upcoming SlideShare
Loading in...5
×

I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014

652

Published on

Primo Meetup dello user group Golangit al Codemotion 2014 di Roma. Introduzione al gruppo e al linguaggio.

Published in: Software
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
652
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014"

  1. 1. GOLANGIT Italian gophers! I came, I saw, I GO! 2014 golangit meetup @
  2. 2. @giorrrgio @liuggio GOLANGIT I founder
  3. 3. GOLANGIT Nascita di un logo original gopher by Renée French
  4. 4. GOLANGIT Nascita di un logo
  5. 5. Creare un punto di riferimento per gli sviluppatori GO italiani GOLANGIT Uno UG dedicato a GO
  6. 6. Lavorare insieme per far diffondere go nel mercato italiano GOLANGIT Uno UG dedicato a GO
  7. 7. Aiutare i neofiti a crescere GOLANGIT Uno UG dedicato a GO
  8. 8. da dove partire? GOLANGIT Uno UG dedicato a GO
  9. 9. sudo apt-get install golang GOLANGIT Uno UG dedicato a GO
  10. 10. GOLANGIT Uno UG dedicato a GO
  11. 11. Parlane con i tuoi amici nerd! GOLANGIT Uno UG dedicato a GO
  12. 12. Nella prossima soa in cui metterai mano, un servizio go sarà il tuo apprezzatissmo easter egg! GOLANGIT Uno UG dedicato a GO
  13. 13. Aspettiamo le tue PR :-) http://golangit.github.io GOLANGIT Uno UG dedicato a GO
  14. 14. GOLANGIT Perché GO?
  15. 15. Abbiamo troppi core! GOLANGIT Problema 1
  16. 16. Abbiamo bisogno di un linguaggio di programmazione di basso livello che ci permetta di sfruttare efficientemente le architetture multiprocessore GOLANGIT Problema 2
  17. 17. Sì, ma ... GOLANGIT ERLANG?
  18. 18. GOLANGIT ERLANG?
  19. 19. GOLANGIT ERLANG?
  20. 20. Linguaggio di basso livello per lo sviluppo su architetture multiprocessore GOLANGIT GOLANG!
  21. 21. Nato con la concorrenza in mente GOLANGIT GOLANG!
  22. 22. Nato con la semplicità in mente GOLANGIT GOLANG!
  23. 23. no type inheritance no method or operator overloading no circular dependencies among packages no pointer arithmetic no assertions no generic programming GOLANGIT GOLANG!
  24. 24. Scrivere software multi- thread non è complicato GOLANGIT GOLANG - Goroutines e Channels
  25. 25. Non è così immediato far comunicare i thread GOLANGIT GOLANG - Goroutines e Channels
  26. 26. Communicating Sequential Processes canali di comunicazione tra thread instanziabili direttamente dai programmi GOLANGIT GOLANG - Goroutines e Channels
  27. 27. Feature decisiva per lo sviluppo multi-thread: Decidere esattamente quando distruggere un oggetto condiviso tra più thread può diventare davvero complicato. GOLANGIT GOLANG - Garbage Collection
  28. 28. No virtual machine No JIT-compiling Compilatore statico GOLANGIT GOLANG - No large runtime env
  29. 29. archive, bufio, builtin, bytes, compress, container, crypto, database, debug, encoding, errors, expvar, flag, fmt, go, hash, html, image, index, io, log, math, mime, net, os, path, reflect, regexp, runtime, sort, strconv, strings, suffixarray, sync, syscall, testing, text, time, unicode, unsafe GOLANGIT GOLANG - Standard library
  30. 30. net/http: webserver integrato fastcgi: utilizzabile con qualsiasi webserver GOLANGIT GOLANG - Amico del webdev
  31. 31. Occhio: una request, una nuova goroutine Possibilità di condivisione channel tra diverse request (e quindi client) GOLANGIT GOLANG - Amico del webdev
  32. 32. HTTP CLIENT Html parsing Templating GOLANGIT GOLANG - Amico del webdev
  33. 33. Google (ma dai?) - Docker - Canonical - Heroku - Digital Ocean - SoundCloud - Bitly - CloudFlare - BBC World News - Nokia Siemens Networks GOLANGIT GOLANG - Chi usa Go
  34. 34. GOLANGIT OH MY GO ANOTHER LANGUAGE ...
  35. 35. GOLANGIT Go to ‘60
  36. 36. GOLANGIT Go to ‘78
  37. 37. GOLANGIT Go to 2007
  38. 38. GOLANGIT GO SCALABILITY
  39. 39. GOLANGIT GO FEATURES
  40. 40. // Java / php style Class MyGreatService { doSomething(AcmeLibLogInterface logger) { logger->info('boom'); } GOLANGIT JAVA INTERFACES
  41. 41. // GO LANG import "...loggerFunnyLib" type logger interface { info() } func doSomething(log logger) { log.info('boom') } GOLANGIT GO INTERFACES
  42. 42. GOLANGIT Reference http://www.meetup.com/golangit/ https://golangit.github.io golangit su google groups
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×