Re: Dumbed-down
ThosRTanner wrote:
James Kanze wrote:
ThosRTanner wrote:
> James Kanze wrote:
>> ThosRTanner wrote:
>> > Mind you C++ with an IDE is also a much better
>> > language than C++ with an editor.
>> And what is C++ with an IDE other than C++ with a
>> particular editor imposed on you? If that editor
>> happens to be better than the one you would otherwise
>> use, it's an improvement. If not, it's anything but an
>> improvement.
> My experience with IDEs is that they provide
> a) "Integrated" compilation which takes you to the point of an error on
> compilation
That's a feature of the editor. All of the editors I'm
aware of have it.
I use nedit, and I haven't worked out how to make it do that
yet. Therefore I don't think it's true to say that all
editors have that feature.
I said all of the editors I'm aware of. And I should have said
all of the *modern* editors I'm aware of; ed didn't have it.
(But I haven't used ed, outside of scripts, for around 20
years.) It's a feature of the editor; if your editor doesn't
have it, and it is an important feature, change the editor.
However, I know that all IDE's do.
All of the editors in IDE's do seem to have it. But I don't see
the advantage the IDE brings compared to the editor alone.
PS I hate emacs and vim.
So find another one. I don't care for emacs that much myself;
I've got vi in my fingers. (Personally, I don't like the editor
in Visual Studios. But that could easily be because I don't
know it that well. To the point that I don't even know how to
do the most fundamental things with it: piping a block of
text/code through an external program, for example, or doing a
global search and replace.)
> b) Code completion so that
> i) when you are using an object of a particular class, you can select
> an available method or member of the class
That's also a feature of the editor.
It's always a feature of (the editor in) an IDE. Not always of
an editor.
Some editors have the feature, some don't. If a particular
feature is important to you, obviously, then that becomes part
of your criteria for choosing an editor.
A good IDE, of course, will let you choose your editor. A good
editor will have hooks so that it can be integrated into an IDE.
The choice of an editor should be independant of whether you are
using an IDE or not.
All of the editors I'm aware of have an automatic completion
feature. On the other hand, they generally don't understand
C++ grammar and scoping rules, so the completion set is all
visible symbols, and not just the symbols which would be
legal in a C++ program at this point.
I don't think that's much help. Certainly in our ghastly
software, where nearly every conceivable combination of
characters is accessible from the global namespace...
It helps, but admittedly because of the heuristics used to
search for the completion, which favors 1) nearby symbols, 2)
symbols in the same file, and 3) symbols in recently visited
files. It's not perfect, and after std::vector<X>::i,
completion will probably give you if, and not iterator, which is
obviously a better choice. But I've not found the difference to
be significant.
I'm still up in the air with regards to the advantages of
this. It's certainly a plus that, having typed std::v,
completion finds vector, and nothing else. For user defined
symbols, on the other hand, it's less clear; it's certainly
not rare for me to conceptually add a member variable to a
class because I need it, and to start using it in the
functions, before I've actually edited the class definition
to include it.
Umm. I'd edit the class first in that case - if only because I
know I'll get compilation errors if I don't edit it because
I'll forget otherwise. Anyway, in a decent editor, it'd just
mean you had to type it out in full till you've provided a
definition (again, in an IDE I'd expect something like 'create
declaration for xxxx in class/on stack/' options to appear
fairly quickly)
It's probably possible to add such functionality to vim; it's
certainly possible to add it to emacs. My point is that it is
functionality of the editor which is embedded in the IDE, not of
the fact you are using an IDE. Now, you may prefer the editors
present in your IDE. That's a different question---if I had to
choose between vim in an IDE and emacs outside, for example, I'd
use the IDE. But the difference isn't IDE vs. no IDE; the
difference is between two editors. The IDE as such brings me
nothing.
> ii) syntax validation (or syntax deduction) when typing
> the code.
Again, most editors have this to some degree, e.g. matching
braces, automatic indentation, etc.
That's not so much help, except when typing in, and the
automatic indentation works the way I like to indent code
(almost invariably never). I sort of meant like some
editors/IDEs do, like on typing if<space> they work out you
are likely to then type (, ) ( and } in short order, so do it
for you and let you fill the spaces in.
I'd have to see it to see whether I liked it. I did use a
package for emacs once which did something similar, for Java.
It wasn't that bad, but it didn't bring enough to make me prefer
emacs over vim.
> c) Easier source modification when debugging
I'll admit that I don't get this one. How does the editor play
a role here?
As in when using the IDE to step through source code
(debugging existing code, rather than debugging from core file
- though really I'd hope an IDE /could/ debug from a core
file). It's the debug, look at variables, find line in error,
change line, rebuild code, substitute new code in executable
and carry on debugging from where you were.
That's more complicated. I'll admit that I rarely if ever step
through code; I can't see the point of it. (But there are
exceptions, particularly when trying to debug someone else's
code.) That is the sort of thing I understand by an IDE: the
editor's involved, but so are the compiler, the linker, the
debugger, and perhaps other tools. All "integrated". I'm
sceptical of this sort of development, however.
OK, that can be tricky, but I've seen it done from time to
time with varying levels of success. But ONLY in IDEs - never
in editors, or debuggers.
Because, of course, it does require recompiling the code (which
the editor can't do, at least not directly), relinking it, and
getting the debugger to use the new version when it continues.
The Sun IDE supports it, but I've never used it.
[...]
But that's what I said to begin with: the choice is the
editor. If the IDE provides a better editor, it is a win.
If it doesn't, it isn't (and I can't be bothered with the
Unix IDE's which use vim or emacs as their editor---I don't
see any advantage in them compared to using vim or emacs
directly).
Well, I think the development environment isn't just the editor.
Certainly not. You need awk and sed:-). (Seriously, of course,
you need a compiler/linker. In addition, tools like Rational
Rose are invaluable, and definitly some sort of source code
control. But a good scripting language is essential as well.)
Given a development environment with a reasonable
editor/debugger with reasonable integration between editor and
source code, or good editor/reasonable debugger/no
integration, I'd probably go for the integrated environment.
However if it had an editor I couldn't work with even if I was
paid the same as a footballer, then I'd think differently. As
I hate emacs / vim, I guess my perspective might be a little
different to yours ;-)
I presume that emacs and vim are not the only powerful editors
around:-). Personally, you're the first person I've heard from
who hates both; the philosophies are so different that if you
hate one, you usually like the other. Emacs can be customized
to more or less resemble any other editor. (But it's not the
same thing.)
[...]
Unless you're such a good typist that you never make
mistakes. And I don't think that anyone is that good.
When I worked in a printing firm, their compositors were
required to achieve 99.9% accuracy. That works out at about 1
typo per page of book I think. Secretarial courses only
required 95%. I don't think I achieve even that at first hit.
At first hit:-). The difference is that we are required to
achieve 100% accuracy. Since even the best can't do it at first
hit, all of our tools allow for corrections. (There's also the
question of time. You probably could achieve close to 100%
accuracy... at a rate of one character every 5 seconds. There's
such a thing as typing too fast; if correcting the additional
errors takes more time than you gained by typing faster, it's a
net loss.)
--
James Kanze GABI Software
Conseils en informatique orient9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S9mard, 78210 St.-Cyr-l'cole, France, +33 (0)1 30 23 00 34
---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std-c++@ncar.ucar.edu ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]