Live data from Hacker News

Python Is Eating the World

zdnet.com

261–270 of 993 posts

Re: Python Is Eating the World

#261

Earlier quoted context omitted.

Disclaimer, I am a data scientist I feel the complete opposite. I really enjoy working with python over any other language. R does linear models and time series better and matlab has its charm, but overall I prefer python. Python is so easy to read and quick to program in. I am so glad I am not in the Java/C++ world anymore, but I know people in different roles have to deal with different issues.

> I really enjoy working with python over any other language. I assume you mean, "over any other language I have tried" ? As someone with a mathematical background myself, I am always surprised at how many data scientists and quants are ignoring more mathematically principled languages like F#, OCaml and Haskell.

F#, OCaml and Haskell

Can I quickly prototype a new deep learning model and scale it to a 32 GPU cluster with very little effort in those languages?

Re: Python Is Eating the World

#262
post #110
post #69

Earlier quoted context omitted.

Gosh yes. These slow languages offload thinking to burning fossil fuels. INEFFICIENT.

Tell that to accounting that is paying for AWS instance usage. Facebook has an interesting talk about how much electricity 1% performance improvement saves.

You're not Facebook. The carbon footprint of a single developer is comparatively gigantic for the vast majority of projects most people work on.

Re: Python Is Eating the World

#263

Reading this got me thinking and I wonder if other people feel like me about this, so I'm going to share it. This is not serious, but not entirely unserious... I try to be a good sport about it, but every time I write python I want to quit software engineering. It makes me angry how little it values my time. It does little for my soured disposition that folks then vehemently lecture me about the hours saved by future…

You can configure Pep8/Flake8 to ignore subset of rules. You might wanna look into that. Also, automatically executing it might be your preference, or not.

Re: Python Is Eating the World

#264
post #67

In general JavaScript is eating the world. Python still dominates in numerical computing and JavaScript hasn't been able to make a single dent. Because nobody wants to write a.mul(k).add(b) rather than k * a + b or a.set([i,j], b) rather than a[i,j] = b JavaScript's lack of operator overloading is keeping Python alive. Python also has integers that feel part of the language, rather than being segregated from normal n…

Yes, Yes, Yes. I remember when I translated Bitcoin Python code to JavaScript, I was frustrated. Operator overloading is not available in JavaScript. By default JavaScript only supports 32 bit number. You have to use BigInt or use 3rd party library like big-integer. There is no default support for module exponentiation. And many more.

Re: Python Is Eating the World

#265
One thing very interesting about Python is how gradual the ride up has been. Perl dominated then sputtered. Java shot up and hit the ceiling. C# is mostly limited to Windows, JavaScript mostly to the web. Ruby stole the spotlight for a few years and then faltered mysteriously. Others found their niche. But Python just keeps chugging along slowly gaining ground almost everywhere like a tortoise to multiple hyped-up hares.

Re: Python Is Eating the World

#266

Earlier quoted context omitted.

What I find worse about Python than other languages is the lack of tooling and a relatively small collection of libs - many of which are half way done. In a last assignment, we decided Python is at most a hobby language. Python is great for machine learning because most research was conducting using this language, and as such, tooling is available. I would use it at most as an API exposing ML but that's pretty much i…

I don't know what parallel reality you live in but there are few languages with as many packages for getting productive things done than Python. In web dev andam data science I have yet to see a language with as many libraries for useful stuff. Now, if what you're looking for is high performance and precise memory management, sure, the language will never give you that. What language has as many easily available libr…

Well, that's what I said, there are plenty of packages for data science. For building APIs and web stuff usually there aren't. Python is nowhere near NodeJS for instance. But whatever suits, if you only know one language, it will seem like the best language out there.

Re: Python Is Eating the World

#267
post #146

Earlier quoted context omitted.

The common "don't use exceptions for control flow" is broken right off the bat with StopIteration. I just think error handling in Python is god awful, really. That's not an idiom python has ever subscribed to though, it's always subscribed to the "Better to ask forgiveness than permission" - I think there are strengths to both viewpoints, but honestly I think "don't use exceptions for control flow" is more of a conve…

> honestly I think "don't use exceptions for control flow" is more of a convention that a "truth" In absolute terms or when coding on paper, perhaps. But in the real world and if performance even remotely matters, it’s as close to a universal rule all languages end up embracing or turning into creaking hulks of slow code given how exceptions work in practice at the level of cpu execution units. C#/IL/.NET embraced ex…

The Ocaml exception implementation is comparatively very performant, and so its exceptions are routinely used for control flow.

Re: Python Is Eating the World

#268
The part that Python really bothers me, as someone who had write Python for almost 10 years, and right now doing it professionally, though personally I don't consider myself a Python developer rather than a Python senior user, is actually obvious to nail down, and frustratingly, difficult to handle.

SLOW. The sin of all. I don't want to make other arguments with people who just come to repeat 'Oh you can make it fast, you are doing it the wrong way'. Sorry, I have heard that 100 times, now is sounds like bug-as-feature excuse to me.

Sorry, but Python is just slow. All the stuff people might bring up is just trying everything to bypass Python itself. Multiprocessing is hell to work with, buggy and unpredictable. Cython is OK but it is not Python.

Python's slowness is like cancer, and terminally so. Down deep, it is because its overtly flexible/loose type system, the never-going-away GIL, and prematurely exposing of C-API makes it almost impossible to optimize without breaking the existing compatibility.

And most importantly, I don't think it is solvable, truth is the patches are so integrated, people already forget what problem they tried to fix in the first place and just live with it.

But it will haunt Python in long term though, people will be struggling with Python in performant production until they start reimagining a world that without Python. Maybe a better Python in that sense.

Re: Python Is Eating the World

#269
post #209

I am currently writing Python based software for a client on serverless architecture. Honestly, I really feel like myself and a lot of people I know use Python only because it has some useful libraries like Pandas compared to other languages. In addition, the effect of 2.xx and 3.xx fiasco can still be felt during development. These days, I really wish I could write my stuff in Elixir, but too bad its data science ec…

This a complete misrepresentation of the Python philosophy and a cheap troll.

Re: Python Is Eating the World

#270

Earlier quoted context omitted.

I am about to hit a decade of python experience. I work with it daily, all my major codebases are written in it. I hate it. It has an ok object system which is possibly its only redeeming quality. I found Racket about 4 years ago, and any new project that I work on will be in Racket or CL. I could go on at length about the happy path mentality of python and the apologists who are too ignorant of other people's use ca…

I have nightmares of dealing with Python packaging... I finally gave up and just started using PyInstaller to ship binary blobs to people.

That doesn’t even work in all situations. What if the system requires development packages? What if it’s a different OS or architecture? Packaging is a nightmare.
Post reply on HN