Samples and Walkthroughs
Contents
Overview (Working in progress)
This page is dedicated to discussing the evaluation of Samples and Walk-through project.
The project is designed to increase exposure of Eiffel in a multi-facet manner with both the expertise of in-house Eiffel Software developers and employee as well as the Eiffel community.
The Problem
Samples are not being produced at a rate to match changes in the Eiffel language so users outside of Eiffel Software are not always aware of new features or tips and tricks that make Eiffel a fantastic language platform. On the road map to ECMA compliance there are going to be a number of language additions that benefit all. Users are left with outdated or archaic samples to base their projects on. Their use of Eiffel is marred instead of enriched.
Getting started with Eiffel is hard; there are small number of samples and tutorials dedicated to getting started with Eiffel, introducing the language and it's constructs. There are little walkthroughs to writing a first program using EiffelStudio, no samples for advanced concepts. As of today most samples and walkthroughs are attached to a Eiffel library and some libraries do not even have provided examples, forcing users to become hackers of sorts by reading the library source code in order to figure out how to use it.
This needs to change!
Proposition
What is being proposed is that Eiffel Software provides a means to access samples, where it be through a client application (a stand-alone or through EiffelStudio) or via a web interfaces. In order for tools to be developed to support sample browsing, every sample should be attached to a description containing informative text and metadata for consumption by client tools.
Project Roadmap
Milestone 1
What Needs to be Done
- Before beginning any specification or design for any client tools a specification needs to be drawn up for a sample index file. This specification is being worked on in a separate page. If you want to partisipate and give feedback on the design please go here.
- Post specification finalization a method of accessing the samples needs to be established. For M1 this is expected to only be in the form of a simple client used to read a cache of sample index files and display the results. Simple in the respect that is does not provide any connectivity or synchronization with a central repository of samples. It should at least provide rudimentry display, categorization and search capablities allowing users to narrow down what kind of samples they are actually looking for.
Extending ECF
As an extension, the new ECF format could be extended to reference sample URLs for instance access to associated samples on how to use the library. This way all library vendors can automatically associate samples with their library and Eiffel IDEs can provide access to those samples.
Milestone 2
The second milestone should add a central download repository. A central server to download, upload and search samples from.
What Needs to be Done
- Establish a central repository for samples and develop a means of download and uploading samples. This is not to be specific logic geared towards web pages. It my be a simplistic protocol or web service that can be used by disparate clients Web, GUI or otherwise.
- Create the start of a community website where users can download, upload and search the sample repository.
- Add connectivity and synchornization to the client application developed for M1.
Examples Sites
There are parties out in the Eiffel community that are trying a single effort to rectify this but that leads to another problem - consolation. Sites such as Code Project and NeHe are good examples of consolidation and ease of access to samples and walkthrough.
A Central Repository for Samples
If Eiffel Software or ETH were to host a Eiffel community site an RSS/ATOM feed could be offered. The metadata and description in each sample could be extracted and added to the feed when update. Samples that are update would also be added to the feed but with little information, more of a notification.
There could actually be multiple feeds for those interested in a particular technology. A feed for Eiffel for .NET, Linux samples, ... or whatever the community is calling out for.
You chance to participate
We've made this page public so the Open Source community can participate in the development of a samples and walkthrough platform. Our strategy is to not only maintain samples and walkthroughs ourselves but to have the community post samples, walkthroughs and articles also. Any feedback on our strategy, how to better distribution, things you like or don't like, let us know.
Development Roadmap
- Create and finalize a proprietary sample specification using XML for use by client applications, web tools and other tools to offer content synchronization.
- Add a community web site where samples can be downloaded or uploaded to.
- Offer feeds from web site.
- Develop a client application to use as a stand-alone that synchronizes with web content and provides the ability to download and refresh samples.
- Integrate client application into EiffelStudio.
- Extend community web site to allow authoring of articles related to Eiffel.