Thursday, 9 October 2014

Functional Conference - FuConf2014

Day1 at the Functional conference - FuConf2014

Keynote:
The keynote 'The joy of functional programming' was delivered by Venkat Subramanium. Indeed a joy to listen to this talk. There were lessons shared on coding standards and sub-standards.
I had not set expectations before the talk. As the talk progressed Venkat shared the history of programming, computability, object oriented programming and mention of this quote by Alan Kay who coined the term object oriented.
I made up the term 'object-oriented', and I can tell you I didn't have C++ in mind
-- Alan Kay, OOPSLA '97


The talk centered upon what was presumed as 'mainstream' once upon a time needn't be the word of the Lord. 
Venkat deconstructed the word mainstream by quoting many examples like:
-heliocentric theory.
-importance of hygiene at hospitals.
-women's right to vote.


The gist of the above references being: not to fall prey for dogmatic mainstream theories but to be as pragmatic as possible.


Mention of Rosa Parks was a spark in the talk, he then moved on to explain pure functions, expressions, statements, programs returning null value, goto statements, variable declarations, use of parallel stream, referential transparency and lambda expressions in Java 8.


He shed light upon the use and misuse of expressions versus statements.


Coding standards
-Use of expressions over statements


Coding sub-standards
-use of statements
-program returning null value
-goto statements


He also cited examples of lazy coding and his experiences with code reviews. Every participant had a lesson to carry back and implement.


There was a mention of the syllabus and the academicians in the talk. 
Thought to ponder upon: 
What's taught , learnt and implemented in schools? 

Clearly, teaching faculty like Venkat and his books can help a great deal to the student community. 
When asked 'which is his favorite programming language', he answered that he enjoys coding in every language and that he can solve client issues irrespective of the programming language used to code. The talk was well-constructed. The message and lessons were clear.
His ability to teach and share is commendable.The talk was, in the later sessions of the day recollected and referenced to. In one word the talk on the joy of functional programming was/is impactful.

I opted to attend talk 2: Functional Reactive UIs with Elm by Shashi Gowda.

In technical sessions, people expect to know and learn what is being talked about. Shashi did meet the expectations. This was an introductory course on elm. He meticulously showed examples of programming in elm. The participants could gather several practical applications of elm during the talk.


Primarily, I think elm can be a language which could be introduced to first time coders/learners.
The practical browser implemented result screen and the debugger screen motivates new learners to continue to learn. For someone who wishes to build a virtual theme park, Elm is a place to start off with.


Some of the practical implementations of elm:
  • Education - practising to code and debug.
  • Building prototypes using the model, update and display paradigm.
  • Gaming - writing code for designing games like chess, mario, bounce(ball).
  • Tracing mouse clicks for various other applications.
  • Designing icons, banners and animated gifs.
If you are interested in UI designing I think you might lose sleep thinking, learning and implementing elm post this session. Discussion on elm-html, frp, syntax, semantics and implementation of elm, followed. There was a call out to the audience to try out interactive programming in Elm.
In one word, the talk was inspiring and on day 2 the audience agreed that it was an impressive talk.

References:
elm-lang.org/try


Before I headed to talk with the FuConf organizing committee, I attended another talk by Premanand Chandrasekaran on 'Functional Programming in Java' who ripped open the chest of inventory management system by providing insights into search functionality, warehouse, item/product count, fetch first item, total items in stock in a particular/all warehouse/s using Java 6,7,8 implementation methods. 
More followed with mentions of standards and sub-standards of Java programming.
In one word, the talk was informative.

Day 2 
It was evident on day 2 that all attendees craved for more learning and interaction with the functional programming community. 

Keynote:
Bruce Tate in his keynote 'The role of fear in language adoption' explained the pros and cons of 'Crossing the chasm' for an employee and the organization itself. 
The fear factors as per Bruce were segregated as Paralyzing and Motivating fears which would creep in when an organization tries to adopt to a new / different programming language than the one which is in existence at a particular organization.

In recent times the paralyzing fear factors are: Support for the adopted language, building communities, onboarding required talent and documentation.
And motivating fear factors are: concurrency, code complexity, multi-core and distribution.

Not all were accepting of the idea of fear in adopting to a different language. 

The other talks that followed on day 2 shed light upon programming in functional language like Dyalog. The talk delivered by Morten Kromberg had the newbie's and the experienced craving more for DyalogAPL. I spoke to a Dyalog programmer Radha who was overwhelmed to have met Morten the CTO at Dyalog and expressed her joy of getting to know the community. She explains that where complex computations are involved programming in Dyalog can come to your rescue.
The speaker then briefed about the history and mentioned that functional programming has existed and has been able to solve problems for several companies predominantly in the 1960's - 1970's. And that functional programming is not as new as it is presumed to be. 
The talk was hilarious, informative, very well presented and had the audience rushing towards Morten post the talk and ask for additional coaching exercise. Morten did express his willingness to coach the interested lot.
It struck to me that, what if Dyalog is introduced as part of the syllabus in educational programs? I guess the learners would enjoy learning and programming in this language(which has survived for five decades) for years to come. I personally liked the usage of cachedget among other computations. 

Dyalog has existed for over 5 decades and the team has made updates to keep up with the trends in programming to this day. Radha conveyed that the recently rolled out version of Dyalog is feature rich with excellent and quick updates from the support team. 

The current trends in programming and what the participants were gaga about at this conference as I could gather from one of the slides from Bruce Tate's presentation is: scala, erlang, elixir, haskell, clojure and with many more programming languages exploding, I prefer to conclude that there are many solutions to one problem. Figuring out how to code, test , implement tdd, integrate with stand alone, web apps, services offered, how to deploy and release is now a choice left to the learners.

Kudos to the Functional Conference committee for organizing this educational and very informative conference for the developer and the testing community likewise.

To sum up the references made and jargons used at the conference, here's a word cloud: