Checklist: Adding a Language
- Which language best fits our polyglot environment?
- What resources will we need to support the selected language?
- Should we DIY support or get commercial support to decrease risk?
Set yourself up for success. Use this checklist to answer questions like these.
Checklist: Adding a Language
checklist adding programming language
ActiveState has spent 20+ years building, supporting and maintaining open source languages for enterprise. And has learned organizations struggle with questions like:
- Which language best fits our polyglot environment?
- What resources will we need to support the selected language?
- Should we DIY support or get commercial support to decrease risk?
Set yourself up for success. Use this checklist to answer questions like these.
Before You Start
Do your research:
- Pick a language with strong community support
- Study & learn with a good book on the language
- Determine goal/application for the language
- Find allies on your team willing to back the initiative
- Calculate opportunity cost of building vs using a commercial distribution
- Decide between 3rd party indemnification or internal legal resources review language and library licenses
- Assess risk to the project/organization
- Get sign-off from required stakeholders
- Secure an education budget (in a “train the trainer” model, at least 500 hrs/trainer)
- Plan to set aside regular blocks of time (2-4 hrs/day) for implementation
Learning The Language
Reduce time to language fluency by completing the following tasks:
- Learn the syntax of the language
- Install a code linting tool
- Study examples of good code, and then tinker with them
- Solve some basic programming problems
- Find a mentor/trainer to review your code and answer questions
- Do pair programming (preferably with your mentor) to understand how/when/which third-party libraries/frameworks to use
- Write a shared library to exercise what you’ve learned
- Create a small project as a proof of concept
- Educate your whole team on what you’ve learned
Finding The Right Tools
Eliminate the ramp up of new tools & decrease “language adoption pain” by reusing your existing tooling as follows:
- IDE – check to see whether it can accommodate the new language
- Code Repository – ensure it can accommodate the new language
- Binary Repository – ensure it can accommodate the new language
- Pen Test/Security Test Tools – ensure they can accommodate the new language
- Packaging Tools – ensure they can accommodate the new language
- Performance Test Tools – ensure they can accommodate the new language
- Governance Tools – ensure they can white/blacklist the new language’s packages
- Code Quality Tools – look for plugins that support the new language
- Automated Test Tools – look for plugins that support the new language
Source for & learn about tooling you will need as ‘net new’, including:
- Build Tools – ask the community for recommendations
- Dependency Management Tools – ask the community for recommendations
- Unit Testing Tools – ask the community for recommendations
- Integration Testing Tools – ask the community for recommendations
- Functional Testing Tools – ask the community for recommendations
Updating Processes
Flexibility varies between languages so you’ll need to assess how extensive changes will be for two key processes:
- Build Process – create new or modify existing Continuous Integration (CI) scripts
- Deployment Process – create new or modify existing Continuous Deployment (CD) scripts
Empowering Operations
Don’t forget to consider what’s required to put a new language into production:
- Verify License Use – does the language distro require a production license?
- Consider Commercial Support – do company policies require commercial support of applications running the language before deploying to production?
- Optimize Server Settings – for the specific runtime (.Net, JVM, etc)
- Determine Hardware Resources – memory, disk space, I/O, etc requirements
- Vet Monitoring Tools – do they work with the new language?
- Test Existing Security Tools – do they work with the new language?
For more information on adopting a new language in your enterprise, refer to this whitepaper “The Polyglot Enterprise: Best practices for Adding a New Language”
About ActivState
ActiveState helps enterprises scale securely with open source languages and gives developers the kinds of tools they love to use. More than two million developers and 97% of Fortune 1000 companies use ActiveState open source language builds including CA, Cisco, Pepsi, Lockheed Martin and Nasa. To learn more, visit our Why ActiveState? Page