Gold sponsors

IBM Corporation

Jasmine Conseil logo

Cloudsoft logo

Sonatype logo

SAP logo

Xored logo

Oracle

Amazon logo

Silver sponsors

Blackberry logo

ZeroTurnaround logo

Amazon Web Services logo

bsi logo

OnPositive logo

Google

Nuxeo logo

Actuate

Bronze sponsors

github

froglogic

Microsoft logo

Paremus logo

JBoss logo

Genuitec logo

Juniper logo

Soyatec logo

itemis logo

Totvs logo

AccuRev logo

Activity sponsor

eclipsesource

Media sponsors

Methods & Tools logo


Polyglot Eclipse: leverage Clojure in bundles development

Gaetan Morice

Making with Eclipse · Standard
Thursday, 15:20, 20 minutes | Ballroom A

Tags:
7
·
8
·
9
·
10
·
11
·
12
·
13
·
14
·
15
·
16
·
17
·
18

Clojure is a dynamic functional language that targets the JVM. Like other felow Java alternatives (Scala, JRuby, Groovy, Java Script and others), it gains more and more momentum among developpers. Clojure distinguishes itself thanks to a combinaison of several assets:

  • A careful and opinionated language design. Clojure is built on a consistent view of programming paradigm (http://clojure.org/state) and so leverages the functional approach through first-class functions and immutable data structures, and a careful state and time management thanks to several dedicated constructs.
  • The Lisp philosophy which praises both dynamicity and meta-programming. Clojure is indeed a dialect of Lisp and offers several dynamic aspects easing test, experimentation and interaction with runtime code. Moreover the powerful macro system backed in the language homoiconicity (all the code is stored in language data structures) enables to design neat DSLs/APIs.
  • A tight JVM integration. The source code is directly compiled into JVM bytecode, without any interpretation nor translation stages. Performances are therefore very close to Java's ones. Besides, Java interop is tidily implemented in the language, allowing straightforward integration in Java systems.

These qualities enable Clojure to bring elegant yet practical solutions to several problems (multi-threading, incidental complexity, ...). However, even if the language itself is quite simple and concise, the involved concepts require a real mind-shift for most developers acustomed to Java and OOP. This talk will make a short introduction of Clojure and will then focus on how it can be leverage in bundles development. Indeed we have been succesfully using Clojure in several RCP products for almost two years.

Clojure in Eclipse plug-in

Agenda:

  • Clojure basics
  • Immutable Datastructures
  • State and Time Management
  • Java Interop
  • Integration in Eclipse
  • Demo

Gaetan Morice is manager of the embedded development tools team at Sierra Wireless. He and his team work on several RCP based products that implement lots of Eclipse and OSGi technologies (EMF, GMF, Xpand, CDT, p2, DLTK, Declarative services and Device Access service). Moreover these products heavily leverage new JVM languages (Clojure and Scala) and embedded ones (Lua).