开发者

Is increased programming efficiency in Java or C# a myth? [closed]

As it currently stands, this question is not a good fit for our Q开发者_Python百科&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 12 years ago.

A big advantage of Java or C# in increasing productivity of development is that you're supposed to lose less time with complicated language features, especially those related to memory management. But is it just an impression?

I think that the learning curve for C++ is definitely more steep, but for a proficient C++ programmer, and given a set of coding standards for C++, isn't the difference between Java and C++ fading away?


for a proficient C++ programmer

This is the problem. In my experience, most programmers are NOT proficient. Java allows mindless assembly line workers to be productive in a way that C++ does not.

Proficient developers will be productive no matter what language they write with.


Higher level languages mean you have to do (and worry about) less crud which definitely does speed up development time for some applications (GUIs, web apps etc.). If you're writing lower level stuff though like device drivers I've found I waste as much time trying to go into and out of managed / unmanaged code (in the case of C++ / CLI) as I would probably have saved.

If anything, I would suggest higher level languages like C# and Java are becoming better for stuff which was traditionally only the realm of C++ as more and more libraries and wrappers for low-level control are written, developed and optomised.

So my advice; if you're doing higher level development, use a higher level language. If you need more control, use a lower level language (or find a high level one with some nice wrappers for your low-level tasks).


In my opinion no. Java and C# are simpler and safer and therefore faster to write. Of course if a C++ programmer has a certain level of skill, it is possible that there is no difference. But I think that's one of the reasons Java and C# can offer better productivity overall. You don't have to be a especially skilled programmer to be productive. And there are a lot more average programmers around than skilled ones.


Wouldn't that logic apply to any language? I think idea (whether true or not) is that the time from novice to proficient is less on average with Java or C# than with C++.

Also, I would tend to agree, on the surface. However, there are so many details on both sides of the debate that I promise you it won't be settled via a SO thread.


Well, of course, but exactly that learning curve is the heart of the discussion.

The discussion is not about comparing two proficient developers, one in C++ and one in Java. Given that situation, a C++ developer has much less boilerplate to write, and might be even more productive.

When referring to managed platforms such as Java and .NET, it is very clear that a novice programmer can much more easily dive into things, and produce a working application in less time than it would take in C++.

Keep in mind that most of the programmers in the world are not proficient ones. They most likely are under-educated, have not gone through significant training, and have a deadline to meet.

Given that scenario - would you choose to hire 5 novice C++ programmers, or 5 Java/C# programmers - to get the job done?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜