Passionate about programming computers for over 20 years, Jose made his debut in assembler and C, C for SIMD parallel machines before adopting Java as an object-oriented language, indispensable to most major modern applications. He brings his expertise and capacity for analysis and synthesis to many projects, mainly in the lower layers, close to the data, but also on complex UI design, or in the browser. PhD in applied maths and computer science, assistant professor in Paris North University for 20 years, Java Champion, Java Rockstar, Jose also has a passion for education and knowledge transfer. He gives talks in major international Java conferences (JavaOne in San Francisco, Devoxx in Antwerp, Paris and London). He wrote numerous technical articles on Java technologies for Java Magazine, Oracle Technolgy Network. He writes a blog, Java le soir, French documentary source on Java technologies for thousands of french speaking developers around the world. He is a member of the french Paris Java User Group, and has been a co-organizer of the conference Devoxx France for three years.
Functional programmers have been saying for decades that they know the way to the future.
Clearly they've been wrong, since imperative languages are still far more popular.
Clearly they've also been right, as the advantages of functional programming have become increasingly obvious. Is it possible to face both ways, and combine the two models?
Scala is one language that does this, and Java too has been on a journey, which still continues, of learning from functional languages and carefully adding features from them.
In this talk, we'll review what Java has learned from functional languages, what it can still learn, and how its added features compare to Scala's original ones.
As it was announced, Java keeps releasing a major version every 6 months. The release train passes and brings its amount of new things. Some of the expected functionalities have already been released: a new syntax for the switch clause or a new bytecode instruction: CONSTANT_DYNAMIC. Other are still work in progress: a new way to write methods, a smart instanceof, lazy evaluated constants. Projects are progressing too.
Loom will bring new concurrent programming paradigms.
Amber is about to bring data types and new lanaguage constructs.
Valhalla can already show very promising results with formerly called value types, now called inline types.
It is hard to tell when all these things are released, but when they are ready, we will have them in less than 6 months!
We will give details about all this, with code and live demos of preview versions.
The JDK is an open source project that you can download and build yourself! All the new things under work are available on Mercurial branches, that you can get and compile to test them before they are released. It allows you to play with them, see how they work, see what do the new syntaxes look like. In short: you can play now with a JDK from the future, that may never exist!
We will show how all this work, from the installation of a Ubuntu virtual machine to the execution of a home made JDK that will never be released.
Among the patterns from the GoF, the Visitor is probably the more complex to implement. One of the difficulties is that you need to implement it in your object model, leading to complex refactoring for legacy applications.
Based on the use of all the nifty tools brought by functional programming: chaining, composition, and partial application, you can implement Visitors without having to change your object model, using a functional and fluent API.
This approach can be used to implement other patterns: Builder and Validator. Using this way of designing API leads to readable and robust code, designed following the GoF patterns.
|Talks by tracks||Talks by session types||List of Speakers||Schedule|