Transcript Open Source

®
IBM Software Group
IBM Open Source Software Competition
Mark Wallace, Software Architect, IBM Dublin Software Lab
IBM Software Group | WebSphere software
Agenda
 Open Source
 Eclipse
 New Developments
 Summary
 Questions
IBM Software Group | WebSphere software
Free Software versus Open Source
 Free software is a matter of liberty not price. You should think of
“free” as in “free speech”, not as in “free beer”. (http://www.fsf.org/)
 Perceived drawbacks to Free Software
 Confusion as to it’s definition
•
•
Googling for free software returns many different things
http://www.fsf.org/licensing/essays/free-sw.html
 Licensing
•
“Copy left” requirement
 Lack of quality
•
•
•
Unknown pedigree
Scalability, serviceability, reliability, localization, …
Largely unfounded
 Not attractive to commercial enterprises
“Open source is a development methodology; free software is a social movement”
IBM Software Group | WebSphere software
What is Open Source
 Open Source Initiative (OSI) maintains a formal
definition of Open Source Software (OSS) recognized
by the open source community.
OSI has a web site at: http://www.opensource.org
 Open Source Definition current criteria (paraphrased):
 Free Redistribution
 Source Code
 Derivative Works
 Integrity of The Author's Source Code
 No Discrimination
 No Discrimination Against Fields of Endeavor
 Distribution of License
 License Must Not Be Specific to a Product
 License Must Not Restrict Other Software
 License Must Be Technology Neutral
The basic idea behind open source
is very simple: When programmers
can read, redistribute, and modify
the source code for a piece of
software, the software evolves.
People improve it, people adapt it,
people fix bugs. And this can
happen at a speed that, if one is
used to the slow pace of
conventional software
development, seems astonishing.
IBM Software Group | WebSphere software
Open Source Development Methodology
 Virtual community of programmers, leveraging the Internet for
communication, who create / debug / maintain / evolve a source
code base
 OSS projects often self-organizing:
 Someone determines a need and communicates that need to others
on the Internet
 If the project generates interest, one or more programmers begin
writing code
 Someone takes a leadership role and begins to map out a project
road map
 Interested programmers join the project to contribute new code or
fine-tune existing code
 A network of participants, linked via the Internet, forms
 Tiered participation levels emerge
IBM Software Group | WebSphere software
IBM and Open Source
 IBM has contributed many projects to the open source community
 Eclipse Project: http://www.eclipse.org
•
Project dedicated to providing a robust, full-featured, commercialquality, industry platform for the development of highly integrated
tools
 Apache Derby: http://db.apache.org/derby
•
Database management system developed by the Apache Software
Foundation
 Linux Technology Center (LTC): http://www.ibm.com/linux
•
Work towards Enterprise enablement of the Linux OS through the
development and contribution of technology, utilities, tools and
code
 Other contributions
 IBM Pledges 500 U.S. Patents To Open Source In Support Of
Innovation And Open Standards
IBM Software Group | WebSphere software
IBM and Open Source
 IBM uses open source in its products
 Building products on top of open source projects e.g. Rational
Application Developer
 Apache webserver to support and bundle with its WebSphere suite
 IBM promotes open source development
 Externally
•
•
AlphaWorks: http://alphaworks.ibm.com
DeveloperWorks: http://www130.ibm.com/developerworks/opensource
 Internally
•
Using open source intranet site to promote software
componentization and reuse
IBM Software Group | WebSphere software
Agenda
 IBM and Open Source
 Eclipse
 New Developments
 Summary
 Questions
IBM Software Group | WebSphere software
Java Tooling
 From www.eclipse.org . . .
“Eclipse is an open source community whose
projects are focused on providing an extensible
development platform and application frameworks for
building software.”
 Put more simply . . .
Eclipse is an Open Source Java IDE
 And so much more . . . .
Multiple languages (Java, C++, COBOL)
Debugger
Unit Testing
Modelling with UML
Visual Editing of Java UI
Java Web Tools (JSP, EJB, XML . . . .)
 All through an extensible plugin-based IDE
IBM Software Group | WebSphere software
Eclipse Project Aims

Provide open platform for application development tools
 Run on a wide range of operating systems

•
•
Windows, Linux, AIX, MacOS X, etc.
GUI and non-GUI components
Language-neutral
 Able to handle different content types
 Java, HTML, C/C++, JSP, EJB, XML, GIF, etc.

Facilitate seamless tool integration
 At UI and lower level
 Add new tools easily

Attract community of tool developers
 Including independent software vendors (ISVs)
 Capitalize on popularity of Java for writing tools
IBM Software Group | WebSphere software
Why develop plugins that extend Eclipse ?
 Infrastructure
 You get a workbench created for free – just add what you need
 No need to create an environment from scratch
 Build on Eclipse Modelling Framework (EMF) for model support
 Build on Graphical Editing Framework (GEF) for graphics support
 Interoperability
 Use any of the existing tools in your ‘end-product’
•
•
Java Editor, outliner . . .
Explorer, Text editor, search . . . etc.
 Examples
 Java (or any language) code analysis/transformation plugins
 Any UML related tooling (using EMF)
 Any Java graphical projects (using GEF)
IBM Software Group | WebSphere software
Java Perspective

Java-centric view of files in Java projects
 Java elements meaningful for Java programmers
Java
project
package
class
field
method
Java
editor
IBM Software Group | WebSphere software
Java Editor
Lots of useful features such as . . . .
 Method completion in Java editor
List of plausible methods
Doc for method
IBM Software Group | WebSphere software
Top 10 Tips for Eclipse Users
 Use Code Assist
 Just press the code assist key combination (by default ctrl-space) and
the IDE will either fill in where you’ve started typing or display a menu.
 Navigate Through Code By ctrl-Clicking
 You can move to a field, method, or class by holding down the ctrl key
and clicking on the identifier you’re interested in.
 Quickly Open Classes and Resources by Name
 To open a Java class, press ctrl-shift-T. This will display a dialog box
that allows you to type in a class name.
 Set the Heap Size
 Eclipse is a large, complex, Java-based IDE. It needs lots of memory
to perform well.
 eclipse -vmargs –Xmx1024M
IBM Software Group | WebSphere software
Top 10 Tips for Eclipse Users
 Configure Eclipse To Use a JDK, not a JRE
 Go to Window -> Preference -> Java -> Installed JREs
 Use a JDK that supports hot code replace (IBM J9 or JDK 1.4.1+)
 Use the Eclipse’s Refactoring Support and Code Generation
 Eclipse also has extensive support for code generation.
 Use Multiple Workspaces Effectively
 A workspace is a container of projects that has its own set of
preferences and metadata.
 eclipse –data c:\myworkspace –showlocation
 Use Templates
 Open a Java class in an editor, type in “sysout” and press ctrl-space.
 Set Type Filters
 If you’re seeing classes show up at the top of your search you know
you’re not interested in, filter them out for faster searching.
IBM Software Group | WebSphere software
Top 10 Tips for Eclipse Users
 Know the Keyboard Shortcuts
 ctrl-shift-o: organize imports
 ctrl-shift-F4: closes all open editor windows
 ctrl-o: outline popup – very useful for quickly jumping to a method in a
large class
 f4: shows the hierarchy viewer for a class (ctrl-T shows similar data in
a popup version)
 ctrl-m: toggle maximize of the current editor or view
 ctrl-F11: run the last launched configuration
IBM Software Group | WebSphere software
Agenda
 IBM and Open Source
 Eclipse
 New Developments
 Summary
 Questions
IBM Software Group | WebSphere software
New Projects
 AJAX
 OpenAjax – http://www.openajax.org
 DOJO – http://www.dojotoolkit.org
 Apache MyFaces – http://myfaces.apache.org
 Eclipse ATF (Ajax Toolkit Framework)
 Groovy
 CodeHaus – http://groovy.codehaus.org
 Grails – http://www.grails.codehaus.org
 Project Zero – http://www.projectzero.org
IBM Software Group | WebSphere software
New Projects
 Mozilla
 XULRunner - UI “embedded browser” used widely –
http://developer.mozilla.org/en/docs/XULRunner
 Asterisk
 Digium - http://www.asterisk.org
 Asterisk Now - http://www.asterisknow.org
IBM Software Group | WebSphere software
Agenda
 IBM and Open Source
 Eclipse
 New Developments
 Summary
 Questions
IBM Software Group | WebSphere software
IBM Open Source Software Competition
 The competition is based on fourth year CS projects in each university
 An IBM Mentor who is a senior software architect from Dublin Software Lab
has been assigned to each university
 To be eligible for participation there must be a minimum of five qualifying
projects
 At the end of the academic year, the mentor will evaluate the projects based
on the level of Open Source content and on the overall project results and
will select a short list of projects which will in turn be evaluated by a panel at
the Software Lab
 Individual projects, not joint projects, will be evaluated
 The student with the best project will win a high spec IBM Think Pad
IBM Software Group | WebSphere software
Resources
 Articles, tutorials, presentations on Eclipse RCP
 http://www.eclipse.org/rcp
 IBM : Web Services general information
 http://www-128.ibm.com/developerworks/webservices
 Developerworks
 http://www-128.ibm.com/developerworks
 AlphaWorks
 http://www.alphaworks.ibm.com/
 Redbooks
 http://www.redbooks.ibm.com/
 IBM Dublin Center for Advanced Studies
 http://www.ibm.com/ibm/cas/sites/dublin/
 Academic Initiative:
 http://www.developer.ibm.com/university/scholars/
IBM Software Group | WebSphere software
IBM Academic Initiative
IBM Software Group | WebSphere software
Developer Works
IBM Software Group | WebSphere software
Agenda
 IBM and Open Source
 Eclipse
 New Developments
 Summary
 Questions
IBM Software Group | WebSphere software
Questions