Wednesday, February 27, 2013

EDT Possible Future Scenarios (no commitments)

IBM is continuing to re-assess EDT direction, which will be influenced by participation of the partner and customer community involved.

The possible scenarios are:
  • EDT 0.8.2 is stabilized with limited IBM contributions going forward.
  • EDT 1.0 is delivered solely by IBM as separate toolkit, but not merged with RBD.
  • EDT is bundled in with RBD to
  • become the RUI (Javascript) development tool
  • become the "new" style services tool (SQL only)
  • create tighter integration with RBD style services/programs, etc.
  • possibly create migration of RUIs to EDT style
  • use EDT portion for
    • RUI Enhancements
    • new generators for Mobile/Cloud

We do not foresee the following:
  • RBD being rewritten/refactored so that is is based on EDT
  • Migration tools being written to allow interchange of code between EDT and RBD

Friday, January 18, 2013

EDT 0.8.2 is available

I'm proud to announce EDT 0.8.2. Get it via the update function of Eclipse, or visit our download page for other installation options.

See what's new and noteworthy in this release.


We hope you will try it out. Let us know if you find any issues.


Matt

Tuesday, January 8, 2013

What's cooking in the EDT kitchen? - January 8

We're making a few final updates to EDT 0.8.2.  We'll build a release candidate by the end of the week, and the final release build should be available a week after that.

Matt

Wednesday, January 2, 2013

What's cooking in the EDT kitchen? - January 2

Happy new year everyone.  Most of us EDT developers are back at work now.  We're running tests and fixing the bugs we find -- and we haven't found very many.

Matt

Monday, December 17, 2012

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

EDT version 0.8.2 is nearly finished.  We're running extensive tests and fixing bugs.  Progress has slowed down a bit since many of us are taking time off for the holidays, but everything should be finished by the end of January.

Matt

Tuesday, December 4, 2012

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

We're working on the fourth milestone of the EDT 0.8.2 release.  Here's what we accomplished in the last week: 

Language

  • Work continued on the bytes type.
  • More work was done to support classes.
  • We made a language design change to solve a problem related to assigning an array to a variable of a different type. When you write array as SomeType[], we'll create a copy of the array.  The as expression may be implicit, which happens when you assign one kind of array to another.
This is a fairly short list, but we also fixed many bugs.

 Matt

Tuesday, November 27, 2012

What's cooking in the EDT kitchen? - November 27

We're working on the fourth milestone of the EDT 0.8.2 release.  Here's what we accomplished in the last week:

Extensibility
  • Content assist, which needed repairs after the extensibility work we did in Milestone 3, is working again. It's driven by the types known to the compiler, with no more hard-coded information.  This was the last piece of Extensibility work for the release.
Language
  • We added ten functions to the string type. They make it much easier to manipulate text in EGL.
  • We added functions that return the day, month, and year parts of a date.
  • Work continued on the bytes type, specifically conversion of bytes data to/from XML.
  • More work was done to support classes, with the addition of abstract and static keywords.
Matt

Tuesday, November 20, 2012

What's cooking in the EDT kitchen? - November 20

We made great progress towards EDT 0.8.2 M4 last week.  In many cases, we've done more planning than coding in the first week after a milestone, but not this time.  Unfortunately I expect things to slow down this week, since most of the team is taking two or three days off for Thanksgiving.

Extensibility
  • We're making content assist work again. It's the only major feature that was broken by the extensibility features introduced in M3.
Language
  • Any expression can now be used to specify the size of a new array. Previously you had to use a literal number.
  • We finished the ternary if-then-else operator.  Its syntax is (condition) ?? true_value : false_value.  (Yes there are two question marks, not one.  They keep our parser from being confused.)
  • We started work on new functions that make it easier to work with dates and strings.
  • We have a type called AnyStruct whose value can be any "structured" type: record, handler, class, external type, or any.
Matt

Tuesday, November 13, 2012

What's cooking in the EDT kitchen? - November 13

The big news from EDT-land is that 0.8.2 Milestone 3 is finished. There's one more milestone in this release, and we'll be done with it early next year.

Our New and Noteworthy page will tell you what's in M3. It doesn't mention classes or the bytes type, which I've written about in my weekly posts, because those features weren't finished in time.  They'll be included in Milestone 4, and I doubt they'll be the only language enhancements we add.  (The official list of M4 contents hasn't been made yet.)


Matt

Version 0.8.2 Milestone 3 is available

The new milestone build is waiting for you:
Matt

Wednesday, November 7, 2012

What's cooking in the EDT kitchen? - November 7

It's testing time!  We're testing EDT 0.8.2 Milestone 3, and we'll make it available as soon as we can.

Tuesday, October 30, 2012

What's cooking in the EDT kitchen? - October 30

EDT 0.8.2 Milestone 3 is nearly finished!  We're in the final week of development now.

In the past week we've been merging our extensibility changes into the main development branch.  We've updated our tests and samples.  Work continues on language enhancements like classes.

Matt

Tuesday, October 23, 2012

What's cooking in the EDT kitchen? - October 23

As I wrote in last week's post, we continue making good progress towards 0.8.2 Milestone 3.  The milestone will be finished in two weeks.

Extensibility
  • Our system types can now be compiled under the extensible framework.  No more "magic" or patching things up by hand!  Once this is done we'll start merging the extensibility changes into the main code stream (and our nightly builds).
Language
  • Continued working to implementing classes.
  • We're working on a new rule to decide when two arrays are compatible.  The current rule is complicated and maybe inconsistent.  The simplest rule (both arrays must be exactly the same type, unless one is an array of Anys) is more strict than we've been in the past.
  • We decided that only eglx.lang.* will be implicitly imported in an egl file.  Importing eglx.lang.* gives you basic things like int, string, etc.
Other
 Matt

Monday, October 15, 2012

What's cooking in the EDT kitchen? - October 15

We continue making good progress towards our next milestone.

Extensibility
  • We're close to getting our system types compiled under the new extensible framework.  Once this is done we'll start merging the extensibility changes into the main code stream (and our nightly builds).
Language
  • Started implementing classes.
  • We decided that "abstract" functions will be allowed in a class. An abstract function contains no statements and is terminated by a semicolon instead of the end keyword. In order for our parser to understand this new syntax, we will remove support for the do-nothing statement that consists of only a semicolon.
  • We revised the rules for comparisons involving the bytes type. Our old rule was that both bytes value must have a length, and the lengths must be the same. So you couldn't compare a bytes(3) to a bytes(4), or a bytes(3) to a bytes with no length. These comparisons are now valid. Comparing bytes(n) and bytes will be like comparing string(n) and string.
Other
Matt

Monday, October 8, 2012

What's cooking in the EDT kitchen? - October 8

Hello. Here I am again, letting you know what we've been up to in the EDT kitchen. You can read my previous post to learn what we did last week.

Extensibility
  • We're close to getting our system types compiled under the new extensible framework.  Once this is done we'll start merging the extensibility changes into the main code stream (and our nightly builds).
Language
  • Finished parser and compiler work for the "if-then-else" ternary operator. It hasn't yet been implemented in the generators.
  • Wrote many tests for the new bytes type.  The next step is to run the tests and fix all the problems we find.
Other
Matt

Tuesday, October 2, 2012

What's cooking in the EDT kitchen? - October 2

We finished EDT 0.8.2 Milestone 2 last week. You can read about it on our new and noteworthy page.

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

This week is the first week of Milestone 3, which will include the extensibility features we've been working on for so long, as well as improvements to the language.

Extensibility
  • Modifying the validation code to use the new extensibility features.
Language
  • Began work on the "if-then-else" ternary operator.  Example: x = y > 0 ? y : -1;
Other
Matt

Version 0.8.2 Milestone 2 is available

The new milestone build is waiting for you:


-- Ben

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.

Extensibility
  • 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.
Language
  • 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.
Other
Matt

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.

 Login

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.

Extensibility
  • Modifying the IDE code to use the new extensibility features.
  • Content assist and quick fix actions are now driven by the type system.
Other
  • 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
Matt