Tuesday, September 15, 2020

PyDev 8.0 released (17 years of PyDev, typing support, MyPy and Debugger)

Wow, PyDev is turning 8.0... the 8.0 version probably doesn't do much justice as it's actually being developed for 17 years already! 😊

I'm actually pretty happy on how things are working around it right now... Some interesting points:

  • Many users now support PyDev through Patreon or PayPal -- so, it's been a while since I spent time to do a dedicated crowdfunding campaign (which usually demands quite a bit of time). That funding also allows having additional help (it's what currently sponsors the work of Luis Cabral in PyDev).
  • It has a good amount of users (although it doesn't have as much users as it did in the past as there are many good Python IDEs available in the Python ecosystem now) -- I'm actually quite happy with this as for some time it seems like Eclipse had such a big market share that users that didn't like it had to bear with it, so, I'm pretty glad that there are alternatives now, even if it means its market share isn't as big as at was -- so, although this may mean less users it also means happier users.
sidenote: it's hard to actually get the real usage stats because telemetry is not baked into PyDev -- there are individual file download counts in Bintray (which generously hosts the PyDev update site) and Sourceforge (which summed currently put it around 32k downloads/month)... anyways, I'm always a bit skeptical of download stats, so, I currently define success based on the number of supporters in Patreon/PayPal and LiClipse licenses (all of which are at an all time high 😊) than the raw number of downloads.
sidenote 2: I've never really lived from the PyDev income (I worked many years doing scientific computing in Python and nowadays I'm onto consulting) -- at this point it'd probably be in the Ramen profitable stage, but there's an interesting dichotomy in that if I lived only from it I wouldn't be able to dogfood it as much as I do now as it's a Python IDE done in Java (so, I'm happy in having it as a side hustle), but it's good that it got to a point where I can have additional help to do it (my time is definitely very limited nowadays, compared to 17 years ago when I started working on it).

Ok, on to news on the PyDev 8.0 release...

As with the previous release, this release keeps on improving the support for type hinting and MyPy.

On the MyPy front, besides showing an error it will also show the related notes for a message on the tooltip (which would previously be available only in the output view) and MyPy processes are no longer launched in parallel when using the same cache folder (as this could end up making MyPy write wrong caches which required the cache folder to be manually erased).

In the type inference front there are multiple improvements to take advantage of type hints (such as support for Optional[] in code completion, handle types given as string and following type hints when presenting an option to create a new method in a class).

The debugger had a critical fix on the frame-evaluation mode (the mode which works by adding programmatic breakpoints by manipulating bytecode) which could make it skip breakpoints or even change the behavior of a program in extreme cases.

Besides this, other niceties such as code-completion inside f-strings are now available and this release had many other fixes (see: https://www.pydev.org for more details).

 So, thank you to all PyDev users and here's to the next 17 years, hope you enjoy using it as much as I enjoy making it!