Tn’s first release:

(time of writing: September 2003)

It is
obvious that to get Tn to a mature enough stage to act as a wide-ranging
solution, point releases must be made to obtain a revenue stream as soon as
possible. To that end, I feel that the first release should come initially with
a suite of development tools suitable for cross-platform & multi-language
development:

There
is a clear trend towards increasing development of cross-platform &
multi-language projects.

Tn
is itself a cross-platform & multi-language project, so our own tools
would be very useful to us in the future.

Offering
a solution to developers you target much of our targeted market straight
away.

The increasing trend of
cross-platform development:

Unfortunately
the ideal piece of research to prove this is the IDC 2002 Worldwide
Professional Developer Model study (IDC #28510). Since that costs $4500, it is
unavailable so I have done my best to collate information from commentaries
based upon that document. Furthermore I have contacted the owners of a number of
cross-platform development tools and where they replied and had the data, I have
their historical sales figures.

The following cross-platform libraries:

Qt,
the industry standard cross-platform C++ library

WxWindows,
the most popular free cross-platform C++ library

The
following cross-platform languages:

Java,
the industry standard cross-platform language

Python,
a popular scripting language (Tn is also based on this)

Ancillary Information:

According
to the Computer Industry Almanac March 2002:

PCs
in use

1995

2000

2001

2007

Worldwide

229

530

603

1,150

Share
in Homes (%)

35.2

43.5

45.1

52.3

It is estimated that in 2003,
18 million of these had Linux installed (counter.li.org)

IDC
estimates that there are currently 12 million programmers worldwide with it
projected to reach 13.3 million in 2006.

It
is generally thought there are 1 million active open-source programmers with
703,332 at September 2003 having registered with sourceforge alone at some
time in the past. Most open source programmers develop for multiple
platforms though a minority are developing cross-platform projects.

According
to IDC, of the 10 million worldwide programmers in 2002, 1 million were
Delphi, 2 million Java, 3 million C/C++ and 4 million Visual Basic.

Case Study: Qt

A
Norwegian company called Trolltech was formed to market Qt which had become
popular through KDE, the primary windowing system for Linux. Qt had been
designed as a state-of-the-art C++ system abstraction toolkit with no design
reliance on the host OS and so was easy to port to Windows and MacOS X.

Trolltech
themselves kindly responded to an email with their turnover for 2001 and 2002:

2001

2002

3.7m

7.4m

As
Trolltech’s Finance Director Knut Stålen says “The licenses in these
figures are mostly single platform, duo platform and trio platform” which
works out at a maximum of 2400 units shipped in 2001 and 4900 in 2002 (a
rise of 104%). This of course excludes all non-commercial (GPL) usage of Qt
which is probably rife among companies evaluating Qt.

Case study: WxWindows

WxWindows
has through accepting contributions from a wide number of people and not
baulking at adding platform-specific functionality become the most popular free
C++ system abstraction toolkit. The only figures are its downloads from
sourceforge which unfortunately only go back to the start of 2002:

Release
Date

Avg
Downloads

Windows

Mac

OS/2

X11

GTK

All

Totals

03/01/2002

561.72

119696

62302

181998

23/11/2002

365.21

3942

730

172

401

4295

1051

10591

22/12/2002

636.76

38050

3335

453

11141

45744

8253

106976

08/06/2003

643.80

27447

1651

237

4334

30866

3064

67599

21/09/2003

Total

189135

5716

862

15876

143207

12368

367164

% of
Total

51.51%

1.56%

0.23%

4.32%

39.00%

3.37%

100.00%

There
are a number of caveats to this data. Firstly, most developers actually download
a library from its CVS repository (ie; where the project resides as it’s being
worked upon) so they have the very latest features and bug-fixes – the numbers
above only reflect a proportion of overall developers. Secondly, the dip in the
month of November to December 2002 results from the November release being so
buggy as to need another release in December, thus clearly it would not be
popular.

Since
there are only three data points, no useful statistical analysis of likely
trends can be drawn. However it is clear from the above that (a) it is likely
there has been over one hundred thousand programmers either using or evaluating
wxWindows since January 2002 (b) around 50% (ie; 50,000) are Windows developers,
around 40% Unix developers and around 5% MacOS classic developers. At least
3.37% (3,370) downloaded wxWindows for all platforms together. While some
developers will have only ever intended to use WxWindows on one operating
system, there are better alternatives certainly for Windows & Unix and thus
for the majority, current or future cross-platform support was important.

Case study: Java

Java was
released by Sun as a panacea to cure all ills around 1994 when it was called “HotJava”.
It was a pure OO compiled language based on a C syntax and was originally
designed for embedded applications though from its release till recently it
targeted embedded applets in websites. Its single biggest boon to developers is
that the one binary runs identically on any platform with the Java run-time and
thus it is the industry standard cross-platform development language today.

Without
the full IDC report, figures are hard to obtain. The following is from a number
of sources:

2000

2001

2002

2003

700,0001

?

2,000,0002

3,000,0001

There is
an average rise of 62% per annum. I understand the IDC report estimates that
high double-digit growth shall continue.

[1]:
From Sun press releases

[2]:
From IDC 2002 report

Case study: Python

Python
was originally a scripting language for Unix. However it was one of the first of
the improved Unix scripting languages to take steps to become a full-blown
language and the power implicit in the language is immense, probably the highest
in general-purpose terms of any OO/procedural/functional based language. Python
was quickly ported to a very wide range of platforms along with an extensive
support library and probably its cross-platform availability is second only to
Java. Python is fully integrated into Tn.

My
thanks go to Thomas Wouters of python.org who provided me with detailed website
logs back to August 2001. From these I have generated the following graph:

There
has been a clear rise in all categories during the last two years. To be
specific, an average rise of 92% per annum from September 2001 to September
2003.

Estimations
of worldwide python programmers are hard as only the download statistics are
available and besides, python comes preinstalled on most Linux and Unix
installations. python.org reckons there are between 175,000 and 200,000 python
programmers in 2003.

What can
be said is that it is likely over one million people have evaluated or used the
v2.2 release worldwide since January 2002. One cannot say what the distribution
between operating systems is except to say there were 766982 downloads of the
v2.2 release for Windows based machines.

Competition:

Borland
Kylix

Kylix is Borland’s RAD tool
for Linux development and if it were combined with Borland C++ Builder for
Windows it would provide a cross-platform solution. The Borland Delphi and C++
environments are well-regarded.

Unfortunately ports for only
Linux and Windows are available and it’s expensive: $249 for Kylix and one
of $999 for C++ Builder or $999 for Delphi.

Competitive threat: Medium
(because of price)

Eclipse
Eclipse is a free Java-based IDE originally for Java projects but its most
recent (August 2003) release is finally looking impressive. Plugin
extensions can add support for arbitrary languages & debuggers and while
the current C/C++ one is mediocre, in a year’s time it would have surely
improved.

Eclipse’s considerable
improvement had actually taken me by surprise – when I had last looked at it
six months ago it was basically a poverty IDE for Java programmers but I
assume the recent sign-on of major industry players has given its programming
team a major funding boost. This new revelation has forced me to reconsider
what a Tn cross-platform solution should be in favour of a much more “tying
together disparate tools” approach than implementing a common consistent
interface to the same. This in fact plays to Tn’s strengths, because its
entire purpose is to tie together disparate pieces of code so if the
cross-platform development product does so in a very clear way, it actually
helps us in marketing terms because then they think about how to apply similar
thinking using Tn elsewhere.

Competitive
threat: High

Old
way of doing things
The old fashioned solution ie; to maintain separate project trees for each
platform working off a common repository is a fairly well honed one by now.
While Makefile1 technology has been with us since the late 1970’s,
it runs on everything everywhere – its only problem is lack of integration
with code editors and the debugger and it’s also a real pain to keep
up-to-date.

On the other hand, if the old fashioned solution were so great we wouldn’t
be using less powerful IDE’s on Windows. I believe there is a strong
incentive for users to upgrade, especially if they can use Tn to maintain
their own makefile setups.

Competitive threat: Low

[1]: A
makefile is literally a set of dependencies between source files in a project
and instructions on how to make the target (the binaries) as recent as the most
recent thing in the list of source files. Despite the advances of modern IDE’s,
makefiles still remain the most flexible and powerful method of building your
project and if we can leverage that, we have something no other cross-platform
development tool does.