ObfusCo
>
The List
>
vc
Visual Cafe Blog
I've been trying to avoid starting up this list because I felt like
maybe it would take up too much time. But I am going batty with this
thing, and I've got to blow off steam somehow.
We've used Visual Cafe 4 Expert Edition (4.0a, on a Dell
Win2k machine). It has supposedly won all sorts of awards. I've used
it for Java development for several years now, through versions 2, 3 and
4. Some of the bugs listed below have existed for as long as I've used the
system. Why nobody decided to fix them, I'll never understand. I
guess they were too busy writing new bugs.
Raoul is responsible for this list.
Send additional notes his way.
- 42) [Submitted] When I compile a Java app to an exe and run it, the
memory usage keeps increasing in leaps and bounds and never goes down,
even if I force it to run the GC. If I run the app as class files, mem
usage does not behave as described above. (The app has lots of JDBC stuff
going on.)
- 41) It needs to take a page from the design of IBMs VisualAge for
Java which maintains a list of compile errors sperate from
the whole compile output. That way, when you fix a single file
and build just it, you can still go back to your list of errors
without having to rebuild everything just to get those messages
back. Sheesh.
- 40) Why can't I do a Find and Replace across more than one file?
- 39) Maybe I've already mentioned this, but it really needs to
be said again (since I really want to put my fist through the
screen right about now): if you do a search for a string in
many files, the results are put into the Messages windown.
Quite often, when you go to click on an entry in the window,
right after your first click for some reason Cafe decides to
jump scroll it in some way. So when your second click of the
double click to open the file you were looking for happens,
it is on some totally other file. So you don't get the one
you wanted.
- 38) Okay, and then it apparently isn't updating files on
disk or something (maybe it is Win2Ks fault) because I
change something, save and close the file, and run the
Find in Files again... and get the same files! I open
them up, and the thing I'm searching for isn't in there
(which is right). So what the hell are they doing showing
up in the search results?
- 37) It can treat tabs as just a bunch of spaces. I've explicitly
not set that option, so I would hope it would actually insert
a tab when I hit the tab key. But, no, it still inserts spaces.
- 36) It doesn't have an option to warn you about empty ifs i.e.:
if( true );
- 35) I haven't figured out any way to tell the debugger to break as soon as
a particular type of exception is generated. That would be really useful,
since some exceptions aren't going to be caught except at the outermost
layer (e.g.: null pointers).
- 34) When you copy text using Alt-drag, when you paste it in it overwrites
whatever is beneath it, rather than inserting whole lines. So you have to
insert a bunch of blank lines first. Maybe that is standard windows UI,
dunno, but it sorta sucks nevertheless for my purposes.
The right hand menu that lists the methods in a file gets chopped
off, so you don't have a scroll bar, if the window isn't wide enough.
Super retarded because there is actually enough room for the menu, it
only has to be moved a little to the left (dynamically based on the
size of the window, of course).
- 33) I can't resize the Open dialog?!
- 32) If you have multiple windows open, and you are looking in one
and then you double-click in the Project view to bring up a
class which you already have open, it brings that file
up but puts the cursor back at the start of the file, rather than
where it was before. If you use the Window menu instead, your
cursor is in the right place, but that takes longer and is more
of a pain. Suck ass.
- 31) Ctrl-Tab is like Alt-Tab in Windows, but it doesn't switch
between two things, it moves through the list. Which is how you
probably
expect everything to work, but it actually kinda sucks.
- 30) Oh, sure, it has undo, but it has no redo. Bastards.
- 29)
I tell the project to Parse All, so that it has all the files listed.
(Why some files which are explicitly in the project aren't shown in
the class view to begin with is yet another issue.) I save the project.
The next day, when I go back to that project, the files are once again
missing. What a piece of crap.
- 28) You cannot select multiple files to open in the Open File
dialog box. Totally brilliant. (Hey, it's only version 4!)
It is especially nice since the Windows implementation of the
dialog doesn't remember the way you had it set up last time;
if you selected the Details view, that isn't what you get the
next time you use it. Man, I hate everybody.
- 27) So I'm trying to do some XML stuff. I'm using
Xerces. Cafe doesn't let me run the stuff under the debugger. (I can
run it outside of the debugger okay.) It is exploding when looking for
some class from the Xerces jar. Piece of crap.
- 26) This is a real kicker: there is stuff in the Environment Options
that should be in the Project Options. For example, the command
line parameters passed to the main class are not kept per project!
Argh! Furthermore (have I already mentioned this?) if you
change an Environment Option, it is changed for good, even if you
then hit Cancel rather than OK to dismiss the dialog box! What's
the goddamned point of even having the Cancel button?
- 25) If you are trying to double-click to select a word, and that word
goes off the edge of the window then when you do your clicking the
window shifts over, presumably to show what was selected. Unfortunately,
it interferes with the selection process, and rather than the word
being selected, the entire rest of the line is selected.
- 24) Well, today when I try to run it, if I use the "Windows / Close All"
menu command, the program locks up. Guaranteed.
- 23) There is a mode for viewing the JavaDocs in a file. It doesn't let you
switch to other classes, you can only view the class you just had open. It
also doesn't let you edit the documentation. Nigh useless.
The real kicker is that it doesn't even show the docs as HTML, so you
see things like <b> instead of seeing the text in bold.
- 22) The output window resets its scrollable view when things get
added to it. So if you have a bunch of long messages coming out
while you are stepping in the debugger, you have to keep scrolling
over to see the end of them. I'd at least want an option to make
it just leave the view where it is horizontally, and also one
for vertically.
- 21) It should automatically resize the columns in the Variables
debug display window based on the width of the data, so if the
names are short then you see more of the value and you don't
have to futz with it by hand to get that. (Maybe you'd have
to double click on the column border, that would be good.)
- 20) It's really great that the debugger causes the whole IDE to lock up.
It can happen as much as like 75% of the time on bad days.
- 19) When adding a file to version control, why isn't the focus
on the comment field to begin with?
- 18) Hitting Escape doesn't do a 'Cancel' in at least some dialog boxes.
Let me repeat that in case you find it as mind-blowingly stupid and
therefore unbelievable as myself: hitting escape doesn't do a 'Cancel'
in at least some dialog boxes. In particular, if you have a version
control locked file and you try to edit it, the dialog which comes up
asking you if you want to check it out won't respond to the Esc key.
- 17) They split bars are all screwed. Sometimes, you drag the split
bar to a certain place, and then when you let go it doesn't actually
snap to that location. Instead, it moves a little bit towards
that location, but doesn't actually go there. As if it didn't really
want to let you resize that area. It at least definitely afflicts the
Breakpoints window, seemingly wherever you dock it.
- 16) I don't see a way to tell it to reload a file to see the changes made
by other apps. You have to close and then open it again. Whatever.
- 15) It's a huge pain in the butt to change what the Project executes, and
then be able to go back to a previous setting because there is no history
kept by the IDE. Which is obviously something you'd maybe want to do a lot
when testing.
- 14) It's just so great that Undo often crashes the app.
- 13) Alt+F3 means compile the current file. Apparently, Alt+F4 means
exit the entire application. Even more mind boggling, the menus
only list Ctrl+F4 as any sort of Close or Exit. No Alt+F4.
- 12) I haven't seen how to change the internal compiler beyond using Sun's.
So I cannot use GJ.
- 11) Why isn't there an option to always have file windows maximized? Every
time I start from having no file windows open, I have to explicitly hit
the maximize button on the first one I open.
- 10) Why can't I decide which N windows I want tiled, rather than being
forced to have all of them tiled? I tend to want to have 2 windows tiled
so I can easily switch between them, so I can copy code out, or write new
code that references the other stuff. Emacs sure let's me do it
easily.
- 9) Why doesn't Rebuild All actually delete
the old class files every time? Instead, it seems to leave
old class files around, or sometimes screw up on dependencies
and not rebuild things that should be. The only way to be
sure is to actually physically go and delete the files
yourself, invalidating the whole point of the command.
- 8) Why does Indent and Unindent
- Crash the app? I'm taking like 80% of the time.
- Delete the first line of the region? Or whole chunks
of the code that's not even in the selection? Or do something
else pretty random to the text, that has nothing to do with
what it should actually be doing? That's like 15% of the time.
- When it 'works', it doesn't even actually format the code
according to where it is, but only inserts/removes one tab!
What is so hard about having a real autoformat ability here?
- Not work the first time, but (if it doesn't crash the app)
then if you undo and do the command again, then it
works. I mean, what the hell state has changed to make it
work all of a sudden?
- 7) Why doesn't Save All actually save everything? I use it
just before I'm going to try to indent/unindent, and then of course
most of the time I have to start up Cafe again, and the project
wasn't updated. Files that I had closed are open, etc.
- 6) The Keyboard bindings display is just crap. It completely screws up
the redraw when I edit anything. E.g.: adding a binding causes a jerky
list redraw such that the new item is the first thing off the top
of the scrollable area. So, in other words, you do not get any positive
feedback that it worked, since you can't see it.
- 5) The command to add / remove files from the project should be
on the Project menu, duh, not the Insert one. (I mean, who on
earth ever heard of an Insert menu in the first place? Dumb name.)
Furthermore, you should be able to remove files from the project in the
File tab view in the Project window. And then the listing of the files in
the insert/remove files dialog is crap because it sorts alphabetically,
not by directory structure. Basically, the whole interface for managing
the project sucks a donkey's hairy butt.
- 4) The Search/Replace functionality sucks. Like, it doesn't even remember
the field values between use. So I open one file, do a Search/Replace for
something like "Foo"/"" to get rid of all Foos, and then when I close that
file and open another to do Search/Replace, now the "" has turned into
something else! I guess it prefers not to have that field blank, which is
stupid because blank is a completely valid and useful value.
- 3) It's idea of what a word is is just plain wrong. So if you have
something like public void foo( Bar bar ), and the cursor is set
just before the foo, and you go forward one word, it ends up at the start
of Bar. It should, like emacs, actually end up at the end of foo, before
the parenthases.
- 2) The Messages window has a horizontal scroll bar. However, it always
starts out at the absolute minimum width. Which means you cannot actually
use the thumbscroll area, you can only use the arrows. You can,
fortunately, resize it so that the scroll bar takes up more room (it's
sharing space with the Debug / Build / Find tabs) but of course the system
doesn't remember the resizing for the next time you run the
application. I mean, what's the point in having the scroll bar if it
doesn't start out in a useful state?
- 1) It might be my keyboard remapper utility interacting with VC, or it
might just be VC outright sucking all on it's own, but pretty often I type
too fast for it to keep up, and my keystrokes get interpreted incorrectly.
So, I do ^X^S (yes, I have the lame pseudo-emacs keybindings on) and then
Tab, to indent the next line, and instead it thinks I hit Ctrl-Tab, which
means switch window. Also, sometimes the mouse state gets all screwy so
that double clicking on a class in the Project window doesn't bring up the
file, it just expands the hierarchy at that point.