Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Talk:Eclipse Educational Screencam Planning"

Line 1: Line 1:
 +
''[Mark] Not sure if it's customary to put new stuff at beginning or end of discussion.  I wrote some rough drafts of new FAQ's that I wanted to get your feedback on.  I'm trying to address points that I found confusing when first trying to understand Eclipse. Since I'm still a newbie, it's quite possible that I've gotten some ideas wrong.  Please don't be bashful about giving me your honest feedback.  Here they are.''
 +
 +
Eclipse Newcomers FAQ
 +
 +
===What is Eclipse?===
 +
Eclipse is …
 +
*Software:  A series of world-class software development tools uniquely suited to help developers build advanced software in an increasingly complex runtime environment.
 +
*Developer Community:  A strong and growing open source community of over ___ developers working on over 60 projects in seven different categories.  These projects support software development on computer systems ranging from cell phones to mainframes and everything in between.
 +
*Technology:  A software architecture designed and built from the ground up to be extended using interchangeable software modules called plug-ins.
 +
*User Community:  A large, vibrant, and growing group of major IT solution providers, innovative start-ups, universities and research institutions and individuals who use Eclipse daily to build commercial and non-commercial software applications.  Many of these organizations and individuals give back to the Eclipse community by contributing to Eclipse projects, providing new plug-ins, and in numerous other ways.
 +
 +
===Why Eclipse?===
 +
Two of the obvious benefits of Eclipse are (1) that it’s open source and therefore free to download and use; and (2) that it’s written in Java, and therefore runs on multiple hardware platforms including Windows, Mac OSX, and Linux.
 +
 +
However, one of the best things about Eclipse is that it is designed and built from the ground up to be extended via modules called “plug-ins”.  All Eclipse products contain a small base module called the Runtime Platform, whose job is to manage the plug-ins.  Except for this Runtime Platform, all of the functionality of any Eclipse product is delivered by one or more software plug-ins.  A plug-in is a piece of software that delivers a specific set of functions to the user and that is designed to work in harmony with other plug-ins.  For example, in the Java IDE (integrated development environment), one plug-in provides the “framework” that organizes the various project views, while another plug-in provides the Java-specific intelligent text editor that speeds up and simplifies writing Java source code.  All plug-ins are created equal.  In other words, plug-ins that you develop interact on an equal basis with plug-ins that are shipped as part of any Eclipse product and with other plug-ins developed by others. 
 +
 +
===What’s so great about plug-in architecture?===
 +
 +
The most important thing about plug-ins is that they allow you to re-use software that’s already been written, debugged, tested, and proven to work.  Consider two examples.  First, let’s say you really like the Eclipse Java IDE (and a lot of Java developers do!).  However, you need to build an IDE for a different language, say C++.  When you think about it, you will still need to manage projects, write source code, compile and debug the code, and package the application for deployment.  All of those functions are identical to what the Eclipse Java IDE already does.  However, the new compiler and debugger will need to be for C++ and not Java.  With plug-in architecture, all you need to do (and, coincidentally, what the Eclipse C/C++ CDT project developers did), is take out the Java-specific plug-ins (e.g., the source code editor and debugger) and replace them with new plug-ins that provide these features for C++.  You get the rest of the IDE functionality without re-creating it.
 +
 +
Consider a second example.  Say you want to write a program that needs “workbench” type functionality, such as different views, menus, tree structures, etc.  Instead of starting from scratch, you could use the Eclipse workbench plug-in (the same one that the various Eclipse IDE’s use), and get this functionality out of the box.  Then you can customize this to work the way you want it to.
 +
 +
The other really valuable thing about plug-ins is that they can be enhanced without breaking the rest of the application.  So, for example, when the Eclipse workbench plug-in gets new features added, any software that uses this plug-in can have these new features available without re-creating them.
 +
 +
===In non-programming terms, how do plug-ins work?===
 +
 +
One way to think about plug-ins is with an analogy to Lego building blocks.  Let’s say you want to build a Lego space station that includes a giant robot and a spaceship.  Using small pieces, you start to build the station.  Then you discover that your friends have already built a really cool robot and an awesome spaceship.  To bolt these onto your space station, you would need to know exactly what configuration of blocks they needed and build the matching “receptacle” in your space station.  Then, instead of building them yourself, you could just use theirs.  What’s more, if your friend makes an even better spaceship, as long as the connecting piece was unchanged, you could put the new one on.
 +
 +
Writing Java or any other code from scratch is like using really small building blocks.  You can build anything but it might take a long time.  Using plug-ins is like using the spaceship and the robot.  They allow you to benefit by re-using functionality that has been created by someone else. 
 +
 +
===How does Eclipse help with today’s complex web development?===
 +
 +
Building complex web applications requires developers to incorporate a variety of development tools, such as JavaScript, database tools, XML tools, Web Services tools, etc.  One of the challenges in this type of project is integrating these disparate tools in order to manage the project as a whole.  In many cases, you might be writing a new web application with one set of development tools and maintaining several old web applications that use a different set of development tools.
 +
 +
Eclipse’s plug-in nature is very well suited for this type of environment.  With plug-ins, it is easy to add the modules needed to support a wide variety of development tools.  As new development tools are created in the future, they can be incorporated into the Eclipse IDE just by building a new tool-specific plug in.
 +
 +
 +
===What is the connection between Eclipse and Java?===
 +
 +
Most Eclipse products are written in Java, using the Eclipse Java IDE.  This allows them to run on almost any hardware and operating system, including Windows, Mac OSX, and Linux.  Many Eclipse products, such as the Eclipse Java IDE, the Eclipse RCP, and the Eclipse Web Tools Platform, are used to write Java programs.  However, other Eclipse products are used to build software in a number of other languages, including C, C++, PHP, and others.  The Java language was originally developed by Sun Microsystems and was released as open source in 2006.  The Eclipse Foundation, the owners of all Eclipse products, is not affiliated with Sun Microsystems.
 +
 +
==Eclipse Products Overview==
 +
 +
===What products does Eclipse have, and what are they used for?===
 +
 +
Eclipse currently supports over 60 projects, each focusing on one product.  However, Eclipse products can be summarized into seven groups as follows.
 +
 +
====Enterprise Development====
 +
*Products that help developers build and maintain Java Enterprise Edition (JEE) applications, web services, and web applications.
 +
 +
====Embedded and Device Development====
 +
*Products that help developers build applications for cell phones, PDA’s, and other mobile devices based on C/C++, mobile Java, and mobile Linux.
 +
 +
====Rich Client Platform====
 +
*A development platform for building native GUI applications that can run on Windows, Linux, and Mac OSX computers.
 +
 +
'' I don't know how these other "pillars" relate to the 5 groups on the home page: Rich Internet Applications, Application Frameworks, Application Lifecycle Management (ALM), Service Oriented Architecture (SOA)''
 +
 +
 +
===How does Eclipse work with for-profit businesses?===
 +
Even though Eclipse is open source and free to download and use, many companies are using Eclipse products to build commercial software products.  The Eclipse Public License is designed to make it easy for Eclipse products to be used in commercial software, and this is encouraged by the Eclipse Foundation.  For examples of commercial software built with Eclipse products, see ___.
 +
 +
===Is there a list of companies that provide commercial support services?===
 +
???
 +
 +
==end of new stuff as of 16 April 2007==
 +
 
Hi Wayne.  I'm new to editing Wiki's, so please be sure to let me know if I'm not doing this the best way.  From looking at the Wikipedia tutorial, it looks like the "talk" page is the best way to ask questions vs. actually making edits.  At this point, I have more questions than edits.  Here are some to get started.
 
Hi Wayne.  I'm new to editing Wiki's, so please be sure to let me know if I'm not doing this the best way.  From looking at the Wikipedia tutorial, it looks like the "talk" page is the best way to ask questions vs. actually making edits.  At this point, I have more questions than edits.  Here are some to get started.
  

Revision as of 19:27, 16 April 2007

[Mark] Not sure if it's customary to put new stuff at beginning or end of discussion. I wrote some rough drafts of new FAQ's that I wanted to get your feedback on. I'm trying to address points that I found confusing when first trying to understand Eclipse. Since I'm still a newbie, it's quite possible that I've gotten some ideas wrong. Please don't be bashful about giving me your honest feedback. Here they are.

Eclipse Newcomers FAQ

What is Eclipse?

Eclipse is …

  • Software: A series of world-class software development tools uniquely suited to help developers build advanced software in an increasingly complex runtime environment.
  • Developer Community: A strong and growing open source community of over ___ developers working on over 60 projects in seven different categories. These projects support software development on computer systems ranging from cell phones to mainframes and everything in between.
  • Technology: A software architecture designed and built from the ground up to be extended using interchangeable software modules called plug-ins.
  • User Community: A large, vibrant, and growing group of major IT solution providers, innovative start-ups, universities and research institutions and individuals who use Eclipse daily to build commercial and non-commercial software applications. Many of these organizations and individuals give back to the Eclipse community by contributing to Eclipse projects, providing new plug-ins, and in numerous other ways.

Why Eclipse?

Two of the obvious benefits of Eclipse are (1) that it’s open source and therefore free to download and use; and (2) that it’s written in Java, and therefore runs on multiple hardware platforms including Windows, Mac OSX, and Linux.

However, one of the best things about Eclipse is that it is designed and built from the ground up to be extended via modules called “plug-ins”. All Eclipse products contain a small base module called the Runtime Platform, whose job is to manage the plug-ins. Except for this Runtime Platform, all of the functionality of any Eclipse product is delivered by one or more software plug-ins. A plug-in is a piece of software that delivers a specific set of functions to the user and that is designed to work in harmony with other plug-ins. For example, in the Java IDE (integrated development environment), one plug-in provides the “framework” that organizes the various project views, while another plug-in provides the Java-specific intelligent text editor that speeds up and simplifies writing Java source code. All plug-ins are created equal. In other words, plug-ins that you develop interact on an equal basis with plug-ins that are shipped as part of any Eclipse product and with other plug-ins developed by others.

What’s so great about plug-in architecture?

The most important thing about plug-ins is that they allow you to re-use software that’s already been written, debugged, tested, and proven to work. Consider two examples. First, let’s say you really like the Eclipse Java IDE (and a lot of Java developers do!). However, you need to build an IDE for a different language, say C++. When you think about it, you will still need to manage projects, write source code, compile and debug the code, and package the application for deployment. All of those functions are identical to what the Eclipse Java IDE already does. However, the new compiler and debugger will need to be for C++ and not Java. With plug-in architecture, all you need to do (and, coincidentally, what the Eclipse C/C++ CDT project developers did), is take out the Java-specific plug-ins (e.g., the source code editor and debugger) and replace them with new plug-ins that provide these features for C++. You get the rest of the IDE functionality without re-creating it.

Consider a second example. Say you want to write a program that needs “workbench” type functionality, such as different views, menus, tree structures, etc. Instead of starting from scratch, you could use the Eclipse workbench plug-in (the same one that the various Eclipse IDE’s use), and get this functionality out of the box. Then you can customize this to work the way you want it to.

The other really valuable thing about plug-ins is that they can be enhanced without breaking the rest of the application. So, for example, when the Eclipse workbench plug-in gets new features added, any software that uses this plug-in can have these new features available without re-creating them.

In non-programming terms, how do plug-ins work?

One way to think about plug-ins is with an analogy to Lego building blocks. Let’s say you want to build a Lego space station that includes a giant robot and a spaceship. Using small pieces, you start to build the station. Then you discover that your friends have already built a really cool robot and an awesome spaceship. To bolt these onto your space station, you would need to know exactly what configuration of blocks they needed and build the matching “receptacle” in your space station. Then, instead of building them yourself, you could just use theirs. What’s more, if your friend makes an even better spaceship, as long as the connecting piece was unchanged, you could put the new one on.

Writing Java or any other code from scratch is like using really small building blocks. You can build anything but it might take a long time. Using plug-ins is like using the spaceship and the robot. They allow you to benefit by re-using functionality that has been created by someone else.

How does Eclipse help with today’s complex web development?

Building complex web applications requires developers to incorporate a variety of development tools, such as JavaScript, database tools, XML tools, Web Services tools, etc. One of the challenges in this type of project is integrating these disparate tools in order to manage the project as a whole. In many cases, you might be writing a new web application with one set of development tools and maintaining several old web applications that use a different set of development tools.

Eclipse’s plug-in nature is very well suited for this type of environment. With plug-ins, it is easy to add the modules needed to support a wide variety of development tools. As new development tools are created in the future, they can be incorporated into the Eclipse IDE just by building a new tool-specific plug in.


What is the connection between Eclipse and Java?

Most Eclipse products are written in Java, using the Eclipse Java IDE. This allows them to run on almost any hardware and operating system, including Windows, Mac OSX, and Linux. Many Eclipse products, such as the Eclipse Java IDE, the Eclipse RCP, and the Eclipse Web Tools Platform, are used to write Java programs. However, other Eclipse products are used to build software in a number of other languages, including C, C++, PHP, and others. The Java language was originally developed by Sun Microsystems and was released as open source in 2006. The Eclipse Foundation, the owners of all Eclipse products, is not affiliated with Sun Microsystems.

Eclipse Products Overview

What products does Eclipse have, and what are they used for?

Eclipse currently supports over 60 projects, each focusing on one product. However, Eclipse products can be summarized into seven groups as follows.

Enterprise Development

  • Products that help developers build and maintain Java Enterprise Edition (JEE) applications, web services, and web applications.

Embedded and Device Development

  • Products that help developers build applications for cell phones, PDA’s, and other mobile devices based on C/C++, mobile Java, and mobile Linux.

Rich Client Platform

  • A development platform for building native GUI applications that can run on Windows, Linux, and Mac OSX computers.

I don't know how these other "pillars" relate to the 5 groups on the home page: Rich Internet Applications, Application Frameworks, Application Lifecycle Management (ALM), Service Oriented Architecture (SOA)


How does Eclipse work with for-profit businesses?

Even though Eclipse is open source and free to download and use, many companies are using Eclipse products to build commercial software products. The Eclipse Public License is designed to make it easy for Eclipse products to be used in commercial software, and this is encouraged by the Eclipse Foundation. For examples of commercial software built with Eclipse products, see ___.

Is there a list of companies that provide commercial support services?

???

end of new stuff as of 16 April 2007

Hi Wayne. I'm new to editing Wiki's, so please be sure to let me know if I'm not doing this the best way. From looking at the Wikipedia tutorial, it looks like the "talk" page is the best way to ask questions vs. actually making edits. At this point, I have more questions than edits. Here are some to get started.

1. My focus at this point is to come up with a general plan, simliar to what you have already put on the page, and then figure out which 1 or 2 videos are the most important to start with. Then, I can create the first video and we can use that as a pilot project. Is that similar to what you have in mind?

[Wayne] Sounds good to me.

2. What's the most important priority that training videos could help with? (e.g., make it easier for newbies to get started?)

[Wayne] We get a lot of newbie questions on the eclipse.newcomer group. Given a choice, I think that this is a good place to start.

3. Which do you think is more important: to draw in new people who are new to Java and maybe OOP or to draw in experienced Java developers who are not using Eclipse? (I would guess that it's a harder sell for people who are already familiar with other IDE's, but that is just a guess.) Or are both equally important?

[Wayne] Well, frankly, both. But let's start with whatever is easier and work from there. Chances are the "new to Java" crowd is probably a good starting point.

4. For Java / OOP novices, I think a series starting from scratch and building a simple app, including UI, would be good. The nice thing about the video format is that you can show people things and explain them just enough to pique their interest without getting too bogged down. And obviously there are a lot of resources for learning Java.

[Wayne] I think it's important to keep them as concise as possible. If makes sense to do a long video, so be it, but I'd rather keep them as short as possible. People have work to do; they can't sit around watching videos all day :-). Having said that, I think you should probably start with some very simple Java (i.e. no GUI or other distractions) and then progress to doing something that builds a Swing or SWT GUI, or even a servlet (though maybe we should push J2EE a little further down on the list).

5. For existing Java developers, we could perhaps start with a "sales demo" video. In other words, we could identify the killer features of Eclipse vs. the leading competitors and make sure to highlight those features ("have you ever had to change a method signature .... with Eclipse it's easy").

[Wayne] I tend to shy away from comparisons between Eclipse and competitors. There's just no value in it for us (all it does is draw attention to the competitor). We tend also to stay away from "sales demos", but I think I understand what you mean (words can be a little distracting sometimes). Having an "advanced" video that shows some of the killer features would be cool. I was sort of going this direction with the test first stuff.

Let me know what you think. Thanks.

Another thought on the whole issue of simplyfying the orientation of newcomers -- what about a role-based road map? Something like: If you are a ... , start here ...

[Wayne] I think that would be great.

Software development manager -- Why Java and why Eclipse; Eclipse as an IDE and a sample RCP application, etc.; Overview of Eclipse Project and Technologies; Business Case for Eclipse.

Experienced developer new to Java and OOP -- Eclipse / Java Absolute Beginner video's

Anyway, just a thought. Thanks.

Yet one more thought. I just went through your Rich Client slide show. I know as a software developer, one of the first things I wanted to see when I was looking at dev platforms was the type of apps you could create. The screen shots of the example apps (ForeFlight, RSS, Nasa, Lotus) are very impressive. Would it be desirable and possible to create short (5-minute) screencam demos of one or more of these products?

[Wayne] I think the right approach would be to talk to the folks who have created the products and see what we can do to help them do the video themselves. I'm quite sure the RSSOwl folks would be keen.

Back to the top