0
Welcome to the World                                of                                Clojure                         The ...
Welcome to the World                                of                                Clojure                         The ...
What to expect in this presentation?                         railando                  .com                         Gain%%...
What to expect in this presentation?                         railando                  .com                         Gain%%...
What to expect in this presentation?                       •Understand what Clojure is                       •Understand w...
Some problemsthat plague people today       with regards to software development
Subpar language extensibilityLanguages are extensible: libraries, gems, etc.          But not extensible enough        Exa...
New langugages build libraries slowly   Some language’s greatest reason to use      (even reason to be in existence)      ...
Parallel Processing    Making an existing application thread-safe    means basically rebuilding it from scratch if written...
Mutable State It’s been a given in programming since Turing     Machines, so hardly anyone questions it  Tools like LOGO o...
What now?          How is          Clojurean answer to these problems?
Functional Programming   Mutable State is a well-managed exception,                   not the rule      Pure functions: Do...
Parallelism    Clojure manages mutable state well, taking   parallelism (in different flavors) carefully into              ...
ExtensibiltyClojure’s extensibility mechanism (called “Macros”,  an all-day name for a world-class concept) is            ...
Libraries / Communities             Based on Java / JVMCan fully profit from Java’s enormous community,      battle-proven ...
LISP syntax           Clojure is a dialect of LISP!       Syntax is simple. I mean: simple.    No LR parsing, Chomsky gram...
Our experience               Surprising amount of libraries availableWeb develpment greatly simplified. Many things that re...
A real life example       See      Demo
A real life example       See      Demo
What now?  Try it !
Finally               Care for             help?          consulting?           support?           training?Don’t forget t...
Upcoming SlideShare
Loading in...5
×

Clojure

303

Published on

Highlight of experience of Clojure. Presented to the startup scene in Berlin.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
303
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Clojure"

    1. 1. Welcome to the World of Clojure The language for Web startups? railando .com Gain%%Speed%with%%Ruby%on% RailsBerlin, Sep 21, 2012
    2. 2. Welcome to the World of Clojure The language for Web startups? railando .com Gain%%Speed%with%%Ruby%on% RailsBerlin, Sep 21, 2012
    3. 3. What to expect in this presentation? railando .com Gain%%Speed%with%%Ruby%on% RailsBerlin, Sep 21, 2012
    4. 4. What to expect in this presentation? railando .com Gain%%Speed%with%%Ruby%on% RailsBerlin, Sep 21, 2012
    5. 5. What to expect in this presentation? •Understand what Clojure is •Understand what functional programming is •Understand its benefits and drawbacks •Inspiration to your own thoughts    •Hear about practical experience •Know where to get help: railando .com Gain%%Speed%with%%Ruby%on% RailsBerlin, Sep 21, 2012
    6. 6. Some problemsthat plague people today with regards to software development
    7. 7. Subpar language extensibilityLanguages are extensible: libraries, gems, etc. But not extensible enough Example: Machine Learning, R
    8. 8. New langugages build libraries slowly Some language’s greatest reason to use (even reason to be in existence) is great library supportOtherwise great languages are not being widely used because of (still) poor library support
    9. 9. Parallel Processing Making an existing application thread-safe means basically rebuilding it from scratch if written in an imperative language (OO or not)Moore’s Law (double performance every two years) is still observed (as of 2012)Change: Since a physical barrier in semiconductor speed has been reached, Moore’s Law can only materialize through parallelism Proof in the real world: multi-core processors
    10. 10. Mutable State It’s been a given in programming since Turing Machines, so hardly anyone questions it Tools like LOGO or SCRATCH teach kids thatprogramming is equivalent to managing mutable state Makes it incredibly hard to reuse code! Makes it incredibly hard to parallelize.
    11. 11. What now? How is Clojurean answer to these problems?
    12. 12. Functional Programming Mutable State is a well-managed exception, not the rule Pure functions: Don’t depend on state Makes it easy to reason about code and to reuse code (OO was a step, but small)Contrasting paradigm to imperative prpgramming.
    13. 13. Parallelism Clojure manages mutable state well, taking parallelism (in different flavors) carefully into account Clojure code can easily be made parallelEven automatic parallelization is possible to some extentRemember: Who does not manage parallelism well, will be non-existent by 2020!
    14. 14. ExtensibiltyClojure’s extensibility mechanism (called “Macros”, an all-day name for a world-class concept) is unrivaled Examples: Machine Learning/Statistics: R vs. cloj-ml Logic Programming: Prolog vs. core-logic
    15. 15. Libraries / Communities Based on Java / JVMCan fully profit from Java’s enormous community, battle-proven libraries and tools, etc. Plus: Clojure is fast. FAST!
    16. 16. LISP syntax Clojure is a dialect of LISP! Syntax is simple. I mean: simple. No LR parsing, Chomsky grammars, yni.Who knows for sure all operator precedence in C, C++, Java, Perl, Python, Ruby, ... ??? Fully parenthesized notation removes all ambiguity “Polish” notation. (Remember RPN?)
    17. 17. Our experience Surprising amount of libraries availableWeb develpment greatly simplified. Many things that require gems in ruby work “just like that” in Clojure Better performance than Ruby or Python Extremely helpful and vibrant community Incredible fun! We expect enormous productivity gains in new projects.Enables us to do things that matter, that wouldn’t be possible before! Matching database system: Datomic! Webapps: Clojure on the server and ClojureScript in the browser: How cool is that?
    18. 18. A real life example See Demo
    19. 19. A real life example See Demo
    20. 20. What now? Try it !
    21. 21. Finally Care for help? consulting? support? training?Don’t forget to give us a call ;-) bernd.blume@railando.com railando .com Gain%%Speed%with%%Ruby%on% Rails
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×