Eclipse overview An IDE for anything and nothing An IDE for anything and nothing –What’s an IDE? –What for? A little bit of history (not too much) A little.

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming
Advertisements

Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
INTRODUCTION TO JAVAFX CS12420 – Software Development Andrei Stanica (modified ltt)
TPF/Eclipse: A New TPF Application Test Tool for the Eclipse and WebSphere ® Environments Presenter: Thiru Thirupuvanam TPF Users Group May 2003 New Orleans,
Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Goals Give you a feeling of what Eclipse is.
Integrated Development Environments Integrated Development Environments Hadi ForghaniHadi Forghani Salman MostafaviSalman Mostafavi Special Thanks to:Special.
1 Mobile Computing Mobile First (formerly Worklight) Copyright 2015 by Janson Industries.
NetBeans IDE Tal Maoz Na’ama Zahavi.
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
1 Standard Widget Toolkit. 2 SWT l a widget toolkit for Java developers l provides a portable API and tight integration with the underlying native OS.
ECLIPSE IDE N AME : A SHOK P ADMARAJU C OURSE : T OPICS ON S OFTWARE E NGINEERING I NSTRUCTOR : D R. S ERGIU D ASCALU.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
Copyright © Soyatec. Licensed under the Eclipse Public License 1.0 Yves YANG & Philippe Ombredanne.
Java Swing - Lecture 1 An Introduction Milena Radenkovic slides originally by Chris Coleman.
Standardize on Team Foundation Server across the enterprise with Teamprise Corey Steffen General Manager
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
Starting Chapter 4 Starting. 1 Course Outline* Covered in first half until Dr. Li takes over. JAVA and OO: Review what is Object Oriented Programming.
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
October 30, 2007S. Weigert / Y. HAN1 Working with Eclipse-Ingres RUBIS Autumn 2007.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Introduction to Eclipse and Eclipse RCP Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 13, 2006 Argonne National Laboratory, Argonne,
GUIs for Applets Introduction Applets and Swing/JFC Alternatives to Swing Look-and-Feel issues Example applet graphical user interfaces.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
The Eclipse IDE Gareth Davies. Relevant Bio Professional Developer since 1994 Mostly Microsoft platform, using successive versions of Visual Studio Serious.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
The Eclipse Ecosystem: Exploring Tools and Plug-ins David Gallardo.
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ex3 Preview, Swing tutorial Ex1 review Amit Shabtay.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Introducing the Eclipse Visual Editor David Gallardo.
Selected Topics in Software Engineering - Distributed Software Development.
Objectives of This Session
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
Australian Nuclear Science & Technology Organisation GumTree A Java Based GUI Framework for Beamline Experiments Tony Lam (ANSTO) Andy Götz (ESRF) Ferdi.
CSS – Control System Studio
Eclipse 24-Apr-17.
Java GUI building approaches Aleksandar Kartelj Faculty of Mathematics, Belgrade 11 th Workshop “Software Engineering Education and.
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
Java With NetBeans First Project. Java Are language for this semester is Java The Development Environment is Netbeans.
Visual Basic.Net. Software to Install Visual Studio 2005 Professional Edition (Requires Windows XP Pro) MSDN Library for Visual Studio 2005 Available.
Developing GUIs With the Eclipse Visual Editor, Swing/AWT Edition David Gallardo.
Eclipse 27-Apr-17.
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v What is Eclipse?  Wayne Beaton, Eclipse Foundation,
CSC 222: Object-Oriented Programming
Eclipse.
Goals Give you a feeling of what Eclipse is.
ATS Application Programming: Java Programming
A (very brief) intro to Eclipse
Introduction Enosis Learning.
Introduction Enosis Learning.
Architecture, Components, Configuration
Eclipse and JDT The Eclipse platform and an Integrated Development Environment for Java 28/11/2018 Stefan Maetschke.
An Introduction to Eclipse
Presentation transcript:

Eclipse overview An IDE for anything and nothing An IDE for anything and nothing –What’s an IDE? –What for? A little bit of history (not too much) A little bit of history (not too much) How’s the big scheme of thing? How’s the big scheme of thing? –Projects –Subprojects Graphic’s War (OK by now!) Graphic’s War (OK by now!)

Eclipse overview Plug-ins architecture Plug-ins architecture Major Components Major Components Strengths Strengths Weaknesses Weaknesses Conclusions Conclusions

What’s an IDE? An all-in-one tool for: An all-in-one tool for: –Writing, editing, –compiling, running, debugging, –Documenting, –Testing and deliver Computer applications

A little bit of history November 2001: IBM released $40 million worth of software tools into the public domain. November 2001: IBM released $40 million worth of software tools into the public domain. Several organizations create a consortium of IDE providers: Eclipse Foundation, Inc. Several organizations create a consortium of IDE providers: Eclipse Foundation, Inc. IBM build WebSphere (based on eclipse) IBM build WebSphere (based on eclipse) Sun build NetBeans (based on Java) Sun build NetBeans (based on Java) 2004: Eclipse Foundation turn into an independent not-for-profit organization 2004: Eclipse Foundation turn into an independent not-for-profit organization

Versions evolution 1.0 Nov Nov Jun Jun Aug Aug Nov Nov Mar Mar Jun Jun Nov Nov Mar Mar Jun Jun Sept Sept Mar Mar Jun Jun Sept Sept Jan Jan 2006

How’s the big scheme of thing? Division into projects and subprojects Division into projects and subprojects Projects (3) Projects (3) –Eclipse project –Eclipse Tools project –Eclipse Technology project

Eclipse project Eclipse Foundation’s major backbone Eclipse Foundation’s major backbone Divided in three subprojects: Divided in three subprojects: –Platform subproject –Java Development Tools subproject (JDT) –Plug-in Development subproject

Platform subproject Deals with things common to all aspects of Eclipse: Deals with things common to all aspects of Eclipse: –Text editing –Searching –Help pages –Debugging –versioning

Platform subproject (Core) Consists of the barebones necessities: Consists of the barebones necessities: –Code for starting and running Eclipse –Creation and management of plug-ins –Management of basic program resources

Platform subproject Defines the general look and feel Defines the general look and feel It is based on two technologies: It is based on two technologies: –Standard Widget Toolkit (SWT): controversial –JFace: not-so-controversial

Standard Widget Toolkit Collection of basic graphical interface classes and methods, including: Collection of basic graphical interface classes and methods, including: –Buttons –Menus –Labels –Events

JFace A set of higher-level graphical interface tools, including: A set of higher-level graphical interface tools, including: –Wizards –Viewers –Text formatters Jface builds on the work that SWT starts.

Java Development Tools subproject People’s minds: an IDE for Java development People’s minds: an IDE for Java development Start running Eclipse, you’ll see: Start running Eclipse, you’ll see: –Java perspective –Java projects –Java search tools –A bunch of Java-specific stuff

Java Development Tools subproject But, Eclipse is language-neutral But, Eclipse is language-neutral Happens to house a mature Java development environment, it’s wrong? Happens to house a mature Java development environment, it’s wrong? The JDT subproject includes: The JDT subproject includes: –Java compiler –Java editor enhancements –Integrated debugger –And, more, much more than this

Plug-in Development subproject Plug-in Development Environment (PDE) Plug-in Development Environment (PDE) Eclipse is nothing but a bony frame on which dozens of plug-ins have been added Eclipse is nothing but a bony frame on which dozens of plug-ins have been added A plug-in is a piece of code, people who create plug-ins use and IDE too, so … A plug-in is a piece of code, people who create plug-ins use and IDE too, so … –For them Eclipse is a tool and a target –They use Eclipse in order to write plug-ins for Eclipse

Eclipse Tools project Houses subprojects that are a bit farther from Eclipse’s heart (well, kernel, I mean) Houses subprojects that are a bit farther from Eclipse’s heart (well, kernel, I mean) Some of them: (no priority) Some of them: (no priority) –Visual Editor subproject –CDT and COBOL IDE subprojects –UML2 subproject

Visual Editor subproject Are you familiar with VB? Things like: Are you familiar with VB? Things like: –Drag-and-drop tools for: Buttons, text fields, objects from palettes Buttons, text fields, objects from palettes GUI’s building not from scratch GUI’s building not from scratch Drag-and-drop are not integrated in Eclipse, they are a separate download: Drag-and-drop are not integrated in Eclipse, they are a separate download: –Visual Editor (VE)

CDT and COBOL IDE subprojects C/C++ Development Tools (CDT): C/C++ Development Tools (CDT): –A complete IDE for C/C++ family of languages COBOL IDE: COBOL IDE: –A completely different IDE, that’s because COBOL don’t look anything like Java code

UML2 subproject Helps you create models Helps you create models Strictly use of standards Strictly use of standards Provide automated pathways from models to code Provide automated pathways from models to code Now: plug-ins (Omondo, Violet) Now: plug-ins (Omondo, Violet) Eclipse Modeling Framework (EMF): MOF compliant Eclipse Modeling Framework (EMF): MOF compliant

Eclipse Technology project Is all about outreach: helping the rest of the world become involved in Eclipse Is all about outreach: helping the rest of the world become involved in Eclipse It foster research, educates the masses It foster research, educates the masses Act as home for ideas that are on their way to becoming major subprojects Act as home for ideas that are on their way to becoming major subprojects Some examples: Some examples: –Voice Tools –AspectJ

Graphic’s War (OK by now!) Write Once, Run Anywhere? Java lemma Write Once, Run Anywhere? Java lemma –That’s fine for programs dealing with text –What about windows, buttons, and all that “good” stuff? Each OS has its own graphics idiosyncracy Each OS has its own graphics idiosyncracy –Problems with the OS’s calls

Graphic’s War (OK by now!) Java solution (to preserve its lemma): Java solution (to preserve its lemma): –Abstract Windowing Toolkit (AWT) Runs on any OS (JVM) Runs on any OS (JVM) Awkward relationship with each OS’s code Awkward relationship with each OS’s code Use of peers Use of peers –Extra layer of code –Between the AWT and the OS’s graphical interface code Disadvantage: AWT can’t do anything that’s not similar across all OS (LCD) Disadvantage: AWT can’t do anything that’s not similar across all OS (LCD)

Graphic’s War (OK by now!) People at Sun agreed that AWT was not ideal, so they created Swing. People at Sun agreed that AWT was not ideal, so they created Swing. Swing doesn’t rely on peers Swing doesn’t rely on peers –AWT call: “MS-Windows, please display a button for me” –Swing says: “draw some lines, fill in a rectangle, put some text in it, …” MS-Windows doesn’t know (or care) that you’ve drawn a button. MS-Windows doesn’t know (or care) that you’ve drawn a button. –Swing is “pure Java”, and Swing is slow

Graphic’s War (OK by now!) The Standard Widget Toolkit (SWT): The Standard Widget Toolkit (SWT): –Widget: a component in a GUI –People from Object Technology Intl. and IBM –First they created widgets for SmallTalk then moved to Java. –Eclipse’s SWT is very fast and efficient, Why?: Ignores Java’s lemma Ignores Java’s lemma Like AWT, it isn’t pure Java Like AWT, it isn’t pure Java Unlike AWT, it has no peer layer Unlike AWT, it has no peer layer

Graphic’s War (OK by now!) SWT isn’t nearly as portable as Swing SWT isn’t nearly as portable as Swing NetBeans IDE calls Swing classes to display its dialogs and editors. NetBeans IDE calls Swing classes to display its dialogs and editors. Eclipse calls SWT classes. Eclipse calls SWT classes. This difference has several important consequences: (next slide) This difference has several important consequences: (next slide)

Graphic’s War (OK by now!) Consequences: Consequences: –Eclipse runs faster than NetBeans –Eclipse’s GI isn´t merely an imitation, it’s the real thing –Eclipse can use tools specific to each OS –In theory, Eclipse isn’t as portable as NetBeans But you can download versión for: But you can download versión for: –Windows, Linux, Solarix, QNX, UNIX, and Mac OS X

Graphic’s War (OK by now!) Conclusion: Conclusion: Using Eclipse you can write Swing, SWT, AWT, and text-based applications. You can write whatever Java (or C, or COBOL, or PHP, or …) code you’re used to. Using Eclipse you can write Swing, SWT, AWT, and text-based applications. You can write whatever Java (or C, or COBOL, or PHP, or …) code you’re used to. Relax, and enjoy the ride. Relax, and enjoy the ride.

Copyright and Licenses The following slides were extracted from a courseware which is part of the Open Source “ECESIS” project, available from:

Summing Up Strengths Strengths –Multi-level architectures Plug-ings Plug-ings –Plug-ings  Plug-ins –Explicit ports (extension points) –Self-description (manifest file (xml)) Before it has loaded its Java classes Before it has loaded its Java classes –Containers to encapsulate components

Summing Up Weaknesses Weaknesses –Strict requirements are not possible All Eclipse plug-ins are optional All Eclipse plug-ins are optional They can “extend” but never “include” the functionality of existing components. They can “extend” but never “include” the functionality of existing components. –No explicit connectors Each plug-in extends “specific” extension points in “specific” components. Each plug-in extends “specific” extension points in “specific” components. It is not possible to have alternative implementations of the same functionality (two plug-ins offering the same service) It is not possible to have alternative implementations of the same functionality (two plug-ins offering the same service)