NDC Oslo 2015 wrap up
At NDC Oslo 2015 I had the opportunity to speak, and it was a fun experience. My talk, F# as our day job by 2016, was part of the functional track and it was a popular track. I had well over 100 people in the audience for my talk even though it was the second last talk of the conference, and it is really nice to see a growing interest in the functional programming world. I stayed most of the time in the functional track room, and here are some of my takeaways.
We are becoming more functional!
I think this is the third or fourth time there is a functional track at NDC, if you count NDC London as well, and I have never seen this much people for the tracks as I did this year. It started of great with a packed room for Bryan Hunter's "Lean and Functional Programming" talk, a talk I really enjoyed. Even though the language you use is not the biggest problem, but it is one way that you can improve yourself, and choosing functional will most likely help with that.
Another talk that I really like was Yan Cui's "A tour of the language landscape". Important parts here was that you need to put in the hours, and it is enough with 20 hours dedicated learning, to get of a good start. Of course 20 hours want make you a master, but after that you will most likely be able to start producing.
If you want to see a general talk about why should start doing functional I recommend Venkat Subramaniam's "Learning from Haskell". He explained to us things like "C++ is not strongly typed, it is sadly typed", and why that is a problem. If you have a good strongly typed functional language with great type inference it will most likely feel as you are in a dynamic language, and this is the nature of languages like Haskell and also F#.
If you are a C# developer and want is interested in F# I do recommend the talk by Phillip Trelford (or Sean's dad) where he showed "F# for C# Developers". I can also pitch my own talk "F# as our day job by 2016" where I try to show some arguments to why I like F# more than C# and also some facts to back that up. That might be a good resource if you want to start using F# in your project.
If you're more into functional design I do recommend Scott Wlaschin's "Enterprise Tic-Tac-Toc -- A functional approach", which was entertaining and a lot of useful information, as always when Scott presents). The "Type-Driven Development" by Mark Seeman i also a great talk for this topic.
What will I try after the conference
Even though I have done some F# I haven't tried idiomatic web development with F# and that is something I definitely will try out after I saw Tomas Petricek demoing suave on stage. He basically implemented two applications and also deployed one of the to azure and heroku in about 45 minutes. Of course he had some small things prepared for building, but he basically implemented the whole backend in that time.
The next thing I'll looking at is elixir and Phoenix. The creator of elixir, José Valim, was at the conference and had a great talk about idioms for building distributed applications in elixir. The main reasons that is possible is because of the erlang vm which you use to run elixir. Elixir supposed to have nicer syntax and a great metaprogramming model to extend the language for your domain. The metaprogramming model was something Chris McCord, the author of Phoenix, demonstrated in one of his great technical talks. The other talk he had was an introduction to Phoenix which I also recommend.
Don't wait for the community, be the community!
My talk was almost the last talk of the conference it was supposed to be a "call to action" talk for functional developers in Norway. Now is the time to start doing functional programming if you haven't done it before. Of course it might slow you down for a period of time, but thinking like that will not make you in the long run. Improvement doesn't happen over night, you have to practice it and you will see that the new knowledge you get will arm you with new ways of thinking about problem.
If you don't have a community were you live, don't let that stop you instead you should be the community!. There are ton of material online and I promise you that there are other people where you live that are interested in functional programming in general and specifically F#. If it is a F# community you want to grow you can always reach out to the people at the F# foundation or people on twitter and you will get help.