Functional programming languages often claim to be quicker for development, less error prone, and more easily maintained, so why don’t we all use them? The biggest reason is probably unfamiliarity, so this talk will use a popular functional programming language, F#, to illustrate the benefits of functional programming by comparing to a widely used OO/procedural language, C# (which is slowly itself absorbing functional pieces and concepts). At the end of the talk, you should be curious enough and have enough of the initial mental hurdles overcome that you can start playing with F#, possibly even replacing some of your current toolkit with it.
Presentation slides can be found here.
Bio: Dr. Chris Lomont (PhD math, triple BS in math, physics, computer science) has been writing software since 4th grade, doing it professionally for over 25 years. He has worked on a large range of projects, including video games for SEGA, quantum computing for AFRL, hardware and software security for clients including DHS, DoD, and Secret Service, image compression for NASA, CAD software, financial software, explosives modeling for DoD, reverse engineering for many clients, and much more. His off-work time is spent tinkering in his workshop making all sorts of items, ranging from chemical to electrical to software to experimental to artistic.
Currently he is interested in machine learning, scientific visualization, software and hardware security, financial and economic modeling, and software development practices. He is comfortable in many technologies, but prefers C#/F#/WPF/.NET for quick development, C/C++ and assembly for high performance, Mathematica for math/science/exploration, and Python for machine learning. He is comfortable in a range of hardware environments, including embedded work, desktop PC development, and high-performance computing.
Dr. Lomont is a Senior Principal Engineer at Logikos, Fort Wayne, using many of these skillsets to drive next generation software projects, from machine learning for IoT and cloud based analytics, to secure computing product needs, to advanced visualization, applying best-of-breed development practices to make software development more predictable, reliable, and cost-effective.