Speed Up App Development By Using A ‘Single’ Language




Languages

Choosing programming languages in software engineering is at the heart of building apps, API’s and backend services. It’s one choice in a sea of many that a company must make when taking on a ‘digital transformation’ strategy.

For many companies the choice of programming language is partly contextual (based on their current skillset and resources) and partly historical (based on what they currently have). It is often pre-determined but it’s important to choose them wisely given the sort of ramifications they have on your entire software manufacturing lifecycle.

In this article we will talk about ‘speeding up development’ by choosing only a single language. Many people don’t like talking about ‘speeding up’ in software development because they worry it may lead to ‘cutting corners’.

This article is not about cutting corners, I am advocating having a software development ‘strategy’ and part of this strategy may include choosing a single language.

There are two main benefits/impacts from working with a single language;

  1. Standardised Tooling and Frameworks
  2. Better Code Re-Use

Let’s dive in deeper…

Tooling And Frameworks

Firstly, a quick recap on what tools and frameworks are!

Tool – a tool is something your organisation uses to make their development team more productive as they ‘write code’. Tools may; spot errors, clean up formatting in files, allow developers to create build variants (for deployment into multiple environments) and more.

Framework – a framework is something you use in your organisation to ‘get stuff done’. It is typically some code written by someone else that allows a developer to do things faster because all of the common work is done for them. We can have mobile app frameworks, web app frameworks and even logging and security frameworks.

One of the main costs of an organisation is salaries. Time spent on salaries includes the time it takes for developers needing to learn new things related to the job at hand. This includes learning new tools and frameworks.

By choosing a single language companies can cut down on the number of frameworks and tools they use because now they can adopt company wide standards. By standardising across apps and teams they can reduce the overhead of developers having to constantly learn and re-learn how these frameworks and tools work. They get a productivity hit because of this and this will mean developers will be faster in their development efforts.

For example at Logic Room we have a fairly standard toolset and framework set. We use things like React, Node, Webpack and Fuse.js. When we build multiple apps me and my colleagues can quickly understand them because as a team we have common understanding and shared knowledge.

Choosing a single language has a direct effect on speed because less learning needs to be done. Reducing this learning allows more time for development which will make delivery faster.

Code Re-Use

When a team builds an app they are building two types of code. They are building code that leverages the framework and code that models the business problem or rather they should be.

If we want teams to be able to build software faster then sharing code is a strategy that can be used.

If we share code across some apps and backend services then we need a way to distribute this code.

I worked on a project a few years ago where we had a few different apps that all needed common functionality within the organisation. They all needed the same way to handle security, authentication and also text formatting. The company would set the policy on security and needed to be sure all the apps were implementing it in the right way. And some of the text display that the company needed was implemented in the marketing department and needed to be rolled out across all apps.

So what we did was to write all the apps in a single language. By doing this we could use something called a ‘package manager’ and put all the common/shared code in the same location. When we needed to change one app we simply pulled in the correct ‘version’ of the common code. We could do this because we had very good automated testing across all of the apps.

We found that by simplifying to one language we were able to more rapidly implement features because a lot of the plumbing work had already been done (in the packaged code).

By choosing a single language in your company you can begin to get better code sharing across your teams which helps you become more productive and deliver faster!

Your Options

There are many types of language you can use. For example C# is a very popular language with good tooling and frameworks from .net.

The other good option is JavaScript. What’s great about JavaScript is it’s successor ‘TypeScript’ which is a very powerful language for building large scale code bases, Typescript is based on JavaScript and is swappable for JavaScript in most cases meaning that we can leverage JavaScript tools and frameworks in TypeScript apps – cool!

This gives you the option to use the very powerful React and React Native universe of web and mobile frameworks.

The diagram below shows that JavaScript is now one of the most popular languages and this is good for your long term software development strategy!

Conclusion

Modern distributed systems in a company have more than a ‘few’ moving parts. Companies want to integrate backend systems, liberate and monetise data, build customer touch points and re-engineer internal systems to make their workflow more efficient.

Drawing on the use of certain languages that have a wide scope and ubiquitous tooling, frameworks such as JavaScript using a single language enables companies to

  • Reduce the amount of time developers spend learning new frameworks
  • Improve quality because standardised tooling can be used company wide
  • Share code on multiple platforms using ‘package management’

There is more than one language that companies can use as a single if they want to make their development more productive but the ‘go to’ language; JavaScript (and it associated universe of derivatives and tools) is a great starting point because it is popular and ubiquitous!

I am the founder of Logic Room.

I help our clients build robust and flexible software by either doing it for them with my team in Reading or coaching their in-house team to do it.

If you would like to reach out to me please do!

🙂

Logic Room is a consultancy that helps you start new projects, improve your software teams, and create new custom apps

Connect with us now to find out MORE...