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

Reply via email to