If I were to give a half hour talk about Javascript, what would it be? I would love to talk about Functional Programming in Javascript. I don't claim to be an expert but I am very satisfied in how I use it and make designing an API easier and clearer.

I will relate to my audience how I fell in love with Functional Programming as an beginner in the field. When I stated developing with it on my first project, the advice of Douglas Crockford set me in the right path. In that respect I want to talk about the following ideas.

  • Composition
  • Pure Functions / Referential Transparency
  • Closure
  • Map, Filter, Reduce

Not much but I am pretty worried how I would go explaining this wonderful concepts in such a straight and pragmatic way to go about it. What I find in talks sometimes is that it takes too much theory and not enough code. Making it a live coding to demos and what not.

My focus is actually not on the style itself but the way it makes designing code easier and maintainable, which takes into account how familiar with the team is with the style. How it tackles state in a pragmatic Javascript of the way. Really, I can't say too much nor take too much of my current code from my project.

I won't really go into monads or type systems as it is not so supported but it isn't really that hard to do so. Nor should I make myself champion as the style itself has its flaws and whatever principle I sermon about does not beat careful thought and hard work. Copy pasting in this industry is apparent, it really takes dedication and time to make it work regardless of style or probably even the editor.

I would definitely love to talk about the power of functions and I can talk about it for an hour or so and share my enlightenment with it. I'm not sure if I can do such a good job considering there are true users in the room. I can only speak from the heart as an aspiring developer and who wants to make great code.

Now what would be a good functional exercise to impress the audience? Something I have to plan for the following days.