📜 ⬆️ ⬇️

How the javista made the .NET conference

In the .NET world there is trouble with the understanding of runtime. Leading developers of large .NET-companies, of course, understand the general principles of GC, JIT-compiler, allocator and other components. But even they admit that they do not know the details. Books Richter help to learn some basic things, but no more. The lack of intelligible technical reports on the CLR (of both foreign and Russian speakers) from Microsoft engineers creates unnecessary ferment in the minds of developers. Shadowed information generates unwillingness to climb deep into. Anyway, FIG know that there maykrosoftovtsy written.

Realizing this problem, in April of this year, we held a .NEXT 2014 Piter conference with JetBrains on the technical aspects of .NET programming. After listening to some of the reports and having talked to the crowd with people on the sidelines, I concluded that I wrote about it above. Under the cut, I will tell you about the details of the past konfy and about what thoughts they directed me to.



')
The idea of ​​a new conference

For two years now I have been organizing various technical events. It turns out not bad - the people are satisfied. I specialize in Java events: Java User Group meetings and conferences. In the Java stack (and including in the Java organization inside Oracle) I worked for several years, and therefore I understand something about what is happening in the Java world.

About a year ago, the guys from JetBrains came to us with this thought: they say, since you are doing so well at making Java events, let's make a joint event for the dotnetchik. Until then, my practice was limited to a yearly course in St. Petersburg University and a small internship in one of the start-ups at the end of the two thousandths. Nevertheless, the idea seemed interesting: first, look at the world of .NET and understand what is happening with you guys today. And secondly, try to make konfu on technologies, in which, as it was thought, I do not understand much.

We have been preparing for two months. The most difficult was to collect speakers. In terms of speakers, we have a strong bias towards JetBrains: 6 speakers out of 13 represented this company. This is due to two things. First, our program committee consisted of two JetBransovtsev: mezastel and philipto . They knew a few strong speakers from JB, and called them first. Secondly, few people knew about the conference. We received only two applications for the Call-for-Papers form. And only one of the two CFP speakers could eventually come.

It is interesting here that. This seemingly negative, strangely played directly on the day of the conference. First, as it turned out, it was precisely the jetbrain reports that gathered more people. And secondly, in the ranking of reports collected from the comments of participants of the conference, the speakers from JetBrains took the first 5 places. Here is such a bias.

Opening

Konfu was opened by Dima Nesteruk aka mezastel . A bit of philosophy, a bit of Resharper, a few general things about the industry, and not only dotnetovskoy. Dima walked through the sick things - the speed of development, the classic tasks vs specific. Plus, a lot of things from R # chips to code generation. No hardcore, classic keynote.


Welcome to .NET

After Java, in which everything is open, the world of data seems very strange: GC is not described anywhere anywhere, runtime is closed, nothing is clear about JIT at all. On these topics there are some posts in the blogosphere, but no more. Even the developers of ReSharper, who seemingly need to know all the details, sometimes guess at how this or that part of the dotnet's runtime works.

It seemed strange, and therefore we called Stas Sidristy aka sidristij from Luxoft to tell some pieces about runtime. Judging by the reviews, it turned out pretty hardcore. In the reviews, two trends are clearly observed: “the report is boring, it would be better to have a blog post” and “interesting, but not applicable in practice”. In other words, the closeness of the CLR leads to the fact that people in the dotnet-world are not very accustomed to climb into the wilds, but are more focused on practical things. This was the first important observation.

Our java jokes with meat, dismemberment and internals of the C2 compiler, which really go to our hardcore Java conferences, didn’t work here. Do I need to move in this direction, and explain to the dotnet-people how important it is to know the insides? Or to score and concentrate on tuling? The question is open.

As for the blog post, Stas heard you. There is a lot of hardcore in his blog on Habré .

About dependency management

Sergei Shkredov, the head of the .NET-unit JetBrains, rarely appears in public. It was all the more interesting to listen to his report on how they dealt with dependencies in their projects. The result was a high-level review. The key thesis, in my opinion, was voiced at the very beginning: dependency management and application deployment are two different things, and you should not mix them up. The report caused a lively discussion, the participants did not release it after the report for another hour and a half - the discussion continued during the break and during the next report.



Profiling

Kirill Skrygan, my schoolmate on the desk, gave an excellent report on profiling and optimization. On the one hand, it was the best (in the opinion of the participants) conference report: techniques for optimizing bottlenecks, asynchronous work with UI, Memory Traffic, etc. On the other hand, I had a wild disappointment against the background of the reports of Shipilev and Kuksenko from the Java Performance Team.



And here it is necessary to clarify. The trick is that Kirill talks about profilers. In this case, for example, the entire Russian Java-world has long been aware that the profiler is not the first, not the second, or even the third utility in order, which needs to be opened if your application slows down. (if someone is interested, based on the story of oraklovyh engineers, Igor Maznitsa made excellent Performace Mind Map in 2012, which tells about where to dig in the case of a particular problem).

What does this mean? In my opinion, the fact that the absence of hardcore Maykrosoftovskih developers in Russia, coupled with the closeness of the .NET-platform, greatly affects our knowledge of these technologies with you. That is why we, in my opinion, and hear more and more about all the problems voiced by Cyril.

What is generated in lambda rantayme? How many boxing / unboxing operations does some kind of implicit operation generate and how much memory traffic occurs in the process? What to do with "srednezhivushchim" objects in memory? How does the heuristics work in the garbage collector in dotnet? Does he rely on a weak hypothesis about generations, and if so, in what way? How to understand that one or another algorithm in libraries or within runtime has changed (GC, JIT, collections)? In short, some questions.

Microsoft did not stand aside

Romuald Zdebsky spoke at conferences about news from the April Build. It turned out very funny: two or three days before .NEXT, he did not understand what he could talk about and what he didn’t. As a result, he looked at the Build conference going parallel to us at night, and during the day he prepared a report.



First, Roma talked about the development of the platform as a whole, and then answered questions on the sidelines for a long time. Our photographer spent 40 minutes trying to pull him out for a photo session, but in the end he scored and ran to photograph other speakers. Roma had to take a picture later.

Hygiene memory from Roman Belov

The most interesting, in my opinion, the conference presentation. Roma was not sleeping, he had a toothache, but he heroically overcame all these difficulties and made a brilliant report on the difficulties with memory in modern Managed environments. Someone restarts the server once a week, someone gets rid of WPF, someone spends a lot of time optimizing the static footprint. Roma about all this in one way or another tells and shows the decision to which the guys from JetBrains came.



Results

The conference was one-day: 2 streams, 14 reports. There were 300 participants. The subject matter is technical : no career development, success stories, interviews and other flexible methodologies. We wanted to look as closely as possible at the technological component of the modern dot-net world. And this, I can confidently say, we succeeded. Full review of the reports and the best videos from konfy - on her website .

There were two surprises. First, the problems that the modern dotnet-world is struggling with are very much like the problems that the modern Java-world is struggling with. This is performance (in every sense of the word), memory leaks, tuling to increase the efficiency of modern work, technology news from vendors, automatic testing in various forms, runtime interiors, cross-platform. Secondly, it is the closed nature of the runtime and, as a result, the lack of understanding of its insides, even among very strong developers. And, as a consequence of the second level, the concept of "strong developer" from the traditional Java-world does not work here. The accents are shifted from understanding the runtime to some other things. What - I have yet to figure it out.

Announcement .NEXT in Moscow

Very soon, on December 8, we will hold a new .NEXT together with JetBrains - and this time in Moscow. Again - technical reports: no bullshit about career growth, success stories, interviews and other flexible methodologies. Probably, this time there will be a little less hardcore and a little more. Fortunately, there are quite a lot of experts in Russia in Russia.

Three rooms, 18 reports 60 minutes each: 40-45 minutes per report and 15-20 minutes for questions and answers. In general, the absence of a normal discussion is beginning to enrage because of the delayed reports. We will tightly stop the speakers at the forty-fifth minute to give people the opportunity to ask questions :)

So far, we have again skewed the reports in the direction of JetBrains and Microsoft, and that is why we very, very much hope for the habrasocommunity. People, we need your reports ! To submit a report, simply fill out the application form .

Conference site: dotnext.ru .

Come, it will be interesting!

Source: https://habr.com/ru/post/241690/


All Articles