Troy Miles @ SoCal .NET:: Functional Programming in JavaScript


Details
Functional Programming in JavaScript
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.
Bio
Troy Miles, aka the Rockncoder, began writing computer games in assembly language for early computers like the Apple II, Commodore C64, and the IBM PC over 35 years ago. Nowadays he writes web & mobile apps for a Southern California based automotive valuation and information company. Troy is fluent in JavaScript, C#, and C++. He is also good in Swift, Kotlin, and Clojure.
Nights and weekends he can usually be found writing cool apps for mobile and web or teaching others how to do so. Troy has spoken at O'Reilly's Velocity, MobileWeb Dev Con, Mobile Dev+Test, NG-Vegas, and Angular Summit. He is a regular speaker at So Cal and Silicon Valley Code Camps and to local developer groups all over southern California and Las Vegas. A few of his talks can be found on his YouTube channel: https://www.youtube.com/user/rockncoder.
Troy loves writing about software development. His first magazine article was published in Dr. Dobb's magazine over 20 years agos. His posts have been featured on Safari Books Online, Packt Publishing and his blog: http://therockncoder.com. He has published videos for Packt Publishing and Learn Now Online.

Troy Miles @ SoCal .NET:: Functional Programming in JavaScript