21
Image Licensed by Ingram Image www.jaxenter.com Issue September 2014 | presented by #40 Getting your REST How to export data to REST JAX London interview WSO2 CTO and keynote speaker Paul Fremantle shares all What’s hot, what’s not This hottest and hottest-nottest Code is food You are what you program The JAX London 2014 issue

#40 Code is food - JAXenter€¦ · the grease catches fire and your kitchen goes up in flames. The software development world’s equivalent to these clean-ing tasks are activities

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Imag

e Li

cens

ed b

y In

gram

Imag

e

www.jaxenter.comIssue September 2014 | presented by

#40

Getting your RESTHow to export data to REST

JAX London interviewWSO2 CTO and keynote speaker Paul Fremantle shares all

What’s hot, what’s notThis hottest and hottest-nottest

Code is foodYou are what you program

The JAX London 2014 issue

Editorial

2www.JAXenter.com | September 2014

Dust has barely begun to settle on the new features of Java 8, and already Oracle has unleashed a storm of excite-ment on the Java community. The official confirmation of new features for Java 9 release has made it an interesting few weeks in Java, indeed, with most of the Java community de-bating the need for the new APIs and modular source code. But the excitement’s not over just yet. The next few weeks have plenty of fun and games in store for us, with both the JavaOne and the JAX London just around the corner.

Speaking of fun, in this issue PHP pro Sebastian Bergmann explains why dishing out bad code is exactly like dishing out bad dosh – and why it helps to think of code as well-prepared

The plot thickens

food. Oracle’s Geertjan Wielenga shows us the ropes of giv-ing our data some REST using NetBeans. Holger Voormann continues his exploration of Eclipse’s Luna updates, taking us through the new project highlights and what’s still missing. Finally, Paul Fremantle tells us about every CTO’s need to balance their breadth and depth of tech knowledge and gives a few hints about his keynote on connecting the world, com-ing in at the JAX London in October. Here’s to an exciting couple of weeks!

Coman Hamilton, Editor

You are what you eat 4Funyuns are awesomeSebastian Bergmann

How to export data to REST 6Getting some RESTGeertjan Wielenga

Connecting the world 14Paul Fremantle about the JAX London

A year of Luna – part II 17Eclipse update highlightsHolger Voormann

Inde

x

Hot or Not

3www.JAXenter.com | September 2014

The word “just”There is one word in the English that every developer fears. The “Voldemort” of the programming community. A word that should set off alarm bells to any developer that has ever had a can of back-end worms opened up over their heads: JUST. “Just chuck the app on the server” or “We’ll just add a new function over here.” There’s no “just” in programming. Every task has potential to come back and explode in a shitstorm of unexpected new tasks and problems that you or your client “just” didn’t see coming.

Over-relying on Big Data We’ve all heard the success stories about big data making big savings for enterprises. Ever since Google claimed they could use analytics to track outbreaks of the flu, enterprises ev-erywhere are looking for analyst miracle makers to move their big data mountains. In spite of all the ways there are to innovate with big data, there’s still plenty of ways to break the bank with large-scale analytics projects – which don’t come cheap if you haven’t noticed. Analytics-based functions like similar content and suggested products sound great at first, but can also pose a risk to a company’s credibility when not properly executed. As big data blogger Paul Barsch says, “What worked for them, may not work for you.”

Java 9 This season’s hottest topic by far: Java 9 (even if many developers gave the news of new features a rather lukewarm response). A JSON API, a HTTP2 client and modular source code left many developers scratch-ing their heads and mourning the absence of new language features, in particular type values. Oracle won’t expecting Java developers to be wet-ting their trousers at the sight of a couple of new APIs, but you have to hand it to them for getting the ball rolling again so quickly after Java 8. Release is set for some time in 2016. Here’s hoping!

IoT in 2020 The Internet of Things and Big Data have long been playing Game of Thrones for the title of biggest buzz-word in IT. Last month Gartner’s Hype Cycle officially confirmed that IoT had reached the “peak of excite-ment” while Big Data edges towards the “trough of disillusionment”. Meanwhile, surveys are estimat-ing that the number of IoT devices (which is about to reach 16 billion this year) will grow to 40 billion de-vices by 2020. If your kettle, cooker, thermostat and wristwatch aren’t al-ready smart, it looks like they soon will be.

Listening to music while programmingIt’s official. Music is good for code – as if you’d ever doubted it. Multiple studies have proven that listening to music over headphones actually enhances your abil-ity to concentrate – and not only better, but faster. The positive emotional effect combined with the blocking out of office distractions provides a great means of getting into the “zone”. One developer, Rob Walling, trained himself to become immediately concentrated by listening to the exact same song while coding – to Pavlovian effect. Deciding on the right kind of sounds is the tricky part, however. Most developers, like WSO2’s CTO (see interview on page 14), will agree that lyr-ics is a big no-no for concentrated coding.

Delicious code

4www.JAXenter.com | September 2014

by Sebastian Bergmann

Writing down step-by-step instructions for preparing a cu-linary dish is not a new concept. According to Wikipedia, the earliest known recipes date from approximately 1600 BC and come from an Akkadian tablet from southern Babylonia. Step-by-step procedures for calculations, algorithms, date back to the 9th century mathematician Al-Khwarizmi. Reci-pes and algorithms achieve the same goal in different con-texts: they provide instructions to make a task replicable. The members of a software development team pick and choose from a variety of methodologies to define their process: their replicable way of producing software.

The preparation of delicious culinary dishes has, at least metaphorically, more in common with the development of high-quality software than you may think.

As a professional cook, for instance, you want to keep your restaurant kitchen spick and span. Cleaning tasks such as brushing the grill between cooking red meat, poultry and fish

have to be done several times a day. Grease build up is a ma-jor fire hazard. This is why grease traps should be cleaned out daily, sinks and faucets should be delimed weekly, and you should wash behind the hot line (oven, stove, fryers) every month. These cleaning tasks take time. Time in which the kitchen staff prepares no food and generates no revenue.

Now imagine that the owner of the restaurant tells you to cut down the time your staff spends on keeping the kitchen clean. This may work in the short run. But in the long run you will get unfriendly visits from the health department. Or the grease catches fire and your kitchen goes up in flames. The software development world’s equivalent to these clean-ing tasks are activities such as refactoring the code to keep it maintainable and writing unit tests for it.

Imagine you are the chef at a restaurant that is known to serve the best steaks in town. You have earned your repu-tation based upon one guiding principle: never compromise. You hand-select the beef for your steaks at a butchery you trust, for instance. You passionately apply your experience

A top chef wouldn’t serve his or her customers second-rate food, so why should you settle for second-rate code?

Funyuns are awesome

You are what you eat

Imag

e Li

cens

ed b

y In

gra

m Im

age

Delicious code

www.JAXenter.com | March 2014 5

and cook the steaks to perfection. Now imagine that the owner of the restaurant tells you to buy your meats from the supermarket (and not just from the butchery at the supermar-ket but pre-packaged cuts from the refrigerated shelf) instead. What do you do? Compromise? Or do you stand up to your boss telling him that quality is not negotiable? This may well lead to a situation where Martin Fowler’s famous quote “If you can’t change your organization, change your organiza-tion!” applies.

When you do not know where your ingredients come from you cannot be exactly sure what they contain. Cooking with these ingredients is not a problem as long as you do not serve people that have food allergies at your restaurant. When you are not using fresh produce, herbs, and spices to prepare a tomato sauce, for instance, you cannot serve an off-the-shelf sauce from the supermarket to a guest that is allergic to garlic with good conscience. The label on the glass in which the sauce is sold may or may not list garlic as an ingredient. But just because it is not listed as an ingredient does not mean that the sauce does not contain traces of garlic; which may be enough to trigger an anaphylaxis.

It makes a lot of sense to use third-party components in the development of your software. However, when you use a component that is not (sufficiently) tested you run the same risk as the cook who uses an off-the-shelf sauce from the su-permarket. You do not know exactly what the code of the component does. It may work fine for the “happy path”. But what about the edge cases? Even worse is using a third-party component that is no longer maintained. It may work fine today. But will it still work when a new version of PHP, for instance, is released?

I would like to leave you with a quote from Julia Child: “The only time to eat diet food is while you’re waiting for the steak to cook.” Bon appétit!

Sebastian Bergmann is a mastermind of PHP development and PHP qual-ity assurance. He has contributed instrumentally to transforming PHP into a reliable platform for large-scale, mission-critical projects. Companies and PHP developers around the world benefit from the tools that he has written.

Advert

REST

6www.JAXenter.com | September 2014

by Geertjan Wielenga

The architectural web development style known as “REST” is based on the HTTP protocol, wherein everything is a re-source, accessed by means of a standardized interface based on standard HTTP methods. Within this context, a REST server provides access to resources, while a REST client ac-cesses and modifies them. Resources are identified by global IDs, which are typically URIs. Handily, REST enables re-sources to have different kinds of representations, such as text, XML, and JSON, so that REST clients can ask for a specific representation via the HTTP protocol by means of a process known as “content negotiation”.

The promise of REST is that you can expose data in a standardized way. Standardization is beneficial in that clients, whether on the desktop or on mobile devices, have a proto-col by means of which your data can be accessed. Moreover, standardization enables tool providers to automate the tasks involved in exposing data as REST. To see how this is done, set up a database in NetBeans IDE and rapidly generate REST resources from its tables (Figure 1).

Above, a database has been registered in NetBeans IDE. Your task is to make data available to other departments within your organization. Rather than spending time coming up with internal protocols, REST gives you a globally accept-ed mechanism by means of which a server can expose data, while multiple clients can make use of it.

In NetBeans IDE, the process is as simple as a few clicks. The code that is generated is standardized in the REST speci-fication. Though the specification is clear and describes eve-rything needed succinctly, quite some code needs to be typed by hand. Manual, error-prone work can be avoided where standards exist. In Figure 2 , the “RESTful Web Service from Database” template provides an entry point out of the box, no plugins need to be installed into NetBeans IDE to enable REST to work, nor are plugins needed for integrating the related technologies provided by Maven and GlassFish.

The template shown above allows a database to be selected, exposing all its tables to the developer. All the tables from the selected database are shown below. For each, a plain old Java object will be created, representing the related table. Fields, getters, and setters in Java will be generated into the

Getting some REST

How to export data to REST Standardisation, automated tasks and “content negotiation” – there are plenty of reasons to use REST for exposing data. Geertjan Wielenga shows us how to get started using NetBeans in a few easy steps.

Figure 1 Figure 2

REST

www.JAXenter.com | September 2014 7

class, which will conform to the JPA specification, annotated according to the annotations it provides. Such classes are known as “JPA entity classes”, each mapping to a table and defining its constraints via annotations provided by the Bean Validation API.

The result is shown in Figure  3. For each table, e.  g., COUNTRIES, a Java class, e. g., Countries, with a related REST web service, e. g., CountriesFacadeREST is created.

Moreover, the logical view of the project provides entry points into each of the REST web services, so that they can be opened directly from NetBeans IDE (Figure 4).

The logical view above provides a clear structure, consist-ing of an overview of the JPA entity classes that map to tables in the database, together with the REST web services that will expose the underlying data (Figure 5).

Supporting the logical view, a graph view shows the de-pendencies managed by Maven. Each JAR file, pulled in from its repository, is shown in relation to the other JAR files in the application (Figure 6).

Accessing the data in the COUNTRIES database is now possible, once the application is deployed. Tweaking the @ Path annotation in the Countries Java file is all that’s need-ed to create a REST resource such as the following: http://localhost:8080/EmployeeRecordManager/webresources/countries.

Clients accessing the URL above can then parse the payload and present it to the user. Changes can be made, depending on requirements, and submitted back to the da-tabase. What should be clear from these features is that standardization is not only of benefit to users of specifica-tions such as Java EE.

“I work as a consultant for different customers, and not all of them have adopted NetBeans IDE as their standard IDE. However, I’ve converted more than a few to NetBeans IDE by showing them the code generation features, such as for JPA and RESTful resources, alone.”, said David Heffelfinger, Chief Technology Officer of Ensode Technology, LLC, a software consulting firm based in the greater Washington DC area.

Or, put another way, tool providers are as much users of standards as web application developers are. The unique

Figure 3

Figure 4 Figure 5

REST

www.JAXenter.com | September 2014 8

features integrated into Net-Beans to simplify the tasks of REST resource develop-ers are made possible by the same standards enabling those developers to create their ap-plications. NetBeans IDE is a free and open source develop-ment environment based on standards, such as those made available by Java EE. Start exporting your data to REST with NetBeans IDE and notice how simple the steps are and how powerful their results.

Geertjan Wielenga is a principal product manager in Oracle for Net-Beans and has been a member of the NetBeans Team since 2004.

Figure 6

Advert

Free evaluations available at:www.tempoplugin.com

Brings you painless time tracking, flexible reporting, planning, JIRA Agile integration, and operations management seamlessly to your JIRA instance. Track work for billing, budgeting, salary calculations, and capitalization measurements. Time tracking means getting things done.

Offers resource, capacity, release, and program planning, JIRA Agile integration, and real-time data seamlessly to your JIRA instance. Transparency, flexibility, and efficiency mean greater overall cost savings.

Brings you flexible financial reporting, utilization and portfolio management, and relevant, real-time data, giving a whole new meaning to tracking value in JIRA. Get the big picture for informed decision making.

Whether you’re looking for better time tracking, planning capabilities, or cost management, look to Tempo’s suite of agile software add-ons for Atlassian’s popular JIRA platform. Used alone or in tandem with one another, Tempo’s solutions help businesses work smarter and more efficiently.

get peace of mind.

REST

www.JAXenter.com | September 2014 9

www.jaxlondon.com

LONDON 2014

featuring

Business Design Centre, LondonOctober 13 – 15th, 2014

In london sInce 2010

follow us: @JAXLondon JAX London JAX London

The Enterprise Conference on Java, Web & Mobile, Developer Practices,

Agility and Big Data!

Bronze Partners: BPM Partner: Special Partner:Platinum Partner: Silver Partner:

REST

www.JAXenter.com | September 2014 10jaxlondon.com

October 13th – 15th, 2014Business Design Centre, LondonLONDON 2014

JAX London is returning from 13th – 15th October at the Business Design Centre, bringing Java, JVM and Enterprise Professionals together for our technology and methodology focused event. JAX London, the place where the most respected thinkers and the brightest minds of the tech community meet, offers a deep dive for the modern developer and architect aiming to transform open technologies into valuable business solutions. We always focus on the big picture: Java core, architecture, and web technologies and professional insight into the latest methodologies and best practices.

JAX London offers a unique experience – featuring some of the most highly regarded and sought after speakers, presenting the latest trends and developments, in a professional and relaxed atmosphere.

Learn how to increase your productivity, identify which technolo-gies and practices suit your specific requirements and learn about new approaches.

Monday is a pre-conference workshop and tutorial day. The half-day and full-day workshops are overseen by experts. On Tuesday and Wednesday see the conference proper taking place – with more than 60 technical sessions, keynotes the JAX Expo, Big Data Con, community events and more.

For more information and the latest news about the conference and our speakers check out www.jaxlondon.com.

Join us for JAX London 2014

Keynotes

Paul Fremantle (WSO2)As Co-founder and CTO of WSO2, Paul spearheads the company’s overall technical and product strategy. Paul is an experienced software and product development pro-fessional, having previously worked as the product lead and architect for the IBM Web Services Gateway. Paul

also has significant experience in Open Source and Open Standards: he was previously VP of Apache Synapse and co-chair of the OASIS WS-RX Technical Committee.

Connecting the WorldThe world is becoming connected: more than 3 billion people online, 8 billion devices, millions of apps. What does this mean to developers? It Means That You developers are becoming the creators of a new world – a connected world. In this talk, Paul Fremantle, CTO at WSO2 will talk about the characteristics of connected organizations: what they do that is different, and why it makes a difference. He will look at key technolo-gies and approaches to create differences and explain the necessary steps to participate in the new world.

Chris Richardson (Chris Richardson Consulting, Inc.)Chris Richardson is a developer and architect with over 20 years of experience. He is a Java Champion and the author of POJOs in Action, which describes how to build enterprise Java applications with POJOs and frameworks

such as Spring and Hibernate. Chris is the founder of the original Cloud-Foundry.com, an early Java PaaS (Platform-as-a-Service) for Amazon EC2 and he spends his time investigating better ways of developing and deploying software.

Developing applications with a micro-service architectureThe micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote he will describe the micro-service architecture and how to use it to build complex applications. You will

learn how techniques such as Command Query Responsibility Segrega-tion (CQRS) and Event Sourcing address the key challenges of develop-ing applications with this architecture. He will also cover some of the various frameworks such as Spring Boot that you can use to implement micro-services.

Markus Voelter (Indepedent / itemis)Markus Völter works as an independent researcher, consultant and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus also regularly

writes (articles, patterns, books) and speaks (trainings, conferences) on those subjects.

Introducing Language-Oriented Business ApplicationsAuthoring and maintaining the complex structures, calculations or rules that lie at the core of many businesses is tedious and error prone. In many cases, Word, Excel or form-based web applications are used to capture this data. This may be convenient for end users, but it is very hard to check the data for correctness. Since the data is often not backed by a well-defined language, programmers have to manually encode the data in a programming language to make it executable for example as part of a calculation engine in a bank or insurance. This removes the domain experts one step from the actual system -- they always have to go through developers. Many of these problems can be solved using language engineering, which refers to the practice of creat-ing, extending and composing domain-specific languages and their IDEs. Over the last few years, language workbenches have matured to the point where they support notations as diverse as tables, mathematical formulas, box-and-line diagrams, semi-structured text as well as regular, programming language-like textual notations. This makes them very suit-able for business applications that, while using user-friendly notations, still rely on well-defined languages and provide IDE support, constraint checking and automatic code generation. In this session Markus Voelter will explain what language-oriented business applications are and why they are useful. He illustrates the approach with examples from several real-world domains. The examples are based on a tool chain that uses only Open Source software: it consists of JetBrains MPS plus a few extensions built by the mbeddr project.

REST

www.JAXenter.com | September 2014 11jaxlondon.com

October 13th – 15th, 2014Business Design Centre, LondonLONDON 2014

Timetable

Monday – October 13th09:00 – 17:00 Java 8: Lambda Expressions & Streams (full day) – SOLD OUT Richard Warburton

09:00 – 12:30 Dataflow, the Forgotten Way (half day) Russel WinderAPI Management – a hands on workshop (half day) Paul Fremantle Hands-on Performance Tuning (half day) Matt Brasier

13:30 – 17:00 Agile Knowledge Exchange through Acting (half day) Duncan Mortimer, Johannes ThönesHands on with Data Grids (half day) Stephen Millidge The Economies of Scaling Software (half day) Abdelmonaim Remani, Josh Long

Tuesday – October 14th09:00 – 10:00 KEYNOTE: Connecting the World Paul Fremantle

10:15 – 11:15 Lambdas and Streams in Java SE 8: Making Bulk Operations Simple Simon Ritter

Why do we Create Software? Roman Pichler

Higher Productivity for Java EE with Forge, Arquillian and JRebel Aslak Knutsen, Simon Maple

Finding Your Way In the Midst of the NoSQL Haze Abdelmonaim Remani

11:45 – 12:45 How to randomly access data in close-to-RAM speeds but a lower cost with SSD’s Uri Cohen

'Bootiful' Code with Spring Boot Josh Long

How do You know Your Solution will make an Impact? Björn Brynar Jonsson

Understanding Real Time Event Processing through Football Paul Fremantle

14:45 – 15:45 Let Me Graph That For You Ian Robinson

Testing within an Agile Environment Chris Gollop, Beyza Sakir

Open Source workflow automation with BPMN 2.0, Java and camunda Bernd Rücker

Reflection Madness Heinz Kabutz

Performance Metrics for your Delivery Pipeline Wolfgang Gottesheim

16:15 – 17:15 Software Apprenticeships: This Time it's Personal Jason Gorman

Rapid Web Application Development with MongoDB and the JVM Trisha Gee

DevOps meets BPM Benjamin Herbert, Masroor Ahmad

The Full Stack Java Developer Josh Long

The Dark Side of Software Metrics Nigel Runnels-Moss

17:45 – 18:45 Detecting Events on the Web in Real-time with Java, Kafka and ZooKeeper James Stanier

Threading Bug War Stories Heinz Kabutz

Spocktacular Testing Russel Winder

Server-Side JavaScript on the Java Platform David Delabassee

Wednesday – October 15th09:00 – 09:45 KEYNOTE: Developing applications with a micro-service architecture Chris Richardson

10:00 – 11:00 Conditional Logging Considered Harmful Sean Reilly

Design Patterns in the 21st Century Samir Talwar

GridGain 6.0: Open Source In-Memory Computing Platform Nikita Ivanov

Do You Really Get Class Loaders? Simon Maple

11:30 – 12:30 Building microservices with Scala, functional domain models and Spring Boot Chris Richardson

Pushing Java EE outside of the Enterprise : Home Automation & IoT David Delabassee

Apache Stratos: the PaaS from Apache Lakmal Warusawithana

Modern Web-scale Architectures Abdelmonaim Remani

13:45 – 14:45 Crafted Design Sandro Mancuso

Enterprise Integration Agility Jeremy Deane

Introduction to Android Wear Peter Friese

15:15 – 16:15 Performance from Predictability Richard Warburton

Moving to a DevOps mode - easy, hard or just plain terrifying? Daniel Bryant, Steve Poole

Squeezing performance out of In-Memory Data Grids Fuad Malikov

The Lazy Developer's Guide to Cloud Foundry Holly Cummins

SOA is Dead (Long Live SOA) Matt Brasier

16:30 – 17:30 KEYNOTE: Introducing Language-Oriented Business Applications Markus Voelter

REST

www.JAXenter.com | September 2014 12

October 13th – 15th, 2014Business Design Centre, LondonLONDON 2014

Agile knowledge exchange through actingDuncan Mortimer and Johannes Thönes (ThoughtWorks)

Knowledge exchange is one of the primary reasons people go to a con-ference or attend a workshop. But talking about experience is not always enough. Talking about it and then experiencing it through doing is what makes the difference. That’s why we’ve combined knowledge sharing and improvisation theatre in our workshop “Agile Knowledge Exchange through Acting”.

In this workshop, participants act out improvised scenes from everyday lean and agile life, including improvised retrospectives, standups, pair-programming and other typical activities. We use improvisation games to create interesting and challenging situations, allowing participants to demonstrate how they might react and learn from the examples provided by others.

In addition, participants will:

• learn more about their emotions

• gain experience using different communication styles

• experiment with new behaviours

Dataflow, the forgotten wayRussel Winder (Freelancer)

Java 8 brings Streams to the JVM, an easy way of dealing with stream based data evolution either sequentially or in parallel. So JVM now has data parallelism covered. There has been a lot of marketing of actors as a tool for handling concurrency and parallelism, systems such as GPars and Akka bring this to Java, Scala and Groovy programming. However there are other architectures: communicating sequential processes (CSP) and dataflow. Go has brought these models of concurrency and parallelism to the world of native code systems but what about the JVM? GPars has dataflow capability.

This session will focus on the dataflow and CSP models of concurrency and parallelism and will present some small practical examples as a guide.

Hands on with Data GridsStephen Millidge (C2B2)

This workshop will give you a rapid introduction to working with Data Grid technologies like Hazelcast, Infinispan, Coherence and others. It will be a mixture of brief slides on the concepts of Data Grids followed by a large amount of hands on Javas code. In the workshop we will configure a data grid on Amazon EC2 with a node on each attendees machine. We will also create a simple chat application using Data Grid Events, and finally we will hunt the POJO across the grid using Entry Processors for On Grid parallel processing.

If you’ve never played with a Data Grid and therefore never had a chance to appreciate the power of this technology, then we will show you how simple and easy it is to get started and use it. You will go away inspired to create your own on-grid applications. Or if not inspired, at least mildly enthusiastic.

Hands-on performance tuningMatt Braiser (C2B2 Consulting)

This hands on lab will present a number of applications which have been built to include some common significant performance bottlenecks. Attendees will be able to work through the applications using a variety of free and open source tooling to get practical experience of identifying and resolving the bottlenecks. The techniques required will be covered

at the start of the labs, and the exercises will give hands-on experience of using the various tools and techniques.

Performance tuning is seen as a black art by many, when really it is a scientific process of measurement and elimination. This lab aims to give attendees practical experience of identifying and resolving some of the key performance problems that are seen in enterprise java applications, although the principals will extend to applications in any language. Hopefully once attendees have identified and resolved a performance problem in a lab environment, they will be able to take this expertise and apply it to their own applications.

The Economies of Scaling Software Josh Long (Pivotal) and Abdelmonaim Remani (PolymathicCoder Inc)

You spend your precious time building the perfect application. You do everything right. You carefully craft every piece of code and rigor-ously follow the best practices and design patterns, you apply the most successful methodologies software engineering has to offer with discipline, and you pay attention to the most minuscule of details to produce the best user experience possible. It all pays off eventually, and you end up with a beautiful code base that is not only reliable but also performs well. You proudly watch your baby grow, as new users come in bringing more traffic your way and craving new features. You keep them happy and they keep coming back. One morning, you wake up to servers crashing under load, and data stores failing to keep up with all the demand. You panic. You throw in more hardware and try to optimize, but the hungry crowd that was once your happy user base catches up to you. Your success is slipping through your fingers. You find yourself stuck between having to rewrite the whole applica-tion and a hard place. It's frustrating, dreadful, and painful to say the least. Don't be that guy! Save your soul before it's too late, and come to learn how to build, deploy, and maintain enterprise-grade Java ap-plications that scale from day one.

Topics covered include: parallelism, load distribution, state management, caching, big data, asynchronous processing, and static content delivery. Leveraging cloud computing, scaling teams and DevOps will also be discussed.

P.S. This session is more technical than you might think.

API Management – a hands on workshopPaul Fremantle (WSO2)

In this workshop we will look at how API management can help organiza-tions participate in the API Economy. The workshop will:

• Explore the benefits and challenges of exposing APIs • Look at the security management using OAuth2 • Understand Single Sign On with OpenID Connect and SAML2 • Address the lifecycle of APIs • Look at API Analytics and monitoring • Understand monetization options

The first half of the workshop will look at the overall landscape and ap-proaches, while the second half of the workshop will look at a hands-on approach using Open Source API Management tooling to expose, monitor and manage APIs.

JAX London Workshop Day

jaxlondon.com

Interview

14www.JAXenter.com | September 2014

JAX Magazine: You’ve got a talk at the JAX London about “Connecting the World”. What do you think developers need to pay attention to when entering into this connected world?

Paul Fremantle: So, let me first describe what I mean by the connected world. There’s seven billion people on the planet right now. And about half of those people are now connected on the internet. There are however million apps (we don’t know, we can’t count how many there are ...) and there, I believe, about 7 or 8 billion devices, growing to 20 billion in just a few years. And what businesses are really succeeding in doing is connecting the people, the apps and the devices.

So if you’re a developer, the most important thing is to be aware of this and to be thinking, what can you do, how can you take the business you work in and utilize that. But in real terms, I think the very first thing is to make sure that you use loosely coupled APIs as much as possible. So that typically means RESTful APIs with JSON, with things like OpenID Connect. And doing that gives you this amazing basis to par-ticipate in this connected world. And then of course if you can expose those APIs to third parties then you can participate because you can create an ecosystem for people to build apps that connect to you. Then you can start thinking about “How can I start linking this in with devices and people?”

Portrait

As co-founder and CTO of WSO2, Paul Fremantle spearheads the company’s overall technical and product strategy. Paul is an experienced software and product development professional, having previously worked as the product lead and architect for the IBM Web Services Gateway. Paul also has significant experi-ence in Open Source and Open Standards: he was previously VP of Apache Synapse and co-chair of the OASIS WS-RX Technical Committee. Paul provides strong technical vision at WSO2 but acknowledges with pride that he works closely with one of the best teams in the industry.Paul has published many articles, both on the Web and in tradi-tional forms, and has spoken at numerous industry conferences, including ApacheCon, Colorado Software Summit, XML Europe, Software Architecture, QCon and many others. He has published two books: Building Web Services in Java (2nd edition) and The XML Files. Paul is studying part-time for a PhD at the University of Portsmouth and his research is around the security of IoT and M2M networks. Paul plays the tin whistle and mandolin in the band Revel Weird and Wild.

Between running a middleware platform, researching for a doctorate on IoT security and playing the mandolin in an Irish folk band, WSO2’s CTO Paul Fremantle is a busy man. At the recent Internet of Things conference, he took some time to tell to us about his upcoming keynote at the JAX London conference in October.

Connecting the world JAX London

Interview

www.JAXenter.com | September 2014 15

But this is just scratching the surface, because once you start connecting to these billions of devices, you can do things in a straight-through way. You do things with human interac-tion, you have to have autonomic systems, where the system will react on its own. And typically that means doing big data analysis. And as you start getting into that scale and complex-ity, that’s when it starts getting interesting.

JAXmag: Can you tell us a little bit about WSO2?Fremantle: So we’re nine years old. And we set out with a

vision to create a platform, to create the next generation mid-dleware. And we’ve created a complete platform, it’s all based on Java and OSGI. It’s a single codebase that we build as a single build. And then that builds a set of components, modu-lar OSGI components that fit together to make the products. So the products include ESB, and API management tool, and activity monitor, an identity server, so it’s a complete mid-dleware platform, but built in a very different way from a traditional middleware platform. And it’s completely open source, we very strongly believe in that. This is not “Commu-nity Edition” and then the paid-for edition, this is 100 percent Apache-licensed open source.

JAXmag: Do you need to be experienced in wide variety of areas to make it as a CTO?

Fremantle: I think the biggest challenge for a CTO is to balance breadth and depth. You know, I think one of the jobs of the CTO is to make connections between customer prob-lems and technologies, between different technologies inside a company. So breadth is very important for making these kinds of connections. But having some depth and understand-ing what the real-world implications of “Well we should do X and Y ...” is really difficult as well.

It’s more of a challenge the longer you go. When we started out there were 30 developers inside of WSO2 and I knew exactly what they were all doing and I helped joined the dots between them. And now there’s 300 developers, so I’m only scratching the surface with them. I actually started doing a part-time doctorate so as to create my own depth in a differ-ent area. Because I can’t stick my fingers into people’s code. Some of my code is still a core part of the ESB we ship. But I can’t do that now. I’m just too busy and I’d be messing it up. I started doing a part-time doctorate so I have my own side-things I can be really deep in.

JAXmag: You’re researching in IoT Security, right?Fremantle: It’s a huge issue for the Internet of Things. Every

new area gets hit by security. If you look at cloud computing

or client server or mainframes 50 years ago, security’s always a challenge. And it’s always an inhibitor for people to get in-volved. So I don’t want to scare people off IoT because there’s security issues, I’m really trying to motivate people to solve those issues and trying to solve some of them myself. But it is an issue, and you can’t fix it until you admit it’s a problem.

JAXmag: Is the Internet of Things the next revolution, or evo-lution in programming? Or just another overhyped trend?

Fremantle: I think it’s both. I mean, obviously there’s massive hype around it. I’m least convinced about the hype around wearables. I have a smartwatch, a Qualcomm Toq. I wore it for about a week. It’s really cool and very cool device, but I don’t wear it because I have a boring old watch that tells the time and just sits on my arm and is waterproof. So I just want my watch to tell me the time. I already have wearable with me at all times, it’s this mobile phone I’m holding in my hand. I carry it with me at all times.

I think the industrial and enterprising Internet of Things is going to be massive. We’ve seen mobile change the world. I think Internet of Things is going to change the world just as much as or more than mobile has. But is it really an evolution of programming? I think a lot of the things we do in coding today are going to work just fine for IoT. I don’t think there’s a huge change in programming models. I think there are some changes in infrastructure. For instance, we are shifting from a few big systems that are quite reliable in communicating, lots of high volume, to gzillions of little systems, low reliability, low volume. That is a shift and you don’t get away from those big systems, and you still have to deal with the small systems. So I think there’s a few challenges for people, but I think a lot of the technology we use for mobile will translate.

JAXmag: You mentioned WSO2 taking an open-source ap-proach. What kind of advantage do you see open-source as having for software companies?

Fremantle: It’s interesting, a lot of people associate open source as just being cheaper. You know, just being a low-cost approach. And I think there are cost differences, but when it comes down to it, the cost of the software is not the biggest challenge. Usually the cost of developing stuff and maintain-ing it massively outweighs the software cost, firstly. And sec-ondly, if it’s running your business, you don’t usually mind that much. I don’t think that’s the key. I think the key thing is the lock-in. We’ve seen a lot of companies and organisations locked in not just to the software vendor but to the expensive consultants around that and to the customizations and all the complexity of that software. I’ve seen that. I live in England

“The biggest challenge for a CTO is to balan-ce breadth and depth.”

“IoT will change the world just as much as, or more than, mobile has.”

Interview

www.JAXenter.com | September 2014 16

and every year there’s another ten billion pounds wasted on another IT project that’s gone south. First it was the NHS Spine, then it was the HMRC Aspire. And I’m seeing some movement towards open source and it seems to be saving massive amounts.

But the real thing I think that’s interesting is that open source creates a different foundation between the project and the customer and the company. So you know, a lot of our customers contribute. They may contribute test cases. They may contribute code. They may sponsor us to improve it in ways they need. And so they have a real influence on the prod-uct road map and a real connection with the software that’s much deeper than with a proprietary software company. To me that shared commons is really what makes it exciting to be in open source.

JAXmag: Have you been following the talk about new Java 9 features?

Fremantle: I have followed it a bit. I have to give Oracle credit. Sun had this policy of keeping the core Java static and adding lots of APIs around it. And as an open-source guy, this was kind of frustrating because in many cases there was already many perfect open-source API projects that would work with any old Java version. And then Sun would come along and say “Java 7’s going to have this API” and every-body says “I’m going to hold off to Java 7 then” and then it turned out to be five years later or something. So Oracle have really upped the focus on the Java core language. And I think that’s been really good.

But I don’t see so much of that in Java 9. It took a long time to get to Java 8, but it has a lot of cool stuff in it. Java 9 fea-tures ... I mean the JSON API, again it’s just that there’s loads of really good JSON APIs in open source. Does it really help to have it in Java? I don’t buy that myself.

The modularity … I feel it would have been great to have had it in the language. It will be good, but OSGi has solved a lot of that. I feel they’re a little bit less exciting than the Java 8 features and little bit “Meh ...”. I’m not so excited.

JAXmag: What would you like to see in Java 9 then?Fremantle: For example, if you’re going to do JSON, have

it as a first-class entity in the language. Learn some lessons from some of the dynamic languages on ease of use and how to use JSON and that kind of model in an absolutely first-class way.

JAXmag: What kind of music do you listen to while coding?Fremantle: I’m actually a musician. I play Irish music. And

if the music’s too exciting, too interesting, it completely dis-tracts me and I start thinking “How do I play it?” So the only kind of music I can program to is classical music. And maybe it’s just that I’m not that good a musician. But it just doesn’t get my brain thinking “How could I play that? What could I do with that?” So I listen to a lot of viola da gamba concerts while I’m programming (laughs).

Lyrics really bother me. My brain ... I’m really bad. If those music going on in the background with lyrics or even some-one talking on the radio, my brain shuts down and I (makes gargling noises) ... I can’t talk even. I can’t do lyrics, no, no. They put me off coding completely. People who can code while they’re listening to music with lyrics, I’m in awe of, cause I can’t do that. So classical, old music with nothing too complex: perfect.

You can hear Paul Fremantle speak about connecting the world, API management and “Understanding Real time Event Processing through Football” at the JAX London Con-ference (October 13-15, 2014): www.jaxlondon.com.

Advert

Process all your data& apps in Real Time

Millions of Transactions Per

SecondHigh Availability

100% Consistency

www.gigaspaces.com

Sub-Millisecond Latencies

Eclipse

17www.JAXenter.com | September 2014

by Holger Voormann

71 - 3 + 8 = 76: Luna consists of 76 projects, five more than the previous year’s release Kepler (Figure 1). 68 of 71 Kepler-projects are also in Luna, eight were added and three are miss-ing. The three Eclipse projects which being threatened with archiving are as follows:

•The Agent Modelling Platform was there for the last three simultaneous releases, but since Kepler there have been no more code changes. This could be a late consequence of project manager Miles Parker’s move to the Tasktop com-pany founded by the Mylyn project manager Mik Kersten in early 2012.

•Even with the SCA Tools (Service Component Architec-ture Tools) [2], a sub-project of top-level SOA Platform (Service Oriented Architecture), there are virtually no more code changes since Kepler.

•The number of code changes in the Persistence and ORM framework EclipseLink has fallen sharply since October 2013.

Many of the eight Eclipse projects that are making their first appearance in this simultaneous release use the Eclipse Mod-elling Framework (EMF):

•With Sirius [3] graphical edits can be created quite simply for domain-specific EMF models. The edits are (partial) views of the data that is displayed as a graph and can be altered. Sirius is developed by the French company Obeo, since May last year. It’s also an Eclipse project that was previously part of Obeo and is available in version 1.0 in Luna. The Arduino Designer is another nice application. This is an Eclipse-based development environment for children, and thanks to Sirius this little Arduino computer can be graphically programmed [4].

A personal review of Eclipse in general and of Luna in detail. Holger Voormann con-tinues his discussion of Luna’s updates, taking us through the project highlights, the new IoT vogue and what Eclipse could and should be focussing on in future.

Imag

e Li

cens

ed b

y In

gra

m Im

age

Eclipse update highlights

A year of Luna – part II

Eclipse

www.JAXenter.com | September 2014 18

•The EMF Client Platform 1.3 makes it possible for SWT, JavaFX- and/or web applications to be used for the modifi-cation of EMF data by defining the mappings and bindings between data models and the surface. A core component is the EMF Form, which can be used to create form-based editors. There are also two desktop applications with EMF data that can be used alternatively to the Innoopract solution: Sphinx 0.8 von itemis and the Extended Editing Framework (EEF) used in Sirius, from Obeo.

•The development of EMFStore 1.3 was undertaken by In-noopract. It is a version management framework designed especially for EMF models to detect and merge conflicts between models of different versions. EMFStore is in direct competition with the CDO Model Repository, which is included in version 4.3 in Luna.

•The project Business Process Model and Notation (BPMN2) implements BPMN, a graphical representation of business processes, as an EMF model. Version 2.0 was released by the Object Management Group (OMG) in early 2011. The implementation can be described as ma-ture, in the last year there was only a tiny correction, and the version was increased to 1.0.

•The BPMN2 Modeler 1.0.2 is a graphical editor for creat-ing and editing business processes and workflows in BPMN 2.0 [5]. In Eclipse, there was once a BPMN Modeller project that was archived in late 2011. BPMN2 Model-ler, which is run by Red Hat or JBoss, has been an Eclipse project since mid-2011 and thus existed for half a year alongside the BPMN Modeller project with other develop-ers. Java aside, the entire technology stack that is based on the BPMN2 Modeller, is part of Luna: the abovementioned BPMN2 and Graphiti, which is based on the Graphical Modelling Framework (GMF), which in turn is based on the Graphical Editing Framework (GEF) and EMF.

•Paho provides implementations of MQTT (Message Queue Telemetry Transport) protocol in Java, C / C ++,

JavaScript, Python and Go. In the machine-to-machine field, the protocol is better known as the Internet of Things. Paho has only been an Eclipse project since 2012 and the Java implementation is in version 1.0 on Luna.

•QVTd (QVT Declarative) is, together with Operational QVT and ATL (Atlas Transformation Language), one of the three model-to-model Transform (MMT) subpro-jects. All three are using Luna. Query View Transforma-tion (QVT) is a specification of the Object Management Group, consisting of the parts Operational, Relations, and Core. QVTd is currently a part of implementation of Core. In one year, the QVTd team would like to fill the gaps in relation and core and offer a closed toolchain consisting of editor, parser, model, executor, debugger and code generator for each QVT language.

•With XWT, SWT/JFace surfaces (including data binding) can be declaratively defined in XML. This can also be done graphically with the Windows Builder, which is also found in Luna. XWT started the laboratory for Eclipse 4.x within the project e4. XWT was not made part of Eclipse 4.x and since the end of 2012 it’s been a separate project. Luna has brought version 1.0 of XWT, which is also supported by Papyrus (another Luna project).

Ian Bull’s annual top ten countdown of the latest projects and features on Luna has once again been released and is well worth reading [6]. As a general source of information to Eclipse, the blog aggregator the YouTube channel of the Foundation [7] and JAX TV are planeteclipse.org [8], are also worth checking out.

Extra JavaThe total number of Eclipse projects increased to the same extent as those participating in the simultaneous release pro-jects. There has been a change in recent years and more pro-jects now use Eclipse. Some, such as Hudson and Vert.x are

Figure 1: Luna is the simultaneous release which has the most projects

Eclipse

www.JAXenter.com | September 2014 19

not based on OSGi/Eclipse, meaning there are now for the first time, Eclipse projects (such as infrastructure projects or Dash) that are not written in Java. In Orion, the focus is also not on Java, but on JavaScript. The Eclipse-based servers have packed the JavaScript client code, thus allowing the participa-tion of Luna. To participate in simultaneous release, the soft-ware must consist of Eclipse plug-ins. This is also the reason why Hudson is not part of Luna.

Four of the aforementioned non-Java (but still Eclipse) pro-jects have been added since the end of 2013/beginning of 2014 and these are Ponte, Mosquitto, Krikkit and mbeddr. The latter are domain specific languages and an extensible development environment for embedded applications based on JetBrains Meta Programming System (MPS). For project applications there is a section called “Relationship to other Eclipse pro-jects”. The following is found on mbedder, “mbeddr currently does not run on top of the Eclipse platform. Instead it runs on MPS. [...] There is no direct relationship to EMF, HOWEVER, conceptionally [...] similar to what EMF offers. [...] Again, there is no direct relationship to Xtext. [...] MPS is, similar to Xtext, a language workbench” [9]. I find it bizarre that with the exception of the CDT Debug Bridge, mbedder consistently decided against the use of Eclipse technologies, still requires no Java code and remains an Eclipse project.

In Vogue: The Internet of ThingsThe other three new non-Java projects come from the area of Internet of Things (IoT), which until the beginning of the year was still called Machine to Machine (M2M) in Eclipse. The M2M Working Group was changed into the IoT Working Group with a new address [10] and a new logo.

IoT is booming. The pioneers are small devices such as Raspberry Pi, low-power wireless technologies such as Blue-tooth 4.0 and 3D printers that provide the missing pieces to couple sensors and actuators with the physical world. New hardware and new application scenarios require new soft-ware – a gold rush even with Eclipse.

A big catch for IoT Eclipse could be the well-known open-source project openHAB [11] for building automation, run-ning on the OSGi framework Equinox Eclipse. At the end of 2013 openHAB, or substantial parts of it, became Eclipse Smart Home [12]. Just like SWTBot did with the offer to use Eclipse Foundation, SmartHome had project logos on sale on a crowd sourcing platform, which is where the Eclipse logo came from. Many of the smart home enhancements include third-party libraries and remain for licensing reasons at open-HAB. For everything else, the authors had to agree to the

license change from GPLv3 (GNU General Public License ver-sion 3) for EPL (Eclipse Public License). This includes Jetty, Hudson, Vert.x and now openHAB/Smart Home – some pro-jects which were already large before they came to Eclipse. Another good IoT catch made by the Eclipse Foundation was Benjamin Cabe, who describes himself as “IoT Evangelist”. Without Benjamin there wouldn’t have been a two day Eclipse Conference in France, where the topic of IoT is far from ne-glected. He is still project leader of IoT projects. Eclipse mar-keting director Ian Skerrett has also become an IoT fan and writes weekly reports on the latest from the IoT world [13].

What will happen to IDE and the platform? In contrast to the JavaScript-based web IDE Orion, with more than 30 developers and a growing number of non-Eclipse-based projects, particularly in the area of IoT, some see the the platform as neglected. Chris Recoskie recognizes therein the tragedy of common property, which everyone uses, but about which no one cares [14].

Moving down on the list of the most important changes after the Dark Theme and Split editor, line numbers are now turned into text editors by default. Without the Java-8 sup-port for the IDE Luna would be not much more than a service update. The Eclipse Foundation celebrated its tenth anniver-sary on February 3. When it was founded, there were 19 pro-jects, 50 members and the Java IDE was two and a half years old. Today there are around 250 projects, 200 members, and the Java-IDE has more than 12 years under its belt. In all this time one thing has not changed: Unlike Mozilla, The Eclipse Foundation doesn’t administer or control a team of devel-opers. It is a meritocracy which is controlled by those who participate. Developer activity is done either by companies or private enjoyment. If companies lose interest in a project with too many developers the foundation can only watch idly. Although a project should be borne by developers from dif-ferent companies, this is not the case with most. Mozilla de-cided to withdraw its developers at Thunderbird in order to concentrate fully on Firefox and Firefox OS. In Eclipse, where competing projects coexist, it would be unthinkable.

Working groups and infrastructure exceptionsThe Eclipse Foundation strategically runs six working groups: Automotive, LocationTech, Long Term Support, Internet of Things (formerly M2M), Polarsys (Embedded Systems) and since June, Science (research institutions). The founding of the Eclipse Foundation Europe is a perfect fit with the Science Working group, which set up as a “GmbH” so it can receive funding. There is an annual Eclipse membership fee which is calculated on the type of membership and the turnover of the company, the Automotive, Internet of Things and Science members must pay an additional amount.

Companies, for example, who want to offer their services in the Long Term Support (LTS) Working Group [16] annually pay between €1,100 and €22,000 in addition to the Eclipse membership fee of between €1,100 and €366,000. However, this allows them access to the infrastructure, and their ser-vices are advertised on the Eclipse Marketplace. If you select “All Markets” instead of “Long Term Support” and leave

“The surface of Firefox looks tidier than ten years ago...on Eclipse it is just the opposite.”

Eclipse

www.JAXenter.com | September 2014 20

the search box empty you can currently allow eight lists. But the fact that the LTS provider (instead of a chosen developer) may change sign plug-ins and have access to non-public code repositories, is for me very contrary to the open source phi-losophy. However, I am pleased with the proposed Working Group, which will take care of the DIE [17], and whose mem-bers should be granted Eclipse membership for fees between €370 and €74,000.

The infrastructure for the general projects has also changed a bit. The platform, PDE and JDK and most other projects now use Gerrit for reviewing. To suggest a code change, you no longer append a patch to a bug, instead you can push the Git-Commit to Gerrit (see how in a five-minute video [18]). In five of seven code changes [19] I already used this trick with much success. In one instance, it helped to get a tip from Lars Vogel on the IRC channel #eclipse-dev. Lars is one of the most active developers on the platform and recently wrote the book “Contributing to the Eclipse Project”, in which the development process with Gerrit is described. With Mylyn you can access Gerrit from the IDE. Nevertheless, it is not easy to find the right Gerrit project and configure the IDE and Git properly. It’s much easier with Oomph: Download Oomph, run, and select project (Oomph does not know all, but many Eclipse projects). Then use his Eclipse and Gerrit log-in and a few more details, Oomph will install, configure Eclipse and clone the Git repository to the previously selected project without further action.

If you send a change to Gerrit, Hudson automatically starts a Continuous Integration Build to check the compat-ibility and execute the (JUnit) tests. Meanwhile, most pro-jects have their own Hudson instance. In Eclipse it is called HIPP (Hudson Instance Per Project). An instance shows only the jobs of an individual project and can be independent of the other instances that are added to Hudson plugins. Late last year, Hudson 3.1 appeared. New features are the so-called team concept and the memory footprint which was reduced by 50 to 70 percent – a great advantage in HIPP. Remarkably, Jenkins also replaced the embedded Web serv-er with Winstone Jetty 8, just before Hudson became an Eclipse project. Jetty, which unfortunately is no longer part

of the simultaneous release since last year, still dominates in contrast to Winstone Servlet 3.0 and Google’s rapid net-work protocol SPDY.

New, but still in Beta, is dashboard.eclipse.org, a dashboard of Bitergia. This will eventually replace the Eclipse-house de-velopment Commits Explorer and can be reached at dash.eclipse.org. The commits Explorer displays in the website dashboard the number of commits per month in total or per project as a diagram, which can be optionally broken down by developer or company. The dashboard shows – which the Commits Explorer could not – the activity of the bug tracking system, mailing lists and that of Gerrit. One might wish for the dashboard to be able distinguish the external and internal commits. Since the introduction of Git, both author and com-mitter (if the change does not come from a developer of the project but comes from another author) are detected. Accord-ing to the analysis by Wayne Beaton at Luna, around half of the 687 authors were not developers of the project. I did not think that there were so many. The new link-shortener http://eclip.se remains in the sidelines and is mentioned solely for Eclipse website. A number of links redirect to a particular bug without you having to shorten.

In addition to the abovementioned Benjamin Cabe, the Foundation has appointed Richard Burcher as new Com-munity Manager who will support Wayne Beaton. Richard (Figure 2) is not an Eclipse developer, but is active in the open-source community (e. g. B. OpenStreetMap). Prior to joining Eclipse he was a self-employed advisor to various Ca-nadian government agencies in the use of open source GIS.

What still needs changingOSGi, p2, 4.x – Eclipse has already mastered some major technical modifications. The replacement of components didn’t always proceed without friction, and the utility was not always obvious. The popularity of Eclipse has decreased [20]. If Eclipse SWT is eventually renounced in favour of JavaFX, the long-term maintenance costs would have to be lower than the cost of a compatibility layer. With SWT on JavaFX [21] there is already an early prototype, but this was also the case with SWT on Swing, which didn’t leave the prototype status. Such a development should not be advertised as a major inno-vation. On the surface and the speed, I see ways that Eclipse could score again with the user. On these two points and the financing I would like to express my view below.

Pascal Rapicault, launched the crowd-funding campaign “Easy Eclipse for Java”, a simplified Eclipse Java IDE on Kickstarter. This failed because of the goal of €80,000 only about €5,000 were pledged. Nevertheless, I am of the opinion that Eclipse should not turn its back on crowd funding. Some-times it works, as evident in the successful crowd funding campaign for a Dark Theme for LiClipse, an Eclipse-based editor, and for PyDev, an Eclipse-based IDE Python. Presum-ably, this campaign was also a motivating reason for the Dark Theme of the Eclipse platform. €22,500 were raised on In-diegogo, €4,000 more than would have been necessary. As an alternative to crowdfunding, Michael Scharf suggested a price tag for Eclipse, where you can also pay nothing, so long as you state a reason [22]. I think on the Eclipse website and

Figure 2: Richard Burcher

Eclipse

www.JAXenter.com | September 2014 21

in the Help menu of the IDE, it should at least give a donation button to targeted projects (or features) to finance. Besides the option to incorporate itself, make it yourself or hire a developer, there should be a way to donate small amounts, for example via Flattr or Bitcoins, as with GIMP. You can donate amounts of $35 to Eclipse via PayPal or credit card as a “Friend of Eclipse” [23], but you can not determine what is done with the money.

Despite new functions, the surface of Firefox looks tidier than ten years ago. Unfortunately, on Eclipse it is just the opposite: The toolbar has grown, and there are more views than in the 2004 Eclipse 3.0 (Figure 3). The very competi-tive browser market shows what is important: simplicity and speed. If a long-time Eclipse user changes from Sublime Text to a simple editor without the features of an IDE, this should be a warning [24]. Michael Scharf sees it the same way: “Eclipse could be an editor [...] that can grow to [a] full blown IDE if the user needs and wants it.” [25]. I can understand this: On Windows, the Norton Commander clone Total Commander has what I miss in Windows Ex-plorer. But I use it too rarely to make a note of its keyboard shortcuts and control concepts. Instead, I am happy with Clover, one for tabs and bookmarks bar enhanced Win-dows Explorer. The tabs and shortcuts behave exactly like Google Chrome and Firefox: CTRL + T opens a new tab, SHIFT + CTRL + T reopens the (accidentally) last closed tab with CTRL + L to get into the address bar. The tabs in Sublime Text behave as one knows it. Only in Eclipse is it different. The failed Kickstarter project EasyEclipse had a few good ideas: a tidy interface with a toolbar with only

a start and stop button and a search box that extends the “Quick Access” box of Eclipse to “Open Type” and “Open Resource”. CDT project manager Doug Schaefer would also like the toolbar to execute the developed application. For Momentics®, an Eclipse-based IDE, and for QNX/BlackBerry (see page XX), this is already implemented. However, these approaches do not go far enough. I have in mind a browser similar to the operating concept of IDE. To edit a file, you open with CTRL + N a new initially empty tab, the cursor would be in the address bar, with which one could look like Google Chrome, just as when in EasyEclipse proposed global search box.

The Bread Crumb navigation bar – currently only there for Java editors – could be superseded by the address bar. As long as nothing has been entered, a list of items could be displayed in the main area below the address bar to cre-ate a new Java class, a new text file and so on. Instead of default to show so many views in addition to the editors, views could only be displayed in the editor area, if needed. You could then pin or pull out to the edge, as this is already possible. In addition, projects should be possible within projects, and would not appear in the workspace. Once a file of unknown type opens, the upper edge editor – similar to the notice to store passwords in the browser – would hint for the installation of additional helpful plug-ins for this type.

Simple editing tools and web applications make Eclipse users feel alienated. A bridge between desktop and web-IDE contrast, proposes a new Eclipse project Flux [26], which was initially the framework of Twitter “Flight”. A nine-

Figure 3: The surface of Firefox 1.0.7 to 3.0 (top) and Eclipse 3.0 has changed to 4.4 (below) in ten years

Eclipse

www.JAXenter.com | September 2014 22

minute video shows the prototype [27]: As with Etherpad or the Saros eclipse extension [28] it allows synchronization between editors, so that several people can simultaneously work on open files. In this synchronization, the cloud Flux latches and offers services such as the autocomplete for cer-tain programming languages. Both the desktop IDE and a web-IDE can use these services. With Flux you don’t have to decide between desktop and web, instead you can run both at the same time. Whatever you decide for will ulti-mately depend on the ease of installation, on the ease of use and, not least, the speed. As regards to the latter, Eclipse often uses the Lazy Loading Pattern. Here, I find the Eclipse IDE desktop should more consistently exploit their home advantage of local data.

Onwards to Mars!While the logo and the website have been changed, the ap-pearance and operation of the Eclipse IDE has for ten years remained largely unchanged. The added value of this year’s Luna releases lies in the support of Java 8. In the future I wish for more speed and a radically simpler operation. As long as the Eclipse Foundation does not have a team of developers and features cannot be bought, there is only one possibility to make our wishes come true. Perhaps this time it will be as early as the next simultaneous release of Mars. Contribute! Long live the meritocracy!

References

[1] http://planetorion.org/news/?p=526

[2] http://eclipse.org/sca

[3] http://eclipse.org/sirius

[4] Bats, Mélanie: “Eclipse für Kids”, in Eclipse Magazin 3.2014, Site 68–72: http://jaxenter.de/artikel/Eclipse-fuer-Kids-171873

[5] http://eclipse.org/bpmn2-modeler

[6] http://eclipsesource.com/blogs/category/syndicate

[7] http://youtube.com/user/EclipseFdn

[8] http://vimeo.com/jaxtv

[9] http://eclipse.org/proposals/technology.mbeddr

[10] http://iot.eclipse.org

[11] http://openhab.org

[12] http://eclipse.org/smarthome

[13] http://ianskerrett.wordpress.com/?s=IoT+Links

[14] http://recoskie.blogspot.com/2013/10/the-tragedy-of-eclipse-commons-and.html

[15] http://jaxenter.de/news/Eclipse-Foundation-Europe-gegruendet-168471

[16] Bindewald, Jutta; Huff, Pat: “Long-Term-Support”, in Eclipse Magazin 4.2014, Site 65–67

[17] http://jaxenter.de/news/Eclipse-IDE-Working-Group-Crowd-Coding-Experiment-oder-gutmuetige-Diktatur-168124

[18] http://industrial-tsi-wim.blogspot.de/2014/04/how-to-contribute-to-nebula-with-gerrit.html

[19] http://git.eclipse.org/r/#/q/owner:hvoormann,n,z

[20] http://wp.me/p1HAa-M2

[21] http://wp.me/pxxZJ-Yq

[22] http://jaxenter.de/news/Eclipse-muss-frei-bleiben-168039

[23] http://eclipse.org/donate

[24] http://wp.me/pzXDJ-4s

[25] http://michaelscharf.blogspot.de/2014/05/how-to-make-eclipse-attractive- to-new.html

[26] Lippert, Martin: “Zwischen Desktop und Cloud”, in Eclipse Magazin 4.2014, Site 49–54

[27] http://youtube.com/watch?v=kkoplIMJfHw

[28] http://saros-project.org

PublisherSoftware & Support Media GmbH

Editorial Office AddressSoftware & Support MediaSaarbrücker Straße 3610405 Berlin, Germanywww.jaxenter.com

Editor in Chief: Sebastian Meyen

Editor: Coman Hamilton

Authors: Sebastian Bergmann, Paul Fremantle, Holger Voormann,

Geertjan Wielenga

Copy Editor: Jennifer Diener

Creative Director: Jens Mainz

Layout: Flora Feher

Sales Clerk:Anika Stock+49 (0) 69 [email protected]

Entire contents copyright © 2014 Software & Support Media GmbH. All rights reserved. No part of this publication may be reproduced, redistributed, posted online, or reused by any means in any form, including print, electronic, photocopy, internal network, Web or any other method, without prior written permission of Software & Support Media GmbH.

The views expressed are solely those of the authors and do not reflect the views or po-sition of their firm, any of their clients, or Publisher. Regarding the information, Publisher disclaims all warranties as to the accuracy, completeness, or adequacy of any informa-tion, and is not responsible for any errors, omissions, in adequacies, misuse, or the con-sequences of using any information provided by Pub lisher. Rights of disposal of rewarded articles belong to Publisher. All mentioned trademarks and service marks are copyrighted by their respective owners.

Imprint

Holger Voormann is a freelance software developer, consultant, avid Eclipse user and Contributor. His interest lies in the design of user inter-faces, quality assurance and the agile processes.