I've been the creator of a small handful of little OSS projects in the past, and although in no case did I necessarily intend to recruit anyone else to join me on the project, I still wondered whether it was "bad form" to use a more recent technology, for example leveraging features from a recent release of the framework/language used (where I didn't need to, but it just made things a bit quicker), thereby potentially making the project harder to work on for some developers.
As a trivial example, suppose I were to write some code for a .NET project that utilized the Enumerable.Range
method (requires .NET 3.5); a developer working on Visual Studio 2005 with only .NET 2.0 installed would have to convert it to a for
loop (or write his/her own Range
-like method) just to get the code to compile. Granted, maybe most .NET developers are using at least version 3.5 by now; but that's just an example.
Anyway, is it good/bad etiquette to try to steer clear of newer features when working on projects that others might want to get involved in, where the version of a framework, IDE, or even the programming language itself, may vary among developers? Or is the prevailing attitude that it doesn't really matter? I'm particularly interested in hearing from those who have been in this scenario (working on an OSS project with others who work in different environments) ... OR who have enough experience to be able to tell me, "This scenario doesn't really happen."