I came, i saw, i go - Cefaro and De Donato

519 views

Published on

Slides from Giorgio Cefaro and Giulio De Donato talk @ codemotion roma 2014

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
519
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

I came, i saw, i go - Cefaro and De Donato

  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

×