Archive for January, 2010

Why Bother?

January 17th, 2010 No comments

Every now and then, while perusing, or perhaps responding to a question on a forum, I’ll see a response from another user to the originator of the question that is of the form

1) “Why bother?”

2) “There’s no need for that”

3) “Just do it this way”

I came across an example of this earlier today in a music forum when a user of a music product called MainStage (an application to support musicians for live-performance ) wanted to know how to record what he (or she) was playing into Logic (a digital audio workstation, intended for composition and recording).

I usually find the “why bother” response quite jarring. For one thing, it’s a condescending, almost religious response that essentially implies that “I know better than you” but quite frankly, that’s often just not the case.

Much better of course would be to (a) answer the question if you know how and then (b) ask nicely why the user wants to do something that you think is not worth doing or might be the wrong way to do it. In such cases, everyone gets to learn something.

Now, I don’t know why the user asked that particular question although I can certainly come up with my own reasons as to why I would want that functionality. (Hint – inspiration can come at any moment, need a way to capture it)

But the real reason I’m always bothered by the “why bother” retort is because responders often fail to recognize that (sometimes very significant) progress often comes from people who are combining elements together for new purposes that were not obvious to others. There are plenty of examples where people didn’t know that “it can’t be done” and so they went ahead and just did it.

Even if you’re certain you know much more than the questioner, you might be surprised. Remember that teachers and professors continue to learn new things from their students.

So whenever you see a question that doesn’t fit into your own mental model of how things are supposed to be, how about pausing for a moment and ask the user why they asked that particular question. At worst, your questions will help clarify what’s needed. Others may be having the same difficulty or confusion. At best, well, you might discover something that helps you improve your own work or even takes it in a new direction.

Categories: Musings Tags:

Cross-platform desktop development options: Introduction

January 10th, 2010 No comments

Cross-platform development for desktop applications is becoming increasingly important. Chances are that your application user uses OS X, Windows, Linux or has a combination of these. For example – it is not uncommon for people to have a Windows based desktop and an OS X laptop.

In the recent years OS X platform really took off with the introduction of Intel based Macintosh computers. This makes the OS X platform hard to ignore.

As a developer – you have a few tough choices to make, but by far the toughest one is selecting the right development environment.

Wikipedia has a nice entry for “Cross-platform” which includes some of your development environment options

We went through this “evaluation and selection” process recently and made sure we evaluated many cross-platform options carefully. Remember – once you commit to certain language or tool – it is very hard to change it later so make sure you weigh your options carefully.

Here is a list of more interesting options we have evaluated in no particular order

  • Object Pascal with Lazarus IDE
  • Object Pascal with Delphi IDE + wxForms on Windows + Free Pascal for OS X
  • Microsoft Visual Studio + C# on .NET platform, Mono on OS X/Linux
  • Java with Eclipse and NetBeans
  • wxWidgets and C++
  • Qt and C++
  • RealBASIC

I have to say that we come with a small baggage. We prefer Object Pascal over other languages evaluated here so we evaluated more options that would enable us to use that route.

As you can see – we evaluated many different languages. Object Pascal, C++, C#, Java and BASIC. While thinking about a certain language – think about libraries/SDKs that are available for that language. Certain GUI platforms have bindings for different languages – make sure you understand what is available before you commit. You do not want to be spending days writing a PushButton class on your own.

The process of selecting our tool of choice was tedious, but it definitely paid off. I will try to summarize the process, tool by tool and hopefully help you in making your decision.


Next:  Cross-platform desktop development options: Lazarus and other Object Pascal options

Categories: Uncategorized Tags: