Python's Built In IDE Isn't Just Sitting IDLE - Episode 243

Summary

One of the first challenges that new programmers are faced with is figuring out what editing environment to use. For the past 20 years, Python has had an easy answer to that question in the form of IDLE. In this episode Tal Einat helps us explore its history, the ways it is used, how it was built, and what is in store for its future. Even if you have never used the IDLE editor yourself, it is still an important piece of Python’s strength and history, and this conversation helps to highlight why that is.

Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? With Linode’s managed Kubernetes platform it’s now even easier to get started with the latest in cloud technologies. With the combined power of the leading container orchestrator and the speed and reliability of Linode’s object storage, node balancers, block storage, and dedicated CPU or GPU instances, you’ve got everything you need to scale up. Go to pythonpodcast.com/linode today and get a $100 credit to launch a new cluster, run a server, upload some data, or… And don’t forget to thank them for being a long time supporter of Podcast.__init__!



Announcements

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.
  • Your host as usual is Tobias Macey and today I’m interviewing Tal Einat about the IDLE editor for Python, it’s history, and what is in store for its future

Interview

  • Introductions
  • How did you get introduced to Python?
  • For anyone who hasn’t used it, can you start by explaining what IDLE is?
  • IDLE has been part of the standard library for Python for quite some time now. What was the motivation for adding it to the core of Python?
    • How has the evolution of our computing environment changed the motivation for maintaining IDLE and the use cases that it is most beneficial for?
  • What are the benefits of including a basic editor in the default distribution of Python?
    • What are some of the ways in which it is often used?
    • What are the limiting factors that lead users to other IDEs or text editors?
  • What role do you think IDLE has played in the growth of Python?
  • What was your motivation for getting involved as a Python contributor and working on the implementation of IDLE?
  • How is IDLE implemented and what are some of the ways that it has evolved since its initial introduction?
    • How well has the code for IDLE aged as new features and capabilities are added to the language?
  • What are some of the integration points available for extending IDLE?
  • What are some of the most interesting or innovative ways that you have seen IDLE used and extended?
  • What is planned for the future of the IDLE module?

Keep In Touch

Picks

Closing Announcements

  • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
  • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
  • If you’ve learned something or tried out a project from the show then tell us about it! Email hosts@podcastinit.com) with your story.
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Click here to read the raw transcript...
Tobias Macey
0:00:11
Hello, and welcome to podcast, the podcast about Python and the people who make it great. When you're ready to launch your next app, I want to try a project you hear about on the show, you'll need somewhere to deploy it. So take a look at our friends over at linode. With 200 gigabit private networking, scalable shared block storage, node balancers, and a 40 gigabit public network all controlled by a brand new API, you've got everything you need to scale up. For your tasks that need fast computation such as training machine learning models, they just launched dedicated CPU instances. They also have a new object storage service to make storing data for your apps even easier. Go to Python podcast.com slash linode. That's l i n o d today to get a $20 credit and launch a new server and under a minute and don't forget to thank them for their continued support of this Show you listen to this show to learn and stay up to date with the ways that Python is being used, including the latest and machine learning and data analysis. For even more opportunities to meet, listen and learn from your peers you don't want to miss out on this year's conference season. We have partnered with organizations such as O'Reilly Media chronium Global intelligence, od sc and data Council. Upcoming events include the software architecture conference, the strata data conference, and pi con us go to Python podcast.com slash conferences to learn more about these and other events and take advantage of our partner discounts to save money when you register today. Your host as usual as Tobias Macey, and today I'm interviewing tile and UPS about the idol editor for Python, its history and what is in store for its future. So Tyler, can you start by introducing yourself?
Tal Einat
0:01:49
Yes, it's pleasure. Hi, I'm today not I'm from Israel. I've been programming with Python since 2001. I'm now a core developer. Since 2010, of the Python language these days, I'm a partner and co founder of educational technology company foolproof, which develops tools for studying high school math.
Tobias Macey
0:02:15
And remember, hey, first get introduced to Python.
Tal Einat
0:02:17
Yeah, I learned Python and programming. In the course that I did before my military service in Israel and Israel, we have mandatory military service. When I served, it was mandatory three years. So we had an intense half year course we were taught a bunch of stuff. We were taught programming right from, from the basics. And we studied mostly C and Python. And we started with C and I remember distinctly that when we first started learning Python, the first course the first class with Python was just such a breath of fresh air. It was like love at first sight. And I've been loving using Python since then,
Tobias Macey
0:02:59
and so As we mentioned at the opening, we're going to be talking about the idol module in Python. So for anybody who hasn't used it, can you just start by explaining a bit about what it is?
Tal Einat
0:03:09
So idol is an ID, hence the name. It's an integrated development environment. It's named as it is after Eric Idle, who was one of the six cast members of Monty Python after which the language is named. So everything in Python is named after something Python related Monday Python, usually. So it's a simple ID. It's supposed to be usable and used by big mostly by beginning programmers beginning Python programmers and usually novice programmers in general. So its goal. It's different than most IDs and purpose Felicia, so
Tobias Macey
0:03:47
so as you mentioned, it's targeted mainly at beginners to the language or beginners to programming in general. And it's been part of the standard library of Python for quite a while now, and I'm curious if you happen to know the original motivation for adding it to the core of Python and some of the history behind it,
Tal Einat
0:04:03
yeah. So asked actually asked Guido about this in preparation for this podcast. And what he told me is that back in 1998, he just thought he was looking at IDs and specifically Visual Studio, which was ruling the windows world of software development. And he said, Well, it would be cool if we had something like that for Python. And Jen just started hacking on it. So we know, we'd have an arrest on the original creator of Python was also the original creator of it. And this is after he mentioned that in 95, he also created a browser, so he had a previous history of creating things that he just thought would be cool and doing that with Python. So that was the original motivation, and it sort of grew from there at some point that was in 98. In 2000, there was a discussion with several developers who, some of who don't join Greedo working on idol and they decided that they wanted to add a few major features and changes to idle, which they did in the form of creating a new project they called idle fork, which they developed outside of the main repository of idle for a couple of years. This was led by David Sure, along with Nicholas Riley and Peter Schneider camp. So they worked on that they added an RPC mechanism so that the Python commands themselves in the interactive shell would be running a sub process and make keep the GUI responsive at all times. and a bunch of other things which are we take for granted as being central features of idle came about that project. And that was merged back into the core Python code base in 2002. When the project was, excuse me in 2003, with the idle fork project was completed
Tobias Macey
0:05:50
because of the fact that idle has been baked into the language for a while, it's often pointed to as sort of the first environment for people to start expanding. ending with writing Python or learning to program. And so I'm curious what you have seen as being some of the main use cases for idle and how the original motivation of building it and having it as part of the language has evolved along with the evolution of the computing environments that we have and just the overall capabilities of other editors or the ease of use of getting started with Python and text editing environment.
Tal Einat
0:06:27
So I think when when we started working on it when the first few years of idle was developed, it was seen as it would this would be the Python ID similarly to Visual Studio being used for on Windows for developing the other Microsoft languages. But I think that view changed when they started the idle fork project. They defined very clear aims and goals for the project. And some of those were keeping it simple keeping it as a very simple and easy to use it and in later stages, in 2002, Kirby Kaiser took over leading the project. And later in the past few years, Terry J. Radio has been leading it. And again and again, when, when this discussion has come up, we've always decided to keep those as the main goals and I think that mirrors very well the main uses of idle it's mostly used by when teaching idle when teaching Python, excuse me, it's mostly used when teaching Python to new programmers or by new programmers, learning Python or learning programming. Or sometimes it's used when you just need a very simple idea without fully installing heavy editor or ID. And so, I'd say one has to get baked in always installed almost always installed with Python enables the second form of use when you just need a simple editor. You can always run it And the first type of use when using learning Python is really helped by keeping it very simple and easy to use and geared towards new programmers rather than power users. So and I mean, for example, one of the core developers, longtime core developer, Raymond head injure who a lot of what he does these days is teaching Python development. Raymond uses idle in his teaching almost every day. And he's been using it for many years, he's been one of the developers and also give giving us a lot of feedback on what happens when lots of people try to use idle to learn Python. So and he's just one example. We get a lot of feedback from him. But I know that a lot of other people teaching Python have used idle over the years very often.
Tobias Macey
0:08:49
And because of the fact that it is simple to get started with but also fairly simple in terms of its feature set. I'm wondering what you have found to be the sort of General limitations or the tipping point where people need to move beyond idle and into a different editor or a different IP and what idol has built in as far as being able to maybe stretch its use cases beyond the out of the box experience.
Tal Einat
0:09:17
So I think one case when people move on from idle is when they were looking for more powerful editing abilities. For example, anyone who is a power user of an editor such as vi or Emacs or any major IDP, such as Visual Studio, or the newer ones like Sublime Text VS code, they know those have lots of powerful editing features that allow you to just work faster, make changes to code much faster. The idol is purposefully meet missing many of those features, to keep the interface very simple and to keep what you need to learn to use it effectively, to a small set of things to learn, but that also it does definitely limit its usability. For anyone who wants more advanced editing features, it also lacks integration of many other things like refactoring tools that more fully featured IDs, have tools for running tests automatically tools for integrating with version control systems, and so on and so on. So, I think in many professional environments, when people are developing professionally, usually they work in an organization or at a team and they find themselves moving on to tools that are more widely used their team or integrate better with the toolset used by that team. The other side of idol that which we haven't discussed so far, but I think is one of its major advantages is for interactive work. And that's actually where so many ideas don't focus but idle has focused quite a bit. So idle shell its interactive environment which used to just enter commands and see their run command. See their output is very Very useful. It's relatively powerful even compared to alternatives. The it's more comparable to interactive environments such as ipython, or Jupiter. And so that is very usable and has some nice GUI features that are, for example, missing an iPod ipython. And it's also, its features are more easily discoverable things to the GUI compared to ipython, where you have to read more documentation or go through a tutorial. So I think for interactive use, I still use it almost daily for interactive things in Python, sometimes just for checking out. You know what a certain function does or getting, seeing the help for a certain class, it's very quick to just fire up idle shell and check it out there than to search through the docs. So I think that's sort of something that stands out in idle and makes it very usable, even for people who mostly use other environments for development.
Tobias Macey
0:11:54
And so I'm wondering if you can go through a bit more of the feature set that is built into idol so that people can maybe compare and contrast between the initial implementation that they might have from just typing idle at the command line and seeing a window pop up and then wonder what am I supposed to do with this versus people who are coming to Python from the experience of using some of these more full featured or heavyweight IDs or even something like Emacs or VI, where it's just a native text environment, and all the integrations are set up manually.
Tal Einat
0:12:25
So idle is, first of all, a graphic application. It works. It's cross platform. It's built on the TK. It's built on the TK graphical toolkit, which uses the TCL language underneath. And that's sort of a technical level, very interesting sort of integration. But what that allows it is to be very cross platform, it works on Windows and Linux and Mac and so on. And being a GUI environment with a very advanced shell. But being simple enough that anyone can just start using it without learning almost anything, is I think a major benefit and then Titles two major modes are it's it has editor windows for editing files with code, usually with code. And then the shell window. The editor windows are relatively simple editors, they do have basic features such as search, search and replace, you know, just anything you basically expect from an editor, it does have some auto completion, for example, it has a nice code context feature would. So while you're scrolling, you can see the context of the code you're currently looking at. So it does have few niceties. And one recent feature that has been asked for a long time that I've added is line numbers, which has been missing for many years. But other than that, as I mentioned before, it lacks features such as refactoring. It's anything that sort of goes beyond the context of looking at a single file of text. So that I'd say is the for the editor, Windows one very nice features, integration. Between the editor windows and the shell window, anytime when you're editing a file, you can hit f5 and run the code and that file in the shell and see the output there interact with it. If it's a, you know, ask for user input and so on. And then once that done running, you still have the namespace populated by that file. So you could inspect variables and classes, this sort of check everything that happened and keep continue working interactively after that's run. So it's a very nice environment for iterating quickly, just testing simple things out. And when you're learning that's one of the reasons it's very nice for learning Python. You can enter some code hit at five, see what happens, go back to the code, try fix what you've done or try something else and so on. And then the shell window has some really nice features like very nice auto completion call tips. It has released recently added a feature where it squeezes very long outputs, so they don't sort of fill up your shell and indefinitely, it squeezes, they've been through this small bar that you can expand or view in a separate window. And you can restart the, the shell, you can restart the separate Python process, which actually runs the commands without losing all of your previous output and has many other features. I won't go into all of them, but just to give a taste. It's a pretty nice, interactive environment. And that's really the reason one, why I started to use idle. Back when I was in the military, we would use idle for a lot of our interactive work after the beginning, we were using just simple command line a directive interface. And idle was much better than that, that that's actually what led me to begin contributing to idle when I when I was in the military, we developed a we extended idles capabilities, mostly the shell to make our interactive work more effective and then I will I wanted to bring some of those different It's back to Python cycle.
Tobias Macey
0:16:02
And so that's a good entry point to discuss some of your overall experience of working as a core contributor and some of the involvement that you've had with idle specifically over the years. So I'm wondering if you can maybe talk through some of the challenges that exist in the implementation of ayatul as far as adding new capabilities, and maybe discuss a bit about how idle itself has actually implemented and architected and some of the evolutions and changes that have happened up to the point where you got involved and then through to today,
Tal Einat
0:16:32
so idle is built on TCL TK, which is a GUI toolkit, which actually runs the TCL language underneath the hood. This is all done by the TK inter module and the Python standard library idle builds on that and uses that as its GUI toolkit very extensively. That influences a lot of the technical sort of the way it was built. So this was originally started in 98 by Guido and it's developed a lot since then, the code base shows that I mean, it's a win Eddie code base that has been developing continuously for 20 years shows its age. And Python is also developed a lot over those years. I mean, started before Python two. So that's definitely it's been going undergoing a lot of maintenance and updating in the recent years. But that's a lot of work. Terry J. Radio has been doing a really great job just tirelessly working to bring the code up to date and the recent for years, so it's a pretty good state. Now it's well tested mostly. And now, most of the changes are rewriting things that are just for Python three, since the Python two version doesn't need to be maintained even longer with the Python two sets at a couple of weeks of weeks from now. So the implementation it has an RPC mechanism for the main GUI process to talk, the sub process that actually runs the shell commands. I'm trying to think what I can say about the architecture itself. So, as far as architecture, it's pretty simple idols built. Mostly there's a central editor window class, from which the shallow window is actually a subclass, and a few other types of Windows like output windows for search results, and so on. And those classes pull in a bunch of modules, which are pretty independent, and they connect them together. So every major feature of idols such as auto completion, call tips, code context, search and replace. All of those are implemented in standalone modules, which the editor window or the different windows pull in and tied together. That's like the overarching architecture. And the other part of that architecture is really the RPC mechanism by which the shell communicates with the Python sub process for running commands. It actually act as a server talking with client, the two way RPC mechanism so that both the GUI can interrupt. For example, the GUI can interrupt the sub process if I hit Control C, or if I'm closing, idle. And the other way as well, I can get output or exceptions from commands running the show. So those are those are the two major parts of the sort of high level design of idol. And there is an extension mechanism. And originally many of these features were written as extensions. But we've been pulling all those extensions in as actual modules of idle, removing them from the extension extension from being written as extensions just so that it could be better tested and better integrated and avoid some funny quirks that arose from the extension API. So these days, there are any extensions that are shipped with idol by default, they used to be quite a few But you can still add other extensions, there aren't many. I mean, the Yeah, the hope that there would become an equal ecosystem of idle extensions never really panned out. There are a few sort of projects like idle x or V Python that were more forks of idle than just set of extensions, and they implement the various features as extensions, but you don't see people pulling in just water several key extensions into their idol for daily use, that's almost never happens. Part of that is because the just technically the extension interface isn't very user friendly. There's no easy way to install an extension you need to download the code and actually copy it into the library where your idol is and then copy specific part of the configuration text into your configuration files for idols. That's not a nice interface. That doesn't really make it trivial, and there are some thoughts of making that easier. But with that, Just there was lack of interest. I think that that's why that never actually happened.
Tobias Macey
0:21:03
And so as you mentioned there, the code for idle was started about 20 years ago. And now we're to the point where we're sunsetting Python to support. And so I'm curious how well the overall code in the idle module has aged as new capabilities and features in the language itself have been added. And as the sort of programming paradigms and GUI toolkits have evolved, and so I'm curious what the sort of pain points have been as far as keeping things up to date and keeping them runnable or sort of how well it has held up and then maybe some of the plans that are in store for the future of idle. Now that we can free ourselves from Python two and start to look forward to how it looks in a Python three only world.
Tal Einat
0:21:48
So the code base itself is being is in the process of being brought more up to date still backwards compatible with Python two, but with that being sunsetted and A couple of weeks, we'll stop doing that. And actually, many of the recent improvements and changes are no longer in the Python to branch and they were written. So they're not no longer compatible with Python two and going forward will be removing a lot of those backwards compatibility parts of the code base and make it more easier to maintain and easier to read. Overall, there's been a lot of work to update the code base. So it's in pretty good shape. Really the the hardest part of keeping idle in good working shape has been the evolution of operating systems and trying to keep up just trying to keep things working as they are is actually rather difficult part of that is because it's built on top of TCL TK and that project has had a difficult few years where it wasn't very well kept up to date. And they had all sorts of problems. I mean, a Mac OS, especially back in the years when it was called OS X, there were all sorts of problems there. That We had to work around or sometimes we just couldn't fix an idol because there they were just issues and TCL TK itself, sometimes we had at one point Python became shipping a specific version of TCL TK with its OS X or Mac OS installers, just to ensure that a good version because the version that Apple shipped was problematic, and the latest version that you could install from source was problematic. So we began shipping are all known to be good version of TCL. tk just to I mean, not just for idle to work, but everything based on TK Enter to actually keep working well, and we're still not in a great situation. As far as that goes. I mean, the recent Mac OS release, caused a few more things to break our support for the new dark mode of Mac OS isn't great yet, just to give two examples. And also, there are all sorts of bugs in the idol that we're having problems keeping up and fixing all of them, and doing so on all the different platforms. Also because just interested idle and maintaining and developing it as it hasn't been very high. And the past, I'd say year to Terry J. Reedy and I have been doing a lot of that work. So I think it's a bit better than it was before. But there's still a lot of room for improvement. So if anyone hearing this now, I would like to help I would very much be, I would be delighted to help anyone who would be interested to work on idol to guide and help you find interesting things to do and two, together to fix bugs or to move it forward and improve it.
Tobias Macey
0:24:33
And I believe that there have actually been a few projects that have tried to build more full featured editors on top of idol and using that as a base. I'm curious what you have seen as far as any projects along those lines or other interesting or innovative use cases that it's been leveraged for.
Tal Einat
0:24:50
So there's I'm aware of one that really wants a project that really added quite a few features and that's idol x, but I don't see that that's really taken off or seen. Why do you not aware of other major projects that tried to build a more fully featured ID on top of that there are some projects that try to use idle for more specific education or learning environments, I think v Python, which also has sort of, I think v. Python also has a version of idle with various changes. That's supposed to be used for robotics for controlling robots in an educational context. But I'm not updated on where that project is today. And it was started a long time ago. And there is some integration with idle with a Python turtle module, which is also to be intended for us to learn programming, more child friendly way or more visual way, but actually, there haven't been many significant projects that I'm aware of At least that I've done. So unfortunately, part of that is probably because the codebase is not the easiest to build uploaded to us. And
Tobias Macey
0:26:08
so as we've mentioned a couple of times idol is often used in a learning or beginning coder environment. And as you said, there's the integration with the turtle module. And I'm wondering what your thoughts are or your impressions as far as the impacts and benefits in terms of the adoption and growth of Python that idol has played. And the fact that there is this environment that makes it possible to have an easy to get started and easy to learn environment so that you don't have to install a whole bunch of different things to get started using Python.
Tal Einat
0:26:43
So I think it was more pronounced in the early years back in the 2000s. When installing many for many languages, you would need to install something like Visual Studio or big ice or install a build tool chain and interact Interested that once you had Python installed, which was relatively easily easy usually or you know, many systems had pre installed, you could just start get started. Similar to other what were called scripting languages like Perl, for example that were just there, you could always use them, which was very easy to pick them up and just start getting go get going. And on the other hand, those were usually scripting languages were usually just written in editors, Python having a ghuli ID, I think did make things much easier for beginners than, you know, opening vi or Emacs. Just In comparison, I think these days with the VS code and Sublime Text and many other powerful and widely available editors. And for Python, for example, pie chart was very widespread, but there are other great editors and IDs out there. I'm just not going to date of all because there's so many, I think the importance of idle and that has become reduced also in terms of interactive environment. I think at the time idol was really the idols shell at the time idols shell was really the only alternative to just running Python into command line for an interactive environment. But these days, we have ipython, and Jupiter and few others as well, that are really very, very good directive environments with a lot of features. So I think idols shell is big. So I think idols Shell has become much less used in recent years, just due to the widespread availability of great other tools.
Tobias Macey
0:28:33
Yeah, I think that the introduction of Jupiter as a new environment for getting people started to code has started to consume some of the use case for idle where it's definitely a little bit more complicated to get running on a local machine. But the fact that there are these web based environments for being able to experiment with the notebooks and incorporate the visual outputs of things like charts and graphs, maybe is starting to subsume the user base for idle. But for local development, I think it's definitely still has a lot of value for people to be able to just install Python, run a single command and then have that editor running without having to think about, well, what editor do I want to use? And how do I get it configured? And how do I get it running with Python?
Tal Einat
0:29:15
Absolutely. I mean, with more and more everything happening on the web or in the browser these days, so idle, obviously becomes less popular. And in this context, I still think I mean, one of the strong points of Python compared to practically any language is that you can fire up the interactive command line or interactive shell and just, you know, type help something and see or just try anything out immediately. You don't need to compile it, you don't mean that compared. That's also one of the nice things about JavaScript, you just open a browser, open the console and type something and see what happens in most other languages that's, you know, much more complicated to just try something out and see what works and that's when I teach Python a lot Just I tried to deflect as many questions as possible with volt just try it, it was a great environment for that just because everything being more graphic and more easier to understand the colored output and the interact the ability to restart the shell without losing your history, it has a lot of nice features for just playing around and seeing everything.
Tobias Macey
0:30:23
Are there any other aspects of your work on the idol project or your experience as a core contributor or the idol module specifically that we didn't discuss yet that you'd like to cover before we close out the show?
Tal Einat
0:30:35
Sure. So I mean, I mentioned that I began contributing to idle when I wanted to sort of help contribute back some of the nice features we developed for idle and that took a long time. That was sort of my first steps with contributing to open source. This was much before GitHub or get this was before Python even used Mercurial it was back on sbn with you needed to post patches To the issue tracker and wait for something to review them. We didn't even have code review tools. So people will manually apply the patches, try to locally review them and then just give, you know, right back on the issue tracker with comments. That process took a long time. And also I wasn't, I had no previous experience contributing to open source. And this wasn't something that was nearly as common as it is today outside of certain circles, like Linux development. So it took a while to understand to understand at the time, Kirby Kaiser was the leading the development of idle and it took a while for me to understand his vision for idol to keep things simple to cater to novice users rather than power users. So many of the features that I wanted to contribute were well declined or we had to pare them down or change them to make them simpler or ease more easily discoverable or more newbie friendly before they came in. And it took many years but eventually some of those things like it improvements to the auto completion or the squeezing, automatic squeezing of previous outputs and several other things didn't make it in. There are still some such features that haven't gotten in yet. I mean, I've been working for years on the search bar idle still uses a very old fashioned search like a fine dialogue. If you have a notepad, almost any editing environment these days has a search bar, I think even word today uses a search bar by default, rather than opening a dialogue on top of your window. Definitely every ID I know does this. But I always still get this huge dialogue, which is very clunky, but sort of getting this working, testing it on all the different platforms dealing with all the different edge cases. There's a lot of work and just getting someone to review and go through the whole process takes a long time. And I think for idle more so than other parts of Python simply because so few people actually so few core developers work on his so few people in general. So that's sort of one aspect that I think worth highlighting. Another thing I hadn't mentioned was that in 2004, we had a Google Summer of Code student take part in the Python projects and work specifically on idle. His name is I'm probably mispronouncing this, I'm sorry, Simon have headly car. So he worked through the summer and I cope mentor to him with Terry Reedy, Terry actually did most of the mentoring I helped here in there. And he did a lot of work. Adding tests mostly was think there's a big part of his work, but also he did the most of the initial work on writing the line numbers, feature and many other features as well. So he did quite a bit.
Tobias Macey
0:33:38
And I have to mention my friend, my good friend, novela fan with whom I served in the military. And he wrote, he wrote the code context feature and the call tips feature and I think he was either he wrote the auto completion feature or he added a lot to it. All right, well, for anybody who wants to get in touch with you or follow along with the work that you're doing or get involved with idol development. I'll have you add your preferred contact information to the show notes. And so with that, I'll move us into the pics. And this week I'm going to choose the show Mr. Robot. I started watching that recently and have been working my way through the episodes. And it's very good storyline, a lot of interesting character development. And they actually do a pretty good job of staying fairly accurate on the technical pieces. So it's always good to see that level of detail in a show because a lot of times they'll just throw the sort of usual hacker trope of just banging away on the keyboard and having everything start working magically. So it's interesting to see a lot of the social engineering aspects that they bring into the show to try and popularize the way that technology actually works. And so with that, I'll pass it to you, Tom, do you have any pics this week?
Tal Einat
0:34:40
Yeah, I have a couple. And as I work in educational technology, they'll be sort of educational. They'll be sort of education related, but they're nice and popular things. So the first one would be the movie Captain fantastic, which sounds like a superhero movie, but it isn't really I just won't spoil anything if you're at all interested in education. have children than you, it's a must watch, in my opinion, and it's sort of causes a lot of opinionated responses from people at all. But at the very least, it's thought provoking and interesting. And then my second pick is Paul Graham, of Y Combinator fame, recently posted a blog post about hackable tests, which I found, I connected to very much and I think gives sort of ties a lot to how almost all of our education systems are built and how they work. So I recommend reading that.
Tobias Macey
0:35:33
All right, well, thank you very much for taking the time today to join me and discuss your experience of working on idol and some of the history of that venerable module. So I appreciate all the work that you've done, and I hope you enjoy the rest of your day. Thank you to Tobias it was
Tal Einat
0:35:47
a great pleasure.
Tobias Macey
0:35:51
Thank you for listening. Don't forget to check out our other show the data engineering podcast at data engineering podcasts. com for the latest on modern data management. visit the site and Python podcast.com to subscribe to the show, sign up for the mailing list and read the show notes. And if you've learned something or tried out a project from the show, then tell us about it. Email hosts at podcast and a.com with your story. To help other people find the show, please leave a review on iTunes and tell your friends and co workers
Liked it? Take a second to support Podcast.__init__ on Patreon!