Live data from Hacker News

Python overtakes Java to become the second-most popular programming language

techrepublic.com

261–270 of 357 posts

Re: Python overtakes Java to become the second-most popular programming language

#261
post #2

We need to start ranking languages based on what people use them for. Python is certainly #1 in ML, for example, but far from #1 in web. I had a "which stack" argument with a client recently for a web server processing tons of data. He wanted to use Node (which I hate, but also use when performance doesn't matter because TypeScript is so good). I showed him that the Node library ecosystem is actually pretty weak (man…

A totally valid point.

Do keep in mind that one of the reasons people choose Python though, is exactly because it is used in a few different domains. E.g. I'd rather my server-side language be the same as my video-processing language be the same as my data-science language, it makes things easier.

Re: Python overtakes Java to become the second-most popular programming language

#262

> Python has long been a top-loved programming language, as has Java Um... nobody _loves_ Java. We use it, but we don't love it.

I think there's a lot to be said for how it's changed, also. The language has experienced improvements, but the community has also matured - a lot of the really awful frameworks and libraries have been replaced by much saner and simpler options.

You can still run into something old and enterprisey, but Java is much less baroque than it used to be for getting things done.

Re: Python overtakes Java to become the second-most popular programming language

#263

I was a total raving Python evangelist for the first 12 years of my coding career, and then got a job as the CTO for a Python based startup that had been running absent a technical leader for 5 years, with relatively junior coders making all the decisions. I still love Python, but I now have a completely different attitude to hyper-dynamic languages (like Python, Ruby, Clojure, Elixir, etc). In my new opinion, they a…

> but are really double-edged swords in large projects

Yeap. I ended up dragging my team to Golang due to this. Sure they didn't write unit tests and they still aren't writing unit tests. But at least now a compiler will take a look at the code before it's run. Lots of stupid errors at runtime disappeared.

For personal projects? Something like Python, Lua or Scheme is great. It can still be great in large teams, but they need to understand and care about what they are doing.

> but I would have been happier stepping into C++

Oh no you wouldn't. That's the nuclear foot gun.

I've been tasked(along with some great engineers, most more experienced than myself) to fix a mess left by two other teams. A project that was severely over budget and very late.

It was the worst abomination ever known to man. Crashes in random places. Race conditions. Global variables. Memory corruption galore. Lack of understanding of C++ in general (copy constructors, assignment operators, initializer lists) leading to many more bugs. Leaked like a sieve.

A lot of this wouldn't be possible in other languages (memory corruption in general). Some issues would happen no matter what (two modules opening the same file and writing on it simultaneously), unless something like Rust or Haskell was used to make this more difficult.

So far, that's the only project I've contradicted Joel Spolsky and it was completely thrown away and rewritten. Again in C++ because that was the requirement, but with proper modules this time, smart pointers and the like. It was completed in 3 months.

Re: Python overtakes Java to become the second-most popular programming language

#264

I was a total raving Python evangelist for the first 12 years of my coding career, and then got a job as the CTO for a Python based startup that had been running absent a technical leader for 5 years, with relatively junior coders making all the decisions. I still love Python, but I now have a completely different attitude to hyper-dynamic languages (like Python, Ruby, Clojure, Elixir, etc). In my new opinion, they a…

Use the right tool for the job. Python is great except at the huge (or performance) end. The problem occurs when one tries to use it for everything. And it has tools now to help at the high end, though you have to choose to use them.

Re: Python overtakes Java to become the second-most popular programming language

#265

I was a total raving Python evangelist for the first 12 years of my coding career, and then got a job as the CTO for a Python based startup that had been running absent a technical leader for 5 years, with relatively junior coders making all the decisions. I still love Python, but I now have a completely different attitude to hyper-dynamic languages (like Python, Ruby, Clojure, Elixir, etc). In my new opinion, they a…

> I still love Python, but I now have a completely different attitude to hyper-dynamic languages (like Python, Ruby, Clojure, Elixir, etc). Elixir is all about immutable structs and pattern matching. I don't think "hyper dynamic" is a fair characterization at all.

To be fair elixir has slowly become more and more static over time, as in via convention and tooling.

Re: Python overtakes Java to become the second-most popular programming language

#266

Earlier quoted context omitted.

> I still love Python, but I now have a completely different attitude to hyper-dynamic languages (like Python, Ruby, Clojure, Elixir, etc). Elixir is all about immutable structs and pattern matching. I don't think "hyper dynamic" is a fair characterization at all.

To be fair elixir has slowly become more and more static over time, as in via convention and tooling.

Even at the language level, every single variable is a constant—the opposite of "hyper dynamic".

Re: Python overtakes Java to become the second-most popular programming language

#267

I was a total raving Python evangelist for the first 12 years of my coding career, and then got a job as the CTO for a Python based startup that had been running absent a technical leader for 5 years, with relatively junior coders making all the decisions. I still love Python, but I now have a completely different attitude to hyper-dynamic languages (like Python, Ruby, Clojure, Elixir, etc). In my new opinion, they a…

Doesn't C++ have the exact same problem? People have style guides that prohibit using part of the language features. Maybe the problem is just better understood in C++ land.

Re: Python overtakes Java to become the second-most popular programming language

#268

Earlier quoted context omitted.

I'm by no means an expert architect yet, but has the argument for microservices in smaller orgs basically become: "Since y'all can't seem to use classes and interfaces correctly, let's physically separate the software so changing the service contracts becomes a bigger pain in the ass"? I'm not even trying to be sarcastic. I'm genuinely curious. I feel like 90% of the benefits of microservices would be accomplished wi…

Microservices are different from language abstractions (classes, etc.) In two important ways: 1. More decoupling means you can use an entirely different langauge 2. Services can be deployed, restarted, etc. independently. But that comes with disadvantages. The contract then becomes message passing and serialization/deserialization, which is fairly primitive. You can't pass functions/callbacks, and simple static check…

In a mid-size shop is another language an advantage?

Re: Python overtakes Java to become the second-most popular programming language

#269

Earlier quoted context omitted.

This is my experience as well. Incidentally "this is a problem of people, not language" is one of my pet peeve statements (not that I'm mad at you, of course!) specifically because I've had it used against me enough to defend choosing, imo, bad tools. Everyone thinks they have developers that are good enough that they don't need the bumpers up when they bowl. But honestly, it's just almost never true (and if it is, i…

I actually do due diligence on tech firms now for a job, and you're 100% right that the tradeoffs change dramatically when the company grows. Which doesn't mean that using the best thing possible for your expert coders at the beginning is wrong. At the beginning, you need every advantage you can get, and if you have expert programmers, give them the sharpest knife you can find! But yeah, once your company is hiring h…

Why would you make technical decisions based on what hyponthenictal new owners would prefer in a hyponthenictal acquisition in 5 years?

Re: Python overtakes Java to become the second-most popular programming language

#270

Earlier quoted context omitted.

I actually do due diligence on tech firms now for a job, and you're 100% right that the tradeoffs change dramatically when the company grows. Which doesn't mean that using the best thing possible for your expert coders at the beginning is wrong. At the beginning, you need every advantage you can get, and if you have expert programmers, give them the sharpest knife you can find! But yeah, once your company is hiring h…

Why would you make technical decisions based on what hyponthenictal new owners would prefer in a hyponthenictal acquisition in 5 years?

Because that's how founders make money. The vast majority of exits now are purchases by private equity firms, and they will do a thorough technical due diligence and look at those decisions and what it will take to run the company the way they want to. (I do those diligences for a living) If you're doing a tiny lifestyle company with no exit plan, you wouldn't. Which ironically, is exactly what I'm doing on my own time, so I use Scheme for that. :-)
Post reply on HN