Live data from Hacker News

Programming-language popularity by GitHub pull requests

lemire.me

41–50 of 73 posts

Re: Programming-language popularity by GitHub pull requests

#41
post #13

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#).

What is DDD?

Re: Programming-language popularity by GitHub pull requests

#42
Odd to see php and Ruby being at the same level. I would have thought php was much, much higher. Like by a factor of five to ten.

Another 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

#43
post #41

Earlier 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?

"Domain-driven design", a modeling/software architecture design approach

Re: Programming-language popularity by GitHub pull requests

#44
post #43
post #41

Earlier quoted context omitted.

What is DDD?

"Domain-driven design", a modeling/software architecture design approach

And to follow it up, read the actual book by Eric Evans. He tells you when, and just as importantly, when NOT to use the things in the book. I have to point that part out whenever I see people replacing CRUD with DDD.

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…

IF anything, he should've grouped Java with Kotlin and Groovy. Scala has always been its own thing, and was never really accepted as an integral part of the JVM ecosystem, unlike Kotlin and Groovy.

Re: Programming-language popularity by GitHub pull requests

#46

What language do you recommend purely for getting a job, GO or Java? I have few years of experience with JavaScript.

This is very local dependent. Check jobs in your area.

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

#48
post #13

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#).

> you can't generally mock a function

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

#49
I think this is not the best representation. Although I appreciate the commentary of the blog. Is github a valid platform for this kind of sampling? I dont know I have hundreds of java repos elsewhere and would never host my code on a Microsoft platform. But somehow Kotlin is not represented when it's the default language for android....because mobile projects don't host on github publicly. And what about PRs makes them special anyway? As one commenter mentioned this could be more about volatility/stability.

As 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.

Post reply on HN