|
|
scott wrote:
> BTW this is with VS C# express edition (it's free), your experience with
> other IDEs may vary :-)
Well, maybe they've fixed it since I used VS J++ a few years ago. Who knows?
(Some to think of it, I don't recall VS attempting to do any
autocomplete when I did that C++ stuff last year... Maybe it did and I
just don't remember. Hmm.)
>> After the horror of building a GUI the hard way, I always use a GUI
>> designer if I have a choice. (Like I've said, you don't need an IDE
>> for that necessarily.)
>
> It's helpful that it's integrated though, apart from the obvious reasons
> of not having to load and switch programs and save etc, it means if you
> for example rename one of the icons or something it can update the
> references to it in all your other code files.
Now that actually sounds useful.
> Also when you add an
> event handler the IDE can automatically auto-insert the method skeleton
> into your code and register it to be called for that event, so all you
> need to type is actually what you want to be done for that event.
As does that, assuming it does it properly. (IME, VS usually prefers to
have all autogenerated code perform its function in the most
over-complicated way feasible.)
>>> 4) The red underlining of compiler errors as you're typing (in MS C#
>>> IDE)
>>
>> That's useful IF IT WORKS CORRECTLY, which it doesn't always do IME.
>
> Which IDE? in VS C# Express it works flawlessly IME.
Maybe the parsing rules for C# are simpler than Java or something? Or
maybe they've just ironed out the bugs now... As I recall, it *usually*
worked OK, but not always.
>>> 6) "Template" projects for a Windows app
>>
>> What does that do?
>
> You can go "File -> New -> Windows App" and it generates all the
> necessary code and resource files for a ready-to-compile form
> application. You then simply add in whatever extra bits you need. I
> guess you could do the same by creating all the files by hand first, and
> then copying&pasting in explorer and renaming everything everytime you
> wanted to start a new project.
I think this is perhaps part of the reason for the "you only need an IDE
if your language sucks" argument.
When you say it "generates all the necessary code and resource files",
what do you mean exactly? How much stuff do you need to make a form
application that opens one blank form? I would have thought you only
need to write a handful of lines of code - in which case, having it
autogenerated isn't saving you much effort.
In Haskell, I can fire up Glade, paint my UI, save it, and then write
maybe 6 lines of code in Haskell, hit compile, and I've got a GUI
application.
(Unfortunately if you want the application to *do* something, you start
having to write boilerplate code. For each button, you write one line of
code that says what function to run if somebody clicks it. That's pretty
much as minimal as boilerplate can *get*, but it's still tedious for a
complex UI.)
In something like Java, you end up writing miles and miles of
housekeeping boilerplate code just to get the thing to work. And that's
probably why people see an IDE as "necessary" when writing Java code.
The language itself is so unhelpful that you need an IDE to make the
task tractable.
I'm not saying IDEs are unecessary. I'm saying this is probably where
the "only pathetic languages need an IDE" argument comes from.
> I remembered another one:
>
> 7) Code refactoring.
Now that does sound potentially useful.
> Like if a function is getting a bit long, you can
> select a block of code and say "extract this to another function". All
> parameters and return values will be handled automatically.
So, what, it passes everything in scope as parameters? Or just
everything referenced?
> Or if you
> type a function name that doesn't exist yet, you can click and say
> "generate the boilerplate code for this function".
What's to generate? I'm presuming it just makes a one-line function
stub... unless you mean it does something more complex than that?
> Or you can go to
> "Insert -> New Class" and it will create a new file with the new class
> template in it.
Again, shouldn't an empty class be trivial to write in the first place?
> Or rename a variable and get the option to rename all
> instances of it in all files.
OK, now does it blindly rename it *everywhere*? Like just a find &
replace? Or does it actually apply scoping rules so that it knows it's
renaming "the same" variable throughout?
Smalltalk VisualWorks had a feature to rename a method, but
unfortunately it was a blind find & replace. If you wrote a class and
discovered that one of your method names as the same as some other
random class and you wanted to make it different, *all* the method calls
would get renamed. (Then again, Smalltalk doesn't have static class
information, so it's hard to do any better than that. Something
statically typed should be able to do this right.)
> Sure, each of the above are fairly small things, but in total it makes
> programming way faster.
I can see how that might work...
It's also quite nice having the property pane that tells you what's in
your source file at a glance. (Especially if you're working with
something like JavaDoc that forces you to put unrelated junk in amoungst
the working code.)
Post a reply to this message
|
|