Q&A: New Developments in Development Languages
Programming languages have had a long and illustrious history. To learn about the latest trends in languages, we spoke with Bart Copeland, CEO of ActiveState, a developer of programming tools.
What are you seeing in the development community with regards to new programming languages?
Bart Copeland: The beauty of the development community is its egalitarian nature. Developers want to use whichever language is most appropriate for the task at hand with little regard for enterprise politics. Java is still the dominant language in the marketplace. The majority of our customers still rely on it for most of their projects. PHP, Perl, Python, and Ruby are other languages where we see a great deal of activity. Their use is quite widespread and they dominate on sites such as Github. Newer languages such as Scala and Clojure are steadily increasing their market share and are cropping up at Github and StackExchange.
In a recent Hacker News survey, these 7 languages are among the top 15 in the market today. With the prevalence of so many different types of languages, it is more imperative than ever that developers and IT departments have a fast, simple, and effective way to manage the resulting applications – on premise and in the cloud.
With the proliferation of so many different languages, how does IT handle the "language sprawl," and should they have to?
IT's role is not to limit "language sprawl" nor should it be. These languages are in use for a reason and limiting them will also constrain developers in what they can produce. Instead, IT should maintain systems that enable developers to use whichever tool they need to create innovative, functional, and appropriate solutions to business problems. The flipside is that these systems cannot and should not be overly burdensome to IT, which should still be able to easily maintain environments and deploy applications while supporting the tools that developers need. The goal should be flexibility for developers and control and efficiency for IT.
How are enterprises trying to rein-in that sprawl? Are they phasing out certain languages, and if so, which ones?
Enterprises that try to rein in sprawl usually don't succeed. Developers will always find a way to use the tools and services they want, under the table. Despite their best efforts, IT cannot control what it does not see -- rogue developers operating under the cover of shadow IT. Eventually, something will go wrong and IT will have to deal with it -- despite the legalities and lack of resources.
Rather than trying to rein in sprawl, enterprises are looking for ways to manage it. They want their developers to be unencumbered so that they can focus on creating best-in-class solutions. They also want to be efficient and maintain strict security and compliance standards. As a result, most are implementing guidelines and turning towards new tools and technologies, such as private PaaS, to help them achieve all of these mandates. Private PaaS provides the flexibility that developers want with the control and efficiency that IT needs. Instead of restricting, organizations that recognize reality and prepare for it will be better equipped deal with the resulting successes and failures.
Should developers be allowed to use the language of their choice?
Yes! Developers are the experts. They are the ones tasked with developing solutions to business problems and should be supported in how they want to work. Enterprises should not restrict nor should they turn a blind eye to what is happening. Instead, they should work with their teams to build and implement guidelines that everyone in the organization can abide by and be happy with. Equip your developers with the tools they need to complete the task at hand while still maintaining control and oversight over the process.
How do you run an organization where developers can bring in their own "stuff" be it language, stack, or cloud? How do you safely BYOX?
In order to safely and successfully "BYOX", organizations can do a number of things. For example, they can implement firm guidelines regarding BYOX so that security and regulatory agreements are not compromised. They can collaborate with developers and IT and make them a part of the process. This leads to buy-in and trust. IT needs to provide management tools, where necessary, to aid in the delivery and administration of IT services.
The foundation for a successful BYOX policy is trust. Enterprises need to trust their developers to choose the right tools and services. Developers need to trust in the enterprise's policies and guidelines and IT needs to trust in the vision. Developers should not be allowed to run amok -- that would only result in an overburdened IT department. IT should not be allowed to dictate to IT -- that will only result in subterfuge and resentment. Building trust amongst the teams and ensuring that the concerns of all key stakeholders are met is essential to a robust and effective BYOX policy.
How can enterprises as a whole benefit from BYOX?
Enterprises need to understand that if employees are using "X" it means that their customers will be, too. They cannot afford to ignore what their customers are paying attention to. By implementing BYOX, companies can foster innovation. Allowing developers to work with new and cutting-edge technologies will only serve to make their products/services better. BOYX also increases worker satisfaction -- permitting employees to use whatever device, tools, or services they want will make them happier. Instead of being dictated to, employees are able to work how they are most comfortable, while still remaining within the confines of the enterprise.
Of course, BYOX shift responsibility a bit. If a worker wants to use an iPhone instead of the mandated Blackberry, they can but they are then also responsible for it. This shift in responsibility will alleviate some of the burden from IT.
BYOX is an issue most enterprises must contend with. Facing it head-on with a clear understanding of the ramifications will enable enterprises to stay ahead of the trends, instead of chasing them.
What are the drawbacks?
BYOX can be hugely beneficial for enterprises, however if implemented incorrectly, there can be many issues. For instance, without proper guidelines and enforcement, the proliferation of tools can be difficult to manage. If everyone in a company could do what they wanted and how they wanted to, it would lead to chaos. Lack of standards and compatibility would lead to an overwhelmed IT department and a confused development process. There needs to be clear communication and protocols that everyone follows so that BYOX doesn't turn into "do whatever you want".
Security is another concern. A haphazard implementation of BYOX without thought given to security ramifications can lead to major security issues such as data security and compliance that must be addressed prior to allowing BYOX. Compromised data and not following governmental regulations can add up to huge financial and reputational costs.
Don't forget cost. When an enterprise decides to support any device, cloud, tool, or language, the maintenance costs will increase. IT needs to be prepared to manage all these different "Xs" and plan for the associated infrastructure costs. These can be mitigated using management tools such as a private PaaS, but it's something that enterprises should consider before going down this road.
Are there best practices you can recommend that enterprises can employee to exploit the benefits yet minimize the drawbacks?
There are many things that enterprises can do.
First, enterprises should work with the employees to develop guidelines. Instead of employing a top-down approach where edicts are handed down with little or no discussion, involving employees in the process from the start will yield greater benefits. They will better understand what the guidelines are, how they came to be, and why they have been implemented. Collaborating with employees will enrich the discussion process and lead to greater buy-in from troops.
Enterprises must give employees time to work with tools that IT finds difficult to support. Hackathons are a great way to harness and focus the creative energies of developers. Giving them time and space to be innovative and creative with technologies or devices that they may not use daily in their work could yield discoveries in areas previously not thought possible.
Structured and focused innovation programs such as skunkworks projects allows developers to work with "forbidden" technologies in a safe and controlled environment. Enterprises can have the peace of mind that IT is not overburdened and security is not being compromised yet they can still dabble in these areas hopefully yielding innovations and advancements.
Integrating BYOX into everyday life also helps IT manage developers. A great deal of resistance to IT comes from IT's inability to handle the influx of technologies that BYOX will bring to their doorstep. Finding productivity tools that alleviate the administrative burdens on IT, enabling them to focus on helping enterprises innovative, should be a key initiative of enterprises. Tools (such as a private PaaS) shave weeks off IT administration times, freeing IT to move from managing systems to advancing systems.