5-6 reasons to come to GolangConf

    If you have been to HighLoad ++, then you know about the traditional Go mitap. Activists who are interested in Go, occupied the hall for a couple of hours, presented small reports, discussed pressing topics, and were holivar. Were on HighLoad ++ and separate reports on Go.

    Now, it seems to us that it’s time to go to a new level , so on October 7 we will hold GolangConf . From the name it’s 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 on Go for a long time, who are interested in discussing new products, talking about performance and guts, finding out what is changing in Go, talking about generics, for example.
    • In addition, as the Go community expands, we are waiting for programmers who are just transitioning to Go or even just thinking about it. We will show them success stories that came true with the transition to Go, or stories of failure. We learn what does not work out, why, what are their first feelings, opinions, impressions.
    • The third category of visitors is users of tools written in Go . These are the popular Cloud Native infrastructures: Kubernetes, Docker, Terraform, Consul, and other Hashicorp products. At the Go conference, guests, on the one hand, will find out what these tools have problems associated with the language features, and on the other, they will see what challenges and tasks are in Go to start, for example, to contribute to these projects.

    To determine what topics should be discussed at the Go conference, what problems and tasks are important for each of the categories of participants, we gathered the Program Committee and activists of the Go-community. Arranged a kind of brainstorming. We share the results with you and, since our main goal is to develop the community, we hope for your feedback. Write in the comments what needs to be revealed more fully, which 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 were divided.

    We will represent the actors as they step onto the stage.

    GolangConf sections

    Elena Grakhovac ( head of the TechOps process automation team at the German fintech startup N26. Co-host of the GolangShow podcast, member of the GolangConf PC. She has been writing Go for 2015 since 11 years, and has been working in IT for 11 years ) .

    Firstly, at the Go conference there will be a section for those who have been writing on Go for a long time , have serious problems or may be limited by productivity 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 non-obvious, but relevant solutions.

    Secondly, we will have a section "for beginners". There will be presentations for those who already can do something in other programming languages, but think about whether Go is suitable for its tasks or not.

    We are planning reports on what tasks Go suits, how to make the transition from other programming languages, or - a favorite topic of all programmers - how to throw out the X language and rewrite everything on Go.

    It would be great to hear about the negative experience of the transition, because this also happens, but this, unfortunately, is not often said. If you have such an experience, write to us.

    A separate stream will be the section of meetings, workshops and light reports , as a place where you can talk on a sore 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 mitaps provide an opportunity to gather a larger audience, discuss problems, brag about something, or, conversely, to grieve about something and share your pain.

    In addition, we plan to touch upon not very technical, at first glance, topics. For example, at the GopherCon Europe conference there were two reports on code readability with a slight bias in neuroscience. This knowledge will help to better structure your application, make it human-friendly and more convenient for colleagues. We hope to see reports on new topics at our conference, which so far have not received enough attention.

    Why do you need go

    Igor Dolzhikov ( an SRE engineer at Openprovider, automates microservice development processes, ensures their reliability and high availability, using Go )

    At conferences dedicated to one language, campaigning usually takes place: why this language, why it is more interesting, why you need to switch to it . I myself have been on Go for a long time and understand the relevance. But it seems to me that it’s important to reveal key concepts, for example, explain why Google makes its products on Go.

    Those who successfully program in PHP or Python need to use examples to show why they should look at Go. Not only for specific tasks, but give examples of large companies that develop entire large-scale projects in this language.

    Elena Grahovac: True, this is one of our tricks - to show examples: why it can be interesting, to whom it may be interesting, what people can win.

    We want to remain completely honest and tell who and when should not choose Go.

    If we talk about how cool it is to switch from “X” to Go, and then something will not work out for the conference participants and they begin to scold 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 have to switch to Go;
    • who needs;
    • why is it 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 shy, but it would be nice if someone took up the beginner level reports, which briefly show the most key points in Go architectures in the code: how to raise the first server, how to work with channels and goroutines, and so on. For some reason, there are no such reports in Russian.

    Marko Kevats ( Team Leader in the platform department at Badoo. C Go almost from the very beginning. The main initiator of Go implementation in the company. Author and speaker, member of the PC GolangConf. Hardcore speaker. He dislikes GC ).

    Those who are thinking about implementing Go will be interested in the topic of how Go interacts with other languages. That is, connecting Java to C is very simple. Rust is very easy to connect to C. And in C, a huge amount of everything is written. With Go, this is always a pain and often people just decide to rewrite everything on Go. It’s much easier, more convenient, all utilities work, and you won’t get any strange bugs. We will discuss at the conference when it’s not the best idea to throw everything away, but what exactly needs to be written in Go - after all, we have a Go-conference.

    Performance go

    Oleg Bunin : And not for beginners, what other topics could be raised at the conference? For example, at Moscow Python Conf ++, we had almost a whole track of reports related to the popular field of its application - machine learning. Is there such an area for Go?

    Vitaly Levchenko ( Evangelist, organizer of ITGM, Go and SRE meetings in St. Petersburg, member of GolangConf PC. Works with Go since release. Head of NDA development ). Performance

    may be such a topic . Let's try to collect some hardcore reports on the topic of 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 the Go-shny assembler . This is an important and big topic.

    Marco Kevac : This 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 supported later. Could be a really hardcore theme.

    Vitaly Levchenko:This is still valuable, because the developers optimize, optimize the key place, and after that they rest on the usual Go, raise their paws and say "then everything." But in fact, further assembler.

    Go everywhere

    Oleg Bunin: What other topics do you want to raise at the conference?

    Elena Grahovac: Now they are trying to apply Go literally everywhere. For example, enthusiasts of embedded devices are also trying 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 love to consider a report on such an experience. But here, as in general for all the reports of the conference, it is important that this is precisely 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, what you encountered, how to overcome what you got.

    Marco Kevac : Indeed, Go as a language is used anywhere. If you hear about some new project now, then 90% that it is written in Go. I would really like to listen to a review report on this trend, how Go from a young popular language has become ubiquitous, 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 to containers . And in fact, he walked up and down with the Go language.

    Vitaly Levchenko: That's right, the format topics are interesting: patch Kubernetes, collect your cloud on Go, our Service mesh. Several companies in Russia are doing this for sure.

    Elena Grahovac: And so we just approached in ourthe third category of participants - infrastructure engineers who interact with cloud services and are forced to at least a little understanding of Go.

    Marco Kevats: What do you think about mobile programming on Go?

    Elena Grahovac: Google had such a project, but it closed. Therefore, it seems to me that mobile programming on Go is dead. Please, if you know that this is not so, refute me.

    Vitaly Levchenko: I do not know of any successful case in Russia, no one has done more than one library for myself, but we will be glad to receive such an application.

    Marco Kevats : It seems to me that Go is still popular for developing console applicationsand competes in this with Rust, including due to the fact that it is going to be in one binary, which is easy to put on the server and use everywhere.

    Elena Grahovac: This is again due to who uses these binaries: engineers, infrastructures and DBA. For example, in our company DBA decided to write in Go, so that you could just generate binaries that would do what they want.

    Igor Dolzhikov: We have been writing service templates on Go for a long time - we are writing service templates on Go, writing on Go.

    Vitaly Levchenko: There is a separate big topic here that is poorly disclosed and which would be nice to separate into a separate section - observability , that is, logging, metrics, open tracing, and how they work with all of this.

    Go in large companies

    Oleg Bunin: And what are the main problems and challenges 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, it is Cloud Native applications. But we can consider it in the context of Go.

    But architecture-related topics will be specific, because Go is still not OOP. And how, for example, in Java, an application is structured and how a class is allocated, is very different from the approaches applicable to Go.

    Alexey Palazhchenko( lead Gopher at Percona, senior gopher, contributor at Prometheus ).

    You can talk about any of these topics in the context of Go. Let's say monorepo or multi-rep in the 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 you can talk about all this.

    Go way

    Oleg Bunin: Tell me, are the architectural patterns that are used to design applications that will run on Go similar to some standard ones or is this a completely different story?

    Vitaly Levchenko: There is a Go-way concept that somehow slips in the community. Go is quite unique in terms of approaches.

    Elena Grahovac: The question of what the Go-way is holistic, it would be interesting to discuss it.

    If we talk about patterns, then the traditional OOP patterns for Go are irrelevant in general. But at the same time, Go has something of its own. For example, error handling practices, structuring approaches, working with context, query processing, etc. Go web applications have their own specifics.

    Oleg Bunin:Do I understand correctly that the average Go programmer needs to know and understand more about how a computer works than a regular PHP programmer? Does a Go programmer have more access to the processor and threads, more control over code execution?

    Elena Grahovac: I would not agree, to be honest.

    Vitaly Levchenko: Go, rather, has direct access. Roughly speaking, you can call sys call a direct call. You can write something to a disk with the necessary options in two steps. It is convenient, well-documented and used.

    Marco Kevats: I agree, it seems to me that the Go-Schnick should understand more in order to program normally. But not an order of magnitude.

    Vitaly Levchenko: This is due to the issue of productivity. As soon as the Go-developer has a question of productivity, he starts working with hardware. After that, it immediately becomes clear that you need to understand hardware and Linux .

    From PHP to Go

    Igor Dolzhikov: Once I said that Go is a new PHP, so they almost threw me tomatoes. Now this is the language that is taken precisely in order to quickly throw something.

    Vitaly Levchenko: A non-trivial question is onboarding developers who are part of Go. Some people think that a person without experience is not a go-shnik. And there is a position that you can take people without experience in Go at all, immediately throw in a 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 get a great report. Who will do it, write ?

    And since they started talking about management, I propose to discuss Go from this point of view. First of all, its cons.

    Typically, 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 an instrument in a particular case. At the same time, languages ​​are compared according to technical characteristics, but there are team-specific and management-specific problems, and it is more difficult to deal with them. A report on them will be useful to those who decide whether to use Go.

    Go is becoming increasingly popular, so we are waiting at our conference for specialists who are interested in Go, but are not yet very familiar with it.

    Go against all

    Marco Kevac: I would really like to hear a report called something like “How do we live without generics?” and in which it would be sorted out by points that it is possible to get around this and that. Everyone is talking about these generics, and perhaps they simplify life, but in fact you can do without them. It is interesting to show on the practical side how to achieve this.

    Vitaly Levchenko: In addition to generics, it causes holivars, among those who are not from Go, error handling. Error handling in Go is very different from all other languages, there are patterns that not everyone knows and uses about. With the advent of Go 1.13, this problem will be partially solved, but in any case, error handling is an important topic.

    Alexey Palazhchenko:In addition to generics and errors, there is a third horse of the Apocalypse - these are modules .

    Elena Grahovac: What is more controversial in the context of modules: do they work, how do they not work, or what pulls the Internet of addictions?

    Alexey Palazhchenko: It seems to me, all together. This topic will be even more relevant to GolangConf in October, because Go 1.13 will be released in August, and people will start switching to it just in time. 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 guess is that they will mainly talk about tuning and modules, i.e. gopls, goproxy, registry and audit.

    Alexey Palazhchenko: Speaking about holivars, I would go to a report on the topic: “Go - sucks” or “Go - worse than X” from a famous person who writes well in 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 goffer survive in a company that wants to associate only with Kotlin”.

    Alexey Palazhchenko:It would be a good combo. It is interesting to attend a conference on the X language, where, among other things, they will say 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 get very prepared, they get interesting, good reports and interesting discussions on the sidelines.

    Go, Security and Windows

    Vitaliy Levchenko: By the way, they have not said a word about Security yet.

    Elena Grahovac: Yes, we would be glad to receive a report on Go and security from a hardcore security specialist. Respond if it is you. Although, it seems to me, this topic has not been covered almost everywhere, not only in Go.

    And since we already remembered about security, I propose a topic - something about Windows. I tried to remember what kind of bugs I know specifically in Go related to security, and for some reason they are all about Windows.

    Marco Kevats: What is Windows?

    Elena Grahovac: I seriously ask, what are you kidding?

    Alexey Palazhchenko:Rarely, but not one, not two, or three times I was asked something about Windows. Someone just doesn’t configure locally. Someone asks how to make an Excel nameplate from Go or how to work with Home. Therefore, a review 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 “newbies” Go, where programmers tried to trivially install Go and do something about it. A huge number of problems arose precisely because of Windows and the features of working on it with Go.

    Alexey Palazhchenko: Windows is not in our bubble, but generally speaking it is. Judging by the polls, Windows is the most popular platform.

    Go Developer Career

    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 does it differ from the career growth of any other developer?

    Elena Grahovac: That is the question: is there any difference. For example, I see that sometimes Go developers come to Go to switch to SRE later. Now in Berlin this is a trend, young guys come who say: “I actually want to be SRE, but I understand that I can’t immediately, so for now I will work as a junior Go developer, and then somehow move to SRE”.

    Vitaly Levchenko: So there is interest, and at the conference you need to cover SRE.

    Elena Grahovac:SREs are those who use Go a lot to automate their tasks, everything that needs to be automated after the first use. Therefore, this is an urgent issue for the Go-conference.

    Vitaliy Levchenko: SRE also grow out of Go-Schnicks faster due to the range of necessary knowledge.

    Igor Dolzhikov: I just had a report on DevOpsConf how SRE with the help of templating is done on Go in 5 minutes.

    And other topics

    Vitaly Levchenko: It is worth mentioning the database on Go. Some say: "We will not use Prometheus because it is written in Go, it is slow." Similarly, CocroroachDB is fully written in Go, which sometimes serves as a decisive argument against it. We, as gophers, of course, hope that there is a speaker who, in our experience, will refute these claims. But we will 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 willing to share it.

    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 diverges over time. So that there is a specification by which code is generated that is used by external partners and internal, it is very rare. A report, for example, why you need to drop everything and use JSON-RPC, would be useful to Go-developers.

    If you already see how to disclose one of the many topics mentioned, we are waiting for the application . Or join our brainstorming session in the comments or telegram chat of the conference. We make GolangConf for you.

    Also popular now: