We throw the term “web development” around all the time, but what exactly does it mean? On the surface, web development indicates some sort of programming for the web. But the clarity ends there. Questions such as “What sort of programming?” and “What is being developed?” are not really answered by the term web development.
Searching for "the" Definition of Web Development
In truth, web development is one of those nebulous terms without a concise meaning. That’s because web development means different things to different people.
A business manager, a graphic designer, and a C# programmer are all going to have their own perspectives on what web development means. And it’s also situational, meaning those same people could use it in different ways depending on the context or situation they’re in.
All of this makes the term web development a breeding ground for miscommunication.
Try posting a job for a “Web Developer” without any further clarification and witness the sheer range of people who apply.
So whether you’re an IT or a business executive, it’s not important to know what web development is supposed to mean, but what is meant whenever the term is used.
To that purpose, we at Cloudbakers offer this small guide to the different types of web development. We hope that understanding these distinctions will help you:
- Find and hire the right workers and partners for your projects
- Avoid miscommunications between your business organizations and technical teams
- Share your ideas more effectively with more precise terminology
- Make more efficient use of time during your strategic planning
- Ask the right questions when you hear the term web development
Because the usage and meaning of web development changes so much, this article will not tell you what a specific person means when they say, “web development.” But after reading this, you’ll have a much better idea of what they might be referring to. And, most importantly, you’ll know which questions to ask so you can get everyone on the same page quicker.
Types of Web Development
Twenty-some years ago, a web developer referred mainly to someone who could write HTML. But the web has evolved so much since then, in so many different directions, that pinning down a single definition of web development is only possible in the most generic of terms. But since those generic terms don’t achieve the clarity of vision we’re aiming for, we need to understand there are several different types of web development.
Web vs. Application Development
App development might be the only term even more ambiguous than web development. While some people infer that it means mobile apps as you would find in the App Store, others could assume it means embedded software built onto circuit chips.
Just as with web development, your own experiences and preconceptions will determine what you believe app development to mean. Problems arise when people start off with more explicit terms like mobile app development and then drop the “mobile” off the front for brevity’s sake.
In this way, mobile apps, web apps, desktop apps and embedded apps all become simply apps. And when you say app development, no one’s quite sure which one you mean.
For this reason, we’ll view the term app development in the same vein as web development: a broad term that’s best avoided in your communications. In this article, our goal is to break down each of those vague terms into several more concise components.
Are You Developing Websites or Building Apps for Websites?
There’s a critical difference between building a website and building apps for a website.
When building a website, you’re making use of existing tools to create the text, graphics, and navigation appearing throughout your site. You might use a site creation tool like Wix.com or Squarespace, or you might take a do-it-yourself approach with WordPress or Microsoft Website Builder. You could also have a website designer build a site from scratch or from one of their many pre-existing templates and styles.
While this is often referred to as – you guessed it – web development, we prefer to call it web design or at least website development. These terms suggest creating a website in a more structural and artistic sense than from an engineering point of view.
Building apps for your website, on the other hand, suggests the creation of functionality that either doesn’t exist yet or is not accessible to you.
When you develop a web app, you’re typically adding unique business logic to your website. In this way, a web app becomes the “special sauce” that lets your site do something useful above and beyond what a normal site could do. A web app could integrate with other web and non-web applications, move data around, enable workflows and approval processes, and much more.
For example, let’s say your logistics team wants to track what cargo is on each of your freight trucks. Many companies currently do this with spreadsheets, or hand-written on a whiteboard. For one such company, Cloudbakers built an app so they could virtually track what was on every truck. Employees could log on to the website, find the cargo they were looking for, and discover which truck it was on. But that was just the beginning. The web app integrated with GPS systems in the trucks through an API. This let them display the location of each truck on Google Maps. This information could then be shared with management, customers, or whomever needed it.
Web apps allow you to place dynamic content on your website, not just static forms and pages. They also allow live data streaming for real-time updates – assuming your data is updated in real-time.
So, since we’re looking for clear definitions, here is how we differentiate website from web app development.
- Website Development or Web Design: Creating web pages and designing websites with pre-existing plug-ins and tools
- Web App Development: Creating new applications, plug-ins or tools that will be placed on a website and run in a web browser
What are Web Apps Made Of?
So, when the functionality you need on your website doesn’t exist, you need a web app. But how do you create one?
First and foremost, a web app must run within a browser. This gives a web app structure as well as handing it some considerable constraints. (True, there are web apps that are programmed to run “outside” of a browser, but these are cosmetic differences as they still draw on the browser’s resources and limitations).
Web apps often rely completely on the browser’s built-in features, but sometimes they’ll come with their own browser extensions – smaller programs that extend the capabilities of the browser and tell it how to process the web app. The advantage of writing extensions is to allow web apps to perform functions the browser would not ordinarily be able to handle. The disadvantage of using extensions is that they’re specific to each browser… so you might need to write many of them to cover all the browsers your target users utilize. Also, if your web app relies on an extension, it stands to reason that the web app will not work in a browser without it.
In some cases, extensions defeat the purpose of the web app, since users need to download and approve the extensions in order for the web app to function. Persuading users to install and keep extensions active is not as simple a task as it may seem, especially when dealing with outside partners or with the general public.
There are a handful of technologies upon which most web apps are built. Here is a chart of the four most common technologies used to build web apps, and the major proponents of each:
Core Web App Technologies
Major Web Apps
Amazon, eBay, LinkedIn, YouTube
Facebook, Google, Wikipedia, WordPress, Yahoo
Bing, Microsoft Live, MSN
Instagram, Google, Pinterest, Quora
In truth, there are dozens of smaller framework tools and languages available for building web apps… but many of them are variants or offshoots of these four robust technologies.
Monolithic vs. Cloud Native Development
A software developer could easily write a web app, provision a virtual machine on the cloud, and deploy the web app from there. That’s exactly how it was done for years… until the public cloud grew popular.
We call this sort of website monolithic: all the functionality is contained in one place. The pages, databases, and apps all reside in the same general locale, whether virtual or physical machines. A monolithic factory making widgets, for example, would contain everything in one building – the materials, the machinery, the offices, even the trucks used to ship the widgets out. This highly centralized approach has one major disadvantage for a website – if your server goes down, everything goes down.
Enter the cloud platforms: Google Cloud, Amazon’s AWS, and Microsoft Azure being the main contenders. Instead of just making the virtual machines available, these cloud platforms offer a variety of services with massive economies of scale. Not only is the underlying infrastructure of the website handled by the platform, but many of the “standard” features were, too.
For example, consider a database. On the monolithic website, you might program your database in some flavor of SQL, and it’s your responsibility to make sure it works with the infrastructure of your virtual machine. You also need to create alerts in case the database grows too big – and if it does, you need to go into the server and provision more space.
Sometimes the only way to handle a higher capacity is to upgrade your server and migrate the whole database over.
But on the cloud platforms, it all scales automatically. With Google’s Cloud SQL, you might set your initial database size at 20 GB. But if it grows to 30 GB – or 40, 50, or even 100 GB – you don’t need to do anything. The cloud platform is so large and comes with so many automation tools that scaling happens without a thought. No maneuvering server resources or migrating to new machines.
We call this cloud native development. Instead of building everything ourselves, we take advantage of the platform’s native tools. Why? Because those native tools perform highly specialized services that were developed specifically to provide optimal performance on that platform. These native tools are more reliable, higher-performing, and cheaper to use than bringing your own.
At Cloudbakers, we believe strongly in the cloud native approach. We take advantage of a platform’s native tools and focus our efforts on what we do best – implementing our clients ideas.
So when we talk about building web apps, we’re always talking about the cloud native approach. We’re building that web app for the highest ratio of performance and efficiency over cost that we can – and that means using as many of the platform’s native tools as possible.
We won’t waste your time and money building components that already exist. But you should know what those native tools are, whether it’s Google Cloud, Azure, AWS, or something else. If your web developer isn’t making use of those tools, you should probably be asking some hard questions as to why.
- Monolithic Development: Bringing or creating all your own tools and serving them from the same location as your web app
- Cloud Native Development: Making use of a cloud platform’s native tools for best performance and only developing those features that need to be created for your business logic
Are you Building for the Web or for Mobile?
Another point of confusion when building “internet” apps is whether you’re talking about building for the web or for mobile.
As you recall, web apps are applications, which run in a web browser. And since every smartphone possesses at least one web browser, you could conceivably call those apps mobile, too. But that won’t cut it for our definition of a mobile app.
Where a web app exists only through a web browser, a mobile app should be one that functions on a mobile device without one.
There are several reasons for this distinction. Mobile browsers are stripped down versions of their desktop equivalents, designed for speed on smaller devices. As such, you won’t have the same availability of extensions, system resources, and features. Because of this, many web apps simply won’t work at all in a mobile browser.
What you need, instead, is a mobile app.
A mobile app is built on the smartphone’s operating system – typically either iOS or Android – not on the resources available within its browser. For this reason, a mobile app can take full advantage of a smartphone’s resources, and thereby vastly outperform a web app.
The disadvantage of a mobile app is that you need to get it on the user’s device. This is done through the Play Store for Android and the App Store for iOS apps. But whichever platform you’re on, the user must find and download the app to their device before it can be used.
Contrast this to a web app, which you can install on your website and anyone surfing to that page can use it.
Despite this, the performance, features, and flexibility of mobile apps are so much greater that most companies wanting to attract mobile users are better off developing mobile apps over web apps.
- Web Apps: Applications that run within a web browser, using the browser as their operating system
- Mobile Apps: Applications developed to run on mobile platforms such as iOS and Android
What Are Mobile Apps Made Of?
You’ll face two major options when developing a mobile app:
- Developing directly in the mobile platform’s native code
- Developing in a second language and using tools to convert it
If you choose to develop directly in native code, you’ll need developers experienced in Objective C or Swift for iOS or Java for Android.
These are challenging languages to learn and you’ll pay a premium for that experience. But the advantages of native development include:
- Accessing the full power of the mobile platform. You can tap into anything the mobile device can do with a native mobile app: GPS, maps, camera, notifications, calls, etc.
- Leveraging mobile device features. You can interact with the device’s accelerometer, Bluetooth, NFC, address book, messaging, etc.
- Enhanced UI. You can take advantage of the platform’s natural UI speed and sensitivity, while preserving the expected look and feel of that platform.
The disadvantage of strictly native development is that you either pay for two developments – iOS and Android – or lock out half your market.
According to StatCounter, iOS holds a 54% to 46% edge over Android in mobile OS market shares in the United States. This flip-flops in the global market, however, with Android posting a 75% to 20% market share advantage over iOS. So either way you slice it, picking one OS over the other poses a huge opportunity cost.
Luckily, there’s a solution to this problem. It’s what we call the native hybrid approach, and it offers what we at Cloudbakers feel is the best of both worlds.
This approach, also called cross-platform development, gives all the benefits of a native built app without the cost of building it twice.
- Native Mobile App Development: When you use the mobile platform’s base language to create your mobile app
- Hybrid Mobile App Development: When you create a mobile app using one language and use conversion tools to compile it into each of the desired mobile platforms; also referred to as cross-platform development
Mobile Sites vs. Mobile Responsiveness
When a company says it’s “going mobile,” it could mean any number of things. It could mean they’re designing a mobile website, or building a mobile app, or even just incorporating mobile devices into their business.
We’ve discussed the development of mobile apps, web apps, and websites, but what about mobile websites? What do those entail?
A mobile website, or mobile-designed website, is simply a site optimized for a mobile device-sized screen. This is important because most websites don’t display well on smaller screens. But there’s more to it than that.
At its heart, a mobile website is a second version of your regular website, with its own pages, navigation, and layout. The content can be the same, although portions of it will often be removed or altered. Mobile websites will make up for the smaller displays with larger, easier-to-read fonts. A good mobile design will employ large, clickable buttons instead of tiny links. And navigation is more likely to be relegated to built-in site menus rather than relying on webs of interconnected links.
Mobile websites exist within the same domain as your regular website. The website itself determines if the user is mobile and whether to display the regular or mobile site. In some cases, the user can opt out of the mobile site and view the regular site if they prefer.
A mobile responsive site, on the other hand, will adjust its display depending on the size of the device’s screen. There is only one version of the site and all its content – text, images, navigation, forms, etc. – will automatically scale and reconfigure to fit on the mobile device.
We should note that mobile websites and mobile responsiveness are not mutually exclusive. We strongly believe in making everything we do at Cloudbakers mobile responsive. But that doesn’t mean there isn’t any room for mobile websites. On the contrary, there is significant value to be found in both – mobile-designed websites for those who want a streamlined, optimized experience, and mobile responsiveness for those who prefer to view the complete site.
- Mobile-Designed Website: A website designed specifically for mobile devices, with its own pages and content, but sharing the same domain as the normal site
- Mobile Responsive Website: A website that offers the same pages and content, but scales and re-configures that content to match the size of the device display
Cloudbakers and Web Development
Now that we’ve defined and discussed all the many flavors of “web development,” you might be wondering where Cloudbakers fits into the picture.
Our primary focus is on web app development using the cloud native approach… and in mobile app development using the hybrid or cross-platform approach.
We also believe in making anything posted to the web mobile responsive – whether you employ a mobile website or not.
At Cloudbakers, one of our specialties is in developing custom applications for the cloud — web apps and mobile apps designed to:
- Scale your organization
- Streamline your process
- Improve user experience
- Simplify your interactions
If you’re ready to find real business value in the cloud, contact Cloudbakers today. We'd be delighted to help you explore your options.Originally published on March 29, 2018