By: Carol Vercellino, CEO & Co-Founder
One of the hardest questions you’ll ask when you start developing your software product is what programming language should you use?
Let’s talk through some of the concerns and considerations you should make when choosing your programming language.
But, before we dive in, if you aren’t familiar with some of the most popular programming languages, we recommend watching our video on the top 3 programming languages in 2021 first. Then come back to this post.
Let’s dive in.
Carol: So Jay, when it comes to creating software or apps, what factors do you need to consider when choosing a programming language?
Jay: Well, there are a couple of things you have to think about. One of them, to start with, are there some requirements?
For iPhone apps, you’re going to do those in either Objective-C or Swift for a native app. If that’s the thing you’re looking for, those are your two choices. Objective-C is sort of the legacy at this point, and most new developments use Swift. Similarly, for Android, you’re going to look at Java or Kotlin, Kotlin being the new thing.
On the backend, you’ve got a lot more flexibility. There are several languages: Python, Ruby, Go, Swift, and some others you can use for the backend.
Another important thing you need to think about is the availability of developers in your area. You’re probably going to start with one developer, so you just have to find that one. But as your product and your team scale, you’re going to need to augment your team and hire people. Is there a big pool of developers in your area who are familiar with that technology?
Carol: Like the chicken and egg question, should you choose your programming language first and then find a software developer who understands that language or the other way around?
Jay: It’s really hard to say. It depends on your project again. If you’re in one of those situations where your project and the space you’re working in determines what language you’re going to use, then that’s pretty much it.
If you’re building a more generic backend thing, like an API for a service, you’ve got some flexibility there. So, you have more freedom to choose or interview different developers and maybe let them make some of those technology decisions.
Jay: Those are both sort of what I would consider legacy languages. Perl especially and PHP moreso. That’s certainly not terrible. A lot of the web runs on PHP.
Again, as you scale your team, you attract new developers that are going to be versed in that kind of thing. Younger developers aren’t going to be into PHP, and maybe some older ones want to move away from PHP. So, those are some of the concerns you might have.
Carol: And let’s wrap up with talking about potential roadblocks. What are some common mistakes people make when choosing a programming language?
Jay: The most common one is to go for the new shiny thing. The new language comes out, and it’s all built cool, and they’ve got really good demos, and they solve some problems. Maybe they take something that used to be hard in an old language, and they do it really, really well because they made the language to do that.
But, once you get into a really serious project, you have problems with, for example, is their tooling around that? Is it too young to have really good tools to work with? Is it robust? Can it handle edge cases that maybe some of the older languages have already worked out?
Does it have a really rich library of tools to interface with other things? Python is a really old language at this point. There is a Python library for just about anything. If you need to access this weird service, some dude somewhere in a basement in Nebraska, wrote a library to do it.
Carol: I think we did a video about interviewing software developers, so it might be helpful for people to check out as well.
**The above interview has been transcribed for clarity and brevity.**