Linked by Roberto J. Dohnert on Wed 28th Jul 2004 17:23 UTC
General Development Most of us that work in the IT industry have been around for a long time. We started out in our parents basement writing code in some BASIC environment, ussually Commodore BASIC or QBASIC. Do you remember how thrilling it was? Your first program and it was something extremely basic but the point was it worked. Some of us got hooked right away and kept trying to solve problems and added more and more pushing the capabilities of whatever language we used. As we got older the environments progressed and the programming tools progressed and got more complicated.
Permalink for comment
To read all comments associated with this story, please click here.
Refactoring should be the rule
by ralfoide on Wed 28th Jul 2004 21:23 UTC

There are interesting comments above. Sure C++ is complex. Someone can start learning C++ with its hairy syntax and only start learning the complex stuff after a while. A beginner would be best limiting him/herself to a subset of the language.

From a beginner point of view, it would be better to start with a more high-level language though or even scripting language. This way the beginner can start focusing on programming algorithm rather than loosing despair with the complicated syntax and convoluted idiosyncrasies of C++.
Ideally a beginner should look away from C++ first, anyway, unless the idea is to be able to get a job asap. Some programming concepts can be grabbed more easily by looking at Smalltalk, Lisp or ML/Haskell in the first place and then eventually going back to C++ via Java or C#.

To focus back to the article and the review of the different environments available, the one major difference is how much the editor is going to actually help the beginner.

For example the Java part of Eclipse has native support for refactorisation -- this is a major help imho, even for a professional programmer. Most editors, including VS.Net, don't go far enough. Sure Visual or XCode gave auto-completion, for example, but that's not enough. Current tools could go farther:
- automatic generation of doxygen-like documentation with graphical representation of class hierarchies and graphical representation of dependencies between classes.
- refactorization tools: renaming, extracting, reorganizing, etc.
Eclipse's JDK is also neat in that it allows one to create new classes or methods by a right click on an unknown identifier, and of course the default templates can be customized. Any thing that helps reduces the actual syntax-related typing and focus on the actual implementation is good to have.