InfoQ

InfoQ

Presentation

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Recorded at:
Recorded at

Functional Programming: A Pragmatic Introduction

Presented by Jim Duey on May 06, 2011 Length 00:48:34     Download: MP3
     Slides
Sections
Architecture & Design,
Development
Topics
Functional Programming ,
Architecture ,
Programming ,
CodepaLOUsa 2011
 

How would you like to view the presentation?

In case you are having issues watching this video, please follow these simple steps to help us investigate the issue:
1. Right click on the video player and select Copy log
2. Paste the copied information in an email to video-issue@infoq.com (clicking this link will fill in the default details in most email clients).
Note: in case your email client hasn't automatically picked up the email subject, please include in your email the URL of the video too.
3. Done.
We will investigate the issue and get back to you as soon as possible. Thanks for helping us improve our site!
Summary
Jim Duey explains functional programming through Java code samples, emphasizing the need for a mindset change in approaching coding and why the functional paradigm is useful.

Bio
Jim Duey has spent over 20 years as a professional programmer. He founded Intensive Systems Consulting, Inc. for Clojure consulting, an embedded/industrial software consulting and developer mentoring. He has written several tutorials on Clojure programming. He can be reached at intensivesystems.net and @JimDuey.

About the conference
Code PaLOUsa is a conference designed to cover all aspects of software development regardless of technology stack. It has sessions revolving around Microsoft, Java, and other development platforms; along with session on higher levels that are platform agnostic. The conference schedule will feature presentations from well-known professionals in the software development community.
relate to erlang or not? by Meng Jian Posted
Re: relate to erlang or not? by Ricardo Aguas Posted
C++ is now functional by Faisal Waris Posted
So now java is jumping on the bandwagon as well by david karapetyan Posted
Re: So now java is jumping on the bandwagon as well by P. H. Posted
Re: So now java is jumping on the bandwagon as well by Henrik Baastrup Posted
Re: So now java is jumping on the bandwagon as well by Stephan Kennedy Posted
Good explanation by Baljeet Sandhu Posted
  1. Back to top

    relate to erlang or not?

    by Meng Jian

    Is this talk relate to erlang or something like that?

  2. Back to top

    C++ is now functional

    by Faisal Waris

    The new C++ standard (almost done) supports lambdas and clojures - as the speaker notes.

    The main idea was to support working at a higher level of abstraction and yet allow fine-grain control for performance.

    This should be very significant over the long haul.

  3. Back to top

    Re: relate to erlang or not?

    by Ricardo Aguas

    No, This video explains a little bit of functional programming concepts applyed to OO Programming, in this case, Java.

  4. Back to top

    So now java is jumping on the bandwagon as well

    by david karapetyan

    Functional programming in Java is a little silly. You don't see Haskell programmers trying to code solutions using object oriented patterns. The Java platform is not suitable for functional programming because it is not built for optimizing patterns and process that functional programmers use. There is nothing to be gained from using functional constructs in a java setting until the platform adapts and starts to optimize functional constructs unless of course you want to write slow java code like in 1.0 days in which case go right ahead and pepper your code with inner classes galore.

  5. Back to top

    Good explanation

    by Baljeet Sandhu

    Good talk. As a Java programmer this a nice and gentle introduction to the topic for me and a lot of it stuck. Lots of other resources on the topic get complicated so quick that they discourage beginners. Of course I assumed that the use of Java was more for demo purposes only. In real life I would pick a more suitable language.

  6. Back to top

    Re: So now java is jumping on the bandwagon as well

    by P. H.

    Since
    (1) He said he wasn't teaching folks to write functional programming in Java; he was showing the functional thinking.
    (2) Languages don't "jump" on anything, but possibly this metaphor could be have meaning if and when there is syntax support for functional programming. He wasn't talking about this other than to mention in passing the lack of syntax support.
    (3) "Optimizing patterns and process that functional programmers use" that would NOT only be the role of the compiler, but would be the role of the runtime. Scala and other languages have shown that functional languages can work effectively on VMs (JVM, CLR ...).

    Seems your odd rant has little applicability.

  7. Back to top

    Re: So now java is jumping on the bandwagon as well

    by Henrik Baastrup

    Yes - to me it looks like he have taken out the good old Strategy GOF pattern and try to use it in deferent ways. So I believe that you are right, using Java as an example for Functional Programming is not the best language.

  8. Back to top

    Re: So now java is jumping on the bandwagon as well

    by Stephan Kennedy

    I believe he was using java so that he could explain some concepts of functional programming to java developers without complicating the presentation by having to explain a functional programming language as well.

Educational Content

Eventually Consistent HTTP with Statebox and Riak

Bob Ippolito explains how to solve concurrent update conflicts with Statebox, an open source library for automatic conflict resolution, running on top of Riak.

Java.next

Erik Onnen attempts to demonstrate that Java is still the best programming language for the JVM if simplified idioms are used along with proper tooling.

Evolution in Data Integration From EII to Big Data

Approaches to integrating data are changing with emergence of cloud computing.

Winning Hearts and Minds: How to Embed UX from Scratch in a Large Organization

Michele Ide-Smith presents the lessons learned in the process of introducing UX principles and techniques into a large organization through a series of small steps.

LMAX Disruptor: 100K TPS at Less than 1ms Latency

Dave Farley and Martin Thompson discuss solutions for doing low-latency high throughput transactions based on the Disruptor concurrency pattern.

Thoughts on Test Automation in Agile

Rajneesh Namta shares his thoughts, experiences, and some of the critical lessons learned while implementing software test automation on a recent Agile project.

Actor Interaction Patterns

Dale Schumacher presents several patterns of actor interaction that can be used in collaborative programs written in any language.

Scalaz: Functional Programming in Scala

Rúnar Bjarnason discusses Scalaz, a Scala library of pure data structures, type classes, highly generalized functions, and concurrency abstractions to perform functional programming in Scala.