POV-Ray : Newsgroups : povray.off-topic : What's in an IDE? : Re: What's in an IDE? Server Time
4 Sep 2024 17:21:08 EDT (-0400)
  Re: What's in an IDE?  
From: Invisible
Date: 1 Mar 2010 05:29:06
Message: <4b8b96f2$1@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.