The whole today morning I was thinking about switching from C++ to something like Java or C#. The reasons for these thoughts were very simple.
Actually, I'm using C++ for two kinds of projects: internal purpose and standalone applications. The custom software development is done using both C# and Java (depends on the situation).
We had written a lot's of beautiful test-driven code last several weeks. It was very new project, started from the scratch, and it has been moving very fast and smooth. And the biggest reason of it are the great tools for C#.
The most important of them is code analysis and refactoring support. Both Java and C# has great tools for that produced by JetBrains: [?:http://www.jetbrains.com/idea/ IDEA] and [?:http://www.jetbrains.com/resharper/ Resharper]. Both take boring coding things away from developer, and sometimes even write required code automatically. It helps moving faster, without interrupting the flow.
I have discovered, that the only competitor for C++ is [?:http://wholetomato.com/ Visual Assist]. And it's not so feature rich. The C++ language is much more complex than that "simplified" managed languages, so it's hard for computer programs to analyze and help the developer. Only few refactoring and helper features are available. But at least they do exists.
Keeping all that in mind I have decided to code in C++ a little, implementing very small and simple test. I have found myself coding after 30 minutes, and it turned out that lack of "auto-coding" doesn't break my flow. And after I have tweaked some autotext macros a little, my speed has been increased. Yes, some things (such as namespaces) looks weird in the .cpp sources, but I can mask this problem with some tricks, like other things are masked in C# or Java. What I can't understand is how to be happy without multiple inheritance, strict control over object destruction or full-size templates support.
I have to admit that living without Visual Assist would be much harder. At the same time something tells me that it'll still be possible.
Doesn't the importance of the helper tools exaggerated?
Comments
tools for C++ development
Good point. I share the same feelings with you. Tools for C++ should
be much better and complexity of the language shouldn't be a stopper
as there are so many compilers and they HAVE TO understand the whole
language. On their basis there could be written many good tools for
C++. Why it isn't so is a mistery for me.