Now that Uniface 10 is presented at user group conferences worldwide, it’s high time to start blogging about this new version. My name is Henk van der Veer, program manager for this new release. And I find myself in good company, in a mix of colleagues with a similar longevity of working for the Uniface product (25 years) as well as brilliant young colleagues, less tainted by Uniface history and crucial to the Uniface IDE modernization. And that’s what Uniface 10 is about: the mix of maintaining its strengths, preserving the customers’ ROI and reshaping the IDE’s User Interface.
So, let’s kick off this blog about Uniface 10. What, dear reader, can you expect from this blog? I plan to blog on a monthly basis about this project. First of all to keep a finger on the project’s pulse and provide a sneak preview every now and then. But also to share news from behind the scenes that we think is of interest to you, obstacles we’ve overcome with solutions worth sharing. But be aware: there’s also a zillion things this blog is not. Like, it’s not an alternative for attending the product presentations at User Group conferences and it’s not the channel for formal product announcements or product downloads.
Before we start to look ahead, I have to make up a bit for the recent past. Early September we created a stable code drop, internally named 10.00a. This version was provided to be shown at User Group conferences in the fall of 2013. For the first time we showed actually working software instead of mockups at these conferences. Big deal? Yes, pretty big deal. We were now delivering software that realizes the ideas we’ve been telling you about before.
If you’re only remotely involved with the project, you might think that the project is – finally – picking up speed. Well, if you’ve been involved in a software project of a certain size, you know there’s an unavoidable phase with lots of activity before artifacts become visible. Call it lead time, startup phase, research, whatever you call it: it takes time. We created very detailed mockups of the new Uniface 10 Look and Feel. We used them to develop new ideas, to present ideas to stakeholders, to challenge each other’s ideas. We involved a 3rd party, specialized in ergonomics, to review the future product using these mockups. We did not want them to tell us what the new user interface should be like, but had them challenge us. We had to convince them that the user interface we developed was the best way to discover and apply the strengths of our product.
What does 10.00a bring us? Apart from an extensive new framework (a set of APIs developed in 4GL) that provides and consumes data, that handles exceptions consistently, that controls transactions and enables multiple editors open at the same time (I could go on); version 10.00a shows the contours of what the final product will be. It’s not GA, it’s not eligible for sharing with early adopters, but it does show what the GA product is going to be like. We’re building the real thing and it shows how the Uniface 10 IDE will be a showcase of a modern IDE and a modern Uniface application.
Bluntly spoken, the IDE is just a set of editors. Pretty sophisticated editors, I should add. We started with developing the Component editor. It’s the most encompassing and most complex editor. The first thing that strikes the eye is the ability to have multiple editors open simultaneously:
In the Uniface 9 IDE and older versions you may not recognize editors as such: the IDE looks like a large set of forms that can be invoked one after another. Editing in Uniface 9 is ‘form based’, and too often does not provide a clear notion of the context. In Uniface 10 the context is always visible. For instance: the component editor immediately shows which tasks belong to creating that component type:
And just like navigating between editors by clicking on a tab you can switch between the tasks for a component. Of course, we only show tasks that apply to a specific component type. For instance, a Dynamic Server Page as shown above has a layout which is maintained on the Design Layout Worksheet. A Service on the other hand does not have a layout:
By the way, did you notice: goodbye to Proc, hello Script! We’re no longer calling the Uniface procedural language ‘Proc’. The language constructs will not change, but we’re calling it Script from now on. We think that’s a better term that has a familiar ring in the industry. I mean, who in the world calls their language Proc? But I admit, the term ‘Proc’ has become embedded deeply after so many years. In the Lab we even use it as a verb: to proc. If you’d make me pay a dime for each time I still say Proc instead of Script, I’d be broke soon.
So, what does the Define Structure Worksheet look like then? It’s no longer limited to just the structure of entities, field and labels like you are used when you create a DSP or USP today, but it provides direct access to some common properties:
At a glance you can see the hierarchical component structure and examine whether elements in the structure inherit from a model or from a template and whether the inheritance is broken. You can even edit an object’s properties in line in this view. But of course, Uniface objects have a lot more properties. These are visible and editable in the same view, in the Properties Pane at the right side:
There’s a lot more to say about 10.00a, but this blog is not intended as a presentation or a course. Todays’ blog was merely intended to provide some context for the next series of blogs about Uniface 10.
Next time I’ll elaborate on what we’re developing right now for the next code drop, 10.00b. Within the Uniface lab we use the agile Scrum methodology. Each development cycle (each sprint), lasts 4 weeks. Every 4 sprints we aim to deliver a code drop that is stable enough and has enough new substance for us to show at User Group conferences and customer visits to the Lab. We will show version 10.00b at User Group Conferences in the UK, France and Australia and we’ll also run an online session somewhere around April 2014.
See you in a few weeks!
Henk van der Veer