Live data from Hacker News

Python 3 can revive Python

medium.com

121–130 of 242 posts

Re: Python 3 can revive Python

#121
post #35

Is Python really dying? I think the original article proclaiming it's death was written by a MS guy (aren't they coming out with a new version of asp or .net or something?). I use it every day and even though I love JS (and have been thinking about looking into Go because of all the positive noise) I don't see Python going anywhere for me at least. It is simply too handy and familiar. Maybe it just will be used sligh…

The Go noise got to me too. I worked through a book on it, implementing a project in it, and ended up writing it off. The problem for me was the insane concept they adopted around C-style error codes and abandoning exceptions.

The idea that errors should pass by default rather than halt by default is just putting more on the programmer to manage. Which I'm almost universally against unless there are significant gains (eg. manual memory management, when appropriate). This guy adds more that I don't care to restate- http://uberpython.wordpress.com/2012/09/23/why-im-not-leavin...

The library scene for Go is also lackluster in comparison to Python, and libraries are what make a language useful. Lack of exceptions kills Go for me, but others are PO'd about lack of generics and some criticize the type system as ignoring the last 20 years of innovation there.

Instead of Go, I'm more excited about Rust as a systems language. Go ultimately is GC'd so it will never be suitable for real-time computing, say writing software for traders or many other use cases. It doesn't so low-level enough to takeover that field (which is why the C/C++ guys aren't coming), and isn't high level enough to really wipe out Python. It's an awkward, yet highly flawed design.

If you're really interested in systems programming, wait for Rust to hit 1.0. I'm more interested in seeing how we can squeeze more performance out of Python with Pyston and PyPy, and if I abandon Python for web development I'll probably be looking at the MEAN stack and biting the bullet on Javascript once ES6 arrives.

Re: Python 3 can revive Python

#122

One pain point I've really felt recently with Python is in the deploy step. pip installing dependencies with a requirements.txt file seems to be the recommended way, but it's far from easy. Many dependencies (such as PyTables) don't install their own dependencies automatically, so you are left with a fragile one-by-one process for getting library code in place. It was all fine once I got it worked out but it would so…

One of the reasons I've come to do most of my early stage prototyping in node is that managing npm packages has thus proven much easier than finagling with pip or gem. Ruby installs are especially difficult to manage. Despite the numerous tutorials out there, I still don't know what, if there even is one, the canonically best way to install ruby and necessary gems is. RVM? Install through Brew? Add path to ~/.bashrc?…

I install rvm on my production boxes as explained at https://rvm.io/ then I put .ruby-version and .ruby-gemset files in the application directory to select the interpreter and the gemset (I might need to have different applications running - especially on staging machines). Finally I use bundle and a Gemfile. It's pretty easy. You got another answer suggesting rbenv which is also fine.

Re: Python 3 can revive Python

#123
post #39
post #17

Earlier quoted context omitted.

Right. Students in my Python classes (who typically come from static, compiled languages) are always asking me how quickly certain operations execute, or how much memory is used. I try to explain to them that obviously Python developers care about these things, and I show them some of the most common pitfalls. But this isn't the first, or even fifth, thing that you think about when you're coding in Python. The key th…

Speed is low on my list as to why I prefer Go over Python. (In fact, Go isn't necessarily fast. It's just that Python is unnecessarily slow.) Having a decent type system and decent concurrency primitives are far more attractive.

I would say Go's type system is the least impressive of its features when compared to most other statically typed languages.

Re: Python 3 can revive Python

#124

At this point, I think python 3 just has a severe branding issue. I bet if you took python 3.4, removed the stuff that will egregiously break things (IE, lack of a print statement and new exception syntax), and just called it python 2.8 everyone would be pretty happy with it. All the same, I'm continuously amazed at the arrogance of the people that maintain the language and set its direction. It's no wonder it's been…

If it were only syntax, 2to3 would be the answer. Exceptions and Print are not the problem. Migrating unicode-aware code and CPython extensions is a much bigger task, and incidentally, much more useful. nonlocal, asyncio, unicode, yield from. If you ask me, these four are very compelling reasons to switch to Python 3 and they solve very real problems.

There are not so terrible workarounds for all the things you mentioned. While Py3K does them better, they are still not reasons to update. As the article points out, there isn't a compelling reason other than slightly cleaner code. The community agrees as evidenced by the massive push back.

Re: Python 3 can revive Python

#125
post #24

That pretty much reiterates my points from last time we discussed (not many hours ago). https://news.ycombinator.com/item?id=7801004 Besides what already was said. It is also important to emphasize that Python 2 is already pretty good. So it is not that Python 3 is bad, it is just that it is very hard to improve on 2. Ironing out the warts is good, but this was not the right time. This should have happened 7-10 years…

I can tell that proper Unicode support is a reason to discounting a language/library if you're not a native English speaker and/or writing programs that have to be localized.

Re: Python 3 can revive Python

#126
post #112

Breaking backwards compatibility is a sure way to kill off a language / alienate a user base. That's a big reason why c++, Linux, PHP, etc. still exist and are used today. Python 3 seems hellbent on taking the Perl 6 approach. How's that working out? Languages should evolve, not break off into new species.

You're either misunderstanding Python 3 or misunderstanding Perl 6. Python 3 was a few breaking changes made to Python 2. Perl 6 was a completely new language, designed from scratch, with little in common with Perl 5 aside from bits of syntax. It still doesn't have a "complete" release, in 14 years. In half that time, we've had a Python 3.0 and four more point releases.

Potato, tomato. It broke backwards compatibility.

Re: Python 3 can revive Python

#127
post #107

Earlier quoted context omitted.

How is it "much more developed", without providing generators, coroutines, or comprehensions? Just having to use functions to emulate all of these (and many more) is not what functional programming is all about.

ECMAScript 6 has generators, and they are already available in Node.js.

Javascript seems to go the opposite way of python: instead of ironing the warts out, it adds them. The DOM-API is nonsensical and ugly? Why not add language features so we can implement it in pure JS? Sounds like a great idea.

Re: Python 3 can revive Python

#128
post #5

The idea that people move from Python specifically to Go is one of those chestnuts of conventional wisdom that never receives any kind of backing in actual data. If you think that Python and Go are made for the same tasks then you're really confused.

> The idea that people move from Python specifically to Go is one of those chestnuts of conventional wisdom that never receives any kind of backing in actual data. A big reason for this is that some prominent members of the Python community left for Go and that Go talks have started appearing at Python conferences.

Don't you think that people should rather consider Julia or even Java instead of Go as Python replacement?

Re: Python 3 can revive Python

#129
Nailed it. The problem with Python 3 wasn't that it was too radical, it was that it jumped at the chance to introduce backwards-breaking changes for minimal benefit. Trying to convince teams to port code to python3 just because it has better unicode is hardly compelling. They should have taken a few more years and made python 3 a target people were drooling to port for.

Further, the author's priorities seem to line up exactly with my own thoughts on Python's shortcomings. Async, speed, types, stdlib, repl. If they had spent 5 years working on those things they would be done right now, and Python would be one of the most compelling languages out there. Instead, and I hate to say this, Python feels like it is falling off rather quickly. It certainly has a future as a teaching language, and it will survive as linux glue for a long time, but beyond that I think it will be replaced by other up and coming languages with better discipline and design.

Re: Python 3 can revive Python

#130

Earlier quoted context omitted.

You could as well say that Ruby is a one trick pony destined to have its lunch eaten by nodejs, or that Go can't stand the competition from Rust as a systems language. It's not easy to predict language evolution, and everything so far points towards python maintaining a healthy evolution rate and a quiet but dedicated user base. I'd say python took the place that would today be Perl's, were it not for the whole Perl…

I'd say people took Python over Perl because of readability, not because of the Perl 6 saga.

If you take the time to learn the language, it's quite readable.

I used to know a guy who'd freak out about not being able to read Perl. He couldn't write ("speak") it either, so I'm not sure what he was expecting.

Post reply on HN