I was fortunate to be able to attend this year’s NDC Oslo in the heart of Norway at Spektrum. Overall I enjoyed the line up and prospect of socializing with attendies and the various companies that had stands available. I would like to share some of my experiences there with regards mainly to the talks I attended but also other interesting things that happened outside of the auditoriums.
Key Note - A penny for every object - Mads Torgersen
Mads Torgersen, the lead designer for the C# language gave an interesting key note titled ‘A penny for every object’. He spoke about the history of object oriented programming going through all the pioneer languages and how each had a unique take that infleunced the next generation of langauges and how this evolved over time. While I like most people I had chats to afterwards found some parts of the talk to be very denses, especially on code examples in various languages the talk had a great take away message. The message being that OOP has had a great 50 years so far and it is exciting to have to see what comes in the next 50 years. Mads emphasized that while functional languages are gaining more and more attention it may not be about which one is best but the best outcome would be for the two worlds to be able to work together. Mads sentiment on the topic of functional programming considering the changes we have been seeing in C# over the last releases that highly embrace functional programming. Unless you are truly curios for details on key languages along the evolution timeline of OOP and some of the biggest regrets along the way there is not much else to get from this talk.
Clean Architecture in .net core - Ian Cooper
While this promised to be a great presentation it fell through the floor for me in that this was a very opinionated approach to Clean Architecture making use of Brighter. Don’t get me wrong, not to say brighter is not a good library. The approach makes use of the Command approach with a command dispatcher for implementing ports. This further uses the ‘Russian doll’ model (using brighter library) to allow a pipeline of handlers to operate on a command. This is a very interesting approach and definitely has it’s merits. Furthermore brighter implements:
- Task queues allowing for offloading and handling of requests asynchornously.
The brighter library source code is available on Github here.
At the end of the day Brighter pretty much achieves the same as most projects at Coolblue. There is a queue receiving messages with subscriber registries in place that route to a request handler registry in place to map messages to a specific request handler. The plumbing includes an IOC container, logging and Polly for retry and circuit breaker policies. This is all done in what appears to me to be a very opinionated and rigid approach in terms of the consuming. Going through the brighter documentation was still good as they definitely touch on the major things you need to deal with when working with Clean Architecture and CQRS for micro services albeit showing their approach to these problems. You can find the complete documentation here.
Monitoring A-Z - Steven Simpson
This talk about monitoring was a little 101 than I expected and explains why a third of the room walked out in the first half an hour. I however appreciated the refresher course this provide. There is not much new things to share on this topic as I find Coolblue to be very mature in this regard and there is continued improvement. These are some of the key things this talk touched on in case you are interested at seeing the talk:
- Monitoring and logging terminology
- Approches to monitoring and logging
- Local files
- External servers
- Use of databases
- Structured logging and searches
The state of C#, what have I missed - Felip Ekberg
In this talk Felip went over the iteration of the C# language, looking at the key features of each release. In his talk he also focuses on the C# 7.1, 7.2, 8.0 and beyond. For each release and feature there were code sample on show which you can find here. I will not list the features that he spoke of as the are in the samples repo and public knowledge. If you have not yet seen upcoming features like Ranges, Nullable references, Tuple improvements, deconstruction and recursive patterns be show to have look at the C# 7.x to 8.0 specific samples. To track C# 8 feature statuses have a look here.
Aside from language features Felip also talks about how the benefits of Microsoft having open sourced Rosylyn are really starting to show with the number of contributors and what it has meant to the development of the language.
Felip recently made his C# book, Smorgasbord free which you can find here PDF
C# 8 - Jon Skeet and Mads Torgersen
As one would expect with Jon Skeet giving a talk this one had a full attendance with people sitting on the corridor steps. This talk was very reassuring in showing how the C# team is really becoming more pragmatic than dogmatic. It is worth noting that some of the features discussed in this talk may not actually make it to the official C# 8 release or may be modified.
Nullable reference types
A very interesting feature I was looking forward to seeing was the nullable reference types. While I had read the proposed feature list I had not dug into the details and it was a pleasure to get the details first hand. For more details on this feature and the ability to install the preview head over here. Because this feature introduces a breaking change, it would be rolled out with an opt in flag.
Pattern matching is getting new improvements to the switch statements extending on pattern matching released in C#7. This one warrants a details explanation, you can find details of the proposal here.
A feature that will allow for writing of powerful slicing syntax on enumerables. To track C#8 feature statuses have a look here.
Other cool things
While I probably was in an auditorium 90% of there time there was a talk going on I did try utilize all the time in between and when no talk interested me. There were a lot of booths up from various companies where you could go over and have a chat about new technologies and try out some of their prototypes. There were a lot of stands simply enticing people with challenges to play video games with possibility of winning a prize if you maintain high score. I felt really sad after this seeing how ridiculous my high scores where relative to others. FIFA 18 was off course there to the rescue as I managed to win all my attempts. The really fun part though was chatting with people and getting to know what they work with and what part of the conference they are really enjoying.
I was fortunate to bump into Jon Skeet in the corridors and continue a chuckle that I had started with him on Twitter about how choice of pants the previous day and boy where the ones on that day even worse! Don’t believe me? See for yourself below. I did not get a chance to talk much with him as it was a few minutes before his talk, however it was great to meet the stack overflow man in person.
I waited eagerly to have a chat with Richard Campbell, the host of .NET Rocks after his presentation. He had given a talk about the history of .net and we had a follow up conversation on that. I was really intrigued about his story telling abilities and how he manages to engage an audience after that talk and got to talk more about that. Looking forward to the publishing of his book on the same topic in year of so as he promised. As someone who has a great relationship with many of the key players at Microsoft, this book promises to have quite some interesting stories.
The really cool things…
To really make my trip complete I ensured that I used every opportunity outside of the NDC programme to see the city of Oslo. The weather was perfect and it really is a lovely city. It was a relief to see some mountains for a change after being in The Netherlands for 7 months. Oslo may just be learning a thing or two from Rotterdam architecture as there are a lot of interesting and new building up plus a whole project in place to redefine the city and particularly water fronts. Everything is a bit pricey out there but all worth the extra penny.