Recentemente, a Microsoft liberou o código fonte do .NET Framework. Neste artigo vou mostrar algumas pérolas e preciosidades que encontrei nos arquivos com código fonte após uma análise simples.
Desde que lancei o meu curso de Introdução à Programação, tenho estudado e escrito muito sobre vários aspectos relacionados à programação, design e codificação. Quando vi a notícia que a Microsoft liberou o código fonte do .NET Framework logo tive a ideia de fazer uma pequena análise e ver o que podia descobrir de interessante.
Neste artigo, eu mostro uma análise simples de todos os arquivos .CS (de C#) encontrados no GitHub do .NET Reference Source. Logo no começo pude notar que foi difícil encontrar palavras de baixo calão, palavrões e outros xingamentos, o pode significar que: a) alguém fez um serviço de limpeza antes de liberar o código fonte; ou b) os desenvolvedores realmente não quiseram se expressar desta maneira.
Contudo, ainda assim descobri algumas pérolas e curiosidades quando foi analisar os comentários, pois este é o local onde é mais provável encontrar certas, digamos assim, expressões incomuns (sem contar que, como vocês devem saber, na internet the zuera neves ends). É importante destacar que mesmo com estas pérolas, pouco se pode afirmar sobre a qualidade ou outros atributos tanto do código fonte, como do .NET Framework em si. Bem, vamos aos textos mais curiosos que encontrei.
Agora que estamos condenados
Arquivo \mscorlib\system\threading\Tasks\ConcurrentExclusiveSchedulerPair.CS – linha 243
Fuja dos produtores zumbificados
Arquivo \System.Core\System\Linq\Parallel\Scheduling\Scheduling.CS – linha 52
Desvie da bola!
Arquivo \System.Xml\System\Xml\BinaryXml\XmlBinaryReader.cs – linha 626
Ah, aquele legado feio!
Arquivo \mscorlib\system\reflection\emit\ismwrappercore.cs – linha 27
Eu não consigo provar…
Arquivo \System\services\monitoring\system\diagnostics\EventLogInternal.cs – linhas 904 e 1097
Não acho que é o melhor jeito, mas vou deixar assim mesmo
Arquivo \mscorlib\system\globalization\compareinfo.cs – linha 361
Não entendo essa mudança, mas vou manter a lógica do jeito que está
Arquivo mscorlib\system\reflection\emit\methodbuilder.cs – linha 736
E para finalizar, o melhor de todos:
Eu não vou tentar dar manutenção nisso
Arquivo \mscorlib\system\threading\Tasks\Parallel.cs – linha 3421