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: So, JavaScript is super popular, right? And it’s mostly used on the frontend, but a lot of people are using Javascript on the backend now?

Jay: Yeah, people use JavaScript on the backend with Node. I think it’s really popular. It got popularized by folks doing frontend work who wanted to do backend work and didn’t want to learn another language. Google sort of facilitated that with developing Node and taking their javascript engine, and making it available on their server.

A lot of people feel like it’s easy to slide from frontend development to backend development with JavaScript.

 

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.

Carol: What if you found a developer you really liked, and, not to be too controversial, they use Perl or PHP. What would you say to that?

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. 

A lot of the newer languages just don’t have that sort of coverage. 

Carol: And support too, just community support. Can you google it and find an answer to it?

Jay: Exactly. Do you want to be out there on the bleeding edge? Maybe not.

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.**

Need to find the right developer for your project? Make sure to ask the right questions to get the best fit. Learn how in our video, How to Find an App Developer

Subscribe for the latest updates

Where problems get solved.

© 2020 Oak City Labs | A Well Refined Website