Software Identification   «Prev  Next»
Lesson 7

Component Process of Website Development (Module 8 Conclusion)

Module 8 examined the software component layer of the website development process — the languages, applications, and integration tools that translate business requirements and design decisions into functioning web systems. Whether your role is technical, creative, or managerial, understanding this layer equips you to participate in software selection conversations, evaluate vendor proposals, recognize technical debt in legacy systems, and communicate across the team boundaries that separate designers, developers, and operations staff.
The module covered six core topics, each addressing a distinct layer of the software component process. The following summaries consolidate the key learning from each lesson and connect those lessons to the practical realities of modern web development.


Lesson 1 — Identifying Appropriate Software Types

The module opened by establishing the four general categories into which all web development software falls: languages, applications, databases, and bundled software solutions. These categories provide the organizing framework for every software selection decision in a web project, from a single-page marketing site to a multi-tenant e-commerce platform.
Effective software identification begins not with tool evaluation but with business requirements definition. The product or service type, target audience, expected transaction volume, geographic reach, and compliance obligations (PCI DSS for payment handling, GDPR for EU user data) each constrain the software choices that are appropriate. A startup launching its first product has different software needs than an enterprise integrating a new web channel with existing ERP and CRM systems, even if both projects are described as "building a website." The legacy practice of evaluating software primarily on feature checklists — shopping cart, payment gateway, inventory management — has been replaced by a more architectural evaluation:
Question:
  1. How does this software expose APIs, what are its scaling characteristics,
  2. how does it fit into the broader system, and
  3. what is the total cost of ownership including integration and maintenance over time?
Bundled SaaS platforms (Shopify, Squarespace) optimize for speed of deployment; custom stacks optimize for flexibility and control. The right choice depends on where the project sits on that trade-off spectrum. The lesson also introduced the distinction between deployment-oriented applications — tools used to operate and measure a running site (Google Analytics 4, web server software, CMS platforms) — and design and development applications used to build it. This distinction structures the rest of the module.


Lesson 2 — Languages Used for Web Development

The first software category — languages — divides into four functional types that operate at different layers of the web stack. Understanding what each type does, and where it runs, is the foundation for evaluating any web development technology. Markup languages define document structure and semantic meaning. HTML5's semantic elements — <article>, <section>, <nav>, <main> — communicate content hierarchy to both browsers and search engine crawlers, directly affecting accessibility compliance and organic search visibility. Stylesheet languages control visual presentation: CSS3 with Grid Layout, Flexbox, custom properties, and container queries provides responsive layout control that previously required JavaScript. Client-side scripting languages run in the browser — JavaScript is the universal standard, with TypeScript (a statically typed superset) now the default for large codebases. Server-side languages run on the web server and generate responses: Node.js, Python (Django, FastAPI), PHP (Laravel), Ruby, Go, and Java (Spring Boot) each have distinct ecosystem strengths and appropriate use cases. The key principle from this lesson is that language choice is not arbitrary — it is constrained by team expertise, deployment environment, framework ecosystem maturity, and the specific functional requirements of the application. The four language categories provide a vocabulary for that evaluation conversation.


Lesson 3 — Markup Language Characteristics

Markup languages annotate content with tags that define its structure, meaning, and relationships. The lesson examined the lineage from SGML (Standard Generalized Markup Language) — the parent standard that established the tag-based annotation model — through HTML and XML, to the modern HTML5 standard that governs web content today. HTML5 introduced a semantic element vocabulary that aligns document structure with content meaning rather than just visual presentation. This alignment matters beyond aesthetics: screen readers rely on semantic structure for accessibility compliance (WCAG 2.1/2.2 standards), and search engine crawlers use heading hierarchy, landmark elements, and structured data (Schema.org markup embedded in HTML) to understand page content and evaluate its relevance to search queries. XML's role in web development has shifted from a general data format (it was briefly the dominant format for web APIs in the SOAP era) to specialized contexts: SVG (Scalable Vector Graphics) for resolution-independent graphics, RSS and Atom feeds for content syndication, and configuration files for build tools and deployment systems. JSON has replaced XML as the standard data interchange format for REST APIs due to its lighter syntax and native JavaScript compatibility. The practical takeaway is that markup decisions made during content structuring have downstream consequences for SEO, accessibility, and maintainability. Semantic HTML is not a refinement applied after a site is built — it is a foundational requirement that shapes every template and component in the system.

Lesson 4 — Scripting Languages

Scripting languages orchestrate the capabilities of a host environment through named function calls, enabling application logic to be written at a high level of abstraction. The lesson covered client-side scripting, server-side scripting, and the evolution from legacy scripting technologies to modern runtime environments. Client-side JavaScript has expanded far beyond its origins as a form validation tool. The modern browser exposes a rich API surface — the Fetch API for asynchronous data retrieval, the Web Animations API, IndexedDB for client-side storage, WebSockets for real-time communication, and the Geolocation and Notification APIs — all accessible through JavaScript. Component frameworks (React, Vue, Svelte) build on this foundation to enable complex application interfaces that maintain state, respond to user interactions, and synchronize with server data without full page reloads. Two client-side technologies from the legacy era — Java Applets and ActiveX — are fully removed from modern web development. Java Applets were deprecated in Java 9 and removed in Java 11; ActiveX was an Internet Explorer-specific technology that never achieved cross-browser support. Their functionality is now provided by JavaScript frameworks, WebAssembly, and HTML5 APIs without any browser plugin dependency. On the server side, CGI's process-per-request execution model has been replaced by persistent application servers, modern web frameworks, and serverless functions that handle concurrent requests efficiently. The lesson also introduced domain-specific scripting languages — SQL for database operations, shell scripts for deployment automation, Dockerfile for container image definition — as the same scripting model applied to infrastructure and operations contexts.


Lesson 5 — Front-End and Back-End Applications

The front-end / back-end distinction organizes web development work along the boundary between what runs in the user's browser and what runs on the server. Front-end applications handle everything the user perceives: visual layout, interactive behavior, animation, form handling, and navigation. Back-end applications handle data persistence, business logic, authentication, and integration with external systems — operations that require server-side credentials or capabilities the browser cannot safely provide. Modern front-end development is organized around component-based JavaScript frameworks — React, Vue, Svelte, and Angular — that structure interfaces as reusable, independently testable units. The build tooling ecosystem (Vite, webpack, esbuild) processes TypeScript, CSS, and image assets into optimized production bundles. Design tools like Figma now export CSS properties and design tokens directly to development environments, reducing the translation friction between design and implementation. Back-end development is structured around application frameworks that provide routing, ORM-based database access, authentication, and middleware hooks. Client-side rendering, server-side rendering, static site generation, or incremental static regeneration — determines where the front-end / back-end boundary falls in any given application and has direct implications for performance, SEO, and infrastructure cost. Full-stack frameworks (Next.js, Nuxt, SvelteKit) allow both sides of this boundary to be managed within a single codebase and deployment pipeline.


Lesson 6 — Middleware Connects Applications

Middleware occupies the integration layer between front-end applications, back-end services, and external systems. It mediates communication, transforms data formats, enforces authentication, and orchestrates workflows across otherwise incompatible components. Middleware is not optional in any non-trivial web application — every external service dependency (payment processor, shipping API, CRM, email delivery platform) represents an integration point that middleware must manage. The lesson examined middleware across several modern forms: API gateways (AWS API Gateway, Kong) that handle routing, rate limiting, and authentication at the network layer; message queues and event streams (Apache Kafka, AWS SQS) that decouple systems requiring asynchronous communication; and integration platforms as a service (Zapier, Make, MuleSoft) that connect SaaS applications through low-code or no-code configuration. The evolution from legacy middleware — proprietary integration layers connecting shopping carts to payment processors through hand-coded bridges — to modern API-first architecture reflects a broader shift toward loosely coupled systems. When each component exposes a well-defined API, the middleware layer can be reconfigured, replaced, or extended without rebuilding the applications on either side of it. This architectural property — replaceability without cascading breakage — is the defining characteristic of maintainable web systems at scale.

Module 8 Learning Objectives — Achieved

Having completed this module, you should now be able to:
  1. Identify the four general categories of web development software (languages, applications, databases, bundled solutions) and explain how they interact in a complete web stack
  2. Identify the functions of the four main kinds of languages used for web development: markup, stylesheet, client-side scripting, and server-side scripting
  3. Describe the characteristics of common internet markup languages, including HTML5 semantic structure, XML, and their roles in accessibility and search engine optimization
  4. Describe the functions of common types of scripting languages, including the distinction between client-side and server-side execution and the modern replacements for legacy technologies (Java Applets, ActiveX, CGI)
  5. Explain the difference between front-end and back-end applications, including rendering strategies, modern framework ecosystems, and the tools that have replaced deprecated legacy software
  6. Explain the purpose of middleware and give examples of how API gateways, message queues, and integration platforms connect the components of a modern web system

In the next module, you will examine the remaining two software categories: databases and bundled software solutions. Databases — relational (PostgreSQL, MySQL) and document-oriented (MongoDB, Firestore) — provide the persistence layer that back-end applications depend on. Bundled software solutions — CMS platforms, e-commerce suites, and headless commerce APIs — combine languages, applications, and databases into deployable products that trade customization flexibility for speed of implementation. Together, all four categories complete the software component picture that this module introduced.


SEMrush Software 7 SEMrush Banner 7