A turning point!

EZGUI 4.0 was the biggest step forward in the development of my GUI engine software. It had so many improvements in it compared to previous versions that it really came into a world of its own. True, its not perfect and there are some things I wish it had, but it still is a powerful programming tool and truly a professional level tool. When I look at some of the software written in it by some of my customers it just amazes me. Its not what I say that counts, nor how many sales I have, or even all the marketing hype I can generate.

What really counts is the real world applications being written by some of my customers. Some of these applications are being used all over the world. Most of the software which gets all the buzz (talk) today is the stuff everybody is using, the latest fad, etc. But unnoticed by most people are the thousands of software applications being used by ordinary people in all sorts of commercial settings. Some of it is inhouse software, companies use for their everyday business. Some of it is vertical market software specific to some trade or business. Some of it is more general use commercial software designed to work with specific hardware or devices. Such software is not trying to win awards or get the latest review in a computer magazine. Such software was designed to solve real world problems.

When dealing with all these real world problems, a software development tool has to “wear many hats”. For example, I see a lot of so called BASIC language compilers on the web with all sorts of fantastic 3D features (ie. display real 3D models), but often people don’t appreciate that, while these compilers are great in their own right, they were designed primarily for writing games and not business applications. Usually the editor environment is poor or it lacks a visual designer or the language has poor support for building normal Dialogs with controls.

Some of the Visual Designers that are available for use with PowerBasic, too are great in their own right. Yet the emphasis in some of them is the Visual Designer environment, not the GUI engine behind it. I’ll be the first to admit that EZGUI 4.0’s visual designer has some things to be desired and that some features in other Designers are superior. But what many fail to see is that EZGUI is not a Visual Designer ! EZGUI is a GUI engine which happens to come with its own Visual Designer/Code Generator and that is a big difference. Other designers may tout some kind of sub/function library they provide to support the controls you use in the designer, but there is a big difference between a few hundred common wrappers around common API tasks and a full blown GUI engine like EZGUI has.

EZGUI’s GUI engine was designed to “solve problems”, as well as to build an application. For example lets look at some of its features to see what makes them different.

First, other Visual Design tools concentrate on controls in general, while EZGUI concentrates on solving problems and specific tasks. For example, many applications need more than just the normal controls. EZGUI goes beyond the basics and provides multiple ways to customize controls to make them more than the usual. You can modify controls via the subclassing engine, ownerdraw engine or customdraw engine. It helps you solve problems which are not so easily solved with the Windows API alone.

Second, EZGUI is very high level when it needs to be. As an example, two tasks which I found hard to tackle, which some programmers really need in their applications are (1) Visual Design or Drag and Drop features and (2) Animated 2D graphics for building custom controls that do something to emulate a real world task. EZGUI provides both and in a unique way. It has a subclassing engine which can impliment drag and drop. It can do the rubberbanding for drawing an object, it can drag and size controls and it even has its own drag handle control so you can easily add drag handles to as many objects (controls) you require. Have you ever noticed some of the biggest hurdles some of those other Basic programming languages found on the web have is in the area of Visual Design ? The languages are great, but sadly it is not easy to build a visual designer with them. EZGUI is different. EZGUI has all the features built in so you can build your own drag and drop visual designer. In the area of 2D animation, EZGUI takes a totally different route. Many of the Basic programming languages you see on the web today, use DirectX to provide 2D and 3D graphics. The problem with this is that, while great for single windows like most games use, you can’t use multiple DirectX windows in an application. What I wanted was a way to provide a real custom control which can be used for 2D animation and have multiple instances of that control on multiple windows (forms) all at the same time. I did this by adding a proprietary, software based, Sprite engine to the Canvas control in EZGUI. It is a real control and can be treated like one. You can draw on the Canvas and move sprites around on top of it. Sprites can be anti-aliased and alphablended. There is even collision detection. Now the Sprite engine was not designed to be a game engine. It was designed simply to provide 2D animation on a real windows control, so you can build all sorts of solutions to real world problems. You would be surprised at all the things my customers do with the Canvas control and Sprite engine and I can assure you, it has nothing to do with games. Yet to show you how powerful this sprite engine is, the core engine was ported to my other product called EZSprite and it has been used to write a game. The Sprite engine in EZSprite though is actually based on a later version of my sprite engine which came from EZGUI 5.0, which is not available yet. EZGUI though does have some features that EZSprite does not have, such as being able to use a Sprite as a Canvas to draw on in real time. This means you don’t have to simply load a sprite from a bitmap file, but you can draw and redraw a sprite dynamically at runtime just as if it were a mini-canvas.

EZGUI 4.0 Professional was designed to solve prolems so programmers can tackle almost any software project.

But to the point of this article, now I have reached a turning point !

That turning point is EZGUI 5.0!

I have posted in my forums some discussions about all the new features in EZGUI 5.0, so if you are interested check out my forums. Go ahead and register on the forums, even if you are not an EZGUI user, and ask all the questions you like about it.   (see:    http://cwsof.com/forums/index.php?topic=59.0   )

So what makes EZGUI 5.0 so exciting ?

Let’s just say that EZGUI will break new ground in software development. There is a lot I could talk about, but I will choose just one new feature to highlight. EZGUI 5.0 has a new GLCanvas control. This is no ordinary control and it is more than just an OpenGL based control. The GLCanvas control is a hybrid control. The EZGUI regular Canvas control is one of the most powerful features of EZGUI 4.0. EZGUI uses its new Superclass engine to create a totally new control, the GLCanvas control, which inherits everything the Canvas control can do (through the superclass engine) and then adds a 3D OpenGL engine on top of it. The GLCanvas control has its own GL Graphics script language for writing 3D scenes. It can even load STL 3D models (used often in manufacturing and prototyping). What is beautiful about the GLCanvas is that it is a real windows control. You can place multiple GLCanvas controls on a Form and animate all of them. Unlike much OpenGL coding today, where a single OpenGL window is used (similiar to DirectX stuff), EZGUI adds a real OpenGL based control, not just a single OpenGL window. A programmer can build all sorts of things with this and can solve all sorts of problems.  And just like my Sprite engine, this was not primarily designed as a game engine. That is not its purpose. It is a tool for building anything a programmer needs to build, particularly for business applications. Thats why it is a control, rather than a single primary OpenGL window. Actually it is for this very reason I chose OpenGL over DirectX for my 3D Graphic control. OpenGL is not limited to a single window and thats what I required for EZGUI. EZGUI 5.0 is designed so you can have multiple GL windows running at the same time.

There is so much in EZGUI 5.0 that it will be a turning point for the EZGUI product line. Just wait and see !

Right now a limited number of EZGUI 4.0 users were allowed to upgrade to the EZGUI 4.5 PreRelease version, so they are already using the next generation of EZGUI in their programming. Only a select few get this privilege. Also it is good to note that the PreRelease is not meant to be a Beta program where most of the time is spend having customers find bugs for me. Just ask any who have been involved in the prerelease program. The time is spent on adding new features and getting feedback on what the customers still want in the tool to “solve real world problems”. Debugging is my job, not the customers, and so far the current PreRelease (which has been in use for months now and continues to have new features added) has been very stable and sound and the feedback is good about how much the customers appreciate many of the new features.

EZGUI 5.0 is still some time away though, so don’t get in a hurry to purchase it. EZGUI 5.0 will “get here when it gets here”. I won’t release it until after I feel I have finished everything I feel should be in the product. EZGUI 5.0 is not here yet, not because its is still being debugged, but because I am still adding more features and right now there are already more features than you would know what to do with, but its not enough for me! When EZGUI 5.o is released my goal, if all goes well, is to make it stand out from the “pack”. The core feature of the EZGUI product is that it is a GUI engine and 5.0 will make this obvious to all that it is different. Future marketing will highlight this fact. EZGUI is not a Visual Designer. EZGUI, now and in the future 5.0, is a GUI engine which happens to come with its own Visual Designer.

Oh, by the way, did I mention that EZGUI 5.0 will come with a totally updated and significantly improved Visual Designer ? Well, yes it will. The new features in the Designer are exciting. Some of my favorites are the new Theme support, AutoSize engine support, auto resource compiling, new drag and drop engine and the new controls, particularly the new CustomControl support for the new CustomControl engine in EZGUI. I am not taking about third party custom controls, but a custom control engine which allows you to build new controls using the existing controls and all the built in engines for doing this. The Visual Designer supports such controls visually, so you can compile them so they work in the designer. Yes, EZGUI 5.0 will be a turning point for the Computer Workshop.

While of course I hope EZGUI 5.0 will be successful for my business, I do have to say that I do care about my customers and I desire that my software help them all become more successful in their work, to solve real world problems. In a world were profit is often the sole goal in business, even at the expense of the customer, I find it important to consider the customer and important to make their life just a little bit easier and better. There is great joy when a customer says that my software has made a difference in their work. So to all my customers, thank you very much! EZGUI 5.0 would not become a reality if it were not for you. My software is not perfect and neither am I, but if it can make a difference for other programmers to help them solve real world problems successfully, which in turns helps those who use their software, then maybe the time developing EZGUI was worth it.