Red Hat Enterprise Linux 7 is now GA and so it's time to write some code and/or port your applications. So let's take a quick inventory of development tools, shall we?
With RHEL, there are 2 primary sets of toolchains for you to use. First, there's base RHEL 7 tools (like RHEL 6) that will be supported with RHEL 7 for 10 years (more below). Second, there are complementary tools in Red Hat Software Collections (RHSCL) and Red Hat Developer Toolset (DTS) that are updated fairly frequently (to keep up with the upstream) and are supported for 2-3 years* with major releases every 12-18 months*. Which to use you ask? (Thank you for asking.) As a general rule, if you need your tools supported for 10 years, use the base RHEL 7 tools. If you expect you'll be wanting to A) update to newer versions of your tools at some point, B) want updated features, and/or C) want versions compatible with OpenShift cartridges, then go with RHSCL.
Red Hat Software Collections are also supported on RHEL 6, too, so applications built with RHSCL components on RHEL 6 can be moved to RHEL 7 later when you're ready. In addition, RHSCL and DTS collections can run on RHEL in a RHEV virtual machine, Docker container, or OpenStack.
So let's take inventory of what's available and where to find them:
C, C++, Fortran
RHEL 7 has gcc 4.8 for your C, C++, and Fortran development. Red Hat has a great engineering team that's been contributing to the ISO C++ standards development and prototyping those features in gcc for a long time and much has been enhanced over the years.
In addition, you can use Developer Toolset 2.1 (DTS) to use essentially the same gcc 4.8 to compile on RHEL 6, and deploy on either RHEL 6 or 7. Since DTS is not on RHEL 7 yet, this gives you a head start on RHEL 6 so you can code for RHEL 7 even before you have it (RHEL 7) installed or deployed on your system or in your organization.
As with RHEL 6, RHEL 7 has OpenJDK7 too. In RHEL 7, OpenJDK7 is the default JVM. Java applications written for OpenJDK 7 should be portable from RHEL 6 to 7. (BTW, Java installs as a typical RPM install.)
RHEL 7 includes Python 2.7, Ruby 2.0, PHP 5.4, and Perl 5.16.
RHSCL (see the link for other components) includes these programming language versions: Python 2.7 and 3.3, Ruby 1.9.3 and 2.0, PHP 5.4 and 5.5, Perl 5.16, and Node.js 0.10.
Again, if you expect to update your programming language version, use the RHSCL version.
RHEL 7 includes MariaDB 5.5 and PostgreSQL 9.2, and RHSCL includes these too. In addition, RHSCL includes MySQL 5.5 and MongoDB 2.4.
SOMETHING TO REMEMBER FOR RHSCL AND DEVELOPER TOOLSET:
- RHSCL and DTS components can be found in their own RHN Channel or Subscription Manager Repo as appropriate. Note that both are included with all Red Hat Developer Subscriptions, Red Hat Standard and Premium subscriptions, and most Academic subscriptions.
- If you've not installed RHSCL components before, definitely check the installation guide as there could be some gotchas to avoid.
You can find more about developing for RHEL 7 at https://access.redhat.com/site/products/red-hat-enterprise-linux/developers.
*Major releases of Red Hat Software Collections are supported for 3 years with major releases approximately every 18 months. Major releases of Red Hat Developer Toolset are supported for 2 years with major releases approximately every 12 months.Last updated: September 18, 2018