How to choose the right application development technologies

December 30, 2007, 07:57 PM —  ITworld.com — 

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

I like it!
Post a comment
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
peer-to-peer

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?

sjvn
64-bits of protection?

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

The Daily Tip

The Daily TipQuick, practical advice for IT pros. Made fresh daily.

Hot tips:

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.

Newsletters

Subscribe to ITWORLD TODAY and receive the latest IT news and analysis.

I would like to receive offers via email from ITworld partners.
By clicking submit you agree to the terms and conditions outlined in ITworld's privacy policy.
Featured Sponsor

AISO founders envisioned a Web hosting company that was environmentally friendly. While the company employed energy-efficient innovations like solar panels, its infrastructure produced unacceptable power and cooling requirements. Find out how AISO leveraged AMD technology to overcome their challenge in this case study white paper.

In this whitepaper, Scalar explores the opportunity to change the landscape with respect to mission critical databases built around Oracle. Leveraging technologies such as Linux, high-end commodity processing power and Oracle RAC technology to architect, design, build and maintain database infrastructure that delivers maximum availability, reliability and performance at a fraction of traditional cost.

On a typical day, weather.com, the Web site for The Weather Channel in Atlanta, serves up between 15 million and 20 million page views. But in September 2004, when back-to-back hurricanes ransacked Florida, the peak traffic on one day more than tripled: over 70 million page views by more than 7 million unique visitors. Read the full success story now.

Marketplace