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
fp:home [2014/10/25 12:13]
djo Added external link to Scalaz presentation
fp:home [2017/07/12 21:41] (current)
djo [Lisps, more generally]
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]]
  
-Put quite simplya 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.+===== Lispsmore generally =====
  
-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.+  *[[http://​practicaltypography.com/​why-racket-why-lisp.html|Why Racket]] is an excellent blog describing benefits that the Lisp family of languages generally brings to programming. 
 +  *[[http://​www.lispcast.com/​idea-of-lisp|The Idea of Lisp]] provides useful context and history explaining why Lisp has endured and remains useful today. 
 +===== Scala =====
  
-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.+  * http://​noelmarkham.github.io/​scalaz-scala.io -- Excellent Scalaz presentation
  
-===== More on this ===== +===== Java and FP (pre Java-8) ​=====
- +
-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 25: Line 30:
   * [[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]]
  
-===== External links ===== 
  
-  * http://​noelmarkham.github.io/​scalaz-scala.io -- Excellent Scalaz presentation 
fp/home.1414253637.txt.gz · Last modified: 2014/10/25 12:13 by djo