Development software downloads

New Mexico Supercomputing Challenge, Oct. 2019

Java

Java Development Kit (JDK)

Most widely available versions of the JDK have at least 2 sources. Below, we’ve listing Oracle-licensed JDK and GPL-licensed OpenJDK downloads. Oracle-licensed releases permit no-cost non-commercial (including educational) use, while OpenJDK-based releases are licensed under the GPL w/ classpath exception license, which permits even most commercial use at no cost. Apart from that, there is little (if any) practical difference between releases of the same version from the different sources.

We’ve listed several different versions of Java here. Unfortunately, this is necessitated by the practical fact that different versions are used for different purposes. For example:

As bad as the above seems (and it can certainly be very inconvenient), it is made considerably less painful by the historic and ongoing commitment by the Java language developers to long-term backward compatibility of the Java Virtual Machine (JVM) and forward compatibility of the language itself and the JDK. For example, almost all Java bytecode that was compiled in JDK 5 will generally execute without any problems on the Java 10 JVM; beyond that, even in cases where there might be bytecode-level issues, it is very likely that old Java code can be recompiled, with minimal changes, by a more recent Java compiler, and then run on a more recent JVM.

JDK 13

This is the most recent JDK release: as of this writing, it’s less than 1 month old.

Standard installers
Portable installers

Currently, no portableApps.com-based or other flash-drive-targeted installers are widely available for JDK 13.

JDK 12

JDK 12 is only about 7 months old; however, since it’s not an LTS release, official support from Oracle has already ceased, and no further public releases beyond 12.0.2 are expected. On the other hand, Oracle downloads are still available, as are some OpenJDK downloads—including a portableApps.com version.

Standard installers
Portable installers

JDK 11

This is the most recent LTS release of Java; the next LTS is expected to be Java 17, which is planned for 2021. The latest release of JDK 11 is 11.0.4.

Standard installers
Portable installers

Currently, no portableApps.com-based or other flash-drive-targeted installers are widely available for JDK 11.

JDK 8

While this may seem out-of-date, this is a widely used long-term support (LTS) release. Many organizations continue using JDK 8; it is the version of Java used by the Android SDK (even when programming in the Kotlin language); it is also the version of Java used by NetLogo. (Note that NetLogo downloads include their own copies of JDK 8. Thus, if your only use of Java is in NetLogo, you will not need to download and install a separate JDK.)

The latest release of Java 8 is 8u221.

Standard installers
Portable installers

Development environments

JDK installers don’t include a development environment (a code editor that connects to the language compiler/interpreter, allowing in-editor compilation and debugging). However, there are some very good open source IDEs for Java.

Python

One of the most interesting aspects of Python—or more specifically, the way it’s typically used—is the availability of distinct distributions, or collections of tools that include not only the basic Python development environment (the core interpreter, library, REPL, and rudimentary IDE), but also many additional 3rd-party libraries, IDEs, and other tools. In most cases, a single installer can be used to install an entire Python distribution—and of course, the setup can be further customized after installation.

Given the above, we’ve not only included the download links for the core Python toolset, and for a few IDEs, but also for a couple of popular Python distributions.

Core

One of the more challenging aspects of Python has been the limited backward compatibility at the binary and source levels: new releases of Python are often incompatible with 3rd-party native libraries released for the previous versions, and sometimes these new releases introduce changes that even break Python code written for the previous versions. The good news is that these incompatibilities usually happen only with major and minor version number changes: e.g. 2.6.x to 2.7.x, 3.5.x to 3.6.x, 2.x to 3.x (especially)—but not 2.7.5 to 2.7.6, or 3.5.3 to 3.5.4.

Given the above, we’ve included links to several versions here. For any specific learning or development project you have in mind, you should find out what versions of Python are supported by the libraries and tools you are planning to use, and install accordingly.

Development environments

Distributions

Anaconda

Anaconda is a popular, powerful, multi-platform (Windows, OS X, Linux) Python distribution that includes a large set of tools and libraries for a wide range of Python development projects. Just as important, Anaconda includes tools for setting up and maintaining multiple Python environments on a single computer; among other benefits, this helps developers work around the compatibility issues between Python versions.

WinPython

This is a Windows-only distribution, intended for a low-configuration-impact installation: by default, it makes no changes to the Windows registry, and doesn’t have to be installed in the \Program Files directory. Because of this, it’s well-suited to installation on a portable drive. In past years, we’ve further customized the setup so that WinPython works with the portableApps.com platform, and is pre-installed on the flash drives distributed to Supercomputing Challenge participants. However, that’s a custom configuration: there isn’t a portableApps.com-targeted installer available.

The NetLogo toolset is, for the most part, self-contained: It includes a code editor, a set of UI development tools, a number of extensions that add significant capabilities, the runtime environment for executing models, and its own internal JDK, which the development and runtime environments need to function.

For a programmer interested in writing new extensions, Java and Scala are generally the languages of choice, and a Java-focused development environment (including a JDK and an IDE) would need to be installed. For most NetLogo model builders and users, however, installing NetLogo itself is sufficient.

The current version of NetLogo is 6.1.1. Models created in any NetLogo 5.x version can generally be opened and executed in NetLogo 6.x; models created and saved in NetLogo 4.x would generally need to be opened and re-saved in NetLogo 5.x before they can be opened and used in NetLogo 6.x. Fortunately, the NetLogo download site has several older versions available.

Downloads

Standard installers

Portable installers

In the past, we’ve included NetLogo on a portableApps.com-based USB flash drive for Supercomputing Challenge participants. However, this is a custom configuration (there is no NetLogo installer produced for that environment), which takes time to setup, and time to update for new releases of NetLogo. This year, because of a delay in delivery of the flash drives, we didn’t have the time to set them up with NetLogo ready-to-run.