Presentation is loading. Please wait.

Presentation is loading. Please wait.

Presented by Julian Togashi & Ryan Lewis CPSC 476, CSUF.

Similar presentations


Presentation on theme: "Presented by Julian Togashi & Ryan Lewis CPSC 476, CSUF."— Presentation transcript:

1 Presented by Julian Togashi & Ryan Lewis CPSC 476, CSUF

2  We will briefly cover two areas: 1. Define Clojure as a language ◦ (imperative languages v. functional languages) 2. Perform a SWOT Analysis ◦ Strengths, Weaknesses, Opportunities and Threats

3  Functional Programming Language ◦ (a flavor of LISP)  State separated from Objects ◦ (persistent data structures)  Robustly supports concurrency ◦ (functions natively execute in transactions)  Built upon prevalent platform ◦ (runs on JVM)

4 http://msdn.microsoft.com/en-us/library/bb669144.aspx

5 HelpfulHarmful Internal OriginStrengthsWeaknesses External OriginOpportunitiesThreats

6  Targets JVM, CLR (Common Language Runtime, and Javascript  Compiles directly to JVM bytecode  Dynamic language - Polymorphism  Dialect of LISP  Immutable persistent data structures  Strong multithreaded design  Heterogeneous collections, return types  Identities (values emphasis)  Ideal for transactions  Uses REPL (Read, Execute, Print, Loop)  Can be embedded in a Java program  Can be used as a scripting language  Infix notation does not require precedence rules  Less configuration required than Java Apps  Lazy Sequences  Easily model infinite sequences  Java Interoperability

7  Exciting ecosystem  Easily supports concurrent operations  General purpose programming  Native GAE support  AI development like NPCs and Expert Systems  Web applications  Mathematical systems  Responsive testing – updates easily deployed

8  Not currently interoperable with.Net  Syntactically different that traditional C++/Java programs  Slow Start Up from JVM (in particular command line)  No-tail recursion optimization

9  Introduced in 2007 so relatively new  Infant community support  No classes / Functional Syntax  No object orientated support  IDE support is still relatively immature  Not currently common in client projects

10  http://clojure.org http://clojure.org  http://www.infoq.com/articles/deadline-clojure-appengine http://www.infoq.com/articles/deadline-clojure-appengine  http://bloodredsun.com/wp- content/uploads/2011/10/5_major_jvm_langs_abs.png http://bloodredsun.com/wp- content/uploads/2011/10/5_major_jvm_langs_abs.png  http://www.catalysoft.com/articles/goodAboutClojure.html http://www.catalysoft.com/articles/goodAboutClojure.html  http://www.infoq.com/news/2009/01/clojure-interview- halloway http://www.infoq.com/news/2009/01/clojure-interview- halloway


Download ppt "Presented by Julian Togashi & Ryan Lewis CPSC 476, CSUF."

Similar presentations


Ads by Google