4 ms·
I've been writing in Python for over ten years, in different roles, for wildly different projects (research, infra, Web, testing, education). I'm yet to find a
by crabbone 3y ago
I've been writing in Python for over ten years, in different roles, for wildly different projects (research, infra, Web, testing, education).
I'm yet to find anything Python was good for. On engineering merits alone Python isn't best for anything, nor is it best for combinations of things. It's silly to think that any tool that works with Python does so because Python was the best language for the job, and they only needed that tool to make it even better.
Most stuff written around Python is yet another layer of band aids on top of a huge ball of band aids that's already there.
So, you may wonder, with all those band aids, didn't they all make it better? And, in a sense, yes, that's what they are for. The band aids improve the experience of the user end. But this isn't how I use the word "better". When I use "better" I mean the quality of execution, not the satisfaction it gives to the user.
- devjab 3y agoI’m not really a fan of Python as such, but after a few decades in the industry, I’m beginning to think that being good at being bandaid is “better”. I can’t think of a single tech where we don’t have a bunch of duct tape (as we refer to it), not so much because we want to but because that’s just how things end up in the imperfect world of organisations. I value the techs that fit into this reality more than the ones which don’t, but you’re right, Python isn’t really great for any technology based merits, it’s good because the world is a messy place where being productive with your band aid is often more valuable than using the “better” programming language.
- Izkata 3y agoOld proverb that I think applies here: A jack of all trades is a master of none, but oftentimes better than a master of one.
- crabbone 3y agoYour mistake is going from quantitative claims to categorical without evaluating the quantitative part first. You say "everything is a band aid to some degree", and from that you conclude that "everything is equally bad or good". You conveniently forget the "to some degree" part to further your point. It's similar to saying that all food has some amount of dust in it, so it shouldn't matter whether you just open the vacuum cleaner and eat the stuff collected on the drum, or if you order a meal at a fancy restaurant. There's no evidence that Python "fits into reality" more than any other language. The thing that's going on for it is popularity. Popularity doesn't need to be rooted in technical merits, and in the case of Python it isn't. Finally, Python isn't unique in this sense. Even though the stage for programming language popularity pageant was set relatively recently, the participants learned to abuse the rules of the competition very quickly. There's a "rule" by a statistician whose name I cannot recall at this point which states that once people know the metric they are measured on, they will learn to game it. When we assess language popularity, we most assess how well the language authors or their community was able to game the metric rather than measuring any meaningful aspect of those languages.
- corethree 3y agoI've been writing python for a longer amount of time. What makes python popular is it's the ease of use and debugging. It may not have been type safe but every time it crashed it's extremely easy to find out where and why it crashed. This is not the case languages like JavaScript or for even something like golang which is ironically type safe. I like to emphasize this here. It is more important for a language to be extremely clear about the origin and nature of a runtime error then it is to be type and statically safe. Look at C++. It has powerful static typing but is marred by seg faults and memory leaks which are hidden errors that are extremely hard to tease out. That being said, modern python now has types. The bandaids on top of python from sheer coincidence turns it into a powerful scalable language for the web rather then an ugly patchwork. The main problem with python right now would be the performance and the library ecosystem. Performance is of course mainly the gil and libraries are often written with tricks that make static typing impossible. It's just old tech debt getting in the way not the modern language itself. Linters should prevent anyone starting new code using those patterns again. Other then that, pythons type system + checkers supports even sum types with exhaustive pattern matching added with extreme ease of debugging runtime errors makes python one of the best languages for big projects. That level of safety isn't even offered by go or typescript. The only alternatives are rust or haskell for sum types. I highly disagree with you. Python is not without old tech debt warts holding it back, but overall it is a superior language.
- atoav 3y agoThis very subjective, but I think python is good at syntax. If I had to teach non-programmers programming it would be easily my number one choice. The included libraries are also pretty good.
- yoyohello13 3y agoPython is always the second-best language for the job. Which makes it a great language to know.
- diarrhea 3y agoExactly. It’s not about asking if Python is the best tool. It’s about looking at the alternatives. Python comes out ahead of all alternatives, save for 1-3 others. And those others might not be feasible for a host of other reasons. That’s how you end up with Python. And it’s fine!
- crabbone 3y agoYour claim is covered by this part of the post you replied to: > nor is it best for combinations of things. In other words, you are wrong. No, Python isn't second best, nor is it anywhere in the top-ten. It's worthless as a language, as in it's not worth paying attention to if you are interested in how you can solve programming problems by making better languages. It's worth knowing Python if you want a programming job, and this is where it shines. Anything else about it is either "meh" or just hands down awful.