Today I went to the Codemesh conference. It is their third year running but this is the first year that I have been.
This conference is all about using the “right tool for the job”. It is not about particular language or tool but more about how we can solve problems.
I was a little nervous coming to this one as I have only been to PHP conferences (a topic that I am very familiar with). But this one had talks about completely brand new topics that I had little or no knowledge about. I was also excited by this prospect.
One of the hot themes of the conference is functional programming. I had a little bit of exposure to this during my third year at University, when I did a module on Haskell. However, this was only the basic concepts and I have not looked at this for nearly 2 years!
To sum up day 1, I have decided to tell you the 5 things that I took away from this conference.
1) F# is awesome
Especially for data science – something I am quite interested in. It is a functional programming language with some very powerful features. I have already played with the basics and so will be writing a post on that soon.
2) Type-directed development is also awesome
Type driven design is about modelling programs around “types”. This could be applied to pretty much any programming language (but as usual, their examples was with functional programming languages). The main advantage is that tests can never prove 100% that a program works, but the types can – this was a really interesting talk, I may need to do a post just on this!
3) Breaking down systems is nice – but increases the complexity massively
The keynote was all about the complexities of systems being outside the code. The main example was that if we have a system made of very nice beautifully coded modules, the connections between these modules can be very complex still! This is partly due to a lack of understanding of how all these components work internally and the lack of foreseeing problems before they come.
4) Category theory is very complicated
Especially just after lunch.
5) We need more metrics when it comes to using programming languages
The last talk of the day spoke about how the industry needs to start to measure the effect of adding features to a programming language to show whether the changes are positive or negatives. At the moment, claims are made with no formal evidence. For example, Andreas Stefnik and his team actually found that programmers using statically typed programming languages have higher productivity than those using dynamically typed programming languages – this is contrary to popular belief.
Overall, I really enjoyed the conference so far. It has exposed me to very different things that I am used to which is very good! I am looking to day two tomorrow.