@francesc
VP of Product & DevRel at source{d} - #MLonCode #CodeAsData #golang #justforfunc
Nothing here yet.
Nothing here yet.
No blogs yet.
It really depends on what you understand as digital disruption, so unfortunately I'm not really sure how to answer. If by digital disruption you mean the impact on society of a new technology, I doubt that Go has had any specific impact (or at least that I can think of). If you include the way we write code ... Go powers Docker and Kubernetes, so there's some big disruption right there.
I think I partially answered your questions here: https://hashnode.com/ama/with-francesc-campoy-flores-cjosfpnv30007b5vpi7h84gg6#cjpd3nevx002283s1bg1wkyze But I wonder what future proof really means ... Go is a pragmatic language, therefore it's been designed to solve the problems programmers have today. It is pretty obvious that those problems will eventually change, and that the way we write code will have to evolve. I'm thinking about really disruptive changes like commoditized Quantum Computers. Once Quantum Computers are the norm, will Go be able to run efficiently on them? Probably not, but I might be wrong. In that sense no procedural programming language is really future proof. Other programming paradigms might be better suited to these changes, since they are at higher levels of abstraction! Functional languages are a good example of this, but probably Declarative or Logic programs (like Prolog) will be much better at adapting to different technologies since they were designed from a completely different point of view.
That's an interesting question, because the biggest challenge here is not necessarily Go as a language but rather the design principles behind Go's runtime. I'm unfortunately not an expert in the topic, since I care more about the way you use Go than the way it's implemented, but Go does require an OS normally. But ... there are some efforts on implementing a kernel in Go! I'm not 100% sure of how this works, but I'll leave the project here so you can have a look: https://github.com/achilleasa/gopher-os
Ok, so first of all I don't think saying npm lacks security is fair. They're probably one of the largest targets for attacks, so I'd say they've been doing quite amazing even though there's been a couple of bumps. That said, indeed the Go ecosystem doesn't have the abundance of packages of node.js, and this can be an issue for some problems that you might want to solve. But in general, I'd say there's enough Go packages that creating most programs doesn't require building everything from scratch. I guess the big difference is how node.js embraces frameworks like node express, while Go shies away from them. This is more of a cultural difference rather than technical, I'd say. Often, in Go, you'll see people writing web servers without any framework and I think that's not because of a lack of frameworks (beego, buffalo, etc do exist) but rather a sign of the quality of the net/http package itself! Go does provide a lot of different packages to be used as toolkits rather than frameworks (e.g. the Gorilla Web Toolkit) and you can find them quite easily on godoc.org. Is there any specific field of work that you feel Go packages are missing? I'd say Data Science and Machine Learning are two of them, but not sure node.js has a better ecosystem for those than Python.
WARNING: I sincerely have no idea ... so this is pure speculation. The blockchain is a distributed system, which means you're going to need to handle many concurrent events over a network. Luckily for Go, these are two of the things that you also need to be a successful language to tackle the problems that Google does. So I guess it's nothing related to blockchain per-se, but rather to distributed systems such as the blockchain, but also kubernetes!
Yes. Is writing science or art? When you're writing you need to follow some rules in order be understood, there's some guidelines on how to avoid complexity to make your ideas as clear as possible to any reader. But writing is also creative and can communicate and create emotions on the reader's mind! Poetry is a great example of this, but not the only one. I believe coding can be both: sometimes we want to keep it simple and write the most obvious and boring code we want because we prioritize clarity, sometimes we'd rather focus on writing "beautiful code" and that's also great. The programming language you choose will help you go one way or another, obviously. But as in natural languages, beauty can be found anyway.
There's some packages that I've never ever used ... I'd say any of those! A good example of this is anything below https://golang.org/pkg/container/ . On the other hand the net package is incredibly well designed! The context package is also one of my favorites, not because of how it's used but rather because of how it's implemented. I made a video on that, btw! https://www.youtube.com/watch?v=8M90t0KvEDY