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
Last revision Both sides next revision
fp:home [2014/10/24 09:09]
djo [Functional Programming]
fp:home [2017/07/12 21:39]
djo [Clojure(script)]
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. 
 +===== 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 24: Line 28:
   * [[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