Live data from Hacker News

Python Is Eating the World

zdnet.com

481–490 of 993 posts

Re: Python Is Eating the World

#481
post #441

Earlier quoted context omitted.

> If Python is so great how come it can't even express a decent data structure that it needs? Why is this a requirement of a "great" language? By not requiring a language to be self-hosting, you are adding more degrees of freedom to your language's design, so I could even see an argument that writing it in C is an improvement. I don't necessarily agree with that, but I don't see why cpython written in C implies it is…

you are adding more degrees of freedom to your language's design Why do you think that? Languages/runtimes with high C integration and fairly exposed C bowels like Python and Ruby have, over time, turned out to be very hard to evolve compatibly.

> Why do you think that?

Because it's a fact? With cpython you can develop things in python if that suits you or C if that suits you. You have more freedom to choose what fits your use case. I'm not saying this is necessarily good, but I don't think it's obviously bad. I'd like to hear from people who think it's the case.

> Languages/runtimes with high C integration and fairly exposed C bowels like Python and Ruby have, over time, turned out to be very hard to evolve compatibly.

That is true, but it's also arguably one of the reasons cpython became so popular in the first place. The ability to write C-extensions when appropriate has been very powerful. It's certainly caused issues, but I think if python didn't have exposed bowels it may never have become nearly as popular. What if numpy wasn't ever written? (This isn't to say that they couldn't have exposed a better C-api with fewer issues, but hindsight is 20/20...)

Re: Python Is Eating the World

#482

Holy Crap! What a lot of irrational, hyperbolic hate for Python. I think everybody should spend their first couple of years working in Fortran IV on IBM TSO/ISPF. No dependency management because you had to write everything yourself. Or maybe [edit: early 90's] C or C++ development where dependency management meant getting packages off a Usenet archive, uudecoding and compiling them yourself after tweaking the config…

Agreed. I really don't understand all these buckets filth being poured on Python in this thread. It's a first language I worked with in my life that just clicked with my brain and doesn't just drain me. I would take a Python job over a Java/C/C++/Go/Rust any day. There's some languages that could pull me away from Python (Nim, Crystal) but they're nowhere popular enough to move wholesale to them.

And some people feel the opposite. I’m glad Python works for you. I had the same click-with-my-brain feeling with Ruby, whereas I find working with Python to be draining and demoralizing.

Re: Python Is Eating the World

#483
post #471

Earlier quoted context omitted.

Isn't it also just as much about Python is having it's day, granted a day long in the waiting but many langs go through this (Ruby, PHP) and then it tapers off and the next language has it's day. Probably Go will be the next hotness in 5 years.

Maybe, I love Go but I'm not sure it's the next "hot" thing, all the recent "hot" languages have been scripting languages PHP, Ruby, Python, JS ... I'd say JS and Python are currently jockeying for that position.

Isn’t JS one of the most popular languages? It has a monopoly in the browser so that and C++ already has the most impact on users. Hard to see how it can become more popular.

Re: Python Is Eating the World

#484

Holy Crap! What a lot of irrational, hyperbolic hate for Python. I think everybody should spend their first couple of years working in Fortran IV on IBM TSO/ISPF. No dependency management because you had to write everything yourself. Or maybe [edit: early 90's] C or C++ development where dependency management meant getting packages off a Usenet archive, uudecoding and compiling them yourself after tweaking the config…

https://conan.io/ https://vcpkg.readthedocs.io/en/latest/ You were saying about C/C++ package management?

Historically, that is a relative newcomer to the C/C++ world. You completely missed the parent's point.

Re: Python Is Eating the World

#485
post #33

Python has a lot of problems that really slow down development, but they are all fixable. The biggest issue, in my opinion, is in dependency management. Python has a horrible dependency management system, from top-to-bottom. Why do I need to make a "virtual environment" to have separate dependencies, and then source it my shell? Why do I need to manually add version numbers to a file? Why isn't there any builtin way…

The solution to this is Poetry. https://poetry.eustace.io It's good. Projects should use it.

I agree. Most of the issues the parent mentions have been solved with poetry and pipenv.

And if you need "to create a redistributable executable with all your dependencies". You can either use pyinstaller [0] or nuitka [1] both of which are very actively maintained/developed and continually improving.

[0]: https://github.com/pyinstaller/pyinstaller [1]: https://github.com/Nuitka/Nuitka

Re: Python Is Eating the World

#486

Holy Crap! What a lot of irrational, hyperbolic hate for Python. I think everybody should spend their first couple of years working in Fortran IV on IBM TSO/ISPF. No dependency management because you had to write everything yourself. Or maybe [edit: early 90's] C or C++ development where dependency management meant getting packages off a Usenet archive, uudecoding and compiling them yourself after tweaking the config…

Famous one:

> There are two kind of languages: the ones everybody hates, and the ones nobody uses.

Re: Python Is Eating the World

#487
post #441

Earlier quoted context omitted.

you are adding more degrees of freedom to your language's design Why do you think that? Languages/runtimes with high C integration and fairly exposed C bowels like Python and Ruby have, over time, turned out to be very hard to evolve compatibly.

> Why do you think that? Because it's a fact? With cpython you can develop things in python if that suits you or C if that suits you. You have more freedom to choose what fits your use case. I'm not saying this is necessarily good, but I don't think it's obviously bad. I'd like to hear from people who think it's the case. > Languages/runtimes with high C integration and fairly exposed C bowels like Python and Ruby ha…

I guess I don't understand how 'the design gets stuck in amber' (which you seem to agree with) and 'gives you lots of design degrees of freedom' can be true at the same time.

Re: Python Is Eating the World

#488

Earlier quoted context omitted.

Maybe, I love Go but I'm not sure it's the next "hot" thing, all the recent "hot" languages have been scripting languages PHP, Ruby, Python, JS ... I'd say JS and Python are currently jockeying for that position.

Isn’t JS one of the most popular languages? It has a monopoly in the browser so that and C++ already has the most impact on users. Hard to see how it can become more popular.

The server-side of things can start eating away at other languages. Node.JS is obviously already very popular but it can still grow massively.

I for one have started running TypeScript on my servers whenever I can, I love it. There's still room for improvement though.

Re: Python Is Eating the World

#489

Earlier quoted context omitted.

Pycharm is pretty excellent in terms of IDEs. It's quite literally IntelliJ for python.

Python’s lack of typing means the IDE heavily uses heuristics. It’s nowhere near as good as Intellisense on C#. Take refactoring a variable name as an example.

The "heuristics" are down to Python being _dynamically_ typed, not it's lack of typing, so the type can't be known until run-time. Python is actually _strongly_ typed.

Re: Python Is Eating the World

#490
post #122

Earlier quoted context omitted.

> Pip freeze does not resolve transitive dependencies I don't think this is correct: $ python3 -m venv /tmp/v $ /tmp/v/bin/pip install flask [...] Collecting MarkupSafe>=0.23 (from Jinja2>=2.10.1->flask) [...] $ /tmp/v/bin/pip freeze | grep MarkupSafe MarkupSafe==1.1.1 > nor does pip know what to do if your transitive dependencies conflict with each another This is true, but because Python exposes all libraries in a…

> There's no way in an import statement to say which one you want. This would be fixable with a sys path hook, were pip so inclined

It would change the semantics of the language. You could also write a sys.path hook to interpret the remainder of the file as Ruby and not Python, were pip so inclined....

(Also it's not clear what those changed semantics would be.)

Post reply on HN