Should all Programmers Learn Functional Programming? The pros and cons of this question that will be tackled in a panel discussion this Saturday. This panel discussion is a part of the Turing Awards lecture series that happens at Persistent’s Dewang Mehta Auditorium at 2pm on the first Saturday of every month this year. The panel discussion will follow the Turing Awards Talk on the life and work of Robin Milner.
Topic of Discussion
Most programmers in the industry learn procedural programming (e.g. C), or object-oriented programming (Java, C++). However, functional programming (Haskell, Scala, F# all of which are influenced by Robin Milner’s ML) is considered by many to be a significantly more powerful method of writing good programs. Functional programming is a different way of doing programming, much different from procedural or object oriented programming, it is significantly more powerful, especially in terms of the abstractions that can be built into the programs, and generally they lead to programs that are shorter, safer, and often faster than comparable procedural programs. And finally pure functional programming disallows side-effects, which means that there is no global state, functions always return the same values for the same input parameters, and data-structures are immutable. Due to this property, functional programs are easier to parallelize, and hence this is gaining increasing importance in as we move to multi-core architectures.
The flip side is that functional programming has a significantly harder learning curve, and many programmers find it difficult to learn and become proficient in functional languages. Functional programming languages are not widely used in the industry, since it is difficult to hire programmers. Thus, some people in the industry argue that adoption of functional programming does not make economic sense and will this always remain a niche area for academia and hobbyists.
The panel consists of the following people from industry and academia who have spent many years studying and using functional programming languages as well as more conventional languages for many years:
- Prof. Raju Pandey: is an associate professor of computer science at the University of California, Davis. He has been working on functional programming for 15+ years. His other areas of interest include sensor networks, distributed computing, programming language design and implementation, operating systems, and system security.
- Dhananjay Nene: is the Chief Architect at Vayana Software. He writes a very highly regarded blog about programming, design, architecture and the internet. You can read some of his past articles on functional programming on his blog.
- Kedar Swadi: is the CTO and Co-Founder of Pune based AlgoAnalytics, before which he has worked in various senior roles at Avaya, Persistent, and Rice University. He has a PhD in the area of Programming Languages from Princeton University.
- Rustom Mody: has designed and taught a wide variety of new courses in the University of Pune, and has been one of the early adopters of functional programming in India. He is also a founding partner in The Magus a firm which specializes in providing training in functional programming languages like Haskell, and other similar technologies.
The panel discussion will be moderated by Navin Kabra.
Fees and Registration
This is a free event. Anyone can attend.
The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 6th October. This event is free and open for anybody to attend. Register here
For more details about the event, see the other PuneTech article – Turing100 Lecture: Robin Milner and Polymorphic Type Inference in Programming Langauges