Raghu will be presenting the following session
filter_list help_outline
  • 45 Mins
    Talk
    Intermediate

    The type-system of Haskell is well-known as well as notorious for its rigour & strong mathematical foundations.
    In this talk, we would like to explain about the recent idea of GADT's and how they help eliminate runtime checks & issues.

    Our hope is that newbies to Functional Programming, and esp., Haskell are no longer intimidated by the term GADT's but instead see them as their ally in conquering some types of problems.


1. What got you into Functional Programming (FP)?

My crazy love for Math & patterns, coupled with an inherent laziness to write verbose code led me to different on a quest for different programming languages & paradigms such as LISP, Mathematica, J, etc.

And when I was working in the UK, an architect friend there who was going to study Type theory at Oxford suggested I give Haskell a try--and it was love at first byte! :-)

Mathematical functions, and their compositions were ALMOST the SAME in CODE as in real Equations!

The paper "Why Functional Programming Matters" by John Hughes, the book SICP, and many other gems, coupled with my decision to delve deep into FP using Haskell as a language made the perfect combination...and I've been hooked ever since!

2. What has been your best moment or highlight working with FP?

To steal a *term* (pun un-intended) from a famous Martin Garner book, there have been countless tiny "Aha!" moments in my journey of trying to un-learn the imperative style of thinking/programming & grokking functional programming concepts.

Especially dear to me was the "fan-boy" moment when I was able to meet John Hughes in person in Bangalore during Functional Conf-2016 & discuss with him some ideas that my friend & I were working on. We were also able to 'port' a major portion of a popular open-source library by Google written in terms of over 30 Java source-files into a Haskell system of just 70+ lines of succinct code!!

That and many more successes at my current start-up where I was able to implement code using FP in Python--that gave rise to hitherto unseen levels of code-correctness, reliability & maintainability.

All this with just the core concept of Pure functions in the mathematical sense!  This has reinforced my belief that FP is a very elegant approach of specifying & modelling problems & solutions with a happy side-effect of obtaining lots of re-usable, compose-able, unit-testable & maintainable code.

3. What are some of the greatest challenges of working with FP?

To stay 'on course' & to inspire others to join ! Let me explain...

I have seen that, especially in multi-paradigm languages that do not enforce FP concepts strongly such as Python, Java, etc...the developers are almost always 'tempted' to forgo the control needed to be exercised to isolate pure code from the impure mess that is the bane of such systems.

I feel we need more & more people in the FP community to evangelize & show the world what can be done through FP, and that it is not rocket-science.

Part of the challenge is also due to a general aversion to all things Math -- which is a bigger problem anyways. So, I think there is a dearth of great expositors/teachers who can inspire FP newbies to the field.

4. All the mainstream programming languages are adding functional programming features. Most new languages and frameworks are strongly influenced by FP. What is your advice to object-oriented programmers?

To think 'object'ively' and weigh the pros & cons of FP -- to give it a try with an un-biased mind! :-) 

5. What will be some of the key takeaways from your sessions at the conference?

A simple mathematical intuition of what is it that is happening w.r.t. the feature called GADT's--that has been the overarching interest for me -- how can we make esoteric-concepts more accessible to the general public/developers -- so that they too can jump in & wet their feet in the wonderful waters of Math in general & concepts which rely on Math, such FP, Physics, Machine Learning, etc...

6. The conference has more than 50 sessions. Which ones are you most looking forward to attending and why?

I am interested in all the talks, but I do have some favourites I am looking forward to.

I am very excited to hear Edward Kmett's keynote on his Logic Programming framework Guanxi, which is attempting to unify several important milestones/techniques in terms of efficiency of both specifying & solving constraint-solving, which can have far reaching implications for AI & many other fields in the future.

And I am eagerly awaiting the sessions on Haskell & APL -- which is another favourite of mine in terms of bringing novel ways of thinking about programming...!

And more than sessions, I love the chance to interact & listen to fellow-developers & master practitioners share their war-stories & wisdom!

help