If you have been to HighLoad ++, then you know about the traditional Go Go. Activists who are interested in Go, occupied the hall for a couple of hours, presented small reports, discussed pressing issues, and holivaril. Were on HighLoad ++ and separate reports on Go.
Now, it seems to us that
it is time to go to a new level , so on October 7 we will hold a
GolangConf . From the title it is clear that this is a conference about Go, but this is clearly not enough.

')
We are preparing this conference for:
- Go-developers - those who have been sitting for a long time on Go, who are interested in discussing new products, talk about performance and “guts”, find out what changes in Go, talk about generics, for example.
- In addition, as the Go-community expands, we are waiting for programmers who are just switching to Go, or even just thinking about it. Let us show them the success stories realized with the transition to Go, or the failure stories. We learn that it is impossible, why, what are their first feelings, opinions, impressions.
- The third category of visitors is users of tools written in Go . These are popular within Cloud Native infrastructures: Kubernetes, Docker, Terraform, Consul and other Hashicorp products. At the Go-conference, the guests, on the one hand, will find out what problems these tools have with regard to the peculiarities of the language, and on the other, they will see what challenges and tasks there are in Go, for example, contributing to these projects.
To determine exactly which topics to discuss at the Go conference, which problems and tasks are important for each category of participants, we gathered the Program Committee and activists of the Go community. Gave a kind of brainstorming. We share the results with you and, since our main goal is to develop the community, we hope for your response. Write in the comments what needs to be revealed more fully, what is completely uninteresting, and what exactly is what is needed. Advise, for example, whether it is worth discussing the features of operating Go under Windows, otherwise opinions are divided.
We will represent the actors as we go on stage.GolangConf sections
Elena Grahovac (
head of the automation team of TechOps processes in the German FINTECH start-up N26. Co-host of the GolangShow podcast, member of the GolangConf PC. Writes Go on 2015 with a professional IT experience - 11 years )
.First, at the Go conference there will be a
section for those who have been writing Go for a long time , have run into serious problems, or maybe have come up against performance and want to dig into hardcore. In this conditional section we will pick up cases, for example, when a popular library was used, but there were performance problems that we managed to overcome. Consider non-standard approaches and unobvious, but relevant, solutions.
Secondly, we will have a
section for beginners . It will be reports for those who already know something in other programming languages, but thinks about whether Go is suitable for its tasks or not.
We are planning reports on what tasks Go is suitable for, how to make the transition from other programming languages, or the favorite topic of all programmers is how to throw out the X language and rewrite everything to Go.
It would be great to listen to the negative experience of the transition, because this also happens, but unfortunately, this is not often said. If you have such experience, write to us.
A separate thread will be the
section of meetings, workshops and light reports , as a place where you can talk on a painful topic or start discussing what suddenly surfaced during the conference. For example, I remembered that you want to share your experience, inspired by other reports - please, there are all conditions for this. This approach is rarely seen at other conferences.
Of course, you can just talk on the sidelines, but the meetings give you the opportunity to gather more audience, discuss problems, boast something, or, conversely, mourn something and share your pain.
In addition, we plan to touch on not very technical, at first glance, topics. For example, at the GopherCon Europe conference there were two presentations dedicated to the readability of a code with a slight bias in neuroscience. This knowledge will help to better structure your application, make it more human-friendly and more convenient for colleagues. We hope to see at our conference reports on new topics that have so far received insufficient attention.
Why do you need to go
Igor Dolzhikov (
SRE engineer at Openprovider, automates microservice development processes, ensures their reliability and high availability using Go )
At conferences devoted to one language, agitation usually takes place: why it is this language, why it is more interesting, why it is necessary to switch to it. I myself have long been on Go and understand the relevance. But it seems to me that it is important to reveal key concepts, say, to explain why Google makes its products on Go.
Those who successfully program in PHP or Python, you need to show by examples why you should look at Go. Not only for specific tasks, but to give examples of large companies that develop whole large-scale projects in this language.
Elena Grahovac: That's right, this is one of our tricks - to show examples: why it might be interesting, to whom it may be interesting, that people can win.
We want to remain honest and tell who and when you should not choose Go.
If we talk about how to move abruptly from the language “X” to Go, and then the conference participants have something wrong with this, and they start scolding us, it will not be great. Therefore, it would be cool to tell the stories of failure and find out why it was not possible to succeed.
All examples should be related to the question:
- Do I need to go to Go;
- who needs;
- why it is necessary;
- how to do it.
Igor Dolzhikov: In addition, it seems to me that reports similar to the very first reports of Rob Pike would be appropriate. Apparently everyone is embarrassed, but it would be nice if someone took up the novice level reports, which briefly show in the code the most key points in the Go-architectures: how to raise the first server, how to work with channels and gorutiny and so on. For some reason, there are no such reports in Russian.
Marco Kevac (
Team Leader in the Platform Department at Badoo. C Go almost from the very beginning. The main initiator of Go implementation in the company. The author and speaker, member of the GolangConf PC. Hardcore sichnik. Dislike GC ).
Those who are thinking about implementing Go will be interested in the topic of Go interaction with other languages. That is, Java is very easy to connect with C. Rust connect with C is very simple. And on C written a huge amount of everything. With Go, this is always a pain and often people just decide to rewrite everything on Go. So much easier, more convenient, all utilities work, and you will not get any strange bugs. We will discuss at the conference, when it’s not the best idea to throw it all out, but what exactly you need to write on Go is still a Go conference.
Go performance
Oleg Bunin : And not for beginners, what other topics could have been raised at the conference? For example, at Moscow Python Conf ++ we had almost a whole track of reports related to the popular area of ​​its use - machine learning. Is there such an area for Go?
Vitaly Levchenko (
Evangelist, organizer of ITGM, Go and SRE mitaps in St. Petersburg, member of the PC GolangConf. Works with Go from the release. Head of NDA development ).
Performance can be such a topic. Let's try to collect some hardcore reports on highload. Plan, why you need to replace TCP with UDP, but more in the context of Go.
For example, I have long wanted to hear a report in Russia related to the issue of performance, but I have not seen anything serious enough - this is a story about a complete
G-shnym . This is an important and big topic.
Marco Kevac : Such a report can be combined with security and encryption. Now, roughly speaking, if you want to program encryption or security on Go, so that it works quickly, you need to write in assembler. This is one part of the problem. Immediately another appears - that all this needs to be somehow tested and maintained later. Could be a really hardcore theme.
Vitaly Levchenko: This is still valuable because the developers optimize, optimize the key place, and then they run into the usual Go, raise their legs and say “everything is farther”. But in fact, further assembler.
Go everywhere
Oleg Bunin: What other topics do you want to raise at the conference?
Elena Grahovac: Now Go try to apply literally everywhere. For example, enthusiasts of embedded devices also try to write on Go, even there are special frameworks. Go is also used for machine learning, at one time there was a TensorFlow trend on Go. We would be happy to consider a report about this experience. But here, as in general for all the reports of the conference, it is important that this be just personal experience.
What is written in the documentation can be read there, and the most valuable thing is when the report is built on examples, which we encountered, how we overcame what we got.
Marco Kevac : Indeed, Go is used as a language anywhere. If you hear about a new project now, then 90% of it is written in Go. I would really like to listen to the overview report about this trend, about how Go from a young popular language has become omnipresent, about a possible future, etc.
Igor Dolzhikov: I propose to touch on the topic of containerization. Maybe no one noticed, but
there was a revolution - the transfer of applications into containers . And in fact, he went foot by step with the Go language.
Vitaly Levchenko: That's right, interesting topics of the format: Kubernetes patch, build your cloud on Go, your mesh service. Several companies in Russia are doing this.
Elena Grahovac: And so we just came up in our
third category of participants - infrastructure engineers , who interact with cloud services and have to at least have a little understanding of Go.
Marco Kevac: What do you think about mobile programming on Go?
Elena Grahovac: Google had such a project, but it was closed. So it seems to me that mobile programming on Go is dead. Please, if you know that this is not so, disprove me.
Vitaly Levchenko: I don’t know of any successful cases in Russia, no one else did a library for themselves, but we will be happy with such an application.
Marco Kevatz : It seems to me that
Go is also popular for developing console applications and competes with Rust, including due to the fact that it is going to be in a single binary that is easy to put on the server and use everywhere.
Elena Grahovac: This is again related to who uses these binaries: engineers, infrastructure and DBA. For example, in our company, DBA decided to write on Go, so that you can simply generate binaries to do what they want.
Igor Dolzhikov: We
have been writing service templates for Go for a
long time - templates for services that are for Go, we write for Go.
Vitaly Levchenko: There is also a separate large topic that is poorly disclosed and which it would be good to single out into a separate section -
observability , that is, logging, metrics, open tracing, and how they work with all this.
Go in large companies
Oleg Bunin: And what are the main problems and tasks faced by large companies when using Go?
Elena Grahovac: A lot with what. Starting with how to structure an application on Go if: there is a bunch of microservices and you need a mono repository, or a bunch of microservices and separate repositories. How to manage dependencies, how to embed security - there are a lot of tasks, but they are relevant with any programming language. The same observability problem is a problem, rather, Cloud Native applications. But we can consider it in the context of Go.
But the topics related to architecture will be specific, because in Go, after all, it is not OOP. And how, for example, in Java the application is structured and how the class is allocated, is very different from the approaches applicable to Go.
Alexey Palazhchenko (
lead Gopher in Percona, experienced gofer, contributor to Prometheus ).
You can talk about any of these topics in the context of Go. Suppose a monorepo or multirepo in a Go context is very different, because the path import uses the entire URL. Even in such things there are significant differences, so it seems to me that we can talk about all this.
Go way
Oleg Bunin: Tell me, are the architectural patterns that are used in designing applications that will work on Go, are they similar to some standard ones, or is this a completely different story?
Vitaly Levchenko: There is the concept of a go-way, which somehow slips into the community. Go is quite unique in terms of approaches.
Elena Grahovac: The question is what a Go-way is holivarny, it would be interesting to discuss it.
If we talk about patterns, then the traditional OOP patterns for Go are irrelevant at all. But at the same time, Go has something of his own. For example, the practice of error handling, approaches to structuring, working with context, processing requests, etc. The web application on Go has its own specifics.
Oleg Bunin: I understand correctly that the average Go programmer should know and understand more about how a computer works than a regular PHP programmer? Does the programmer on Go have more access to the processor and threads, more control over the execution of the code?
Elena Grahovac: I would not agree, to be honest.
Vitaly Levchenko: Go rather has direct access. Roughly speaking, you can call sys call by direct call. Write something to disk with the necessary options can be in two steps. It is convenient, normally documented and used.
Marco Kevac: I agree, it seems to me that the Go-Schnick should understand more in order to program normally. But not much.
Vitaly Levchenko: This is related to the issue of performance. As soon as the Go-developer has a performance issue, he starts working with hardware. After that, it immediately turns out that
you need to understand the hardware and Linux .
PHP to Go
Igor Dolzhikov: Once I said that Go is a new PHP, so I almost threw tomatoes at me. Now it is a language, which they undertake precisely in order to quickly distribute something.
Vitaly Levchenko: This is a non-trivial
question of onboarding developers who are included in Go. Some believe that a person without experience is not a go-shnik. And there is a position that it is possible to take people without any experience at all in Go, immediately throw into the project on Go, and everything will be fine. Such an experience would be very useful.
Igor Dolzhikov: A good topic for the report: do not carry your experience and all the approaches that work for one language (PHP, in particular) in Go. This is a common mistake.
Vitaly Levchenko: Add to this the question: "How to manage programmers who switch from PHP to Go?" And you get an excellent report. Who will take to
write ?
And once started talking about management, I will propose to discuss Go from this point of view. First of all, its disadvantages.
Usually programming languages ​​are considered by the engineer: architectural features, syntax, etc. At any language conference, a substantial part of the topics is whether or not to choose a tool in a particular case. At the same time, languages ​​are compared by technical characteristics, and there are command-specific and management-specific problems, and it is more complicated with them. A report on them will be useful to those who decide whether to use Go.
Go is becoming more and more popular, so we are waiting at our conference for specialists who are interested in Go, but are not very familiar with it.
Go vs all
Marco Kevac: I would very much like to hear a report called something like
“How do we live without generics?” And in which the points would be dismantled that you can get around this way and that. Everyone talks about these generics, and perhaps they make life easier, but in fact you can do without them. It is interesting to show from the practical side how to achieve this.
Vitaly Levchenko: In addition to generics, holivars cause, among those who are not from Go, error handling.
Error handling in Go is very different from all other languages, there are patterns of which not everyone knows and uses. With the advent of Go 1.13, this problem will be partially resolved, but in any case, error handling is an important topic.
Alexey Palazhchenko: In addition to generics and mistakes, there is the third horse of the Apocalypse - these are
modules .
Elena Grahovac: What is more controversial in the context of the modules: do they work, how do they not work, or what are pulling the sex of the Internet addiction?
Alexey Palazhchenko: It seems to me, all together. By GolangConf in October, this topic will be even more relevant, because in August the release of Go 1.13 will be released, and the people will start to switch to it. Before that, all these were enthusiasts by and large.
Elena Grahovac: What do you think they will tell on the American GopherCon? Announce Go 2.0?
Marco Kevac: I think that we will not see any discoveries.
Alexey Palazhchenko: My assumption is that they will mainly talk about tuling and modules, that is, gopls, goproxy, registry and audit.
Alexey Palazhchenko: Speaking of holivars, I would go to a report on the topic: “Go - sucks” or
“Go - worse than X” from a famous person who writes well on X, for example.
Elena Grahovac: You can call any person from our company, he will tell you why Kotlin is better than Go. And then I will make a report: “How can a gofer survive in a company that wants to associate only with Kotlin”.
Alexey Palazhchenko: It would be a good combo. It is interesting to go to the conference on the language of X, where among other things they will tell that X - sucks. To make such a report you need to have nerves of steel and a very good argument. As a rule, such people are strongly prepared, interesting, good reports and interesting discussion on the sidelines are obtained.
Go, Security and Windows
Vitaly Levchenko: By the way, not a word has been said about Security yet.
Elena Grahovac: Yes, we would be glad to receive a report on the topic of Go and security from a hardcore security specialist.
Call out if it is you. Although, it seems to me, this topic is almost everywhere not disclosed, not only in Go.
And since we already remembered about security, I suggest a theme - something about Windows. I tried to remember what kind of bugs I know in Go related to security, and for some reason they are all about Windows.
Marco Kevac: What is Windows?
Elena Grahovac: I seriously ask, what are you kidding?
Alexey Palazhchenko: Rarely, but not once, not twice, and not three times, I was asked something about Windows. Someone just locally is not configured. Someone asks how to make an Excel tablet from Go or how to work with Home. Therefore, an overview report on how to use Go on Windows in general may not be super popular, but it will definitely bring these people together, which is valuable in itself.
Marco Kevac: I agree. I was recently at a workshop for Go beginners, where programmers tried to trite Go and do something with it. A huge number of problems arose precisely because of Windows and the peculiarities of working with Go on it.
Alexey Palazhchenko: There is no Windows in our bubble, but generally speaking it is. Judging by polls, Windows is the most popular platform.
Career Go-developer
Elena Grahovac: What else do we want to discuss at our conference? For example, I would be interested in the topic of career development of Go-developers.
Vitaly Levchenko: How is it different from the career growth of any other developer?
Elena Grahovac: This is the question: is there a difference. I, for example, see that Go developers sometimes come to go to SRE. Now this is a trend in Berlin, young guys are coming who say: “I actually want to be SRE, but I understand that I can’t immediately, therefore, while I work as a junior go-developer, and then somehow I will go to SRE”.
Vitaly Levchenko: So, there is an interest, and the conference needs to cover SRE.
Elena Grahovac: SRE are those who use Go a lot to automate their tasks, everything that should be automated after the first use. Therefore, this is a pressing issue for the Go conference.
Vitaly Levchenko: And also SRE grows faster from Go-Schniki because of the spectrum of necessary knowledge.
Igor Dolzhikov: I just had a
report on DevOpsConf as SRE using templating is done on Go in 5 minutes.
And other topics
Vitaly Levchenko: It is worth mentioning the database on Go. Some people say, “Let's not use Prometheus, because it’s written on Go, it’s slow.” Similarly, CocroroachDB is written entirely in Go, which sometimes serves as a decisive argument against it. We, as gophers, of course, hope that there will be a speaker who, in his experience, will refute these statements. But we will also accept the reasoned confirmation.
Elena Grahovac: Another topic is
Serverless . Popular serverless providers support Go: AWS, Google, Microsoft Azure. There is little experience in this topic, but we hope to find someone who is ready to share them.
Vitaly Levchenko: Another unexpected, but relevant in the context of Go and microservice, may be the topic of synchronization of documentation with code. The code with the documentation over time diverges. For the specification to generate code that is used by external and internal partners, it is very rare. A report, for example, why you need to drop everything and use JSON-RPC, would be useful for Go-developers.
If you already see how to reveal one of the many topics mentioned - we are waiting for the application . Or join our brainstorming in the comments or telegram-chat conference. We make GolangConf for you.