I support any attempt to share relevant knowledge with a big enough community and, consequently, any form of open software. Additionally to these generic open-is-good ideas, the fact that most of the code is precisely written in .NET (C# & VB.NET) is a further motivation for me: full access to the pure essence of my favourite programming languages which is precisely written in such languages!
The code in CoreCLR (and also in the other repositories described in the first section
) is huge, but also well-structured/-commented; an experienced enough programmer can start messing around with it right away. The compilation process is not simple and its outputs are not precisely excellent, as explained in other parts of this project (e.g., CoreRun.exe
). The distribution among different languages (managed/unmanaged C# & C++; and also VB.NET in other repositories) is not as systematic as it should ideally be. On the other hand, this is a quite logical output for a so big project where relevant code migrations have occurred; additionally, experienced programmers shouldn't have problems when dealing with more-or-less-generic algorithms (i.e., not heavily relying on the specific features of the given programming environment) in properly-working codes almost independently upon the used language. The high quality of almost each bit of code in CoreCLR is also somehow relevant here; for example: the fact of having worked on a virtually-perfect piece of software (+ my I-have-to-get-something-good-here motivation) explains the highly-optimised output of this project (i.e., modified version of
), not too likely to be created under different conditions even by someone like me who is always keen on writing efficient codes.
Regarding the contribution process, I am still not in a position to have a worthy opinion on this front (after having completed this project and pulled the modified version of
, I will update this part with my impressions). I had already a first interaction with the .NET community which didn't like too much (as already explained
), although I take this kind-of-weird episode as a good lesson learned. In fact, I don't even have a bad opinion about the .NET community, just a better-than-just-merely-intuitive understanding of it. Lastly, I am still not sure about what to think regarding the .NET team attitude, although everything looks nice so far (will also update this part after the future forking-pulling-waiting process will be over).
In summary, I have got a very good first impression (+ a somehow-problematic episode which helped me understand better the "local peculiarities") and am certainly looking forward to contributing to this project in a relevant way.
I have had quite a few other interactions with the .NET team/community in CoreCLR/CoreFX/Roslyn and my overall impression is quite positive. There are many people from different backgrounds and with different expectations, but most of the discussions are meaningful and the contributions relevant.
The .NET team behaviour is certainly remarkable: quick and reasonable responses for virtually any situation. Some important decisions (e.g., non-trivial PR acceptance) are associated with quite long waiting times; on the other hand, this fact seems more or less logical and even likely to be somehow corrected within the medium term.