How to choose the right application development technologies
Soft on the outside, hard on the inside ...
Most application development tasks these days require the careful stitching
together of a variety of different technology pieces. At a software level, there
has never been a wider range of programming languages, data manipulation languages
and knowledge capture languages to choose from. Adding to that, there has never
been a wider range of application environments in which to embed new systems.
Example of the former range from the obvious candidates such as Java, C#, XSLT,
SQL to the more specialized such as Microsoft DTS and Autodesk Autolisp. Examples
of the latter range from Facebook to Microsoft Sharepoint to Eclipse RCP.
Application design can involve dizzying oscillations as a result of the power
of these technologies. Should you start with a C# application and embed bits
of XSLT as required? Or, alternatively, should you start with XSLT and step
out into C# if/when required?
To develop that cool application with the word process functionality, should
you start with the word processor and use its templates/macros/extension features
when required? The alternative is to create your own master program and to embed
the word processor within it?
How to choose?
There are a number of useful rules of thumb. No absolutes I'm afraid. The first
thing I look for is expressive power.
First, it is a very important in my opinion that the top level of your application
"stack" be as flexible and as general-purpose as possible. Take for
example, the not-uncommon problem of transforming XML from one form to another.
An obvious first port of call for this would be XSLT. Now, XSLT is a language
specifically designed for XML transformations. It is not a general purpose programming
language. (Yes, I know that it is Turing Complete. Yes, I also know that XSLT
implementations tend to provide an extensibility framework so that they can
theoretically "do anything". Bear with me for a moment.)
Faced with an XML processing task, do you start with an XSLT script as the
main application layer or do you make the main application layer a Java/C#/Python
application and invoke the XSLT parts from within it?
I generally favor the latter. Applications that do XML transformation have
a habit of developing requirements in areas such as logging, security, progress
metering, user input of variables, user interactions half way through transformations...that
sort of thing. Even if they are not on the table when you start, some of them
will be by the time you try to finish. Mark my words.
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
Esther Schindler
If the comments are ugly, the code is ugly
claird
SVG a graphics format for 21st century
pasmith
Take Chrome OS for a test spin
Sandra Henry-Stocker
Solaris Tip: Have Your Files Changed Since Installation?
jfruh
Android fragments vs. the iPhone monolith
mikelgan
What Gizmodo missed about the Pro WX Wireless USB disk drive
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.













