adjective 1. knowing or using several languages.
noun 1. a person who knows and is able to use several languages
Polyglot is not a technical term; it' a linguistic term. As you can see from the definition, it refers to someone who knows and uses multiple languages. Although its origin is not in computer science term, the term has been adopted by the technical industry to describe software developers who know and use more than one programming language.
Last night, multiple technical communities in the Norfolk/Virginia Beach region came together to discuss polyglotism, whether it's important, and to project the direction of software development into the foreseeable future.
- Kevin Griffin - CTO and Co-Founder of Winsitter, and Founder of the Hampton Roads .NET Users Group.
- Kevin Curry - Co-Founder of Bridgeborn Inc, and Program Director with Code for America.
- Ryan Castillo - Founder of Challenge Accepted, and Co-Organizer of 757rb.
- Ken Taylor - Senior Software Engineer at Outsite Networks, and Co-Organizer of 757rb.
- Ken Collins - Software Engineer at CustomInk, and Co-Organizer of 757rb.
What an amazing panel. All are senior-level developers/architects and successful community organizers. I was lucky enough to be asked to moderate the event.
After networking for about an hour we dived into what it means to be a polyglot. From a purely parochial perspective, the consensus was that knowing multiple programming languages provides job security and opportunities. Technology changes so quickly that staying locked into just one would be detrimental to a software engineer's career.
From business's perspective it's also much better to have employees/consultants with more than one tool in their toolbox. Businesses are just as susceptible to changing technology. All code being written today will become legacy code one day, so it's important that businesses hedge against one day having such an antiquated system that it has to be wholesale replaced.
The old adage applies to developers as well as businesses:
If you only have a hammer then everything looks like a nail.
That is the myopic mindset that the panelist strongly advised against.
Several questions were fielded from the audience, all resulting in lively discussion and sometimes debate within the panel. Below are just a few highlights:
What development languages are currently being used?
A poll of the audience found that the following technologies are currently in use (in rough order):
- Ruby on Rails (RoR)
Is remote working the way to go?
Most of the panelists work remotely on either a recurring or exclusive basis. Remote working allows developers to focus on the problems while being shielded from the common distractions of an office environment. This results in periods of very productive work. The lifestyle that one can maintain by working remotely (ex: skipping daily commutes to and from the office) is also a perk of remote work.
A recent book by 37signals was cited as an example that companies, especially technology companies, are becoming open to the idea of remote working.
But remote work also comes with it's downsides:
- Remote workers must have strict disciple. It's too easy to "disappear" for hours at a time doing something non-productive (ex: video gaming).
- Remote workers often suffer from a sense of isolation.
- Remote workers are often not considered part of the core team if the other team members work onsite.
- Remote working is typically performed by more senior members of a team. Junior team members usually require much more interaction and guidance from their team members, so working onsite is usually best for junior developers.
If I'm a new developer, what should I go for (language/tools)?
Certainly there are many choices, and the panel discussed several of them including all the main languages. Language-wise, there was no clear consensus - they're all good and have their individual places in the industry. Platform-wise it was concluded that web has much more opportunity going forward than focusing on desktops or devices.
It was unanimous that each person should follow his or her own path based on their passion. If you're really interested in robotics, go into robotic. If you're into building game apps, then do that. Follow your passion, thoroughly learn whichever technology/platform supports your passion, learn on your own (don't wait for an employer to train you), and you will have a long and prosperous career in software development.
Is mobile-only the only option going forward?
Mobile, as the primary interface for applications, will continue to encroach on the web's 20-year run as the interface of choice. However, the panel believes that will only affect the user interface. A full stack of web services, servers, centralized databases, and other resources will continue to be required to provide the user experience and raw processing power required of mobile applications.
Any interest in a follow-up polyglot meeting?
Overwhelming, the panel and attendees want to get together again for a follow on polyglot meeting. Language specific user groups will continue to meet on their own schedules, but a follow-up polyglot meeting is desired in the early Spring 2014. Other communities (ex: iOS, UX, and JS user groups) are also invited in order to better unite the great software development community within Norfolk/Virginia Beach.