Some not-quite-random observations that hopefully injects some
moderation:
- There are a number of good arguments for using C over C++, not the
least of which is that it is dead simple to implement very efficient C
bindings into much friendlier languages that hide the fact that it is
still mostly C. There are a lot more problems doing this in C++ than
C. If you are doing a project end-to-end in one language though, C++
manages the complexity better than C (though I would observe that some
very large yet very tidy and understandable code bases are in C e.g.
PostgreSQL). In the big picture, this becomes a detail depending on
relatively unimportant design choices.
- At every technical conference on a variety of non-platform-specific
topics I have been to in the last year that was full of people that
actually work on code, I and many others have noticed that at least
half the people attending were using MacOS laptops. This is very
strongly correlated with Unix-based server back-ends, usually Linux
out in the real world these days. The great thing about MacOS X as a
developer is that it is Unix, and so there is a good impedance match
between the developer desktop and the production cluster. Using a .NET
technology for anything is tacitly excluding a huge swath of talent
and a significant portion of the developer market. This is
particularly true if we are talking about server-like or engine-like
code, in which .NET is very much a minority player.
- Selecting any narrow platform technology (like .NET or Objective-C)
only really makes sense if there is no intention of widely
disseminating or collaborating with the code. Having nicer libraries
or syntactic sugar does not do a hell of a lot of good if you cannot
find enough competent developers to make that feature provide return
on the investment -- killer libraries and environment save time, not
developer talent. This has been often cited as a key failure of the
Ruby community that has caused many projects to move away from it:
lots of hype and interest but there is a dearth of top-quality
developers that actually choose to work with it, making complex
projects effectively non-viable for lack of appropriate talent.
I honestly do not give a crap about the subject being argued, but if
the goal is to have decent environment support *and* cast the widest
possible with respect to developer talent, the obvious choice is
actually Java. This coming from someone who does not even like Java
and thinks .NET is a better designed environment; the differences
between environments is noise in the big picture, but the differences
in the breadth and depth of developer talent is not. If the object of
this project is *not* to engage the maximum amount of developer talent
then the point is moot and it is hard to figure out why it is being
argued at all.
In short, if it is a closed shop project not meant for wide
dissemination, then the benefits of .NET significantly outweigh the
benefits of C/C++ (unless performance is paramount) and is a
defensible choice. If it is intended to be an open source project that
maximizes participation, I cannot imagine why anyone would choose .NET
over Java or even C unless they were deluded about the distribution of
developer talent on the wild and wooly Internet.
The right tool for the job, and all that.
Cheers,
J. Andrew Rogers
-------------------------------------------
agi
Archives: http://www.listbox.com/member/archive/303/=now
RSS Feed: http://www.listbox.com/member/archive/rss/303/
Modify Your Subscription:
http://www.listbox.com/member/?member_id=8660244&id_secret=103754539-40ed26
Powered by Listbox: http://www.listbox.com