15 ms·
New IPython release drops Python 2.7 support
- makmanalp 9y agoThe 5.x fixed a lot of my UX quibbles with the completion menu, and made syntax highlighting, and now they're further improving the completion quality and the menu. I'm so excited!
- sandebert 9y agoAnd you just can't hide it.
- echion 9y agoSpeaking of UX and hiding, you can hide the menu bar, so you don't have to lose control unless you like it: echo "jQuery('#header-container').hide();" >> ~/.jupyter/custom/custom.js
- hyperbovine 9y agoIt's a shame that humorous comments are so consistently downvoted here. Are we all supposed to be post-laughter now or something?
- pekk 9y agoLow-content jokes never did particularly well on HN. Like it or loathe it, it's been a cultural feature here for years.
- hyperbovine 9y agoI don't remember it being this bad maybe ~8 years ago.
- lsh 9y agoyeah, the HN commenter majority are stuffy and humourless but quick on the downvote. just leave them to their playground.
- matt4077 9y agoIt has nothing to do with that. The fear is not what's added, but what's removed. Experience tells us that jokes will quickly dominate the top of threads, leading to a loss for serious comments. Sure, there's enough room for as many comments as you like in a thread, but only the top x actually get read, usually. FWIW, I thought the comment was pretty funny, and the first answer was even better.
- lerax 9y agoAnd now they are removing obsolete piece of software like Py2.7. Pretty awesome! We have almost twenty years of Python2 software, the day of not looking more to back is coming for python community.
- carreau 9y agoYou are welcome. We hope to have more contribution and bring you more awesomeness. Already installing Jedi-dev will make things faster and complete more edge cases !
- bjt2n3904 9y agoIt'd be really nice if they followed python3, and named it ipython3. This is just going to confuse install processes if I now have to install "ipython<6".
- oliwarner 9y agoIt's unnecessary. You don't need to jump through those hoops. Pip can handle all sorts of requirements including Python version, OS, etc. pip install ipython currently grabs ipython-5.3.0 on Python 2.7.
- takluyver 9y agoIt does! But make sure to update pip itself (pip install --upgrade pip), because it only does the right thing as of pip 9.0. Some of the IPython team actually worked on the infrastructure (pip & pypi) to make this possible, to minimise the pain for installing on Python 2.
- cookiecaper 9y agoThis recommendation should really be updated IMO. `python3` will never see full adoption as long as `python` is reserved for Python 2. I understand the need as a compatibility thing, but at some point the forward-looking cost of distinguishing `python3` exceeds the legacy cost of applications that just say `python` when they mean `python2`.
- CJefferson 9y agoThe best option (in my opinion) would be to add a simple way on the first line of a python file to express the language. Then 'python' can read the file, and execute it under the right language. The problem is if we ever switch 'python' to 'python3', then there will be 5 or so years when 'python' becomes unusable, as you won't know on a given machine if it's python2 or python3, and almost no program works on both.
- takluyver 9y ago
- af3 9y agoWaiting for a Python 2 fork...
- breatheoften 9y agoA comment from a beginner python user -- but I need to rant ... I've been doing a bit of python the last few weeks for some image processing/computer vision tasks (using opencv and numpy). I have to say, all together it's a pretty miserable developer experience. Python is incredibly slow - forcing pretty much all computation no matter how trivial into contortions via numpy incantations so that the inner loops can run in native extensions -- these Incantations have a lot of implicit not well documented magic. Miss some details in the behavior of the magic and suddenly you have a major 10x slowdown -- but good luck finding where. I would kill for an easy to use tool like xcodes Time Profiler ... API usage errors (even those where invariants are checked at runtime) are ridiculously under informative -- opencv for example does quite a bit of runtime sanity checking on the shape and type of arguments to its methods -- but somehow even simple details as to which parameter is the cause of the error don't get reported in the stack trace severely increasing the cognitive load required to identify the mismatch -- not fun when multiple arguments to an API are the result of a chain of numpy magic data munging. This may be an opencv complaint more than python (aside: opencv is pretty terrible.) I'm not sure what I'm doing wrong with python but I find the majority of my code to be sort of menial data munging -- and I haven't figured out good patterns to organize this munging in any sensical way --with a static language d.r.y patterns to centralize such plumbing operations have the awesome effect of moving invariants into reasonable places -- in python without any ability to organjze guarantees, as the code base evolves I find myself needing to repeatedly check data shapes/types -- there doesn't seem to be an obviously useful way to organize verification of data types as the necessary invariants become apparent. These issues are compounded by the fact that refactoring is an enormous pain in the ass! I feel like all my python code is throwaway code. Maybe that's what I'm missing -- I need to just accept that all the python numeric code I write is pure one-off junk, embrace copy paste and never try to reuse any of it ... Sorry for the rant! I remember loving dynamic languages when I first discovered them - but right now, I really miss c++ (or even better swift). I can't imagine the number of hours wasted because of these overly dynamic tools -- and there is simply no decreasing that lost time in the future -- as these languages grow if the house of cards ecosystems they sit atop grow and motivates more use then ever more developer hours will be lost to avoidable triviality ...
- goatlover 9y ago
- zitterbewegung 9y agoI use Juypter and the iPython nearly every day. The new autocomplete looks extremely promising. If you are running Python 2.7 it may not be a big deal to just use iPython 5.x though. The two major uses I have are prototyping nearly any coding project that requires python and teaching myself data analysis. This has saved me hours if not days due to the fact that the feedback loop is so fast. When I code in other languages I desire the iPython interface.
- jzymbaluk 9y ago>When I code in other languages I desire the iPython interface. It's not specifically IPython, but Jupyter does support many other languages through kernels! https://github.com/jupyter/jupyter/wiki/Jupyter-kernels https://github.com/jupyter/jupyter/wiki/Jupyter-kernels
- carreau 9y agoAlso instead of linking to the doc you might want to read the announce blog post: http://blog.jupyter.org/2017/04/19/release-of-ipython-6-0/ http://blog.jupyter.org/2017/04/19/release-of-ipython-6-0/
- Chris2048 9y agoI personally think they should have just declared Python 3 to be a new language, inspired by python 2, like many other competing new-pythons. Instead, they didn't play fair, and gave themselves an unfair advantage.
- scrollaway 9y agoDamn that Python team, giving themselves an unfair advantage in developing Python. Seriously, what am I reading here?
- krick 9y agoMaybe this is a joke, and then I'd say it's pretty neat one. I mean, just look at that, what other language got a similar problem of that scale! And let's not pretend it all passed and we are happily moving forward: this year (this month, actually) I've seen very prominent NN-course, suggesting Python 2.7 for all assignments and code samples, and quite useful library (also NN-related), supporting 2.7 only. I guess, some of mitsuhiko's (Ronarcher's) developments didn't move to 3.* as well. So, yeah, IPython dropping 2.7 is pretty huge. Almost like moving to a different language.
- jerryszczerry 9y ago> I've seen very prominent NN-course, suggesting Python 2.7 for all assignments and code samples, and quite useful library (also NN-related), supporting 2.7 only. Oh, that's plain silly. Isn't the whole point of Python 2.7 to facilitate the transition to Python 3?
- krick 9y agoSilly or not, but it's still very common mindset with scientific-oriented people (who care about ML, econometrics, statistics and such much more than "programming" per se), who form a quite notable category of Python users. Actually, for me they are the reason why I'm still using Python a lot (although I try to stick to 3.x), because for other use-cases, like scripting or web-dev I mostly (but not completely) moved to other languages.
- gcr 9y agoI understand the notebook machinery itself is running on Python 3, but can I still launch a Python 2.7 kernel? I am still working with Python 2-only libraries at the moment.
- goerz 9y agoYes you can. Kernels are completely independent from the notebook itself.
- 708145_ 9y agoWow, I thought that this would never happen.