1) What was your motivation to develop your own IDE?
Nothing better to do :) ... just kidding. I was really disappointed with
current programming languages and then C# popped up and I did want to
try out the new language. Unfortunately there was no real good
editor/ide for this language available. I've a strong linux background
and just started to program what I need.
2) Why did you choose the .net platform?
I think that virtual machines are the future and .NET is currently one
of the best designed virtual machines. In my opinion compiled code is
nearly dead, VMs allow it to develop for one platform and to run the
programm under almost any hardware/operating system available (at least
but that's enough for a computer scientist).
3) What are the advantages in C# for you as a developer?
Key advantage : Faster, better and more expressive than java. More
modern than C++ but only with low performance penalty.
4) What features of C# made you choose it as a language for such a substantial project?
I like the concept of properties, it is far nicer than the get and set
methods known from java. and C# has a lot of syntax sugar ... delegates
for example. (far better than C method pointers)
- Java/C++ like syntax
If you know Java/C++ you'll learn C# fairly easy ... same bracketing, some
features from Java, some from C++ (and some from delphi :)).
- Good and fast compiler
It is difficult to find a fast C++ compiler, the standard java compiler
(javac) is slow too. The C# compiler is much faster.
5) Where do you see SharpDevelop in position relative to competing IDEs and
I'm currently working on the only "pure" .NET IDE out there, I have NO competition :) I
head straight in the directon of industrial strength IDEs, but I don't want to make
the IDE as complex as the 'big irons'. However, I want good features
like code completion or forms design.
6) How is SharpDevelop going to integrate with Open Source alternatives to
.NET - specifically with mono?
I hope that one lucky day mono will bring the majority of OS developers
to .NET and that mono will provide a way to run .NET apps on linux. I
wish that SharpDevelop will run on linux with mono (and also of course, with DOTGNU); it will be good to
have platform independent applications out there for .NET.
7) .net will support a number of languages on top of the CLR, how
will that affect SharpDevelop? Is integration really 'easy as pie'?
Integration of languages in the CLR? Should be hell :) it doesn't
support multiple inheritance, templates and functional programming
models aren't really included either. It is possible but only with a lot
of work. I wonder if we will see languages in their "natural" form on
.NET other than Java :) Integration of languages in SD is another story.
We have to define certain things in the language modules to make all
languages really integrateable. For example there is currently no
language module defineable smart indenting, only the curly bracket
indenting is build in. All these things aren't really hard to throw into
the language modules. But the interface must be extended and overhauled,
something I can't do alone. I've enough to do integrating C# in
SharpDevelop and it is not easy to define a language module for a
language I can't even read (like VB.NET).
8) Integration of other .net languages means flexibility in both the
back end of the IDE and in more GUI features like syntax highlighting
and code completion. How did that affect design decisions?
Good question. Not much. I've first thrown all features into the
code and if I need something in the backend binding of a language I just
stick it into the interface and put it in the modules :)
9) What features of .NET are important for SharpDevelop besides the C#
language? Why, what additional functionality do they provide going beyond traditional
10) What is your favourite feature in .NET? Why, and what does it do?
The reflection API.
11) What is your favourite feature in SharpDevelop? Why?
Compile & Run -
Because this is the main feature I need for an IDE :)
12) What particular programming feat are you proud of, not necessarily
Refactoring, refactoring and refactoring. I like the Extreme Programming point of view when
it comes to this issue. Refactoring code IS an important practice in my
13) What do you see for the future of SharpDevelop?
I hope that SharpDevelop will be widely used as an open alternative over commercial
IDEs, something like NetBeans for C#.