0
Digg me

This Wednesday, I met with Patrick and we went to a nice Vietnamese restaurant on avenue Mont-Royal. There was a generous serving and it was delicious for a very good price. And being seated next to the heater was a good thing too on Wednesday, believe me.

Patrick and I share the interest in RAD tools. He’s an expert on WinDev and Windows development and although I sometimes hate the way Microsoft does business and technology, I do give credit where credit is due – that is, at least one thing they did well – and really well – is Visual Basic as a RAD tool.

Using VB, I successfully engineered a prototype for a Business Platform used as Management Information Systems and also for daily operations for IMM, an Offshore Management Company with approximately a total of 30 employees and about 600 clients at the time. The prototype was meant to test the possibility of a total re-engineering of the business process together with the information systems application they were stuck with – a mess of FoxPro for DOS (not Visual FoxPro). Ultimately, their long-term goal was to use an ERP to manage their business, but in the meantime, they needed help with mission-critical software.

To be effective, a prototype must be built rapidly and also help to diagnose any potential pitfalls of migrating to a new platform. Subsequently, you can either choose to do the actual implementation of the new platform in a whole new framework or language, or else convert the prototype itself into the production platform.

Well, the VB client-server platform I developed was really such a significant improvement on their previous way of working that they kept it. It ran for about 4 years without glitch till they successfully migrated to J.D. Edwards.

I’ll probably write a more complete post on this project later, but the technical architecture relied on VB 6 and windows 98/XP, SQL Server 7 on Windows NT 4, and Word and Excel automation (also through VB/VBscript macros).

Being a Systems/Software Engineer helped me analyse and design the architecture, and my experience working as a Business Analyst for an Andersen Worldwide representative (DCDM, where I learned to apply Andersen’s Method/1 and Global Best Practices) helped me use best practices for business process re-engineering (crucial use of the Parallel Run before complete migration), software engineering and Project Management.

And the points I’m trying to make are:

- Had I been using C/C++/Java instead of VB, I would have taken 10-20 times longer – possibly more
- VB 6 is so good it can be used to not only rapidly prototype a business platform, but also convert into a mission-critical platform used by 20+ employees simultaneously on a daily basis for a Business in the Finance Industry.

It is with this perspective in mind that Patrick’s description of WinDev was really interesting. I watched the screencasts of WebDev too on the PCsoft site and the environment looks fantastic. Screencasts are an excellent marketing tool.

Which brings me to Ruby and Rails. I love Ruby and Rails, but what they sorely lack is a powerful RAD environment/IDE/Framework. At least something as powerful as VB. (There are some projects which exist and I wrote about these in my posts to Rubidius, the Mauritius Ruby Users Group, but they are not as advanced as VB).

While we were talking about RAD, WinDev, Ruby and Rails, I two Patrick of two ideas of mine, two things which are so good they should exist but they don’t really yet – or at least I don’t know about them yet (do chime in if you’re in the know):

1. A RAD/IDE totally decoupled from the GUI toolkit/library it uses.

In other words, the RAD/IDE outputs an XML-based, neutral and standard description of GUI objects (their size, location, properties, appearance, etc…). This, in turn can be automatically translated through XSLT, XML processing to target any GUI toolkit or libraries like wxWidgets or something else.

Why?

- Because I don’t have the time nor the desire to learn yet another RAD/IDE. Make one good one, and make it versatile.

- I don’t have the time to learn a new GUI toolkit and I certainly don’t want to write code when it can and should really be automated.

2. A very high level-language like pseudo-code – one programming language to rule them all. Ok, we already have Ruby and Boo, we can stop here.

Similarly here, I don’t have the time to learn a new language. I rarely code these days, as I’d rather spend my time solving strategic business and information systems integration and global/humanitarian issues instead. Having to learn a new syntax for a language without there being any real innovation is not a good use of my time and energy. But if I have to code, I use Ruby or VB.

Although I can program in C/C++, using languages with complicated constructs and in which I need to manage pointers, like C/C++/JAVA are a waste of my time (my opinion based on my priorities and time spent on actual, real-life business projects – not an ignition for a language war, ok?). I prefer to spend time thinking about an optimal algorithm or clever architecture, and business optimization issues (high-level problem solving), not battling the language’s syntax and readability or spend an uncertain amount of time on bug-hunting (low-level).

From this high-level pseudo-code (ok, let’s say it’s Ruby), one can always transform it into XML and XSLT it into any other language provided the programming constructs can me matched.

The next day Patrick and I had decided to attend Montreal’s first DemoCamp at the C.U.S.E.C., organised by John Kopanas, and we saw something similar there at least in principle. More on that later as I will do a write up with pics for DemoCamp soon.

All in all, Patrick and I also agree about writing less code.

As I always say, the essence of computing is to make the machine do all the repetitive and boring stuff automatically. So whenever you find yourself doing the same things over and over again, like writing down the same code, typing when you could do it with a single mouse click, ask yourself if there isn’t an opportunity to delegate this to the computer and automate it.

This is what David Heinemeier Hansson did when he built Ruby on Rails – Don’t Repeat Yourself – D.R.Y., the essence of computing.

And use a RAD/IDE. Type less code, especially in cases where you don’t need to. Please.

“…For example, I personally believe that Visual Basic did more for programming than Object-Oriented Languages did. Yet people laugh at VB and say it’s a bad language, and they’ve been talking about OO languages for decades.

And no, Visual Basic wasn’t a great language, but I think the easy DB interfaces in VB were fundamentally more important than object orientation is, for example…”

– Linus Torvalds

End of transmission….

  • Share/Bookmark
 
blog comments powered by Disqus