JBoss Polyglot: Java & Beyond Dr Mark Little, Red Hat, November 7th 2012. 1 Wednesday, 7 November 12
Introduction l Why are multiple languages interesting to JBoss? l What does it mean to be involved with these languages? l What are we trying to accomplish with the communities? l What are we trying to accomplish with our implementations? l Illustrate with some projects l How you can get involved l User l Contributor 2 Wednesday, 7 November 12
Source : www.tiobe.com, Sept 2012 3 Wednesday, 7 November 12
Developer explosion Build Devices / Clients Integration Databases Data Process Messages Data Applications Center Web Services Enterprise Applications Management/Provisioning 4 Wednesday, 7 November 12
The JVM... The best VM for $LANGUAGE 5 Wednesday, 7 November 12
Polyglot Before 2010 Today 1 JVM, 1 Language 1 JVM, Over 20 Languages JVM JVM 6 Wednesday, 7 November 12
New language requirements l Customers and community wants: l Interoperability l Guaranteed message delivery l Even in the presence of failures l Transactions l Though not necessarily ACID l Audit trails and bullet-proof security l Machine-readable SLAs l N-tier approach with different languages 7 Wednesday, 7 November 12
Enterprise capabilities l Java in 1996 did not possess enterprise features l J2EE took several years to evolve l Some implementations layered on existing services l Popular JVM languages experiencing similar problem l Lack of enterprise capabilities l Two ways to resolve l Build from scratch in language l Leverage existing implementations in other languages 8 Wednesday, 7 November 12
JBoss AS... The best app-server for $LANGUAGE 9 Wednesday, 7 November 12
“Java EE is too bloated” l Differentiate between the standard and implementation l Bloatware should be a thing of the past l It is possible to be lightweight and enterprise ready 10 Wednesday, 7 November 12
11 Wednesday, 7 November 12
12 Wednesday, 7 November 12
13 Wednesday, 7 November 12
Getting involved with communities 14 Wednesday, 7 November 12
Parallel communities l The language community l The implementation community l Work to ensure the JVM implementation of a language is a first-class citizen Charlie Nutter, Thomas Enebo Douglas Campos, Bruno Oliveira 15 Wednesday, 7 November 12
TorqueBox l Ruby on EAP 6 Bob McWhirter, Jim Crossley, Ben Browning, Toby Crawley, Lance Ball 16 Wednesday, 7 November 12
Beyond the basics l Message-driven Ruby objects l Scheduled Jobs l Services/Daemons l Infinispan caching l HA/Failover 17 Wednesday, 7 November 12
Further beyond l Asynchronous programming model based on messaging class MyClass include Backgroundable always_background :slow def slow() sleep 60 end end 18 Wednesday, 7 November 12
Immutant l Clojure on EAP6 Jim Crossley, Toby Crawley 19 Wednesday, 7 November 12
What you get ... l HornetQ l Infinispan l Quartz l XA l Clustering 20 Wednesday, 7 November 12
Dynamic deployment l Service binding via code: (require ‘[immutant.web :as web]) (defn my-handler [request] {:status 200 :headers {“Content-type” “text/html”} :body “Hello world!”}) (web/start “/hi” my-handler) 21 Wednesday, 7 November 12
Escalante l Scala on EAP 6 Galder Zamarreño 22 Wednesday, 7 November 12
Basics l Multiple Lift apps on JBoss l Multiple versions of Scala l Multiple versions of Lift l Living happily together 23 Wednesday, 7 November 12
YellowBeard (aka AS.py) l Python on JBoss AS 7 Toby Crawley 24 Wednesday, 7 November 12
Some issues ... l Jython not quite first-class l Some Python frameworks/apps assume C-based Python implemention l The occasional bug 25 Wednesday, 7 November 12
AS.js l JavaScript on EAP 6 Lance Ball, Bob McWhirter, Douglas Campos 26 Wednesday, 7 November 12
Goals l Support Node.js applications l Using DynJS Java7 InvokeDynamic for fast execution l And all that other middleware stuff 27 Wednesday, 7 November 12
https://ceylon-lang.org/ l A new language for the JVM Gavin King, Emmanuel Bernard, Max Anders e n, countless others 28 Wednesday, 7 November 12
Goals l Union and Intersection Types l Type inference/Strongly-typed l Mixins l Higher-order functions l Operation Overloading 29 Wednesday, 7 November 12
JBoss The J stands for JVM not just Java 30 Wednesday, 7 November 12
Wayfinding • http://torquebox.org/ • http://immutant.org/ • http://escalante.io/ • http://jruby.org/ • http://dynjs.org/ • http://ceylon-lang.org/ 31 Wednesday, 7 November 12
Richard Hamming, 1968 Turing speech • Whereas Newton could say, "If I have seen a little farther than others, it is because I have stood on the shoulders of giants," I am forced to say, "Today we stand on each other's feet." Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a trivially different way. 32 Wednesday, 7 November 12
Recommend
More recommend