Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java...

34
Sunday, January 29, 12

Transcript of Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java...

Page 1: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Sunday, January 29, 12

Page 2: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

JBoss Polyglot Revolution Be part of it! :)

Galder ZamarreñoSenior Software Engineer

Red Hat, Inc

25th January 2012, Bangalore

Sunday, January 29, 12

Page 3: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Galder Zamarreño

• R&D Engineer, Red Hat Inc.• Infinispan developer• Over 10 years developing java apps• Lately playing a lot with scala, python, ruby..• Twitter: @galderz• Blog: zamarreno.com

Sunday, January 29, 12

Page 4: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Agenda

• JBoss as a java middleware producer• Evolution into multi-language platforms• JVM as runtime platform• Lessons learnt• Join the revolution!

Sunday, January 29, 12

Page 5: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

In the beginning...

Sunday, January 29, 12

Page 6: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

JBoss ~= Java MW

JBoss produced mostly Java only middleware

Sunday, January 29, 12

Page 7: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Why Java?

VM execution, automatic memory management, safe referencing, static typing, readable,...etc

Sunday, January 29, 12

Page 8: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

First offering - EJBoss

An EJB open source implementation (1999)

Sunday, January 29, 12

Page 9: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

More additions

ArjunaTS (Transactions)

Sunday, January 29, 12

Page 10: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Bob McWhirter

A Ruby on Rails fan, used to run JBoss.org, but in 2008 he went back to development

Sunday, January 29, 12

Page 11: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Ruby on Rails issues

Deployment of rails apps was sucky, and there were scalability concerns (i.e. Twitter)

Sunday, January 29, 12

Page 12: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Why not Rails in Java?

is Rails-happy...

Sunday, January 29, 12

Page 13: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Deploy RoR on JBoss!

Scheduled jobs, built-in clustering, messaging, platform independence, deploy without .war files...etc

Sunday, January 29, 12

Page 14: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Torquebox was born!

Deploy RoR on JBoss =

Sunday, January 29, 12

Page 15: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Immutant

Take lessons learnt with

+ =

Sunday, January 29, 12

Page 16: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Mixing it up! = A lot of

with a little bit of

Sunday, January 29, 12

Page 17: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Why Scala?

~=

Sunday, January 29, 12

Page 18: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Just when you thought...

Sunday, January 29, 12

Page 19: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Ceylon

= A new language

deeply influenced by

Sunday, January 29, 12

Page 20: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Why still like Java?

is easy and is robust

Sunday, January 29, 12

Page 21: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Why Ceylon then?

No 1 Java problem: Defining user interfaces or structured data in a typesafe/hierarchical syntax not easy

Sunday, January 29, 12

Page 22: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

But there’s more...

Outdated class libraries, lack of language level modularity, meta-programming is clumsy...etc

Sunday, January 29, 12

Page 23: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Ceylon goals• Readability• Predictability• Toolability• Modularity• Metaprogrammability

Sunday, January 29, 12

Page 24: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Why can these langs run in JVM?

Sunday, January 29, 12

Page 25: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Binary class file format

JVM knows nothing about Java lang, it only knows about the binary class file format

Sunday, January 29, 12

Page 26: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Dynamic langs in JVM

Pre JDK7, hacks required to get them working, but since JDK7 a new bytecode allows them to run much faster

Sunday, January 29, 12

Page 27: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Lessons learnt so far in this revolution...

Sunday, January 29, 12

Page 28: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

AS7 rocks!!!

JBoss AS7 is better suited for building middleware on top compared to predecessors

Sunday, January 29, 12

Page 29: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

IDE integration is key!

IDE integration makes Scala a joy to work with and Ceylon has it as one its goals

Sunday, January 29, 12

Page 30: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Join the revolution!

Sunday, January 29, 12

Page 31: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Summary

JBoss started as Java middleware producer but has evolved to accommodate other languages

Sunday, January 29, 12

Page 32: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Summary

We’ve created a new language called Ceylon which targets team development

Sunday, January 29, 12

Page 33: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Summary

JVM ready to accommodate other languages since day 1!

Sunday, January 29, 12

Page 34: Sunday, January 29, 12 - JBoss Developer · Sunday, January 29, 12. Agenda • JBoss as a java middleware producer • Evolution into multi-language platforms • JVM as runtime platform

Questionshttp://infinispan.orghttp://torquebox.org/http://ceylon-lang.org/http://immutant.org/

Rate this talk!http://speakerrate.com/galder

Sunday, January 29, 12