Jazzing up Plain Old Java

Total Page:16

File Type:pdf, Size:1020Kb

Jazzing up Plain Old Java Groooooovy Babe: Jazzing Up Plain Old Java http://viva.sourceforge.net/talk/jug-mar-2004/slides.html Groooooovy Babe: Jazzing Up Plain Old Java Scripting Power for Java - Do More With Less (Lines of Code) Gerald Bauer (Chairman, CEO, CFO and CTO of Me, Myself & I, Inc.) Java User Group (JUG) Austria Talk, March 2004 Table of Contents Groooooovy Babe - Jazzing Up Plain Old Java Who is this guy? Agenda - The Road Ahead What is Groovy? Why Groovy? What's wrong with Python (Jython), Ruby (JRuby) or Smalltalk (Bistro)? One Language Can't Do It All: Beyond Hairballs and Spaghetti Code Scripting vs. Systems (Hard-Core) Programming / Groovy vs. Java First Impression - Servus Groovy Example Second Impression - Higher-Level Functions, Loops and Data Types Third Impression - Groovy Beans vs Java Beans The Groovy Founding Fathers More Groovy Heros Groovy Goodies Missing In Java Groovy Lists: Built-In Syntax for Lists Groovy Maps: Built-In Syntax for Maps More Groovy List and Map Examples Groovy Loops: Higher-Level Loops Using Closures What is a Closure (Code Block)? Closures In Action: Groovy Collections vs. Plain Old Java Collections Higher-Level Loops and Functions For Maps And Lists Groovy Adds New Methods To Core Java Classes Groovy Template Strings: Expressions In Strings Groovy Strings: Here-Doc Strings And More Groovy Path Expression Language Built-in Syntax For Regular Expressions (Regex) Groovy Markup (XML) Syntax Scripting Ant Using Groovy Markup Building Swing UIs Using Groovy Markup Building Eclipse UIs Using Groovy Markup Groovy SQL Groovy Java Interop: Static Typing Optional Embedding Groovy in Your App Compiling Groovy Scripts Using groovyc Compiling Groovy Scripts Using Ant or Maven More Groovy Goodies in the Pipeline Alternative Scripting Languages for the Java Runtime Viva! Scripting Language of the Year 2003 Award Scripting Languages Comparison Chart Groovy Links, Links, Links Ruby Links, Links, Links Bonus Slide: Python (Jython) Links, Links, Links Scripting: Higher Level Programming for the 21st Century That's it - The Future Just Happened Groooooovy Babe - Jazzing Up Plain Old Java Who is this guy? Gerald Bauer independent Java, XML and Web consultant and open-source advocate open-sourced Luxor (Java XML UI Language (XUL) Toolkit) , Rachel (Resource Loading Toolkit for Web Start/JNLP), Apollo (Test Skeletion for Web Start/JNLP) and more (now all Apache 2.0-licensed) maintains Lopica Web Start Encyclopedia including the Unofficial Java Web Start/JNLP FAQ publishes The Java Republic (Free Open Source Core Java News) and The Richmond Post (XML UI News) 1 of 19 2/28/08 9:43 PM Groooooovy Babe: Jazzing Up Plain Old Java http://viva.sourceforge.net/talk/jug-mar-2004/slides.html started the XUL News Wire and Web Start News Wire founded the Open XUL Alliance to offer a forum to work on XML UI Language (XUL) interop and help create a rich internet for everyone Agenda - The Road Ahead Why Groovy? One Language Can't Do It All Groovy Panorama - Servus Groovy The Heroes Behind Groovy Groovy Goodies Missing in Java Embedding Groovy, Compiling Groovy Alternative Scripting Languages for Java Groovy and Ruby Books and Links What is Groovy? Groovy is a dynamic object-oriented scripting language that combines the best from Smalltalk, Python and Ruby in an all-in-one package using a Java-like syntax. Groovy is 100 % Java and compiles scripts straight to Java bytecode that run on any Java Virtual Machine. Groovy offers seamless and smoth Java intergration: from Groovy you can access all Java libraries, you can build applets or Java beans, you can derive from Java classes in Groovy and vice versa. Why Groovy? What's wrong with Python (Jython), Ruby (JRuby) or Smalltalk (Bistro)? Why yet another scripting language? Groovy builds on (reuses) the Java standard class library; Python, Ruby or Smalltalk include their own batteries (that is, standard libraries) Groovy uses a Java-like syntax; easy to switch from Java to Groovy or from Groovy to Java Groovy compiles straight to standard Java bytecode; you can use Groovy (groovyc) as an alternative compiler to javac One Language Can't Do It All: Beyond Hairballs and Spaghetti Code Scripting on the Rise. The Death of General Purpose Languages and Monolithic Applications. Prefer the single-purpose languages below to general-purpose languages such as Java, C# or Shark. XHTML / rich (styled) text XUL (XML UI Language) / rich UIs such as menus, toolbars, forms, datagrids, trees, splitters, and so on SVG (Scalable Vector Graphics) / rich 2D graphics such as charts, maps, logos, and so on CSS (Cascading Stylesheets) / Visual Styling for XHTML, XUL and SVG Groovy / Scripting XPath / XML Tree Node Addressing SQL / Data Queries, Updates, Inserts, Deletes, etc. String Tables / Internationalization Velocity, XSL-T / Template Scripting vs. Systems (Hard-Core) Programming / Groovy vs. Java Groovy does not replace Java. Groovy complements Java and doesn't compete head-on. Groovy is a scripting language. Java is a hard-core programming language (systems language). No compilation (Fast Build-Cycle Turnaround) Dynamic Typing (No Need to Declare Variables For Use) Easy Syntax (Higher Level Datatypes, Functions and Loops, Semicolons and Return Optional, and more) Embedabble (Scripting Power for Your Apps) Interactive (Create,View, Change Objects At Run-Time) 2 of 19 2/28/08 9:43 PM Groooooovy Babe: Jazzing Up Plain Old Java http://viva.sourceforge.net/talk/jug-mar-2004/slides.html 50 % less code 2 to 3 times higher productivity (that is, less development time) First Impression - Servus Groovy Example Java public class ServusGroovy { public static void main( String args[] ) { System.out.println( "Servus Groovy" ); } } Groovy print 'Servus Groovy' Second Impression - Higher-Level Functions, Loops and Data Types Java import java.util.*; public class HelloWorld { public static void main( String args[] ) { List country = new ArrayList(); country.add( "Canada" ); country.add( "Austria" ); country.add( "Brazil" ); Collections.sort( country ); for( Iterator it = country.iterator(); it.hasNext() ) System.out.println( "Hello " + it.next() ); } } Groovy country = [ 'Canada', 'Austria', 'Brazil' ] country.sort country.each { println "Hello ${it}" } Ruby country = [ 'Canada', 'Austria', 'Brazil' ] country.sort country.each { |country| puts "Hello #{country}" } Third Impression - Groovy Beans vs Java Beans Java public class Country { private String name; private String capital; 3 of 19 2/28/08 9:43 PM Groooooovy Babe: Jazzing Up Plain Old Java http://viva.sourceforge.net/talk/jug-mar-2004/slides.html public String getName() { return name; } public String getCapital() { return capital; } public String setName( String name ) { this.name = name; } public String setCapital( String capital ) { this.capital = capital; } public static void main( String args[] ) { Country austria = new Country(); austria.setName( "Austria" ); austria.setCapital( "Vienna" ); Country canada = new Country(); canada.setName( "Canada" ); canada.setCapital( "Ottawa" ); List world = new ArrayList(); world.add( austria ); world.add( canada ); for( Iterator it = world.iterator(); it.hasNext() ) { Country country = it.next(); System.out.println( "The capital of " + country.getName() + " is " + country.getCapital() + "." ); } } } Groovy class Country { String name String capital } world = [new Country(name:'Austria', capital:'Vienna'), new Country(name:'Canada', capital:'Ottawa')] world.each { country | println "The capital of ${country.name} is ${country.capital}." } Ruby class Country def initialize( name, capital ) @name = name @capital = capital end attr_reader( :name, :capital ) end world = [ Country.new( 'Austria', 'Vienna' ), Country.new( 'Canada', 'Ottawa' )] world.each { | country | puts "The capital of #{country.name} is #{country.capital}." } The Groovy Founding Fathers Who is James Strachan? Java hacker extraordinaire from London, UK (England) Works as Partner for the Core Developers Network Guiness book of world records candidate for starting the most open source projects Founder or Co-Founder: Groovy, Geronimo, Jelly, dom4j, Jaxen, saxpath, Commons Messenger, Commons Betwixt, Commons CLI Committer: Maven, Taglibs, Commons Collections, Commons Beanutils, Commons Logging, Commons Digester Who is Bob McWhirter? Java hacker extraordinaire from Atlanta, Georgia (USA) 4 of 19 2/28/08 9:43 PM Groooooovy Babe: Jazzing Up Plain Old Java http://viva.sourceforge.net/talk/jug-mar-2004/slides.html Self-Employed, The Werken Company Codehaus.org founder Founder or Co-Founder: Groovy, dom4j, Jaxen, saxpath, Werkz, Drools, ClassWorlds More Groovy Heros Committers Joe Walnes, Chris Stevenson, Jamie McCrindle, Matt Foemmel, Sam Pullara, Kasper Nielsen, Travis Kay, Guillaume Laforge, Zohar Melamed, John Wilson Contributors Jeremy Rayner, Joern Eyrich, Robert Kuzelj, Rod Cope, Yuri Schimke, James Birchfield, Robert Fuller, Sergey Udovenko Source: http://groovy.codehaus.org/team-list.html Groovy Goodies Missing In Java built-in syntax for lists, maps, regex and ranges (e.g (1..1000)) (=higher level data types) built-in syntax for markup (XML) higher-level functions and loops (=closures) built-in Velocity-style/XPath-style expression for Java bean acess (e.g. ${movie.director.name}) many new helper methods added to core Java classes (e.g. any, each, findAll, print and more) new keywords (e.g. property, using) operator overloading (e.g. [1,2,3]+[3,4,5], map['one']) everything is an object (no need for boxing and unboxing) and more Groovy Lists: Built-In Syntax for Lists
Recommended publications
  • Writing R Extensions
    Writing R Extensions Version 4.2.0 Under development (2021-09-29) R Core Team This manual is for R, version 4.2.0 Under development (2021-09-29). Copyright c 1999{2021 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages ::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.3 Package Dependencies::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3.1 Suggested packages:::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 1.1.5 Package subdirectories :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Actors at Work Issue Date: 2016-12-15 Actors at Work Behrooz Nobakht
    Cover Page The handle http://hdl.handle.net/1887/45620 holds various files of this Leiden University dissertation Author: Nobakht, Behrooz Title: Actors at work Issue Date: 2016-12-15 actors at work behrooz nobakht 2016 Leiden University Faculty of Science Leiden Institute of Advanced Computer Science Actors at Work Actors at Work Behrooz Nobakht ACTORS AT WORK PROEFSCHRIFT ter verkrijging van de graad van doctor aan de Universiteit Leiden op gezag van de Rector Magnificus prof. dr. C. J. J. M. Stolker, volgens besluit van het College voor Promoties te verdedigen op donderdag 15 december 2016 klokke 11.15 uur door Behrooz Nobakht geboren te Tehran, Iran, in 1981 Promotion Committee Promotor: Prof. Dr. F.S. de Boer Co-promotor: Dr. C. P. T. de Gouw Other members: Prof. Dr. F. Arbab Dr. M.M. Bonsangue Prof. Dr. E. B. Johnsen University of Oslo, Norway Prof. Dr. M. Sirjani Reykjavik University, Iceland The work reported in this thesis has been carried out at the Center for Mathematics and Computer Science (CWI) in Amsterdam and Leiden Institute of Advanced Computer Science at Leiden University. This research was supported by the European FP7-231620 project ENVISAGE on Engineering Virtualized Resources. Copyright © 2016 by Behrooz Nobakht. All rights reserved. October, 2016 Behrooz Nobakht Actors at Work Actors at Work, October, 2016 ISBN: 978-94-028-0436-2 Promotor: Prof. Dr. Frank S. de Boer Cover Design: Ehsan Khakbaz <[email protected]> Built on 2016-11-02 17:00:24 +0100 from 397717ec11adfadec33e150b0264b0df83bdf37d at https://github.com/nobeh/thesis using: This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) kpathsea version 6.2.1 Leiden University Leiden Institute of Advanced Computer Science Faculty of Science Niels Bohrweg 1 2333 CA and Leiden Contents I Introduction1 1 Introduction 3 1.1 Objectives and Architecture .
    [Show full text]
  • Toward Harnessing High-Level Language Virtual Machines for Further Speeding up Weak Mutation Testing
    2012 IEEE Fifth International Conference on Software Testing, Verification and Validation Toward Harnessing High-level Language Virtual Machines for Further Speeding up Weak Mutation Testing Vinicius H. S. Durelli Jeff Offutt Marcio E. Delamaro Computer Systems Department Software Engineering Computer Systems Department Universidade de Sao˜ Paulo George Mason University Universidade de Sao˜ Paulo Sao˜ Carlos, SP, Brazil Fairfax, VA, USA Sao˜ Carlos, SP, Brazil [email protected] [email protected] [email protected] Abstract—High-level language virtual machines (HLL VMs) have tried to exploit the control that HLL VMs exert over run- are now widely used to implement high-level programming ning programs to facilitate and speedup software engineering languages. To a certain extent, their widespread adoption is due activities. Thus, this research suggests that software testing to the software engineering benefits provided by these managed execution environments, for example, garbage collection (GC) activities can benefit from HLL VMs support. and cross-platform portability. Although HLL VMs are widely Test tools are usually built on top of HLL VMs. However, used, most research has concentrated on high-end optimizations they often end up tampering with the emergent computation. such as dynamic compilation and advanced GC techniques. Few Using features within the HLL VMs can avoid such problems. efforts have focused on introducing features that automate or fa- Moreover, embedding testing tools within HLL VMs can cilitate certain software engineering activities, including software testing. This paper suggests that HLL VMs provide a reasonable significantly speedup computationally expensive techniques basis for building an integrated software testing environment. As such as mutation testing [6].
    [Show full text]
  • Java (Programming Langua a (Programming Language)
    Java (programming language) From Wikipedia, the free encyclopedialopedia "Java language" redirects here. For the natural language from the Indonesian island of Java, see Javanese language. Not to be confused with JavaScript. Java multi-paradigm: object-oriented, structured, imperative, Paradigm(s) functional, generic, reflective, concurrent James Gosling and Designed by Sun Microsystems Developer Oracle Corporation Appeared in 1995[1] Java Standard Edition 8 Update Stable release 5 (1.8.0_5) / April 15, 2014; 2 months ago Static, strong, safe, nominative, Typing discipline manifest Major OpenJDK, many others implementations Dialects Generic Java, Pizza Ada 83, C++, C#,[2] Eiffel,[3] Generic Java, Mesa,[4] Modula- Influenced by 3,[5] Oberon,[6] Objective-C,[7] UCSD Pascal,[8][9] Smalltalk Ada 2005, BeanShell, C#, Clojure, D, ECMAScript, Influenced Groovy, J#, JavaScript, Kotlin, PHP, Python, Scala, Seed7, Vala Implementation C and C++ language OS Cross-platform (multi-platform) GNU General Public License, License Java CommuniCommunity Process Filename .java , .class, .jar extension(s) Website For Java Developers Java Programming at Wikibooks Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few impimplementation dependencies as possible.ble. It is intended to let application developers "write once, run ananywhere" (WORA), meaning that code that runs on one platform does not need to be recompiled to rurun on another. Java applications ns are typically compiled to bytecode (class file) that can run on anany Java virtual machine (JVM)) regardless of computer architecture. Java is, as of 2014, one of tthe most popular programming ng languages in use, particularly for client-server web applications, witwith a reported 9 million developers.[10][11] Java was originallyy developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems'Micros Java platform.
    [Show full text]
  • A Hardware Abstraction Layer in Java
    A Hardware Abstraction Layer in Java MARTIN SCHOEBERL Vienna University of Technology, Austria STEPHAN KORSHOLM Aalborg University, Denmark TOMAS KALIBERA Purdue University, USA and ANDERS P. RAVN Aalborg University, Denmark Embedded systems use specialized hardware devices to interact with their environment, and since they have to be dependable, it is attractive to use a modern, type-safe programming language like Java to develop programs for them. Standard Java, as a platform independent language, delegates access to devices, direct memory access, and interrupt handling to some underlying operating system or kernel, but in the embedded systems domain resources are scarce and a Java virtual machine (JVM) without an underlying middleware is an attractive architecture. The contribution of this paper is a proposal for Java packages with hardware objects and interrupt handlers that interface to such a JVM. We provide implementations of the proposal directly in hardware, as extensions of standard interpreters, and finally with an operating system middleware. The latter solution is mainly seen as a migration path allowing Java programs to coexist with legacy system components. An important aspect of the proposal is that it is compatible with the Real-Time Specification for Java (RTSJ). Categories and Subject Descriptors: D.4.7 [Operating Systems]: Organization and Design—Real-time sys- tems and embedded systems; D.3.3 [Programming Languages]: Language Classifications—Object-oriented languages; D.3.3 [Programming Languages]: Language Constructs and Features—Input/output General Terms: Languages, Design, Implementation Additional Key Words and Phrases: Device driver, embedded system, Java, Java virtual machine 1. INTRODUCTION When developing software for an embedded system, for instance an instrument, it is nec- essary to control specialized hardware devices, for instance a heating element or an inter- ferometer mirror.
    [Show full text]
  • Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior Gilberto Contreras Margaret Martonosi
    Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior Gilberto Contreras Margaret Martonosi Department of Electrical Engineering Princeton University 1 Why Study Power in Java Systems? The Java platform has been adopted in a wide variety of devices Java servers demand performance, embedded devices require low-power Performance is important, power/energy/thermal issues are equally important How do we study and characterize these requirements in a multi-layer platform? 2 Power/Performance Design Issues Java Application Java Virtual Machine Operating System Hardware 3 Power/Performance Design Issues Java Application Garbage Class Runtime Execution Collection LoaderJava VirtualCompiler MachineEngine Operating System Hardware How do the various software layers affect power/performance characteristics of hardware? Where should time be invested when designing power and/or thermally aware Java virtual Machines? 4 Outline Approaches for Energy/Performance Characterization of Java virtual machines Methodology Breaking the JVM into sub-components Hardware-based power/performance characterization of JVM sub-components Results Jikes & Kaffe on Pentium M Kaffe on Intel XScale Conclusions 5 Power & Performance Analysis of Java Simulation Approach √ Flexible: easy to model non-existent hardware x Simulators may lack comprehensiveness and accuracy x Thermal studies require tens of seconds granularity Accurate simulators are too slow Hardware Approach √ Able to capture full-system characteristics
    [Show full text]
  • Apache Harmony Project Tim Ellison Geir Magnusson Jr
    The Apache Harmony Project Tim Ellison Geir Magnusson Jr. Apache Harmony Project http://harmony.apache.org TS-7820 2007 JavaOneSM Conference | Session TS-7820 | Goal of This Talk In the next 45 minutes you will... Learn about the motivations, current status, and future plans of the Apache Harmony project 2007 JavaOneSM Conference | Session TS-7820 | 2 Agenda Project History Development Model Modularity VM Interface How Are We Doing? Relevance in the Age of OpenJDK Summary 2007 JavaOneSM Conference | Session TS-7820 | 3 Agenda Project History Development Model Modularity VM Interface How Are We Doing? Relevance in the Age of OpenJDK Summary 2007 JavaOneSM Conference | Session TS-7820 | 4 Apache Harmony In the Beginning May 2005—founded in the Apache Incubator Primary Goals 1. Compatible, independent implementation of Java™ Platform, Standard Edition (Java SE platform) under the Apache License 2. Community-developed, modular architecture allowing sharing and independent innovation 3. Protect IP rights of ecosystem 2007 JavaOneSM Conference | Session TS-7820 | 5 Apache Harmony Early history: 2005 Broad community discussion • Technical issues • Legal and IP issues • Project governance issues Goal: Consolidation and Consensus 2007 JavaOneSM Conference | Session TS-7820 | 6 Early History Early history: 2005/2006 Initial Code Contributions • Three Virtual machines ● JCHEVM, BootVM, DRLVM • Class Libraries ● Core classes, VM interface, test cases ● Security, beans, regex, Swing, AWT ● RMI and math 2007 JavaOneSM Conference | Session TS-7820 |
    [Show full text]
  • A Post-Apocalyptic Sun.Misc.Unsafe World
    A Post-Apocalyptic sun.misc.Unsafe World http://www.superbwallpapers.com/fantasy/post-apocalyptic-tower-bridge-london-26546/ Chris Engelbert Twitter: @noctarius2k Jatumba! 2014, 2015, 2016, … Disclaimer This talk is not going to be negative! Disclaimer But certain things are highly speculative and APIs or ideas might change by tomorrow! sun.misc.Scissors http://www.underwhelmedcomic.com/wp-content/uploads/2012/03/runningdude.jpg sun.misc.Unsafe - What you (don’t) know sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) • Used inside the JVM / JRE sun.misc.Unsafe - What you (don’t) know • Internal class (sun.misc Package) • Used inside the JVM / JRE // Unsafe mechanics private static final sun.misc.Unsafe U; private static final long QBASE; private static final long QLOCK; private static final int ABASE; private static final int ASHIFT; static { try { U = sun.misc.Unsafe.getUnsafe(); Class<?> k = WorkQueue.class; Class<?> ak = ForkJoinTask[].class; example: QBASE = U.objectFieldOffset (k.getDeclaredField("base")); java.util.concurrent.ForkJoinPool QLOCK = U.objectFieldOffset (k.getDeclaredField("qlock")); ABASE = U.arrayBaseOffset(ak); int scale = U.arrayIndexScale(ak); if ((scale & (scale - 1)) != 0) throw new Error("data type scale not a power of two"); ASHIFT = 31 - Integer.numberOfLeadingZeros(scale); } catch (Exception e) { throw new Error(e); } } } sun.misc.Unsafe
    [Show full text]
  • Openjdk – the Future of Open Source Java on GNU/Linux
    OpenJDK – The Future of Open Source Java on GNU/Linux Dalibor Topić Java F/OSS Ambassador Blog aggregated on http://planetjdk.org Java Implementations Become Open Source Java ME, Java SE, and Java EE 2 Why now? Maturity Java is everywhere Adoption F/OSS growing globally Innovation Faster progress through participation 3 Why GNU/Linux? Values Freedom as a core value Stack Free Software above and below the JVM Demand Increasing demand for Java integration 4 Who profits? Developers New markets, new possibilities Customers More innovations, reduced risk Sun Mindshare, anchoring Java in GNU/Linux 5 License + Classpath GPL v2 Exception • No proprietary forks (for SE, EE) • Popular & trusted • Programs can have license any license • Compatible with • Improvements GNU/Linux remain in the community • Fostering adoption • FSFs license for GNU Classpath 6 A Little Bit Of History Jun 1996: Work on gcj starts Nov 1996: Work on Kaffe starts Feb 1998: First GNU Classpath Release Mar 2000: GNU Classpath and libgcj merge Dec 2002: Eclipse runs on gcj/Classpath Oct 2003: Kaffe switches to GNU Classpath Feb 2004: First FOSDEM Java Libre track Apr 2004: Richard Stallman on the 'Java Trap' Jan 2005: OpenOffice.org runs on gcj Mai 2005: Work on Harmony starts 7 Sun & Open Source Java RIs Juni 2005: Java EE RI Glassfish goes Open Source Mai 2006: First Glassfish release Mai 2006: Java announced to go Open Source November 2006: Java ME RI PhoneME goes Open Source November 2006: Java SE RI Hotspot und Javac go Open Source Mai 2007: The rest of Java SE follows suit 8 Status: JavaOne, Mai 2007 OpenJDK can be fully built from source, 'mostly' Open Source 25,169 Source code files 894 (4%) Binary files (“plugs”) 1,885 (8%) Open Source, though not GPLv2 The rest is GPLv2 (+ CP exception) Sun couldn't release the 4% back then as free software.
    [Show full text]
  • Free Java Developer Room
    Room: AW1.121 Free Java Developer Room Saturday 2008-02-23 14:00-15:00 Welcome to the Free Java Meeting Welcome and introduction to the projects, people and themes that make Rich Sands – Mark Reinhold – Mark up the Free Java Meeting at Fosdem. ~ GNU Classpath ~ OpenJDK Wielaard – Tom Marble 15:00-16:00 Mobile Java Take your freedom to the max! Make your Free Java mobile. Christian Thalinger - Guillaume ~ CACAO Embedded ~ PhoneME ~ Midpath Legris - Ray Gans 16:00-16:40 Women in Java Technology Female programmers are rare. Female Java programmers are even more Clara Ko - Linda van der Pal rare. ~ Duchess, Ladies in Java Break 17:00-17:30 Hacking OpenJDK & Friends Hear about directions in hacking Free Java from the front lines. Roman Kennke - Andrew Hughes ~ OpenJDK ~ BrandWeg ~ IcePick 17:30-19:00 VM Rumble, Porting and Architectures Dalibor Topic - Robert Lougher - There are lots of runtimes able to execute your java byte code. But which Peter Kessler - Ian Rogers - one is the best, coolest, smartest, easiest portable or just simply the most fun? ~ Kaffe ~ JamVM ~ HotSpot ~ JikesRVM ~ CACAO ~ ikvm ~ Zero- Christian Thalinger - Jeroen Frijters assembler Port ~ Mika - Gary Benson - Chris Gray Sunday 2008-02-24 9:00-10:00 Distro Rumble So which GNU/Linux distribution integrates java packages best? Find out Petteri Raty - Tom Fitzsimmons - during this distro shootout! ~ Gentoo ~ Fedora ~ Debian ~ Ubuntu Matthias Klose 10:00-11:30 The Free Java Factory OpenJDK and IcedTea, how are they made and how do you test them? David Herron - Lillian Angel - Tom ~ OpenJDK ~ IcedTea Fitzsimmons 11:30-13:00 JIT Session: Discussion Topics Dynamically Loaded Want to hear about -- or talk about -- something the Free Java world and don't see a topic on the agenda? This time is reserved for late binding Tom Marble discussion.
    [Show full text]
  • IT Acronyms.Docx
    List of computing and IT abbreviations /.—Slashdot 1GL—First-Generation Programming Language 1NF—First Normal Form 10B2—10BASE-2 10B5—10BASE-5 10B-F—10BASE-F 10B-FB—10BASE-FB 10B-FL—10BASE-FL 10B-FP—10BASE-FP 10B-T—10BASE-T 100B-FX—100BASE-FX 100B-T—100BASE-T 100B-TX—100BASE-TX 100BVG—100BASE-VG 286—Intel 80286 processor 2B1Q—2 Binary 1 Quaternary 2GL—Second-Generation Programming Language 2NF—Second Normal Form 3GL—Third-Generation Programming Language 3NF—Third Normal Form 386—Intel 80386 processor 1 486—Intel 80486 processor 4B5BLF—4 Byte 5 Byte Local Fiber 4GL—Fourth-Generation Programming Language 4NF—Fourth Normal Form 5GL—Fifth-Generation Programming Language 5NF—Fifth Normal Form 6NF—Sixth Normal Form 8B10BLF—8 Byte 10 Byte Local Fiber A AAT—Average Access Time AA—Anti-Aliasing AAA—Authentication Authorization, Accounting AABB—Axis Aligned Bounding Box AAC—Advanced Audio Coding AAL—ATM Adaptation Layer AALC—ATM Adaptation Layer Connection AARP—AppleTalk Address Resolution Protocol ABCL—Actor-Based Concurrent Language ABI—Application Binary Interface ABM—Asynchronous Balanced Mode ABR—Area Border Router ABR—Auto Baud-Rate detection ABR—Available Bitrate 2 ABR—Average Bitrate AC—Acoustic Coupler AC—Alternating Current ACD—Automatic Call Distributor ACE—Advanced Computing Environment ACF NCP—Advanced Communications Function—Network Control Program ACID—Atomicity Consistency Isolation Durability ACK—ACKnowledgement ACK—Amsterdam Compiler Kit ACL—Access Control List ACL—Active Current
    [Show full text]
  • Java in Embedded Linux Systems
    Java in Embedded Linux Systems Java in Embedded Linux Systems Thomas Petazzoni / Michael Opdenacker Free Electrons http://free-electrons.com/ Created with OpenOffice.org 2.x Java in Embedded Linux Systems © Copyright 2004-2007, Free Electrons, Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com Sep 15, 2009 1 Rights to copy Attribution ± ShareAlike 2.5 © Copyright 2004-2008 You are free Free Electrons to copy, distribute, display, and perform the work [email protected] to make derivative works to make commercial use of the work Document sources, updates and translations: Under the following conditions http://free-electrons.com/articles/java Attribution. You must give the original author credit. Corrections, suggestions, contributions and Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license translations are welcome! identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: http://creativecommons.org/licenses/by-sa/2.5/legalcode Java in Embedded Linux Systems © Copyright 2004-2007, Free Electrons, Creative Commons Attribution-ShareAlike 2.5 license http://free-electrons.com Sep 15, 2009 2 Best viewed with... This document is best viewed with a recent PDF reader or with OpenOffice.org itself! Take advantage of internal
    [Show full text]