-
Epsilon is the editor I use for programming.
This editor is for you if you are an EMACS-fan but you happen to work
under Windows nowadays. However, I am not an EMACS-fan myself and
my opinion about Epsilon is a bit mixed.
To start with the positive things, Epsilon is definitely better
than the embedded editor of Microsoft's Visual Studio (though this
is not a big achievement, I guess). I also appreciate that it has a
Brief-emulation mode (yes, I am a Brief-fan), so I do not have
to learn another set of hot-keys. But what I enjoy most is the great
flexibility: I can redefine everything and I am even allowed to rewrite
the whole editor using EEL, the so-called Epsilon Extension Language,
which is a C-like language (the concept is the same as in Brief, I wonder
who has got the idea first: I guess it comes from the Uni(x)verse...).
This is indeed important as the Brief-emulation mode I need so
desperately is everything but perfect. Therefore I have already made
some modifications to it and also to other parts of the editor.
There are some things I dislike, though. I often have the
feeling that Epsilon would need a basic redesign as the whole program
seems to be a bit incoherent now: features and commands are implemented
on an ad-hoc basis, probably as a result of so many upgrades.
The most confusing is the User's Manual which is everything but clear
in my opinion: I use it often, but it still happens that I do not
find something I need, even if I have read it before and I need just a
refreshment. And if you look into the EEL-sources you find a
programming style in which no one should program nowadays, at least
so I think.
Another question is, whether you really want to use a stand-alone
editor. Although an IDE's editor is usually not as good as a stand-alone
one, it offers significant advantages, for instance context sensitive
help and code browsing. I still insist on editing my source files in
Epsilon, but I often open Visual Studio to browse my code. I think
in the long run stand-alone editors should somehow provide these services
or they will die.
Anyway, my overall opinion is quite good: this is a usable tool and I
do not know any better (Brief is not available any more and
it had similar drawbacks as well.) [Top of Page]
-
4NT is the command shell I use.
This is a good tool. The 4NT command prompt provides a lot of
comfortable services like command and directory history, name completion
and an extended set of commands. Our project particularly depends on
4NT's batch files. Some critical remarks, though: the manual could be
more detailed and I also managed to find some bugs concerning file name
handling. [Top of Page]
-
MKS Toolkit, a collection of command-line utilities
Another immigrate from the Unix world. It includes a lot of Unix
utilities. The reason I have this tool is that our project uses
awk scripts. It is a powerful file processing language that can
help you in situations when batch files cannot but you do not want to
apply the heavy artillery (i.e. to write a C or C++ program).
Other important components of MKS Toolkit are:
- a Korn-Shell (which I have not used yet),
- a make utility (which I have not used yet either but
considering my experiences with Microsoft's nmake I think I should),
- and a lot more: vi, perl, grep, etc.
[Top of Page]
-
MKS Source Integrity, a configuration management tool
Source Integrity is based on rcs but it gives you an additional
integrated environment (you can use the command-line tools, if you
prefer). After having relatively good experience with an older version for a
year, I have recently updated to the newest version (7.3e) which offers some
new functions and its GUI is also fancier.
However, my impressions about the new version are not good:
- certain operations are inconsistent and unsafe: it even happened that
some of my work was lost due to this!
- the integrated environment has a tendency to crash,
- there are a lot of inconveniences in the user interface, that makes its
usage rather painful,
- the documentation is incomplete.
[Top of Page]
-
JDK 1.2
The basic Java development tool: no IDE is provided, only some command
line tools (but unlike an IDE tool, this is free!).
I originally intended to use it on a temporary basis only,
until I decide which integrated tool I prefer. However, I have been using
JDK for a year and I still do not need an integrated tool. There are two
reasons for this:
- Most of the traditional IDE services can easily be substituted by
alternative ways: I use Epsilon for editing,
the documentation is in HTML format so a web-browser provides "online
help" and I have some makefiles to produce "projects" and automate
compilation and other actions. I miss code browsing and context-sensitive
help a bit but I can survive without that.
- The only really important service of an IDE that cannot be replaced
is debugging. But I develop low-level libraries and small utilities
(relatively small and simple pieces of code), so I can easily get along
with very little debugging: the command-line debugger of JDK has been
sufficient for me so far. [Top of Page]
-
General remarks on
Microsoft programs
First of all, I have to admit that I am getting more and more biased
against the Redmond Goliath and it is quite possible that my prejudices
make it very difficult to judge their products objectively. However, I want to
add that I am not a "100% Certified Microsoft Hater" and I do not think
Bill Gates is the AntiChrist; in fact, I am sure that every other SW company
would love to be in Microsoft's position and they would behave in the very
same way if they were. My negative feelings are mostly caused by the
frustrating experiences with their products.
The programs discussed below are quite big and complex products. It is
no wonder, that they are not perfect. I am a SW engineer myself and I am
afraid I cannot claim that my own code is of better quality than Microsoft's.
However, there are certain features I specifically dislike (i.e. hate) in
their products.
First of all, it is frustratingly difficult to find any information
in their online help: even if I am pretty sure that the program knows what
I want, it always takes a lot of time to figure out how I can do it because
the links and explanations the help system provides are rarely relevant.
It seems that Microsoft and me think in a very different way: the main problem
for me is that they usually explain in an extremely detailed way how to
do something (for instance: "go to this menu, press Enter, then press this key
and drag something with the mouse" and so on. These kinds of instructions are
completely unnecessary: you know, the great thing about graphical user
interfaces is that their usage is easy and intuitive. Once you learn the
basics, you rarely have problems like "how to open a dialog box" or "how to
drag an object on the desktop". So, having to read repeatingly this kind of
information all the time when you are desperately looking for something else
is quite irritating. Unfortunately, if you want to know about concepts or want
to find meaningful definitions, then you are in trouble: the help tells you
very little about concepts: what will actually happen when you do this or
that? You are treated like a child, you are told what to do but not why...
Another typical problem is that even though Microsoft programs (at
least the ones discussed below) are really offering a lot of services and
options, I often find that I miss something very basic: it is like when you
can set your watch to display the numbers in 32 different colours but you
cannot change the date. Just a few examples:
- In File Explorer you are simply not able to set a default sorting scheme.
I prefer to see files sorted according to their types and I have to open a
submenu to achive this each time File Explorer refreshes the directory
content.
- Also in File Explorer: the only way to get to know the exact size of a
file is to open a Properties window for that file. I really do not understand
why is this rather important information not displayed directly in the main
File Explorer window?
[Top of Page]
-
Microsoft Visual C++
It has been a rather long process to get more or less used to Visual
Studio. The only other integrated development tool I used before was
Borland C++ 3.1 (the DOS version); a very old environment and fairly simple.
When I first started Visual Studio, I felt like arriving from a small town
to a metropolis: Visual Studio seemed to be huge and chaotic: it was
really hard to work with Visual Studio for the first few days (weeks) and
the help system did not make it any easier, either. After one year I have
learnt to appreciate some of its services but I am still not fully
comfortable with this Microsoft Metropolis: it is full of the usual
uneasiness and illogical solutions.
I limit my usage to three areas: to get online help (on the language),
to browse and debug the code. For building a project,
we use our own makefiles from a command prompt and for source file editing
I use Epsilon (although Visual Studio also has a Brief emulation mode, it
is worse than Epsilon's).
Since this is not exactly the way Microsoft imagines Visual
Studio should be used, you need some extra effort to customize your
environment and there are still minor inconveniences:
- For instance, when I start debugging I always receive a
warning message that some files are out-of-date. They are not,
the message is due to some inconsistencies between the Visual Studio
project files and the makefiles we use.
- Also, our project directory structure is a bit different from the
default settings, so when I browse the code, Visual Studio often asks
for the directory in which it should look for the source files: I have
not found any way to make Visual Studio smart enough to find them
without my help.
- I also find that code browsing works in strange ways: some class
members are invisible in some views but visible in others: I have not
been able to figure out the reasons yet.
My final judgement is not very good, but not so bad either, after all.
Due to the wide variety of its services Visual Studio is a usable tool but
its incoherence and uneasiness is often nerve-racking.
[Top of Page]
-
Microsoft Word, the world's leading nerve-processing program
I used WordPerfect before coming to Nokia and although we often
called it WordImperfect in those days, I look back now with a forgiving
smile and admit that those were my happy days. So, feel free to have a
"how to liberate the world from Microsoft's Word" chat with me... :-)
Well, the smiley shows that I am exaggerating a bit. But it is definitely true
that I find Word inferior to WordPerfect in every respect:
- It is quite usual that when (after figthing my way through the
labirinths of the online help) I finally manage to learn about
a certain feature, it turns out that something is wrong with that: it
does not want to do exactly what I want or the way it works is
illogical (to me, at least). Just one example: I prefer to insert a
field into the footer about the date (and time) when the document was
last saved. This enables you to tell whether an old printout is
out-of-date or not. Unfortunately, in Word you get into an endless
circle with this: when you insert the field, its content will be the
last date when the document was saved. However, by inserting this field
you change the document, so you need to save it. Unfortunately, when
you save it, the field contains the date of the previous save, so it
gets out-of-date immediately and you will see this obsolete date when you
open the document next time. Of course you can always update the field,
but by this you change your document... The tell the whole story, I
have at last found a way to use this field in a more or less logical way:
I save the document before I print it, then I update the field (in fact,
you can tell Word to automatically update every field before printing the
document), then I print it and do not save it after printing.
- But what I really miss from Word is a very nice feature of
WordPerfect: the so-called "secret-code window".
In this pane you can see the internal codes that actually specify all
the formating information in the document. By looking at these "secret
codes" you can learn a lot both about the actual document (WYSIWYG can
sometimes be very deceptive; furthermore and it never tells you why
"you get what you see") and about the way WordPerfect works.
Word does not give you this insight and I personally miss it very much.
My final judgement is quite crushing: although Word provides a lot of
services, the quality of the services is mediocre (or worse) and the help
system is terrible. DON'T USE IT!
[Top of Page]
-
Microsoft Outlook
My experiences with mail programs started with Eudora Light (a nice
shareware) which I used before coming to Nokia. Then I had the honour to
use MS-Mail for more than a year at Nokia before upgrading to Outlook.
I was really looking forward to having Outlook: MS-Mail was a primitive
tool offering only the very basic services. Clearly, Outlook offers the
most functionalities from the three programs, even if you confine your
investigation to mailing, which is actually not really fair as Outlook is
an integrated package offering more than just simple mailing: contacts,
appointments, meetings, tasks and all other aspects of your work can be
controlled with it.
You can set automatic rules to organize your mails, (with special
attention to junk-mail), set reminders that certain messages require
further action and so on. All of this can be very helpful, especially if
you have to cope with a huge number of messages.
Still, as always with mighty Microsoft, there are inconveniences and
inconsistences. Some examples:
- The first is related to the fact that most of the commands of Outlook
are context sensitive. This is quite natural for such a big program:
you do not expect to use the "reply to a mail" command when you are
looking at your calendar. However, the devil is in details and I often
find that commands I would really need are not available in certain cases
(while others I do not need are there). For instance, it is sometimes
inevitable that you resend one of your older messages,
because it has been lost on the way or because the recipient has carelessly
deleted it. No problem, you can do it, but in a somewhat awkward way:
you cannot resend your message from a folder view (there are two basic
types of windows in Outlook: in the first one you view a folder containing
many items, in the second one you view one
particular item) you have to open a special window to view the original
message and only from that window can you command Outlook to resend
this message. Why can't you just select the message in the folder view and
resend it from there? It is a mystery to me, especially, since some related
actions like "reply" or "forward" are available from the folder
view...
- One important service for such a big and complex program is the
possibility to customize its user interface. People are different and
they have different preferences. It is really nice that you can for
instance define your own toolbars: in principle, they give you the
possibility to put the commands you think are important just a
click away. In principle, I say. The practice is not so bright. (To begin
with, the way you can define your own toolbar is rather primitive: I
wonder why do you have to insert all commands individually into your new
toolbar, why can't you begin with "copying and pasting" one of the
predefined toolbars?) The problem is that you cannot make your toolbars
really context sensitive. What would be ideal is to define specialized
toolbars: one for mail folders, one for the calendar, one for the task
folder and so on. Well, you can do this, that's great! But unfortunately
you can't tell Outlook to automatically display your right toolbar with
the right folder or item: a toolbar is either displayed all the time
or not displayed at all. You can of course manually switch them on and off
each time you change the view but that kills the whole thing.
- Adding new addresses to the Personal Address Book is totally manual.
If you want to create a new entry, you have to type the name of the
person and his/her address (Stone Age indeed!) even if you want to add
a person, who has just sent a message to you and Outlook could easily gain
the information from the message and do you the favour. Obviously, the
reason for this primitive behaviour is that the Personal Address Book is
maintained by the mail server Microsoft Exchange, not by Outlook itself;
but this is not an excuse, since Microsoft proudly claims that these two
programs are integrated. It seems that I have too high expectations from
"integrated" programs...
- Talking about addresses: I am not intelligent enough to understand why
are there two kinds of ways to store addresses of our personal contacts.
One is the Contacts folder, where you can put all (or at least many)
kinds of information about a particular person and the other is the
aforementioned Personal Address Book where you store only email
addresses. Contacts is capable of much more; the only real benefit from the
Personal Address Book is that it can store Distribution Lists,
like Colleagues, Friends or Basketball Teammates.
So, my current practice is to use the Contacts for storing all my individual
contacts and the Personal Address Book only for distribution lists. Even in
this case, however, you must be cautious: if a certain person's email address
changes, it is not enough to update this addres in Contacts: you also have to
check if he/she is included in any of the Distribution Lists and update the
entry manually, since Outlook (very smart, indeed!) maintains a copy of the
address in the Distribution List instead of a pointer to the original address
in Contacts.
These are minor problems, you say? That is true but there are many of
similar illogical constraints (I find new ones almost every day!) and they
make the program hard to use and leave a bad impression. At least in me.
|