What is InstantC for Windows?

InstantC for Windows
from Tenberry Software
is a C language Integrated Development Environment
reimplemented for maximum programmer productivity.

Why do I care?

Our current users report that with InstantC, they double their
C programming productivity. So can you.

Why is this important?

Over time, computers have become less and less expensive, while
programmers have become more and more expensive. Most organizations
spend most of their "computer systems" or "Information Systems"
budgets on people costs, rather than hardware.

Back when optimizing compilers were invented, development costs were
typically 90% hardware costs.

In most companies, programmer costs are now more than 80% of the development
budget.

So what is InstantC for Windows?

InstantC for Windows is a tight integration of all the
individual programming tools
you are used to using, designed to make the individual C programmer as
effective as possible in understanding code, changing code, finding bugs,
and testing.

Is it a set of libraries?

No. InstantC uses the same libraries you are already using in your
current C development.

Is InstantC for Windows a C interpreter?

Sort of -- just much faster! It depends upon what you mean
by interpreter. InstantC for Windows
has all of the interactivity, checking and productivity that you associate
with an interpreter, but we are actually incrementally compiling code
so that you don't see the slow execution speeds typical of interpreted
environments.

So what is InstantC for Windows?

Another way of thinking of InstantC for Windows is as a check-out
compiler for C, in the manner of the IBM's PL/1 checkout compiler.
Like IBM's PL/1 checkout compiler, InstantC for Windows uses
extensive run-time checking to help find most bugs.

Does InstantC for Windows replace Microsoft's Visual C?

Absolutely not.

In fact, you need a copy of Microsoft's Visual C/C++ version 1.0 or
1.5x in order to install InstantC for Windows, since we
use the
Microsoft run-time libraries and header files to insure maximum
compatability.

Visual C and InstantC for Windows actually have two different targets --
Visual C is targeted at making your code as efficient as possible, while
InstantC is targeted at making your programming as effective as possible.

Programmers use InstantC for Windows during much of their development
process,
switching
to Visual C to create the final production run. This is similar to the
use of the 'debug/release' mode of the Visual C product.
InstantC for Windows
substitutes for the debug mode, but does not replace the release
or production mode.

Can I use InstantC for Windows with Borland's compiler and tools?

Since the output of InstantC for Windows is a debugged,
formatted C program, you
can use it with any compiler for Windows programs. Since InstantC is
an ISO C compiler, if your programs use only the Standard C libraries,
you can use InstantC with any compiler. We have several customers
who use InstantC on a PC to work on programs that run on UNIX.

However, you will need a copy of Visual C/C++ version 1.0 or 1.5x to
install InstantC for Windows.

We do not yet have support for Borland C/C++.

Are you planning to support Borland C/C++?

Eventually, but Borland support isn't currently scheduled. If our
customers want support for Borland or any other compiler, we will provide
that support. In the meantime, we are concentrating on making InstantC
for Windows as productive as possible.

I use Watcom C++ 11.0. Can I use InstantC with the Watcom libraries?

InstantC is currently 16-bits only.
Assuming you are using the 32-bit part of Watcom 11.0,
the short answer is no, not yet.

We are working on a 32-bit
version, which will be ready later this year.
When the 32-bit version is ready, we will support the Watcom
compiler.

You might be like a number of our current customers, though, who
find that the bug-finding assistence of InstantC is useful enough
that they test out their 32-bit software with InstantC before
compiling with their 32-bit compilers. Of course, this strategy
doesn't work if your fundamental data structures require 32-bits.

What if I don't have Microsoft's Visual C/C++?

No problem. Visual C/C++ version 1.0 is available in a CD-ROM/book
combo for under $50. Visual C/C++ version 1.5 is available in most
software stores at under $100 for the standard edition. If necessary,
we can include a copy of Visual C/C++ with your purchase of InstantC
for Windows.

Does InstantC for Windows support only C?

Yes, currently InstantC for Windows will handle
only C source code. Code written in other languages can be loaded
in object code form, or in DLLs.

Does InstantC for Windows support only Windows?

The current release of InstantC for Windows is designed to
develop and debug Win16 applications. Both the applications and
InstantC for Windows itself can run under Windows 3.1 or 3.11,
Windows for Workgroups 3.11, Windows 95 and Windows NT, versions 3.51
or 4.0.
If limited to the Standard C libraries, the applications can run on
Unix or any platform with a Standard C compiler.

Do you have plans for a Windows NT version?

Yes, we have a Win32 version under development. We don't have a scheduled
release date, though.

How about Windows 95?

The Win32 version will support both NT and Windows 95.

Is InstantC for Windows useful for WinNT or Win95 developers?

In our initial release, we are targeting the maintenance and enhancement
of existing 16-bit Windows programs. Although InstantC for Windows
runs in WinNT and Win95, it can't be used directly on Win32 programs.

Although you could use InstantC for Windows to develop an
eventually-Win32 program with the idea of just porting it after it
is debugged, there will be an extra step of porting the program from Win16 to
Win32. Depending upon the program, the extra porting from Win16 to
Win32 may use up most of the productivity gained from using
InstantC for Windows.

Is InstantC for Windows a screen design tool, such as
ProtoViews "Protogen"?

No. InstantC for Windows is focused on the 'back-end' C code of
a Windows app, while a screen designer is focused on the 'front-end',
or GUI part of an app. You may well want to use both tools during
your development.

How does InstantC for Windows work for programming teams?

Equally as well as in single-programmer situations. Although we
are currently concentrating on improving the productivity of the
individual programmer, InstantC for Windows has no limitations
for programming teams.

There are two ways in which InstantC will help in team programming:
First, since the result of InstantC
is a fully-debugged, ANSI/ISO C program, there will generally be far
fewer integration errors when the pieces of a program or system are
put together.

Second, InstantC includes automatic source code formatting,
which can be used to ensure that everyone's code is formatted
consistently. Consistent formatting greatly aids code reading,
leading to better program understanding, which is particularly
valuable in a team situation.

Our servers are Unix based -- does InstantC have any play there?

Only to the extent that C programs are very portable. A number
of our existing customers are using InstantC to do their
development of programs to be deployed in UNIX. Since most
server applications will be using specific API calls to support
networking and/or system-specific facilities, not all of an UNIX
server application could be debugged with InstantC.
Most of the server-specific code would not execute in
InstantC.

Do you have an Unix version?

Not at the present time.

Do you have plans for an Unix version?

We don't have a project started, but Unix is the most often
requested non-Win32 platform from our customers and prospects,
so we continue to consider it.

Does InstantC find errors that a tool such as PC-Lint might miss?

Yes, quite often. We are trying to solve some of the same problems
as PC-Lint,
helping to find bugs while looking at all of the files in a program,
but are using a different strategy: PC-Lint does static analysis, and
tries to warn you about everything that *might* be a problem. Although
some folks are disciplined enough to use PC-Lint after every compile,
and therefore have 'lint-free' code, many people are overwhelmed by
the number of messages.

InstantC's strategy is to only report things that are for certain errors,
or which you have asked for, such as requiring prototypes. While InstantC
uses static analysis, like lint, InstantC also includes run-time checking,
which can catch value-dependent bugs, such as the typical off-by-one
error in referencing C arrays.

No product will find *all* the bugs in your code. Since InstantC and
PC-Lint use different strategies, they will find different subsets of
all the bugs in your code. PC-Lint does a particularly fine job of
static analysis, unmatched in my opinion, but has no run-time checking.
InstantC has good static analysis, unsurpassed run-time checking, and
a lot of excellent debugging tools.

You could use both, and would probably benefit from both. PC-Lint will
likely find lots more things to complain about while InstantC will likely
find things that are clearly bugs.

InstantC sounds interesting. How much does it cost?

We are currently running an introductory
special for $295.

Are there licensing fees involved?

Absolutely not! InstantC is like the debug mode of your compiler.
(Unless you want to distribute copies of InstantC, of course!)