Excellent introduction, including the downsides of the language, and not just praise. Also makes clear what Go is for, instead of considering a silver-bullet solution.
It was an nice, honest and informative talk, but it could benefit from a bit more focused approach, i think.
I felt Benjamin tried to cover too much ground in one ..uhmm...go :)
I liked the presentation, it covered a practical scenario with code examples and comparisons to the PHP world. I'll remember the quote "Go is like programming in PHP4" as a reference to more functional programming (especially since I came from the PHP4 world).
Clear talk, good instructions. Go is still on my todo-list. Thanks for taking the time to put together a presentation and share your code!
Inspiring! The headline was wrong, it had nothing to do with PHP.
But me and my colleague was full of ideas what to do with go.
Great example and a comprihensive coverage.
The talk was decent and well-structured. However, the amount of things covered was highly unsuitable for a slot this short - a workshop would be way better. There were also a couple of factual errors - e.g. goroutines are *not* necessarily equivalent to threads, which is a very important point to cover even for an intro talk.
Thanks for the intro into Go.
I knew nothing technical about the language before this talk and the real world example touched upon a couple of basic constructs.
Worth looking into further.
Presentation wise, I noticed a lot of the audience was getting 'bored' halfway through. This might be due to:
- the high number of slides with Go code. Although the talk is about Go, on this PHP conference it might be worth using less Go code. Or maybe ease people into the Go concepts by drawing what you are trying to achieve and then relating it to PHP code, before using Go constructs to solve it in a more elegant way.
I think I noticed you did that a couple times in reverse, but I'm not sure and can't find the slides. If not, then maybe just add some PHP code how we could tackle the problem, maybe using closures, socket functions and the stream_select() function (poor man's way of trying to do asynchronous programming in PHP). Then you could also explain where and why such an implementation would lead to problems and how Go alleviates them by using real threading.
- the relative unfamiliarity with StatsD for PHP dev's (I can imagine). Maybe you could use something more familiar to the web and not something devops-y like monitoring? Like maybe a chat server using PHP as a frontend and Go as a synchronizing and pub-sub backend (first thing that popped into my head :).
- even sockets (listening, a packet stream, etc) and the advantages of local UDP sockets can be quite foreign to seasoned framework devs.
Don't get me wrong I enjoyed the talk, just trying to give some constructive feedback.
Not very impressed right after the talk: nice introduction to Go, but could use a bit more structure and spice. However, after giving it some thought, I think the speaker deserves a bit more credit:
- he (subtly) hammered home the very important message that everybody should use the right tool for the job
- he was clear on the limits of Go and of his own experience with the language
Also, the concept of channels is very cool, it really showcases the power of Go, and the speaker's explanation of the concept was great.
I had some high expectations. But it was something like a web tutorial. I couldn't see any added value.
Maybe some ideas;
I would expect some ideas regarding to use Go with PHP. It was more like why a company should use another language instead of only php to get things done.
Good introduction to the language, this was actually something that I have been looking for in the back of my head. Presentation was very clear and good. Will definitely give Go a try!
I had no prior knowledge of Go and your talk really motivated to try it some time soon. So for that, great job!
What could be an improvement is showing a tad less code and a bit more (real life) examples of possibles application.
I enjoyed the talk - after having heard of Go a couple of times and then being really not excited when looking at how low-level it is (no OO...) this talk made me actually want to try it.
I agree with comments proposing to use an even simpler example (although i see the value of a real example versus a contrieved one). The title was creating a wrong expectation for me too, even though you explained the analogy with PHP 4. Just call it something like "Small and efficient tools with Go" :-)
In the beginning, I found you very easy to listen to, quite clear and informative. I thought you were taking it easy, which I think is a good thing when introducing a subject. However, after 20 minutes or so, I expected the talk to go somewhere, some point to be made, a general idea to be expressed.
This wasn't really the case. You continued covering different aspects of Go, but never really got to the "Low-Level PHP" side of things, nor to the "Getting Things done with Go" side. Even though I found your talk very interesting, I came out of your talk with only a very fragmentary understanding of what you were (probably) trying to convey.
I really related to this talk, and it helped me take an important lesson from it. You mentioned that when you're learning Go putting everything in one file is ok, as that's what you did with PHP. I'd totally forgotten that, and sometimes when you're learning a new language or a new concept it's ok to keep things in one place until you're ready to organise your code better.
I thought the intro to Go itself was great, and since I'd never looked into it before, but had always wanted to, this worked great for me. I've known for a while that some of the projects I have planned may well need Go's ability to handle request volume, but I'm not there yet. I can't really just code something for the sake of coding, I need a reason, and the example that was used in the presentation is actually a good use case for potentially any project that requires a lot of logging.
I also liked the way you talked through the threading of Go, the way it was tied in with the graphic helped it really stick, so thanks for that.
All in all it was a very good talk, I enjoyed myself and learned something.
Comments
Comments are closed.
Nice introduction to the awesomeness of go.
Wondering how many people are going to play with it in the coming weeks :-)
Good intro to Go. Will try to look into the language and play with it.
Excellent introduction, including the downsides of the language, and not just praise. Also makes clear what Go is for, instead of considering a silver-bullet solution.
What Marco Pivetta said :)
+1 Marco
It was an nice, honest and informative talk, but it could benefit from a bit more focused approach, i think.
I felt Benjamin tried to cover too much ground in one ..uhmm...go :)
I liked the presentation, it covered a practical scenario with code examples and comparisons to the PHP world. I'll remember the quote "Go is like programming in PHP4" as a reference to more functional programming (especially since I came from the PHP4 world).
Clear talk, good instructions. Go is still on my todo-list. Thanks for taking the time to put together a presentation and share your code!
Wrote my first Go program during the talk. It outputs "Hi!" on the console, and its compiled version is only 1.8MB!!!!11
Benjamin clearly knows what he's talking about, I found it a very interesting, informative talk.
Inspiring! The headline was wrong, it had nothing to do with PHP.
But me and my colleague was full of ideas what to do with go.
Great example and a comprihensive coverage.
The talk was decent and well-structured. However, the amount of things covered was highly unsuitable for a slot this short - a workshop would be way better. There were also a couple of factual errors - e.g. goroutines are *not* necessarily equivalent to threads, which is a very important point to cover even for an intro talk.
The comparisson to php was ok here.
What I really missed here were some decent references to the language constructs of go.
I had the feeling some important go things were skipped or were lacking details.
Nice little primer to Go, pros and cons. Thanks!
It convinced me that Go could be very useful to complement PHP with a tool for processor-intensive operations.
Thanks for the intro into Go.
I knew nothing technical about the language before this talk and the real world example touched upon a couple of basic constructs.
Worth looking into further.
Presentation wise, I noticed a lot of the audience was getting 'bored' halfway through. This might be due to:
- the high number of slides with Go code. Although the talk is about Go, on this PHP conference it might be worth using less Go code. Or maybe ease people into the Go concepts by drawing what you are trying to achieve and then relating it to PHP code, before using Go constructs to solve it in a more elegant way.
I think I noticed you did that a couple times in reverse, but I'm not sure and can't find the slides. If not, then maybe just add some PHP code how we could tackle the problem, maybe using closures, socket functions and the stream_select() function (poor man's way of trying to do asynchronous programming in PHP). Then you could also explain where and why such an implementation would lead to problems and how Go alleviates them by using real threading.
- the relative unfamiliarity with StatsD for PHP dev's (I can imagine). Maybe you could use something more familiar to the web and not something devops-y like monitoring? Like maybe a chat server using PHP as a frontend and Go as a synchronizing and pub-sub backend (first thing that popped into my head :).
- even sockets (listening, a packet stream, etc) and the advantages of local UDP sockets can be quite foreign to seasoned framework devs.
Don't get me wrong I enjoyed the talk, just trying to give some constructive feedback.
Not very impressed right after the talk: nice introduction to Go, but could use a bit more structure and spice. However, after giving it some thought, I think the speaker deserves a bit more credit:
- he (subtly) hammered home the very important message that everybody should use the right tool for the job
- he was clear on the limits of Go and of his own experience with the language
Also, the concept of channels is very cool, it really showcases the power of Go, and the speaker's explanation of the concept was great.
I had some high expectations. But it was something like a web tutorial. I couldn't see any added value.
Maybe some ideas;
I would expect some ideas regarding to use Go with PHP. It was more like why a company should use another language instead of only php to get things done.
Good introduction to the language, this was actually something that I have been looking for in the back of my head. Presentation was very clear and good. Will definitely give Go a try!
I had no prior knowledge of Go and your talk really motivated to try it some time soon. So for that, great job!
What could be an improvement is showing a tad less code and a bit more (real life) examples of possibles application.
I enjoyed the talk - after having heard of Go a couple of times and then being really not excited when looking at how low-level it is (no OO...) this talk made me actually want to try it.
I agree with comments proposing to use an even simpler example (although i see the value of a real example versus a contrieved one). The title was creating a wrong expectation for me too, even though you explained the analogy with PHP 4. Just call it something like "Small and efficient tools with Go" :-)
I felt the urge to rewrite my json API endpoints in go after this talk. Great introduction.
In the beginning, I found you very easy to listen to, quite clear and informative. I thought you were taking it easy, which I think is a good thing when introducing a subject. However, after 20 minutes or so, I expected the talk to go somewhere, some point to be made, a general idea to be expressed.
This wasn't really the case. You continued covering different aspects of Go, but never really got to the "Low-Level PHP" side of things, nor to the "Getting Things done with Go" side. Even though I found your talk very interesting, I came out of your talk with only a very fragmentary understanding of what you were (probably) trying to convey.
I really related to this talk, and it helped me take an important lesson from it. You mentioned that when you're learning Go putting everything in one file is ok, as that's what you did with PHP. I'd totally forgotten that, and sometimes when you're learning a new language or a new concept it's ok to keep things in one place until you're ready to organise your code better.
I thought the intro to Go itself was great, and since I'd never looked into it before, but had always wanted to, this worked great for me. I've known for a while that some of the projects I have planned may well need Go's ability to handle request volume, but I'm not there yet. I can't really just code something for the sake of coding, I need a reason, and the example that was used in the presentation is actually a good use case for potentially any project that requires a lot of logging.
I also liked the way you talked through the threading of Go, the way it was tied in with the graphic helped it really stick, so thanks for that.
All in all it was a very good talk, I enjoyed myself and learned something.