On a daily basis, Ben Kittrell translates the jargon-filled world of technology for clients of his tech consultancy. The Words that Frustrate (WTF) series aims to offer readers some clarity in an industry dominated by techies’ confusing argot.
If you want to see a bloodbath, lock a .NET and a Java programmer in the same room together for 5 minutes. We love our computing languages and will defend their merits to the end.
But the reality is that every language has its purpose and value in different environments and for different people. You might choose a language for web development, building an operating system or advanced mathematics. Some languages are easier to learn and use but may sacrifice speed or ease of maintenance. And sometimes new languages are created to shake things up and help us look at problems in a different way.
Let’s explore some of the common programming languages you might hear about these days.
Java
Designed to overcome frustrations of running software on different types of computers, Java’s motto is “Write once, run anywhere.” Whether it’s a web server, desktop software, Blu-ray player or toaster, Java abides.
Java rules the enterprise world. Most large-scale corporate systems are running on Java because of its speed and security features. Much of its success in the enterprise market can be attributed to IBM, which has adopted it as the language of choice for its tools and services. Java is also the language that powers Android phones and apps.
It’s a fine language that I’ve spent a lot of time with, but it has failed to keep up with the pace of innovation we’re seeing with other languages. Because Java is less specialized and can be used for many different problems, it’s fairly verbose and repetitive. Much of the programmer’s time is spent setting up the plumbing of a project instead of focusing on the real business problem. This is not necessarily a fault of the language, just a reality of the balance of ease of use and functionality.
C#
C# is one of the primary languages supported by the .NET framework. This framework is a collection of tools primarily used for Microsoft Windows development, but can also be used for web, mobile and games.
Very similar to Java, C# is also very popular in enterprise environments. Because of Microsoft’s licensing fees for their tools, it’s less likely to find C# among startups that favor free open-source software.
Objective-C/Swift
Created by Apple, Objective-C is the language of the Mac and the iPhone. I don’t say this often, but it’s a terribly inelegant language that should be banned from programming. I’m kidding, it’s obviously a very successful language as it single-handedly bolstered the mobile development movement.
Someone at Apple must agree with my opinion, though, because recently it introduced Swift, which adopts principles and paradigms of modern programming languages. It also includes cutting-edge development tools that allow you to instantly see your work as you write code.
PHP
One of the first languages to be written specifically for website development, PHP rapidly became one of the most widely-used languages on the web. It’s very easy to get started with PHP without knowing much about it or programming in general, which has made it a great tool for an introduction to web application development. PHP is probably most well-known as the language Mark Zuckerberg used to create the first version of Facebook.
PHP is generally used by freelance web designers and some startups. As projects grow it gets more difficult to maintain.
Ruby
Where Java was created to make the computer happy, Ruby was made for the programmer. It’s full of what we call “syntactic sugar,” meaning it makes a delightful experience out of tasks that are painful with other languages. Of course, there’s always a tradeoff and most would argue that this sugar makes Ruby slower and more difficult to maintain.
Ruby was a relatively unknown language created in Japan until the release of the popular web framework “Ruby on Rails.” Similar to .NET, Ruby on Rails gives you all the tools you need to rapidly create web applications.
Ruby and Ruby on Rails are great for startups, agencies and web developers that need to rapidly create small- to medium-sized projects.
Javascript
No relation to Java, Javascript is quite different from most other web languages in that it was created to run in a web browser and not on a web server.
When we first started making websites in the 90s, they were static and boring. Because of dial-up modems (cue scratchy beeping soundbite), most websites were just text with very limited graphics. Any action would be sent to the server where a language like PHP would be used to change the page and send it back to the browser. Javascript allowed us to do things like validating an email address before it was sent to the server and show or hide information with the click of a button.
For a long time, Javascript was not really considered a full programming language — just something used for bells and whistles. Then came Ajax, which allowed the web browser to communicate with the web server behind the scenes, without refreshing the page. This changed everything and ushered in the Web 2.0 era bring desktop-like experiences to web applications.
Because Javascript is the only programming language supported by Chrome, Safari, Firefox, IE and every other web browser, it’s the language that every single web developer has to know. On the server, you get your choice of PHP, Ruby or any other language you want. And now with Node.js, Javascript can be used on the server too.
Most startups are adopting Javascript as the language of choice for web development and even mobile backend programming since this is where the innovation is happening.
Ben Kittrell is the co-founder of Doodlekit and an advisor for startups and small businesses. Kittrell also is host of Spare Room Radio, a podcast that features Kansas City entrepreneurs.