What should a .NET conference look like in 2016, when a tectonic shift occurs in the .NET world? Obviously, (ASP) .NET Core will greatly affect the lives of developers, but for most of them this will happen only after a considerable time. What, then, to talk about - large-scale innovations that will become relevant later, or more familiar topics that are important here and now?
St. Petersburg's Summer Festival of Developers, consisting of three conferences in a row, began with
DotNext 2016 . How was the dilemma resolved, and how did DotNext go? The snapshot of the organizing team shows that, for all its hardcore, the event was not without summer mood, and all the other details were under the cut.
')
It is difficult to expect that the most memorable detail at the opening of the conference will be the name of the volunteer task, but this is exactly what happened. Program director
Andrei Dmitriev , saying that the speakers after their reports are sent to the "expert zone" (where they answer questions from interested spectators), clarified that the task "to take the speaker after the report" even has a special role. And it is called this: “speaker tug”.
It sounds funny, but at the same time, the moment is indicative: it answers the question "why go to conferences, when you can learn everything on the Internet." The opportunity to ask a question on the sidelines has always been an advantage of personal presence, and when all the conditions have been created for this, with a dedicated expert zone and illustration boards, you can get even more from the event.
After the discovery, there was a keynote from
Dmitry Soshnikov (Microsoft) “How many lives have. NET”. Starting with nostalgia (even the COBOL code appeared on the screen) and reaching the future (like local functions in C # 7), in the process he gave a show: using the Microsoft Band, he measured his pulse ("then he fell sharply, it usually says about the death of the speaker , but not in this case "), but with the help of Microsoft Cognitive Services, I recognized my own emotions by the expression of my face (" I’m better able to be happy than to be sad ").
Part of the speech was devoted to “debunking the myths about Microsoft”. It is not surprising that the evangelist of the company defended her rightness in controversial issues, but his arguments appealed to the audience. For example, challenging the thesis “Microsoft makes developers constantly relearn”, he conquered the audience with the phrase “Not Microsoft is like that, life is like this” (laughter with laughter, but you can’t argue: you don’t need to relearn only where there is no progress). And then he finished off with a slide “Meanwhile in a parallel universe”, on which popular JavaScript frameworks were simply listed: in comparison with this constantly changing zoo, the .NET world can really look like a quiet haven.
Then everything was divided into different halls, and it became clear how revolutionism and everyday life can coexist within the framework of one conference: they were simply given different tracks, so that everyone who came could choose for themselves what was more important to him.
From the main stage, English-speaking speakers (
Maurice de Beyer ,
Dino Esposito ,
Adam Sitnik ) talked about what the transition to (ASP) .NET Core means for the .NET world. The result was a hall for those who want to be ready for the challenges of tomorrow today.
The third hall was initially occupied by the speakers from
JetBrains with a series of reports about their new IDE
Rider (they recently briefly
told us about it, and here they were able to tell in more detail). Since the project has not yet reached release, it also turned out about the future, but closer. Thanks to the Early Access Program, if you wish, you can already use it, and among the first users are JetBrains themselves, who use the Rider to develop the Rider. This explains why their products love it so much: is it possible to motivate a developer to improve the product more effectively than when he feels any flaws in his own skin?
And in the second hall at this time there were reports on code generation, optimization and dynamic prototyping - that is, it was about how you can get practical benefits here and now, without waiting for a bright future.
It is curious how differently the reports on ASP.NET Core sounded. Maurice de Beyer calmly stated the facts: .NET in its usual form has ceased to meet the demands of the time, so now everything will become more modular and cross-platform (no wonder: when Azure began to mean a lot to Microsoft, the hard linking to Windows began to prevent customers from getting).
But Dino Esposito used his sarcasty to the fullest, describing the situation “Microsoft first makes a revolution, and only then suddenly thinks about what problems loyal clients will have with the legacy code.” In his performance, the hypothetical dialogue about the migration of a large project looked so vividly that the audience perfectly understood the essence of the last remark, which he portrayed silently:
- How much do we need to invest?
- Million dollars and year of work.
- And for what?
- To do the same thing now.
- ...!
Sudden changes at the release candidate stage really look weird. But this does not mean that Microsoft is doing a bad product, and Dino did not say that. He stated only that it would only come to a stage “really suitable for production” in a couple of years. As he sarcastically noted at the end of the speech, "this fits well with the general Microsoft policy: their products should not be used until the third version." Judging by the volume of laughter in the hall, for very many of the assembled Windows once started from 3.x.
Esposito was replaced by
Sasha Goldstein (Sela Group) with a performance about PerfView. This was the third consecutive report in English, and in just one day there were as many as five in the main hall: at this conference one could not get bored, even without knowing Russian at all. As shown by the feedback from the audience about the Goldstein report, many have gained practical benefits for themselves, having familiarized themselves with the instrument for the first time and immediately wanted to use it.
And later in another hall he spoke with the theme “The C ++ and CLR Memory Models”, and in this case the reviews turned out to be even more enthusiastic: the ability to “just talk about the complex” was noted by many. As a result, in the top 10 DotNext reports (according to the audience estimates) the same speaker took both gold and bronze:
- Sasha Goldshtein - The C ++ and CLR Memory Models
- Dino Esposito - ASP.NET Core 1.0: Challenges and Opportunities
- Sasha Goldshtein - Performance For Free
- Andrey Akinshin, Julia Tsisyk, Anatoly Kulakov - Let's talk about arithmetic
- Dmitry Soshnikov - How many lives does .NET: think about the fate of your favorite platform
- Sergey Schegrikovich - ETW for .Net developers
- Igor Chevdar - Code Generation for Optimization
- Dmitry Ivanov - Reactive Multiprocess Interaction: JetBrains Rider Framework
- Igor Labutin - Diagnose WCF
- Vitaly Baum - Practical examples of creating Microservices
Meanwhile, in the second hall,
Romuald Zdebsky (Microsoft) talked about games, and the question arose "how relevant is the report at this particular conference." Zdebsky used spectacular videos of the latest games like Deus Ex: Mankind Divided, but these are AAA titles, big game developers, large western companies — could a simple Russian .NET developer have something to extract for themselves? As it turned out, he could.
First, the report drew attention to the fact that simple games (for example, 2D) can be done using Xamarin - so you can try to do something at once for all mobile platforms, while not encountering a high input threshold. And secondly, it was said that even in a more ambitious project, you can cut corners: taking the Unity engine and buying models in the official store, create a full-fledged game without mastering many things.
In passing, the Microsoft solution to open the Windows Holographic platform (used in HoloLens) was mentioned. Right now, this does not affect the developers, but in the future the news is good: if the VR / AR market is large, it will be great to write code right away for a large user base of AR devices from different manufacturers. By the way, in the breaks of the conference, it was possible to evaluate the prospects of VR / AR on my own experience and the vestibular apparatus: the attraction with the DK2 version of Oculus Rift was not idle.
The afternoon report in the main hall, although it was not at all about Core, also appeared in the format “you hardly need for the current project, but in general you should know.”
Andrei Akinshin (JetBrains) presented puzzlers related to arithmetic, and opened a new hall in what seemed to be the most basic operations. The first example, “Write (0.1 + 0.2 == 0.3);” was hardly surprised by the fact that the answer was false (it is widely known that floating point operations throw up such surprises). But then there were a lot of reasons for a mistake - for example, it turned out that the seemingly obvious expression leads to unexpected results in a specific configuration. And how do you think which of the options is true here?
Then two reports in a row - from
Nikita Tsukanov (ProMarket) and
Maurice de Beyer - were devoted to Docker. As Maurice noted, the name of the project and the logo were chosen extremely well: the analogy with the loading of containers on sea vessels perfectly explains its use. Once upon a time, ships were loaded “as is” (for example, individual barrels), and this led to “compatibility problems”: how to arrange them in such a way that they fit as much as possible, and everything does not crash? With the advent of transport containers of strictly fixed size, guaranteed to be compatible with each other, life has become much simpler, and the loading of ships has become much more efficient. Docker allows you to achieve about the same.
Tsukanov, enumerating the environments for deployment, drew attention to the fact that the need for cross-platform starts already within the development team: “the front-end users sit with javascript for their MacBooks, they have seen this Windows in our coffin”. Immediately I wanted to wait for HolyJS and hear if the “front-end users with MacBooks” mention Docker in their reports.
Finally, in the last slot was a report by
Roman Nevolin (WaveAccess) about machine learning. Here, as in the case of the game report, the question was “is it relevant to the audience?”: Let this be the future, but does this matter specifically for the audience? Here, the speaker also explained what he has: the range of tasks for which machine learning can be useful is quite wide, and the entry threshold is lower than can be assumed. Not to be unfounded, Nevolin demonstrated its use - for example, for such an urgent task as the recognition of spam in the stream of incoming messages. The phrase “scientific method of typing is the basis of machine learning, it will save us” was especially remembered.
According to Roman, machine learning is primarily useful in such cases:
1. When the algorithm is difficult to describe in code, but easy to explain to a person.
2. When you try to predict changes (for example, stock prices).
3. When the algorithm should be improved due to the accumulation of data.
It is curious to find out in the comments: in what you are working on now, do you have to deal with the tasks that fall under these descriptions and in which machine learning could help?
At this conference ended (those who want more, we wait in December at the
Moscow DotNext ). But the “Summer Festival of Developers” did not end:
Mobius about mobile development and
HolyJS about JavaScript remained ahead, and we will talk about them in the following texts.
