Tag Archives: IDE

The new Uniface Integrated Development Environment .. more than just a new term

Uniface 10 is all about the new environment for developing Uniface applications. To underline that, we  have given it a new name: the Uniface Integrated Development Environment, or Uniface IDE.

For thirty odd years, we have referred to our development environment as ‘the IDF’. What does the term IDF stand for? How is IDE different from IDF? Is the difference relevant at all? Here in  the Lab, we use the terms IDF and IDE to make the following distinction:

  • IDE is the development environment for Uniface 10
  • IDF is the development environment for all Uniface 9 versions.

The IDE in Uniface 10 has its own new executable, called ide.exe. You can find it in the common/bin folder.
This new IDE uses a new assignment file, named ide.asn. This file is in the uniface/adm folder.

So, some things have changed, others have not. The logical path to the database that stores the repository is still called $IDF in Uniface 10.

IDE and IDF are totally different applications with their own characteristics and a very different user interface. Added to that: the repository has been changed substantially to cater for new functionality in the IDE. So, it’s important for us to distinguish between IDE and IDF.
The Uniface 10.2 IDE is largely composed of a completely new set of editors. Editors for components, modeled entities and projects, to name a few.
And yes, the IDE still contains a subset of editors that also exist in the IDF – you will find these under ‘More Editors’ in the IDE’s top menu. Over time, the old style editors will be replaced by new style editors, i.e.  IDE style editors

Where does the term IDF come from?

Way back, in the late eighties and early nineties of the previous century, the days of Uniface versions 4 and 5, the Uniface development tool was called Information engineering & Design Facility, IDF for short. Here’s a screenshot of the IDF start screen, taken from the Uniface 5.2 manual (and notice that other terminology has changed over time!) 

Uniface 5.2 Manual
Uniface 5.2 Manual

The name idf was also used for the executable that started the development tool: idf.exe on Windows and VMS, or just idf on Unix.
To use the development tool on Unix in those days, you would typically use the environment variable $idf that was defined by the install scripts. And to keep things simple, a predefined logical database path $IDF is used by Uniface to this very day to define where the repository is stored. 

In later versions the term Information engineering & Design Facility disappeared. We introduced the term UDE, short for Uniface Development Environment. The terms UDE and Uniface Development Environment were used all over the place in the documentation,  but I don’t recall ever having seen the term UDE in the tool itself. The executable that started the UDE was still named idf.exe – we’re talking Windows only in the meantime – and the assignment file for the UDE was still named idf.asn.

Enter the $UDE function in the Uniface Proc language in Uniface 9. A function that helps the developer define custom actions on repository data, including compiling, exporting, importing, and converting. On disk, you will find a file called ude.exe. This executable is not used to start the Uniface Development environment, but is used by the $UDE function. There is no ude.asn file for the ude.exe.

And for completeness sake: for a short period in the Uniface 9 lifetime we used the term Uniface Application Platform Suite, or APSThe APS is the workbench that integrates Uniface application development with the BPM product Uniface Flow. Note that as of Uniface 9.7, Uniface Flow is no longer delivered.

Uniface IDE vs IDF
Uniface IDE vs IDF

Confused? Naah, not anymore, I hope ….


Push Button Development


We accept that touch interfaces are already a part of the application user experience.  We like using them most of the time, and so we might be considering whether to design them into our own application development projects.  Perhaps there is a logical and intuitive reason that begs for a touch interface, or you might want to indulge your creative side to add some new functionality to your application.  Did you ever think that an application development tool vendor might find themselves in this situation?  Can a touch interface help make a better IDE?

My son used to use a Windows 7 Phone, and last year he showed me a new app he was playing with.  He has complained before that Windows Store didn’t have enough apps , and so I shouldn’t have been surprised that he was desperate enough to try an application development tool app, i.e. develop other apps to run on his phone.  But what surprised me was that the tool used a touch interface to create programs.  Sure, it was a brand new language, but you never had to actually learn it because you just pushed buttons to select commands, use variables and build statements.

If you haven’t come across this yourself, I’m talking about TouchDevelop, which is a Microsoft Research project.  Have a look at  https://www.touchdevelop.com/ .  Being Microsoft, this IDE comes as a native Windows Phone app, or a Web App that runs on other platform’s web browsers.  The language is the same for both, but capabilities vary a little bit.  It is still a research project, using an active user community to ”test the waters” on its viability.  To get the gist of actually developing by touch gestures, you should look at the videos.  Writing about it here just doesn’t cut it.

I don’t intend to review this IDE, or the development language, I just think it’s cool that people are researching this.  Indeed a part of the strategy is to encourage Universities, and even a few high schools, to use TouchDevelop in their courses.  Microsoft will also loan out some Windows Phones for student use.  I imagine that a simpler language will allow faster learning of basic programming concepts, as well as introducing students to mobile computing principles.

One consequence of using of TouchDevelop is that it really encourages development on all kinds of mobile devices, from iPhone to Surface Pro.  If you save the programs, or scripts, on the cloud, then the development really is portable and mobile.

Focusing a little more on Microsoft; just what is their future development strategy?  TouchDevelop can provide apps for upload and distribution via the Windows Store, just like C# plus XAML apps developed in Visual Studio.  A year or so ago I read that HTML5 plus JavaScript was the future direction for the Windows 8 platform across all device types.  Is Microsoft getting nervous about an open standard that might marginalize their Windows uniqueness?  Is TouchDevelop actually road testing a new Microsoft specific language?  There is more new technology under the covers of TouchDevelop.  The Web App for TouchDevelop was developed with TypeScript, but a discussion on that technology is beyond today’s blog topic.