TL; DR: With their distributions of dynamic open-source languages, ActiveState lets developers quickly and efficiently create, deploy, and manage applications. Their teams have long played an active role growing the usage and communities of Perl, Python, Tcl — and now will do the same with Ruby, Node.js, Go, and Lua with recently announced distributions. Director of Product Management Jeff Rouse gave us a look inside the excitement of streamlining developers’ workflows and extending the functionality of open-source languages, along with the responsibility and challenges of providing enterprises with the right tools to maximize success.
As leaders in providing open-source languages and developer tools, ActiveState employees consider themselves very fortunate to contribute to precompiled language distributions that help developers work more efficiently.
“It’s a bit of a thrill to think that you’re actually putting out distributions that potentially millions of developers are going to build on top of,” said Director of Product Management Jeff Rouse.
With that excitement, however, comes the massive burden of responsibility, challenges, and careful considerations that go into making products that will be as useful for individual developers as they’ll be for enterprise-level companies.
“You can’t just send something out that’s half-baked,” Jeff said. “You know once you put it out there, tens of thousands of downloads are going out the door. You have to make absolutely sure that what’s in there is the right stuff.”
Balancing fast innovations with safety and security has been a skill ActiveState has mastered throughout nearly 20 years of distributing dynamic open-source languages Perl, Python, and Tcl, as well as developer tools such as the Komodo integrated development environment. ActiveState boasts more than 32 million downloads and supplies 97% of the Fortune 1,000 with stable, secure, and supported language distributions.
“The idea is we want to make one cohesive way for development teams to move forward,” Jeff said. “You don’t have to download anything else, it’s all there for you.”
Nearly 20 Years Spent Developing Tools for Efficient, Compliant Coding
Founded in 1997, ActiveState maintains a “long and proud history” in the open-source community, Jeff said. ActiveState has built development tools such as Komodo IDE and language distributions for their entire existence, along with a few other products, such as Stackato, a Platform-as-a-Service solution acquired by HPE for their cloud division.
ActiveState provides free distributions for non-commercial use but includes in-depth support, licensing, compliance, and indemnification protections for commercial/enterprise clients. Everyone may use the distributions for development and testing purposes at no charge, but commercial users must pay for production use.
“We have such depth with supporting different platforms and our main languages on those platforms. Enterprises can come to us with almost any issue and we can sort it out,” Jeff said. “Peace of mind is a huge thing, knowing they can call us and get the answers they need.”
Easy Installations of Precompiled Perl, Python, and Tcl
Unlike source packages available straight from open-source communities, ActiveState’s distributions are binary packages that are precompiled for a variety of architectures.
“You don’t have to install any compilers, and the interpreter is right there,” Jeff said. “It’s all right there, ready to go. In our upcoming distributions, you’ll be able to download Python and Komodo all in one go and literally start doing test-driven development all the way through to commits, straight into git, all without having to download anything else.”
Komodo Development Environment and Editor Conforms to Your Needs
Released around 2000, the Komodo integrated development environment is a polyglot, or multi-language, editor built on top of a Mozilla framework, according to Jeff.
“You can really take any modern language and develop it inside of Komodo,” Jeff said. “Just about any language you can think of, Komodo has built-in support.
Written predominantly in Python, Komodo integrates with major code revision platforms such as Mercurial, Git, Subversion, and Perforce.
“You can do all of your development, testing, commits, and team code collaboration inside of the IDE,” he said. “You can work it into whatever workflow you want.”
Coming Soon: ActiveState Adds Ruby, Node.js, Go, and Lua Distributions
After more than a decade of focusing on Perl, Python, and Tcl, ActiveState announced in November 2016 they would more than double the number of supported open-source languages by adding distributions for Ruby, Node.js, Go, and Lua.
“These languages all have very active communities and enterprises that are starting to adopt them in a big way, and we want to be there to help them,” Jeff said.
As with the Perl, Python, and Tcl distributions, ActiveState will include free, open-source versions in addition to supported distributions for enterprise users.
“Our customers voiced that these were the top languages they wanted to see included in our new offering,” CEO Bart Copeland said in a press release. “We’re starting with these, but as we continue to listen to customer requests and overall market demands, don’t be surprised if you see more ActiveState language distributions released over the next while.”
Inside ActiveState’s Roadmap, Processes, and Biggest Accomplishments
ActiveState tries to release quarterly updates of their distributions, but Jeff said the process is dependent on when the open-source communities release new source packages.
“There has to be enough time for our internal resources and the team to do the best job they can,” he said. “The biggest trick is all about timing.”
ActiveState takes the new source packages and runs them against their own platform integration tests. In addition to Windows, Mac, and Linux, the company’s language distributions support Oracle Solaris, IBM AIX, and HP-UX.
After identifying any potential issues, ActiveState’s experts work in a centralized build system that handles all the languages. Jeff called the development process pretty straightforward, saying the team uses git for source control while the custom build system compiles the languages, packages, and documentation across a wide variety of platforms and operating systems.
“We feed the build system the latest community source code, see the results, make some judgment calls, and do some research, and keep refining the process until we have all the builds ready for a particular language version,” he said. “Sometimes there might be potential ramifications in the custom builds for our enterprise customers, so we have to keep those in mind as well.”
Reinvigorating Perl Development and Evolution
When open-source Perl development and support stalled as the community focused on Perl 6, Jeff said ActiveState kept the dynamic language going by continuing their distributions and support for enterprises.
“When a language stops evolving, it doesn’t mean security stops,” he said. “There’s all kinds of elements to it that still need to be maintained.”
Introducing Solutions for Package Management
Early versions of Perl, Python, and particularly Tcl struggled with package management. ActiveState responded to the challenge by building binary packages in all the different languages and operating systems so that developers could download and install the precompiled language directly from the command line.
“In recent years, Perl and Python have gotten their community versions much more sophisticated,” Jeff said. “That’s not a problem we necessarily have to solve for enterprises anymore, but for quite some time we were one of the sole ways to get binary packages of those languages.”
Dealing With Challenges to Keep Developers Innovating
ActiveState developers routinely interact with the open-source language communities to stay abreast of new features or potential bugs being introduced with each update. They balance those issues with ActiveState’s internal timelines, as well as the needs of their enterprise customers.
Recently, ActiveState made the tough decision to not include a recent OpenSSL patch. The update addressed an emerging issue, but the language experts at the Vancouver, British Columbia, company didn’t believe the issue was critical enough to hold up releases and felt the patch hadn’t seen enough real-world testing yet.
Turns out, the patch introduced a new “critical security hole,” according to Jeff. “The people working on security in the community code have an incredibly tough job, and these things can happen. By waiting for the new update, we could then provide the most secure product to our customers in a reasoned and timely fashion with greater certainty.”
Ensuring the latest builds have the best security will remain integral to ActiveState’s offerings in 2017.