SlideShare a Scribd company logo
1 of 18
Solnet Solutions Ltd

JET (Java Emerging Technology)
 Conference – September 2008
JET (Java Emerging Technology)
               Conference
   http://java.meetup.com/162
   Conference Details
   Organised by the Auckland Java Group
   http://jet.javacom.co.nz

 Outline of the sessions attended
 Java 7, EasyB, Scala, Groovy, Grails, J2ME and
  Android
 Future Presentations on sessions attended…
Java 7

 What is likely to be in included in Java 7?
 What impacts us? Do we care?

   JSR 294 – Super Packages
   JSR 297 – Java Module System (JAMS)
   JSR 310 – Date and Time
   JSR 210 – New NIO
   JSR 295 – Beans Binding
   JSR 303 – Bean Validation
   JSR 292 – Invoke Dynamic
Java 7

 Other includes…

   JSR 166 – Concurrency
   JSR 296 – Swing
   JSR 225 – XQuery API
   JSR 255 – JMX 2.0
   JSR 262 – Web Services Connector for JMX

 …but not likely to be included…
Java 7

 Not likely to be included in Java 7

   Closures
   JavaDoc Update
   Refined Generics
   Property Support

 List of all JSR’s - http://jcp.org/en/jsr/all
EasyB

 BDD (Behaviour Driven Development)
 Specifications based DSL written in Groovy

 ‘Test’ replaced with ‘Should’
 Uses an easy-to-understand structure
   – Given [a context]…
   – When [something happens]…
   – Then [something else happens]…
EasyB

 EasyB example code:
   scenario “Make initial deposit onto a new account”
     given “a new account”, {
       account = new Account()
     }
     when “an initial deposit is made”, {
       initialAmount = 100
       account.makeDeposit(initialAmount)
     }
     then “the balance should be equal to the amount deposited”, {
       account.balance.shouldBe initialAmount
     }




 http://easyb.org – EasyB website
 http://weblogs.java.net/blog/johnsmart/archive/2008/09/a
   - John Smart’s Presentation
 Java Power Tools – O’Reilly
Scala

 Object Orientated Functional Language
 Runs on the JVM
 Release candidate status (2.7.2 RC2 – 19/09)

 Types and behaviours are described by classes
  and traits
 Has implicit type inference, closures and powerful
  pattern matching

 …lets take a look at some code…
Scala

 Love Game – Java Code
// Creates 2 character arrays that will be compared
char bothNamesArray[] = “roger federer maria sharapova”.toCharArray();
char compWordArray[] = “loves”.toCharArray();

// Creates an Integer array for storing count results
Integer tallyArray[] = new Integer[compWord.length()];

int tallyArrayPointer = 0;
int matchCounter = 0;

/*
 * Counts the number of times each character in compWordArray also
 * appears in bothNamesArray
 */
While (tallyArrayPointer < compWord.length()) {
  for (int i = 0; i < bothNames.length(); i++) {

 ...



 ..enough of that…let’s do this with Scala…
Scala

 Love Game – Scala Code
val names = “roger federer maria sharapova”
val initialList = “loves”.toList map( x => names.toList count(x == _))

def loveReduce(numbers:List[Int]):Int = numbers match {
  case head::Nil => head * 2
  case _ => loveReduce(numbers zip(numbers tail) map { case (a,b) => a + b})
}

// Displays the compatability percentage
println(“Compatibility = “ + loveReduce(initialList) + “ %”)


   …much better?
   Notes about the example:
   Syntax – no semi-colons, optional parentheses
   Pattern matching, List operations
Scala

 Scala Resources

 http://www.scala-lang.org
 http://stubbisms.wordpress.com/2008/02/22/my-foray-in
   - Love Game Example
 http://www.codecommit.com/blog/scala/roundup-scala-f
 Series on IBM Developerworks – Scala for the
  busy Java Developers
Groovy

   Dynamic Language
   Runs in the JVM
   Shell Interpreter
   Supports DSL (EasyB)
   Seamlessly integrates with all existing Java objects
    and libraries

 Useful for scripting builds (integration with Maven
  and Ant)
 Useful for quick prototypes
Groovy

 So why learn Groovy….
 JDBC Example – Java Code
import   java.sql.Connection;
import   java.sql.DriverManager;
import   java.sql.ResultSet;
import   java.sql.SQLException;
import   java.sql.Statement;

public class JDBCExample {
  public static void main(String[] args) {
    Connection con = null;
    ...
    try {
      // Connection code`
    } catch (SQLException e) {
      e.printStackTrace();
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    } finally {
    ...

 …enough..my fingers are hurting..let’s get Groovy…
Groovy

 JDBC Example – Groovy Code
import groovy.sql.Sql
class GroovySqlExample {
  static void main(args) {
    sql = Sql.newInstance(“jdbc:mysql://localhost:3306/words”, “words”,
           “words”, “org.gjt.mm.mysql.Driver”)
    sql.eachRow(“select * from word”) { row ->
      println row.word_id + “ “ + row.spelling + “ “ + row.part_of_speech
  }
 }
}


 Notes on the example code
 eachRow method – iterator of the passed in query
 Closure used for each result row

 Groovlet and Groovy Templates
Groovy

 Want to learn more about Groovy?

 http://groovy.codehaus.org
 Practically Groovy series on IBM Developerworks
  (some of the examples in earlier parts are
  outdated)

 Slides from the presentation at JET conference will
  be available online soon
Grails

 Web application framework leveraging Groovy
 Aims to simplify development
 “coding by convention” – file system, file names
  and such carry meaning (replace XML
  configuration files)
 Leverages Hibernate and Spring
 Quick and simple to set up and deploy an
  application
 Excellent documentation compared to Groovy
 http://grails.org
J2ME

 Latest developments in J2ME development

   UI Developments
   LWUIT (LightWeight User Interface Toolkit)
   - Swing like capabilities
   - IDE Demo had screen refresh issues
   Flex Mobile

 Technical Development
 Application Signing (allows access to comms and database)

 Difficulties with BlackBerry Development
Android

 Google Android mobile platform using the Java
  programming language
 Access to core mobile device functionality
 Easily embed the web with WebView
 SDK – Eclipse IDE (Simulator)

 Demo application – Issues with screen refresh as
  per J2ME LWUIT
 Android Developer challenge

 http://code.google.com/android

More Related Content

What's hot

Performance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best PracticesPerformance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best PracticesDoris Chen
 
Hibernate
Hibernate Hibernate
Hibernate Sunil OS
 
Workshop 8: Templating: Handlebars, DustJS
Workshop 8: Templating: Handlebars, DustJSWorkshop 8: Templating: Handlebars, DustJS
Workshop 8: Templating: Handlebars, DustJSVisual Engineering
 
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一scalaconfjp
 
Visage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIsVisage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIsStephen Chin
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVMKoichi Sakata
 
How AngularJS Embraced Traditional Design Patterns
How AngularJS Embraced Traditional Design PatternsHow AngularJS Embraced Traditional Design Patterns
How AngularJS Embraced Traditional Design PatternsRan Mizrahi
 
Java7 - Top 10 Features
Java7 - Top 10 FeaturesJava7 - Top 10 Features
Java7 - Top 10 FeaturesAndreas Enbohm
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaKévin Margueritte
 
JavaFX and Scala in the Cloud
JavaFX and Scala in the CloudJavaFX and Scala in the Cloud
JavaFX and Scala in the CloudStephen Chin
 
Javascript Module Patterns
Javascript Module PatternsJavascript Module Patterns
Javascript Module PatternsNicholas Jansma
 
JavaScript in 2016
JavaScript in 2016JavaScript in 2016
JavaScript in 2016Codemotion
 
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiRan Mizrahi
 
React Native One Day
React Native One DayReact Native One Day
React Native One DayTroy Miles
 

What's hot (20)

Performance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best PracticesPerformance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best Practices
 
Hibernate
Hibernate Hibernate
Hibernate
 
Workshop 8: Templating: Handlebars, DustJS
Workshop 8: Templating: Handlebars, DustJSWorkshop 8: Templating: Handlebars, DustJS
Workshop 8: Templating: Handlebars, DustJS
 
Scala
ScalaScala
Scala
 
IOC + Javascript
IOC + JavascriptIOC + Javascript
IOC + Javascript
 
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
Building a Unified Data Pipline in Spark / Apache Sparkを用いたBig Dataパイプラインの統一
 
Visage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIsVisage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIs
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVM
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
How AngularJS Embraced Traditional Design Patterns
How AngularJS Embraced Traditional Design PatternsHow AngularJS Embraced Traditional Design Patterns
How AngularJS Embraced Traditional Design Patterns
 
Java7 - Top 10 Features
Java7 - Top 10 FeaturesJava7 - Top 10 Features
Java7 - Top 10 Features
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework Scala
 
JavaFX and Scala in the Cloud
JavaFX and Scala in the CloudJavaFX and Scala in the Cloud
JavaFX and Scala in the Cloud
 
Workshop 15: Ionic framework
Workshop 15: Ionic frameworkWorkshop 15: Ionic framework
Workshop 15: Ionic framework
 
Oak Lucene Indexes
Oak Lucene IndexesOak Lucene Indexes
Oak Lucene Indexes
 
Javascript Module Patterns
Javascript Module PatternsJavascript Module Patterns
Javascript Module Patterns
 
JavaScript in 2016
JavaScript in 2016JavaScript in 2016
JavaScript in 2016
 
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran Mizrahi
 
React Native One Day
React Native One DayReact Native One Day
React Native One Day
 

Viewers also liked (9)

Nutech - Killeagh
Nutech - KilleaghNutech - Killeagh
Nutech - Killeagh
 
Sego presentation
Sego presentationSego presentation
Sego presentation
 
Presentation Itfma Seminar 21 May08
Presentation Itfma Seminar 21 May08Presentation Itfma Seminar 21 May08
Presentation Itfma Seminar 21 May08
 
Be awesomer
Be awesomerBe awesomer
Be awesomer
 
YOW! 2010 Day 2
YOW! 2010 Day 2YOW! 2010 Day 2
YOW! 2010 Day 2
 
YOW! 2010 Day 1
YOW! 2010 Day 1YOW! 2010 Day 1
YOW! 2010 Day 1
 
Social-Climber-Construct-Ireland[1]
Social-Climber-Construct-Ireland[1]Social-Climber-Construct-Ireland[1]
Social-Climber-Construct-Ireland[1]
 
Energy Efficiency In Irish Office Buildings
Energy Efficiency In Irish Office BuildingsEnergy Efficiency In Irish Office Buildings
Energy Efficiency In Irish Office Buildings
 
JUnit Goodness
JUnit GoodnessJUnit Goodness
JUnit Goodness
 

Similar to Jet presentation

JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011Nick Sieger
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyDavid Padbury
 
Groovy on Grails by Ziya Askerov
Groovy on Grails by Ziya AskerovGroovy on Grails by Ziya Askerov
Groovy on Grails by Ziya AskerovVuqar Suleymanov
 
Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)Alex Motley
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsIndicThreads
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Codemotion
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLsintelliyole
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSAlberto Paro
 
Alberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsAlberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsScala Italy
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenerytoddbr
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiJackson Tian
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.jsguileen
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & RailsPeter Lind
 

Similar to Jet presentation (20)

JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
 
Grails
GrailsGrails
Grails
 
Grails
GrailsGrails
Grails
 
Groovy on Grails by Ziya Askerov
Groovy on Grails by Ziya AskerovGroovy on Grails by Ziya Askerov
Groovy on Grails by Ziya Askerov
 
Play framework
Play frameworkPlay framework
Play framework
 
Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)Making The Move To Java 17 (JConf 2022)
Making The Move To Java 17 (JConf 2022)
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applications
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
Alberto Maria Angelo Paro - Isomorphic programming in Scala and WebDevelopmen...
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
 
Node.js vs Play Framework
Node.js vs Play FrameworkNode.js vs Play Framework
Node.js vs Play Framework
 
Clojure And Swing
Clojure And SwingClojure And Swing
Clojure And Swing
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Scala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJSScala Italy 2015 - Hands On ScalaJS
Scala Italy 2015 - Hands On ScalaJS
 
Alberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.jsAlberto Paro - Hands on Scala.js
Alberto Paro - Hands on Scala.js
 
Javascript first-class citizenery
Javascript first-class citizeneryJavascript first-class citizenery
Javascript first-class citizenery
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin Shanghai
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.js
 
Java, Ruby & Rails
Java, Ruby & RailsJava, Ruby & Rails
Java, Ruby & Rails
 

More from Peter Sellars

Culture As Strategy - DevOpsDays NZ 2016
Culture As Strategy - DevOpsDays NZ 2016Culture As Strategy - DevOpsDays NZ 2016
Culture As Strategy - DevOpsDays NZ 2016Peter Sellars
 
What Is The Docker Global Hack Day?
What Is The Docker Global Hack Day?What Is The Docker Global Hack Day?
What Is The Docker Global Hack Day?Peter Sellars
 
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalkAuckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalkPeter Sellars
 
Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...
Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...
Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...Peter Sellars
 
Technology Radar - Pecha Kucha
Technology Radar - Pecha KuchaTechnology Radar - Pecha Kucha
Technology Radar - Pecha KuchaPeter Sellars
 
BQI Project Overview
BQI Project OverviewBQI Project Overview
BQI Project OverviewPeter Sellars
 

More from Peter Sellars (7)

Culture As Strategy - DevOpsDays NZ 2016
Culture As Strategy - DevOpsDays NZ 2016Culture As Strategy - DevOpsDays NZ 2016
Culture As Strategy - DevOpsDays NZ 2016
 
What Is The Docker Global Hack Day?
What Is The Docker Global Hack Day?What Is The Docker Global Hack Day?
What Is The Docker Global Hack Day?
 
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalkAuckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
Auckland Docker Meetup (July 2015) - DockerCon2015 lightningtalk
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...
Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...
Lightening Talk: Auckland Continuous Delivery Meetup [Sept 2014] - Pact: Cons...
 
Technology Radar - Pecha Kucha
Technology Radar - Pecha KuchaTechnology Radar - Pecha Kucha
Technology Radar - Pecha Kucha
 
BQI Project Overview
BQI Project OverviewBQI Project Overview
BQI Project Overview
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Jet presentation

  • 1. Solnet Solutions Ltd JET (Java Emerging Technology) Conference – September 2008
  • 2. JET (Java Emerging Technology) Conference  http://java.meetup.com/162  Conference Details  Organised by the Auckland Java Group  http://jet.javacom.co.nz  Outline of the sessions attended  Java 7, EasyB, Scala, Groovy, Grails, J2ME and Android  Future Presentations on sessions attended…
  • 3. Java 7  What is likely to be in included in Java 7?  What impacts us? Do we care?  JSR 294 – Super Packages  JSR 297 – Java Module System (JAMS)  JSR 310 – Date and Time  JSR 210 – New NIO  JSR 295 – Beans Binding  JSR 303 – Bean Validation  JSR 292 – Invoke Dynamic
  • 4. Java 7  Other includes…  JSR 166 – Concurrency  JSR 296 – Swing  JSR 225 – XQuery API  JSR 255 – JMX 2.0  JSR 262 – Web Services Connector for JMX  …but not likely to be included…
  • 5. Java 7  Not likely to be included in Java 7  Closures  JavaDoc Update  Refined Generics  Property Support  List of all JSR’s - http://jcp.org/en/jsr/all
  • 6. EasyB  BDD (Behaviour Driven Development)  Specifications based DSL written in Groovy  ‘Test’ replaced with ‘Should’  Uses an easy-to-understand structure – Given [a context]… – When [something happens]… – Then [something else happens]…
  • 7. EasyB  EasyB example code: scenario “Make initial deposit onto a new account” given “a new account”, { account = new Account() } when “an initial deposit is made”, { initialAmount = 100 account.makeDeposit(initialAmount) } then “the balance should be equal to the amount deposited”, { account.balance.shouldBe initialAmount }  http://easyb.org – EasyB website  http://weblogs.java.net/blog/johnsmart/archive/2008/09/a - John Smart’s Presentation  Java Power Tools – O’Reilly
  • 8. Scala  Object Orientated Functional Language  Runs on the JVM  Release candidate status (2.7.2 RC2 – 19/09)  Types and behaviours are described by classes and traits  Has implicit type inference, closures and powerful pattern matching  …lets take a look at some code…
  • 9. Scala  Love Game – Java Code // Creates 2 character arrays that will be compared char bothNamesArray[] = “roger federer maria sharapova”.toCharArray(); char compWordArray[] = “loves”.toCharArray(); // Creates an Integer array for storing count results Integer tallyArray[] = new Integer[compWord.length()]; int tallyArrayPointer = 0; int matchCounter = 0; /* * Counts the number of times each character in compWordArray also * appears in bothNamesArray */ While (tallyArrayPointer < compWord.length()) { for (int i = 0; i < bothNames.length(); i++) { ...  ..enough of that…let’s do this with Scala…
  • 10. Scala  Love Game – Scala Code val names = “roger federer maria sharapova” val initialList = “loves”.toList map( x => names.toList count(x == _)) def loveReduce(numbers:List[Int]):Int = numbers match { case head::Nil => head * 2 case _ => loveReduce(numbers zip(numbers tail) map { case (a,b) => a + b}) } // Displays the compatability percentage println(“Compatibility = “ + loveReduce(initialList) + “ %”)  …much better?  Notes about the example:  Syntax – no semi-colons, optional parentheses  Pattern matching, List operations
  • 11. Scala  Scala Resources  http://www.scala-lang.org  http://stubbisms.wordpress.com/2008/02/22/my-foray-in - Love Game Example  http://www.codecommit.com/blog/scala/roundup-scala-f  Series on IBM Developerworks – Scala for the busy Java Developers
  • 12. Groovy  Dynamic Language  Runs in the JVM  Shell Interpreter  Supports DSL (EasyB)  Seamlessly integrates with all existing Java objects and libraries  Useful for scripting builds (integration with Maven and Ant)  Useful for quick prototypes
  • 13. Groovy  So why learn Groovy….  JDBC Example – Java Code import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCExample { public static void main(String[] args) { Connection con = null; ... try { // Connection code` } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { ...  …enough..my fingers are hurting..let’s get Groovy…
  • 14. Groovy  JDBC Example – Groovy Code import groovy.sql.Sql class GroovySqlExample { static void main(args) { sql = Sql.newInstance(“jdbc:mysql://localhost:3306/words”, “words”, “words”, “org.gjt.mm.mysql.Driver”) sql.eachRow(“select * from word”) { row -> println row.word_id + “ “ + row.spelling + “ “ + row.part_of_speech } } }  Notes on the example code  eachRow method – iterator of the passed in query  Closure used for each result row  Groovlet and Groovy Templates
  • 15. Groovy  Want to learn more about Groovy?  http://groovy.codehaus.org  Practically Groovy series on IBM Developerworks (some of the examples in earlier parts are outdated)  Slides from the presentation at JET conference will be available online soon
  • 16. Grails  Web application framework leveraging Groovy  Aims to simplify development  “coding by convention” – file system, file names and such carry meaning (replace XML configuration files)  Leverages Hibernate and Spring  Quick and simple to set up and deploy an application  Excellent documentation compared to Groovy  http://grails.org
  • 17. J2ME  Latest developments in J2ME development  UI Developments  LWUIT (LightWeight User Interface Toolkit)  - Swing like capabilities  - IDE Demo had screen refresh issues  Flex Mobile  Technical Development  Application Signing (allows access to comms and database)  Difficulties with BlackBerry Development
  • 18. Android  Google Android mobile platform using the Java programming language  Access to core mobile device functionality  Easily embed the web with WebView  SDK – Eclipse IDE (Simulator)  Demo application – Issues with screen refresh as per J2ME LWUIT  Android Developer challenge  http://code.google.com/android