Posts tagged ‘JES’

Final (likely) version of JES released, 18 years after first release

JES 6.0 is now available at JES is the Jython Environment for Students — it’s a Python IDE implemented in Java and with support for Media Computation built in. It was a lot of work for a bunch of people. Here are the notes from the release as a summary and acknowledgement for all the effort that brought this version fruition.

This is likely the final version of JES, unless a Jython 3.0 is developed.

This version was brought to completion by Nigel Charleston, based on the beta work of Veronica Day and Audrey Zhang (see discussion at this blog post Many thanks to R. Benjamin Shapiro for helping us with many technical questions.

JES 6.0 updates Jython to 2.7beta, uses the latest version of JMusic (from, fixes many bugs, will run with Java 8, and creates a new facility to generate pictures from a collection of pixels and sounds from a collection of samples.

The Mac version is a little more complicated to run than usual. You will need to have Java 8 installed to run JES. Thanks to Brian Howard and Michael Stewart for helping to figure this out.

The rest of the Mac version installation instructions can be found at the release page.

JES was originally written by a team of Georgia Tech undergraduates taking Senior Design in Summer 2002. It’s been in use and (sporadic) development for almost 18 years now. The previous version of JES was downloaded over 71K times (see counts here). I would not have predicted in 2002 that JES would still be used in 2020, with little maintenance and no additional funding. Software has to be continually maintained, right? I claim no great genius behind the design. How did it happen that it’s still working and being used?

An even more interesting example is our Squeak-based Wikis (Swikis) which were first developed in 1997. Jeff Rick created the version that we used in classes, and wrote about the process in what I think is the first ACM publication on wikis in 2000. Even after he graduated in 2007, they just kept going. The server is still running today — I can find at least one Swiki there dating from 2002. I’ve patched the Swiki software only once or twice since Jeff graduated. Jeff did a great job designing Swiki, but I suspect that even he’d be surprised at how long they’ve run with essentially no maintenance.

What are the characteristics of educational technology that remains viable and usable (i.e., useful and actively used) with very little maintenance for well over a decade? Schools are under-resourced, as I talked about in the Thorndike vs Dewey blog post. It’s great to have educational software that just keeps going without maintenance. Maybe that it’s a certain class of software that works like this. Is it that JES and Swiki do so little, such that they’re really just frameworks on which to hang others’ content? Maybe that’s why they’ve been able to keep going for so long?

Your thoughts would be welcome.

March 2, 2020 at 7:00 am 3 comments

Beta release of new JES (Jython Environment for Students) now available: Media Computation for Python IDE

Veronica Day and Audrey Zhang are two undergraduate researchers with whom I have been working here at University of Michigan to update JES (Jython Environment for Students), the Python IDE for Media Computation.  We last updated it in 2015 (see announcement post here), so it’s long overdue. The last version has been downloaded over 50K times (see counts here). I’m grateful to Veronica and Audrey for their hard work.

Besides working their way through the bug list on GitHub, and adding contributed features into the main trunk (like Ben Shapiro’s support for Mac retina displays – many thanks, Ben!), they have added support that I’ve been wanting for awhile. We can now create pictures from a collection of pixels and sounds from a collection of samples. This allows for a more functional style of media manipulations. In the example below, we makePicture by filtering for only certain pixels with a list comprehension ([px for px in getPixels(p) if getRed(px)<120]).

Please try out the beta version of JES and let us know of errors. Thanks

We plan to update a few more parts of this version before the 6.0 release. In particular, we’d like to upgrade to the latest Jython and the latest JMusic. I’m expecting some of our regression tests to fail on that, so there will be some tweaks yet.

This may be our last release of JES.  Jython is no longer in development (see post here). I’ll have to try again to get Media Computation to work in CPython (see last try here) and/or move to one of the browser-based Python implementations.

July 22, 2019 at 7:00 am 3 comments

JES 5.02 Now Released, and Media Computation 4th Edition Slides Available

JES 5.02 is now released at  I have links to all the main downloads at .

This is a maintenance release.  Thanks to Nina Koch’s student, Henry, we have fixes for colorizing and some other problems.  Henry has also written code to allow for capture of keystrokes and mouse movement in a picture window, so that you could build some simple games.  I’ll save that for JES 5.10.
I don’t do JES releases that often, so in-between, I forget how painful cross-platform development is. JES is all written in Java and Jython, which means we “write once, test everywhere.”  I developed mostly on Mac OS X, but makensis (for Windows Installers) doesn’t work on Mac OS X.  So I ran Ubuntu in VirtualBox to build the Windows installer and test the Linux version.  But I still had to test on Windows (e.g., to make sure that the Sound Explorer was fixed).  It’s all details —  ls here vs. dir/w there, can’t install Oracle Java from Ubuntu installer, remembering sudo apt-get, Lenovo toolkit updater interrupting installations…
From Github:
 Fixes in JES 5.02 (with many thanks to HenryStevens and sportsracer48 for fixes):
  • Fixes a problem if you quit during raw_input that you can’t do another raw_input
  • Makes the Sound explorer fully functional again
  • Fixes colorizing
  • Makes autosave work again
  • Fixes a threading error if you hit return too rapidly in the Command Area
  • Unicode characters in input file get flagged. (Jython can’t execute a line with unicode characters on it.)

In addition,

You can find all the fourth edition Powerpoint slides (including a 68Mb zip of all of them) at I’ve put some of the Peer Instruction question slides into the chapter PPT slide decks, but you can find more at the instructors-only website (see the Media Computation website for more on the teacher website).

Most of the changes are in the early chapters. Chapter 3 on text and language manipulation is all new. The latter chapter PPT slide decks have a few new slides in each deck, including:

  • Creating state-preserving versions of picture manipulation functions in Chapter 16 on Functional Programming
  • Subclassing Picture and Sound to move functions into methods in Chapter 17 on Object-oriented Programming
  • Recursive turtle patterns, which are possible with an improved Turtle class in JES 5 in Chapter 17

May 15, 2015 at 7:59 am 1 comment

JES 5 Now Released: New Jython, Faster, Updated Watcher, with Jython Music

Matthew Frazier is an undergraduate at North Carolina State University who contacted me this last Spring.  He was going to be in Atlanta for a couple of months and was looking for a research opportunity.  Barbara and I had just been talking about how JES needed to be updated.  I checked his references and hired him without ever meeting him.  Wow, did that work great!
JES 5 (the Jython Environment for Students) has just been released at:  Matthew did a great job updating our workhorse for Media Computation Python (which was originally developed in Summer 2002 and is still used daily).  JES includes a full implementation of Jython, plus support for media manipulation — libraries, help functions, and explorers for looking at individual pixels and samples. Here’s a one-screen overview of JES (click on it to make it bigger):
JES window to left with program area and command area (REPL), Watcher button for debugger, two image explorers, and one sound explorer.  Help is under JES Functions menu and Help menu.
Some of the things he did for JES 5 include:
  • First, we’re on github!  Come join us in stomping out bugs and making JES even better!
  • Upgrading the Jython interpreter to version 2.5, making available new language features and speeding up many user programs.  I have been working on the 4th edition of the Python MediaComp book this summer, and have introduced the time library so that users can actually time their algorithms (one of those CS Principles ideas), so I had ready-made programs to run in both JES4.3 and JES5.0.  The speed doubled.
  • Adding code to JES and the installers to support double-clicking .py files to open them in JES, on all supported platforms.
  • Bundling JMusic and the Jython Music libraries, allowing JES to be used with the text “Making Music with Computers” by Bill Manaris and Andrew Brown.  This is super exciting to me.  All of their examples (like these) work as-is in JES 5 — plus you can do sampled sound manipulations using the MediaComp libraries.  The combination makes for a powerful and fun platform for exploring computation and sound.  My thanks to Bill who worked with us in making everything work in JES.
  • Adding a plugin system that allows developers to easily bundle libraries for use with JES.
  • Fixing the Watcher, so that user programs can be executed at arbitrary speeds.  This has been broken for a long time, and it’s great to have it back.  When you’re looking for a bug in a program that loops over tens of thousands of pixels or sound samples, the last thing you want is a breakpoint.
  • Adding new color schemes for the Command Window, which allow users to visually see the difference between return values and print output.  This was a suggestion from my colleague Bill Leahy.  Students when first learning return can’t see how it does something different from printing.  Now, we can use color to make the result of each more distinctive.  Thanks to Richard Ladner at ACCESS Computing who helped us identify color palettes to use for colorblind students, so we can offer this distinction in multiple color sets.


  • Fixing numerous bugs, especially threading issues.  When we first wrote JES, threading just wasn’t a big deal.  Today it is, and Matthew stomped on lots of threading problems in JES 5.  We got lots of suggestions and bug reports from Susan Schwartz, Brian Dorn, and others which we’re grateful for.

Thanks to Matthew for pulling this all together!  Matthew’s effort was supported by NSF REU funding.

September 18, 2014 at 8:49 am 1 comment

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,004 other followers


Recent Posts

Blog Stats

  • 1,875,358 hits
September 2021

CS Teaching Tips