User Tools

Site Tools


fp:home

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
fp:home [2014/10/24 09:09]
djo [Functional Programming]
fp:home [2017/07/11 17:05]
djo [Clojure(script)] Details, details....
Line 1: Line 1:
-====== ​Functional Programming ​======+====== ​Clojure and Scala ======
  
-Why Functional Programming (FP)?+At the time I originally created this page, functional programming on the JVM was a controversial idea.  Today, Scala and Clojure are de-facto standards for large scale distributed systems development and in my current job we use both.  Here I index blogs and links on these topics.
  
-I do not oppose object oriented programming ​(and think that OO can coexist nicely with FP), rather, I believe that a style of programming that embraces the advantages of both OO and FP can realize significant benefits. ​ For example:+===== Clojure(script=====
  
-  * Easier tests with fewer fixtures and mocksthat refactor cleanly with the production code +  * [[http://​hoplon.io|Hoplon]], the most innovative web programming environment I've seen in a long time 
-  * More natural parallelism  +  * [[https://​coconutpalm.github.io/​clj-boot/​|Boot Boot]], a batteries-included setup for easy library creation with Boot: 
-    * Using a functional architectureoften parallelism can be added automatically as a feature of the librarywithout requiring synchronization or locking+    * Including live compile/​test followed by hot code reload 
-    * With multiple cores being standard equipment on today'​s computers, having natural parallelism that you just switch on is a huge advantage.+    * Markdown to documentation with live browser reload 
 +    * and (optional) upload to gh-pages and Clojars 
 +  * **Perun** - static web sites using Clojure 
 +    * [[http://​deraen.github.io/​hello-world/​|Introductory blog]] 
 +    * [[http://​perun.io|Home page]] 
 +    * [[https://​github.com/​Deraen/​deraen.github.io/​blob/​blog/​build.boot|Example web site / blog using Perun]] 
 +===== Scala =====
  
-Put quite simply, a functional style of programming can be achieved in any programming language, from //Java// to //Scala//--yet it is not the usual style that is practiced.+  * http://noelmarkham.github.io/scalaz-scala.io ​-- Excellent Scalaz presentation
  
-In this space, I'll document my explorations into functional programming. ​ Most of the code here will be in either Java or Scala, though currently I'm using Java most of the time. +===== Java and FP (pre Java-8) ​=====
- +
-In addition, the "​Monad"​ design pattern is a significant pattern in functional code.  An ongoing theme is an attempt to demystify what a Monad is, where every experienced programmer has already used monads (often without realizing it), and why this is useful. +
- +
-===== More on this ===== +
- +
-In this space I index my writings on functional programming,​ and particularly on Monads.+
  
   * [[blog:​improvements_on_null_safety_for_java_and_eclipse|An Option Monad for Java]]   * [[blog:​improvements_on_null_safety_for_java_and_eclipse|An Option Monad for Java]]
Line 24: Line 24:
   * [[blog:​comprehensibly_comprehending_monads|An Informal Introduction to Monads for Java and Scala Programmers]]   * [[blog:​comprehensibly_comprehending_monads|An Informal Introduction to Monads for Java and Scala Programmers]]
   * [[blog:​java_and_scala_monad_tutorials|A list of Scala and Java monad tutorials]]   * [[blog:​java_and_scala_monad_tutorials|A list of Scala and Java monad tutorials]]
 +
  
fp/home.txt · Last modified: 2017/07/12 21:41 by djo