Earlier quoted context omitted.
I recently got into c# and it seems really nice, but the "customs and traditions" of the dotNet world horrify me (eg: never write a function when you can write three classes instead)
C# is a follower of DDD, mostly. Which is a 'standard' practice for OOP design. I highly recommend reading the book about it, but that is how you end up with many classes instead of a simple function. Also, in C#, you can't generally mock a function (or static method?, not 100% sure on that, it's been nearly 10 years since I've written a unit test in C#).
Programming-language popularity by GitHub pull requests
41–50 of 73 posts
Re: Programming-language popularity by GitHub pull requests
#42Another thing, it seems like Python developers might be apt to push/pull more often, in smaller commits compared to say, Java programmers.
Re: Programming-language popularity by GitHub pull requests
#43Earlier quoted context omitted.
C# is a follower of DDD, mostly. Which is a 'standard' practice for OOP design. I highly recommend reading the book about it, but that is how you end up with many classes instead of a simple function. Also, in C#, you can't generally mock a function (or static method?, not 100% sure on that, it's been nearly 10 years since I've written a unit test in C#).
What is DDD?
Re: Programming-language popularity by GitHub pull requests
#44Earlier quoted context omitted.
What is DDD?
"Domain-driven design", a modeling/software architecture design approach
Re: Programming-language popularity by GitHub pull requests
#45> Then you get the second tier languages: Java and Scala, C/C++, and Go. They all are in the 10% to 15% range. I read that as Java and Scala both are second tier languages. After looking at the graph I realized he was lumping the two together. They are 11.3% and 1.7% respectively. If Scala were a "better Java" that grouping would make sense. But some Scala projects are so different in the paradigm that the slight int…
Re: Programming-language popularity by GitHub pull requests
#46What language do you recommend purely for getting a job, GO or Java? I have few years of experience with JavaScript.
I've seen places where you would never find a Go job and Java is nearly 80% of software jobs... but OTOH if you're working on stuff related to cloud tooling, Go is very dominant and you will almost never see Java.
Re: Programming-language popularity by GitHub pull requests
#47Re: Programming-language popularity by GitHub pull requests
#48Earlier quoted context omitted.
I recently got into c# and it seems really nice, but the "customs and traditions" of the dotNet world horrify me (eg: never write a function when you can write three classes instead)
C# is a follower of DDD, mostly. Which is a 'standard' practice for OOP design. I highly recommend reading the book about it, but that is how you end up with many classes instead of a simple function. Also, in C#, you can't generally mock a function (or static method?, not 100% sure on that, it's been nearly 10 years since I've written a unit test in C#).
With `dynamic` and `DynamicObject`/`ExpandoObject` proxies (or even lower level System.Dynamic/System.Linq.Expression fun) you can mock anything you want to in C#.
Those tools go all the way back to the early days of Linq (and useful but somewhat broken DLR visions like IronPython). If you need to time travel even further back in the .NET stack, or if you are just allergic to/deathly afraid of the DLR as some people seem to be, System.Reflection.Emit has been there since day 1. It's awful to work with and even worse low-level experience than the DLR, but it is capable of a lot of things. If you've got an up-to-date compiler you can go the other direction and use the recent Source Generators to do all the same low-level things but this time in the context of Roslyn and at build/compile-time.
Obviously, that doesn't necessarily make it a good idea that just because you can do such things that you should do such things, but C# has far more powerful raw tools at its disposal than many people realize.
A lot of the boilerplate in DDD styles is simply a preference for it and (over-)design patterns as comfort food.
It's a further aside, but hand-written "Fakes" patterns require more up-front work but often seem to me much better than automated Mocks. I've never seen a good DDD pattern focus on good "Fakes", though, and sometimes I find DDD complexity gets in the way of good "Fakes".
Re: Programming-language popularity by GitHub pull requests
#49As a side note, I'm pretty shocked that the OSS community is "just fine" with leaving their projects on github after MS took over and scanned all their code for machine learning.
Re: Programming-language popularity by GitHub pull requests
#50What language do you recommend purely for getting a job, GO or Java? I have few years of experience with JavaScript.