Tuesday, September 25, 2012

What's cooking in the EDT kitchen? - September 25

We just spent another week of EDT 0.8.2 development focused mainly on extensibility.  But we also (finally!) did some work on language enhancements too.

Here's a link to last week's "What's Cooking?" post.

  • Modifying the validation code to use the new extensibility features.
  • Rich UI has been separated into a compiler extension.
  • Continued work to make content assist aware of extensions.
  • Made the const keyword applicable to any variable declaration.
  • We removed many unsupported language features from the parser and code formatter. They were features from RBD that we aren't going to include in EDT 1.0.

Tuesday, September 18, 2012

2012 IBM Rational China EGL Contest Ends Successfully

This is a guest post by Fa Hua Jin (known as Rocky) of the IBM China Development Lab.

An awards ceremony for 2012 IBM Rational EGL contest was held on August 24, 2012, at the IBM Software Technical Summit in Beijing, China. After half a year’s hard work, six teams were awarded prizes. There was strong competition from 104 registered teams at Chinese universities and academies.

IBM Fellow Kevin Stoodley issued the 1st prize award at the ceremony

EGL is a business programming language provided by IBM. Many enterprises and organizations around the world choose EGL as the programming language to develop their most important core applications. To promote the EGL language, and also to attract more developers from communities, IBM started the EGL open strategy in 2008. In December 2011, the open version of EGL, EDT 0.7 (EGL Development Tools), was released. EDT is  open source, based on Eclipse.  Anybody can use EDT for free, and engage in EDT’s development and testing under the Eclipse open source license.

To promote EGL in China, and make the Chinese development community more aware of it, IBM China Development Lab launched the EGL contest in March, 2012. Its target audience was students in universities and academies in mainland China. After the contest started, lots of students from all over China actively joined the event. By the end of May, 104 teams from 35 universities and academies in China had registered for the contest. The various and innovative topics chosen by students covered interesting topics and issues. This demonstrates the wide vision and interests of the students, and it also shows the many strong capabilities of EGL.

The submitted works mostly covered the following themes.
  • Extend the language by leveraging the extensibility of EGL.
  • Interesting applications for smart hand-held devices. For example, a campus management system, network collaboration drawing, computer remote control, meal-ordering system, etc.
  • Web 2.0-based applications, for things such as social networking, a food safety information release platform, etc.

The committee awarded prizes to the following six works.

First Prize

Name: Extend EGL to Support Google Application Engine Datastore
Author: Ying Zhong Xu
From: Institute of Computing Technology, Chinese Academy of Sciences, Beijing, North China
Description: Extend the abstract I/O statements of EGL to support the BigTable implementation of Google App Engine. The work perfectly demonstrated EGL‘s extensibility – if a 3rd party writes a new I/O implementation in EGL, existing EGL applications can be seamlessly migrated to the new system. In this sample, an EGL program which accesses a database could be deployed to Google App engine without making too many changes.

 The schematic diagram

Second Prizes

Work 1

Name: I Love Playing
Author: Mao De Shi, Gui Ju Zhang
From: Hunan University, Changsha, Central China
Description: This SNS-based application developed in EGL uses web 2.0 technologies. Users can use this application to organize and join activities. The application covers the major functions of SNS applications. It also leverages various 3rd party services. For example, the MSN account service, the location service provided by Sohu.com, and weather service provided by Google. Authors also took advantage of EGL extensibility and encapsulated the JQuery widgets. The application’s UI is clean and beautiful; it’s also easy to use.


Propose activity

Work 2

Name: Click
Author: Dao Shu Wang, Xiao Lin Hou, Tie Xin Gao
From: Peking University, Beijing, North China
Description: An EGL mobile application. The application can be used for controlling a remote computer with a smart phone. The authors fully took advantage of EGL’s capabilities, extending EGL to support interaction with local native OS functionalities. This is an innovative idea, with clean, beautiful user interfaces.

 Use mobile to control computer

Third Prizes

Work 1

Name: Food Safety Information Release System
Author: Xiaobin He, Zhen Ming Shen, Chao Wang
From: Sun Yat-sen University, Guangdong, South China
Description: The food safety release and management system is based on EGL web 2.0 technologies. The authors hope to establish a communication platform between government and public consumers, which would help to resolve food safety problems. Food safety authorities would publish food safety news and random-sampling inspection results, and the public could file complaints against certain brands. Authorities would handle the complaints and then reply to consumers in the system. The application UI is simplified with full functionality. The authors are proficient with EGL web 2.0 development technologies. They also provided a professional development process and detailed documentation. The judges were very impressed with their use of software lifecycle management tools.

 Food safety information release and management system

Work 2

Name: What Should I Eat?
Author: Li Zhang, Lin Lu
From: Xiamen University, Xiamen, Southeast China
Description: An EGL mobile application, helping to solve the problem of deciding what to eat. The user can specify the price range and other preferences, and then the system will automatically propose food and restaurants. The authors fully leveraged the EGL mobile functionalities, and gave the EGL development team some suggestions.

What Should I Eat?

Work 3

Name: Who Am I?
Author: Jun Yu Chen
From: Sichuan University, Chengdu, Southwest China
Description: EGL Web 2.0-based application for self test. The system provides several tests to help people better understand themselves; also it provides the ability to dynamically add new tests. The UI layout is clean, with full functionality, and it is easy to use.

Who Am I?

Monday, September 17, 2012

What's cooking in the EDT kitchen? - September 17

Last week, we continued working mainly on extensibility, as we've been doing for many weeks now.  We're still on track to finish the 0.8.2 release on time.

  • Modifying the IDE code to use the new extensibility features.
  • Content assist and quick fix actions are now driven by the type system.
  • Updated the rules for assignments with delegates.  Two delegates are compatible if they are the same type, or their parameters and return types match.  Previously, a delegate was only compatible with other delegates of the same type.
  • You can contribute samples of EGL code to Rosetta Code at http://rosettacode.org/wiki/EGL and the EDT wiki's Code Snippets page at http://wiki.eclipse.org/EDT:Code_snippets

Monday, September 10, 2012

Accessing services

You can access services in ways that match your need:

  • You can write an EGL service type and deploy it as a "dedicated service," along with your Rich UI application. In this case, you don't need to know the service location, and the logic for accessing the service is a simple call statement, a callback function, and an exception handler.
  • You can deploy the same EGL service type as an EGL REST-RPC service. In this case, your call statement has an additional clause, and you'll use that clause to reference a resource-binding entry in the deployment descriptor.

    The resource-binding entry stores the access details outside of your logic. As a result, you can reference a different service location without re-generating your code.

  • If your EGL REST-RPC service is referenced from one or more handlers, you might write a simple, declarative proxy function in a library -- no logic needed there -- and then reference that function from your requesting code. In this case, you also write a resource-binding entry.

    The mechanism just described also works when you access a dedicated service or a third-party REST service.

  • You might invoke several services to combine their data in a mash-up, which is an application that provides a single presentation from multiple sources. A mash-up might be lighthearted, or worthy of enterprise-level computing, or both. EGL allows for creativity and depth.

How do you start to learn about service access?

  • Do you want to be "hands on" from the start? Try out the code snippets for accessing a service.
  • Do you want to see a more detailed overview of the options? Consider service bindings.
  • Do you want some background information? Read service-oriented architecture (SOA) for EGL developers.
  • Do you want to learn more detail that is specific to EGL? Go to the Help system, search for and select "EGL support for SOA," and gain access to the subtopics by clicking the ToC icon at the bottom left. The language reference also has topics of interest; in particular, "REST annotation."

We were most concerned about ease of use when we designed service access. We also ensured that the use of proxy functions is similar to the use of proxy functions for accessing a program on IBM i.

We're pleased with the design and the outcome, but let us know what you think.

-- Ben

What's cooking in the EDT kitchen? - September 10

Stop me if you've heard this one before...we spent the last week working mainly on the extensibility enhancements for EDT 0.8.2.


  • Made a plan for how and when to merge these changes into the main development branch.
  • Making validation of EGL source code extensible.
  • Updated our JUnit tests for the new validation code.
  • Making it possible to add new types and annotations.
  • Modifying the IDE code to use the extensibility features. 
  • Updating source files of built-in types so they can be compiled by the new extensible code
  • Examining a possible contribution to EDT from someone outside of the development team. (I'll give more details in the future if we decide to accept it.)
  • We selected the winners of the EGL programming contest in China. We'll describe them in a blog post, soon.
  • Fighting with Git, missing the simplicity of CVS.

Tuesday, September 4, 2012

What's cooking in the EDT kitchen? - September 4

Another week has gone by in which we mainly worked to make EDT extensible. The extensibility project is one of our two main themes as we develop EDT 0.8.2. (The other theme is Language, but we haven't started on it yet.)

  • Making validation of EGL source code extensible.
  • Making it possible to add new types and annotations.
  • Modifying the SQL, IBM i, and services code to use the extensibility features.
Also, be sure to read this post by Dan Darnell on the EDT Forum. Dan used EDT to write a browser-based maze-solving game.