Kat Zień

Get GOing with a new language by Kat Zień

Learning more than one programming language is key to becoming a better developer. It is like adding a new tool to your toolbox. The more tools you have, the easier and quicker you’ll be able to tackle whatever job you need to do. You’ll also be able to use the right tool for the job, and who doesn’t like that?!

I picked up Go a few years ago as it was becoming more popular among developers. Coming from a PHP background, I had no idea what channels or goroutines were or how is concurrency different from parallelism. I’ve got to say, it was a whole new world. Very different, but very cool. I was hooked!

By happy coincidence, my company was looking to rewrite a legacy PHP app in Go. It was over 2000 lines of procedural and messy PHP4 with more downtime than I’m willing to admit to. I took on this project, and soon enough we had a much faster, more maintainable and much more reliable app for our customers. Go gave us options we would not have in PHP.

The goal of this talk is to give you a good idea of what Go is and how it compares with PHP. We’ll look at the language itself as well as the tooling and communities around it. Even if you’re not sold on Go by the end of it, I hope you’ll leave inspired to go out there and learn whatever language you wanted to look into next.

Talk Questions

  • Question 79
    If you were to a Golang conference, wich language would you suggest them to move to?
  • Question 117
    which scenario you would php instead of go and viceversa?
  • Question 103
    Go excels at creating microservices, but Would you use it to build a well architectured monolith?
  • Question 102
    Why did you migrate to Go lang instead of upgrade it to PHP 7?
  • Question 111
    A recent tweet from a monzo dev told you have 1500 microservices all working over a single Cassandra, and he knows is not the best idea? Do you think this happened because of thegophers approach to architecture?
  • Question 101
    Which is a good use case to use Go?
  • Question 109
    What about compiled Python? Why should we consider Go instead of a more commonplace language?
  • Question 105
    Do you ever find that gophers tend more to be focused on microoptimizations than on architecture? Is DDD useful in a go world?
  • Question 113
    What is the learning curve of go in comparison with php?
  • Question 110
    What's not so nice about Go?
  • Question 106
    Error handling in Go is often criticised but I've seen mention of it actually enabling some very good practices (instead of the "if err" you see repeated everywhere). What's your view on effectively making use of Go's error handling as opposed to, d
  • Question 107
    What do you think about global state (func init) and dependency injection in go?
  • Question 112
    Something that deals with DB, go or php?
  • Question 115
    Great talk, thanks 👍
  • Question 116
    More like a suggestion. As of PHP 7.2 there is a PECL extension called parallel which has used the go philosophy for concurrency and parallelism in PHP. Maybe look into that
  • Question 121
    Why is the Go community writing variable names so short? Laks understandability :(
  • Question 126
    Is there an option to write object oriented code in GO
  • Question 127
    How complicated does get to debug concurrent code in go?
  • Question 104
    So what are the differences between Go and C/C++ if Go is compiled?
  • Question 118
    Was it so difficult to find a benchmark with PHP 7.x?
  • Question 119
    Great talk!
  • Question 120
    Why not use node for concurrency? That way you don't have to learn a new language and compiled languages are not really necessary for web apps.