Using Clojure language to improve Eclipse plugin development
Clojure is a dynamic and functional programming language that targets the Java Virtual Machine and has many other interesting features. Three of these features offer real advantages for Eclipse plugins development:
- Multi-threading : Clojure has a really neat design based on functional paradigm, immutable data structures and transactional references system that enables efficient and comprehensive multi-threaded applications development.
- Dynamic programming : the data-as-code philosophy and the direct read and evaluation of code enable to interact with a running application and to monitor or modify its element (the captured screen below shows a Read Eval Print Loop that run in an Eclipse instance and enables direct interaction with it). Moreover the whole structure of the language is dynamic and enable fast application development.
- Java interop : Clojure provides a direct access to all Java elements without any wrapper. Lots of facilities are provided in order to manipulate these elements and all Clojure's elements are Java objects under the hood.
Clojure could be used in two ways to help Eclipse plugins developers:
- As an alternative language to enable the development of robust multi-threaded Eclipse plugins and embrace the power of multi-core computers.
- As a scripting tool to interact with a running Eclipse target and enable fast prototyping.
This talk will give a short presentation of Clojure and the advantages that make it a real alternative to Java. Then the talk will focus on the first works we made at Anyware Technologies to use Clojure in Eclipse plugins development. And then the potential of a more advanced use of Clojure in Eclipse will be discussed.
Gaetan Morice is head of the Eclipse Products Team at Anyware Technologies. He leads Eclipse based IDE projects for embedded software tooling that involve lots of cool Eclipse technologies such as EMF, CDT, TM and DLTK. He also leads research efforts on alternative JVM languages use in Eclipse plugins development.
This session is part of the curated collection of short talks titled
"You and Your Tools"