14 ms·
Modernizing Python's IDLE
- michaelsbradley 11y agoI have found memories of playing around in IDLE while reading through How to Think Like a Computer Scientist, back in 2003/4. http://www.greenteapress.com/thinkpython/html/index.html http://www.greenteapress.com/thinkpython/html/index.html
- theandrewbailey 11y agoMy mom recently dug out my printed copy of that when I was learning Python during that time. For the past few months, I've been helping one of my friends in a Python based CS class (using 2.x, I think). I'm not sure how useful that hard copy would be.
- japhyr 11y agoI teach Python to high school students on a regular basis, and I'm really looking forward to seeing this project completed. Most of my students start out with zero technical experience, and simple things like installing a text editor just become one more hurdle they need to get past in order to start programming. Having a decent, usable text editor bundled with the language itself will be really helpful for absolute beginners.
- jaflo 11y agoI am really looking forward to an improved IDLE. If anyone is interested in contributing to the project (it is written in python), here's a link: https://docs.python.org/devguide/ https://docs.python.org/devguide/
- tomswartz07 11y agoGang: Here's a relevation that I only, just now, realized. Python is named after the Monty Python gang. This I knew. IDLE is a play off of Eric Idle. How have I never realized this before?
- theandrewbailey 11y ago(Not sure if troll, but I'll bite.) Don't feel bad. It took me a few years to realize that. It stands in contrast to the official coding examples, all of which are way longer than 4 bytes.
- gh02t 11y agoYeah, that's also why they tend to use 'spam' and 'eggs' instead of 'foo' and 'bar' in a lot of the official docs.
- mikestew 11y agoOh, then you've got some surprises waiting for you in the docs. I can't remember the specifics years later, but I recall thinking "odd that $SOMETHING <could have been the 'spam and eggs' thing> is sprinkled throughout the docs. I wonder why...oh."
- HCIdivision17 11y agoIt took me a while to figure out why I kept coming across references to the Cheeseshop. Turns out that's why PyPI has that little quote at the bottom. https://wiki.python.org/moin/CheeseShop https://wiki.python.org/moin/CheeseShop
- kevin_thibedeau 11y agoAlso the inspiration for the wheel packaging format. As in cheese wheel.
- akrolsmir 11y agoSomething else that blew my mind: Jupyter was named after JUlia, PYthon, and R.
- techdragon 11y agoAnd the Calysto Jupyter kernel project is based on the fact that the Jupyter logo is missing one of the Galilean moons. Naming is fun.
- witty_username 11y agoTk is just too old and bad. It doesn't support Unicode rendering properly of a lot of characters and lacks a lot of features of any modern GUI toolkit like Qt or GTK.
- markroseman 11y agoI think Tk is entirely reasonable for the types of "utility" applications that people are primarily using it for; nobody is going to start writing a flashy new cutting edge app in it today. For those with legacy code or other constraints where it makes sense, the TkDocs site is all about getting the most out of Tk by documenting the newer pieces that people likely haven't seen. IDLE itself is in that category of using Tk by constraint. There have been multiple forks of it, sometimes using alternate GUI toolkits. But for it to stay as part of the Python standard library, it has to only depend on other things that are part of the standard library. Which for GUI stuff, means Tkinter. And having it built into Python is a very big deal for a lot of people teaching Python, which is the main target audience.
- witty_username 11y agoTk is not just "bad"; putting lots of text into Tk freezes it, lack of Unicode support, multiple modern widgets are missing.
- mangecoeur 11y agoTrue... but the crazy thing is the other options aren't hugely better. GTK has poor OSX support, while QT is massive and the bindings situation is still unclear - it's workable for building an app, but would you want to have it included in the default install? Kivy is neat but comparatively immature and doesn't have native theming. WxWidgets can look good but doesn't seem to have Python3 support. I was really surprised by this actually - I wanted to create some simple GUI apps and assumed there would be something clean, small, and modern to replace TK... but nope. And all the documentation (including for python tk) is pretty terrible. The most realistic suggestion I've seen is... write you GUI in HTML and Javascript and use python for the backend server. Not a great situation when the best way to write a good looking GUI for Python is basically not to use Python...
- jamesdutc 11y agoI've recently seen a lot of demand in Python corporate training. High-quality corporate training hinges on maximizing student engagement. This typically means having students spend time in class writing programs. (In one four day class, I've had students write >20 programs.) IDLE is a surprisingly good tool for this. It's cross-platform and in the standard library. It postpones questions about which is the best editor/IDE. It avoids the tab/spaces problems. In fact, it's just about the simplest tool for teaching interactive development (i.e., coding with access to a REPL.) (I should note that this style of programming is distinct from how quants and data scientists work: they write more analyses than programs/scripts. When doing corporate training for quants and data scientists, Jupyter Notebook is the only way to go.) By the end of the class, most students are pretty tired of using IDLE. It's not a very good editor; only barely better than Notepad. As the article's screenshots show, it just looks ugly. It's not even close in functionality to an IDE or a `vim`/`emacs`+plugins. The REPL is extremely clumsy to use in practice (especially compared to `bpython` or `ipython`.) In fact, I would be shocked if anyone actually uses IDLE as part of their regular job. That said, it's a great teaching tool, and I'm glad to see someone putting effort into improving it.
- markroseman 11y agoExactly the target audience. I'm not a hardcore Python guy, but got involved because I had reason to try IDLE again recently, and after the initial "oh my $DEITY this is embarrassing" realized that not much effort would be needed to bring it up to the "entirely reasonable" level.
- rdtsc 11y agoYap first experience with Python for me was via IDLE. Remember reading about it, downloading, installing, launching IDLE, typing the first program and running it. Granted it was 16 years ago but that was very helpful and I remember being wow-ed by how easy, fast and simple everything was. After I had quickly switched to emacs for actual coding, but that initial impression made a huge difference.
- stuaxo 11y agoHave you got python itself running in a separate process so it can't stop IDLE ?
- markroseman 11y agoThe separate process stuff has been in there for a very long time. There is still an option to run as a single process but it has long been deprecated (and hopefully disappearing soon too).
- dbalbright 11y agoOf course a friendly REPL is part of any good IDE, but I could not have learned Python as fast as I did without DreamPie[1]. It's basically an IDLE that separates the input from the output—color highlighted as well. It seems small, but at least for me it really made a big difference. [1] http://www.dreampie.org/ http://www.dreampie.org/
- deleted 11y ago[deleted]
- lighthawk 11y agoWondering if an optional file list/tree could be on the left in window integration, similar to most other modern editors? Other than that, all looks good!
- wslh 11y agoIn the meanwhile I use Python Tools for Visual Studio: https://www.visualstudio.com/en-us/features/python-vs.aspx https://www.visualstudio.com/en-us/features/python-vs.aspx
- tehstone8 11y agoDiscovered this the other day, it's pretty decent imo.