Sunday, May 31, 2015

SoCal Code Camp San Diego 2015

The always free SoCal Code Camp is coming to UCSD in San Diego the weekend of June 27th and 28th. I am actually going to take it a bit easy this time around and only do one talk titled, Functional JavaScript. This is something that has grown closer to my heart the last few months as I've ponder why my code isn't quite as nice as I'd like it to be. In my search for new ideas, I've run it an old one: functional programming.

Functional programming has been apart of computer science pretty much since the beginning with Lisp, invented in 1958, being the first major language using its techniques. Functional programming eschews mutating variables and espouses pure functions. Things which are very hard to do right in OOP, like compose-ability are trivial in FP.

Please come and check out my talk and be sure to check your interest so that we can get the proper size room. For those who have never been, UCSD is in the amazingly beautiful La Jolla area of San Diego. It is very close to the ocean, shops and restaurants. Code Camp is a perfect excuse for a weekend vacation. Who knows maybe you can get your company to pay for a hotel room since there is no cost for the training.

To rate this talk: http://spkr8.com/t/59461

Here is the full talk description:

For most of its nearly 20 years, developers have tried to make JavaScript more like other imperative languages like Java and C#, but was that wise? Unlike those languages JavaScript doesn't have class inheritance or information hiding, but it does possess high order functions. What are high order functions? Function which can both be sent to functions and return from functions. This allows JavaScript to be programmed more functionally.


Functional languages like Lisp, Scheme, Clojure, and Haskell espouse the beauty of pure functions. What are pure functions? Functions which always produce the same output when given the same input without mutating any variables along the way. This also makes it trivially easy to compose new functions by combining older ones, while in imperative languages, creating compose-able objects can be rocket science hard. The difference between functional and imperative programming can be described as the difference between telling the computer what to do (functional) and how to do it (imperative).


Functional programming can be a bit difficult to wrap your head but in this session I will give some examples of common programming problems that we face everyday in JavaScript and see how functional programming can help us.