TECHNOLOGY INSIGHTS
Programming languages, platforms and applications are evolving at speed. We deliver for today with a focus towards tomorrow by experimenting with emerging technologies on our Horizon index.
TECHNOLOGY HORIZON
We researched and reviewed the most appropriate technologies to apply for different use cases. From early adoption to sunsetting a technology, we can help you implement what is right for your business.
AppCode is JetBrains' mobile and desktop app development environment. It can be used as an alternative (or extension) to Xcode for iOS and macOS development, and also for cross platform Android development via the Kotlin Multiplatform Mobile plug-in. AppCode uses the same text editing engine as all other Jetbrains IDEs, this includes highly customisable formatting options, code completion, live templates and much more. AppCode also features excellent refactoring tools, often going far beyond what is possible with Xcode. AppCode requires an ongoing subscription to use.
Paw is a full-featured HTTP client that lets you test and describe the APIs you build or consume. It has a beautiful native macOS interface to compose requests, inspect server responses, generate client code and export API definitions.
Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).
We love it because of it's rich eco-system and being free means there's nothing stopping it's growth.
GraphQL is a query language for your API, and a server-side runtime for executing queries using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
NestJS is a NodeJS framework for building server-side applications using TypeScript or JavaScript. Its focus is on fast development and predicatable, readable code, and supports either REST or GraphQL APIs out of the box.
It is an opinionated framework, with an architecture that aims to be testable, scalable, loosely-coupled and easily maintanable (inspired heavily by Angular).
It also supports most server-side microservices with built-in modules such as database integration, security and streaming.
NextJS is a React framework that allows you to create server-side rendering and static web applications. NextJS includes all the extra opinions that make starting a new project so confusing such as automatic code splitting, Babel and TypeScript support, and error handling.
We love it because of the ease of getting started, and the ability to fall into good practice like starting with continuous integration. It's also trivial to migrate off Vercel (the default hosting environment) if you have specific needs.
The site you are looking at was built using NextJS.
OWASP ZAP is an open-source web application security scanner. It is designed to be used by both developers and pentesters during the development process. OWASP ZAP provides a number of features that make it unique among web application security scanners.
OWASP ZAP’s features include the ability to intercept and modify requests, a powerful spider that can crawl complex applications, and a robust set of security checks. OWASP ZAP is also highly customizable, so it can be adapted to fit the specific needs of any organization.
Organizations can use OWASP ZAP to find and fix security vulnerabilities in their web applications before they are exploited by attackers. OWASP ZAP is an essential tool for anyone who is serious about web application security.
Pa11y is a command line tool that can be used to test the accessibility of web pages. It can be used to generate reports on the accessibility of web pages, and can be configured to run automatically as part of a continuous integration or continuous delivery process.
We recommend doing this on all sites
Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).
We love it because of it's rich eco-system and being free means there's nothing stopping it's growth.
Apache Kafka is a real-time data streaming technology that is used to collect, process, and store streaming event data or data that has no discrete beginning or end. Kafka takes streaming data and records exactly what happened and when. This record is called an immutable commit log. It is immutable because it can be appended to, but not otherwise changed. From there, users can subscribe to the log (access the data) and can also publish to it (add more data) from any number of streaming real-time applications, as well as other systems.
Kafka is an open-source system developed by the Apache Software Foundation and is written in Java & Scala. It is primarily used to build real-time streaming data pipelines and applications that adapt to the data streams. It combines messaging, storage, and stream processing to allow storage and analysis of both historical and real-time data.
GraphQL is a query language for your API, and a server-side runtime for executing queries using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
The Apache Hadoop software library is an open source framework that is used to efficiently store and process large datasets. Hadoop allows for the distributed processing of large data sets across clusters of computers using simple programming models.
Hadoop makes it easier to use all the storage and processing capacity in cluster servers, and to execute distributed processes against huge amounts of data. The platform works by distributing Hadoop big data and analytics jobs across nodes in a computing cluster, breaking them down into smaller workloads that can be run in parallel. It processes structured and unstructured data and scale up reliably from a single server to thousands of machines. Hadoop provides the building blocks on which other services and applications can be built.
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Node.js is similar in design to, and influenced by, systems like Ruby's Event Machine and Python's Twisted. Node.js takes the event model a bit further. It presents an event loop as a runtime construct instead of as a library. In other systems, there is always a blocking call to start the event-loop. Typically, behavior is defined through callbacks at the beginning of a script, and at the end a server is started through a blocking call like EventMachine::run(). In Node.js, there is no such start-the-event-loop call. Node.js simply enters the event loop after executing the input script. Node.js exits the event loop when there are no more callbacks to perform. This behavior is like browser JavaScript — the event loop is hidden from the user.
HTTP is a first-class citizen in Node.js, designed with streaming and low latency in mind. This makes Node.js well suited for the foundation of a web library or framework.
Node.js being designed without threads doesn't mean you can't take advantage of multiple cores in your environment. Child processes can be spawned by using our child_process.fork() API, and are designed to be easy to communicate with. Built upon that same interface is the cluster module, which allows you to share sockets between processes to enable load balancing over your cores.
OWASP ZAP is an open-source web application security scanner. It is designed to be used by both developers and pentesters during the development process. OWASP ZAP provides a number of features that make it unique among web application security scanners.
OWASP ZAP’s features include the ability to intercept and modify requests, a powerful spider that can crawl complex applications, and a robust set of security checks. OWASP ZAP is also highly customizable, so it can be adapted to fit the specific needs of any organization.
Organizations can use OWASP ZAP to find and fix security vulnerabilities in their web applications before they are exploited by attackers. OWASP ZAP is an essential tool for anyone who is serious about web application security.
Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
Some of Python's notable features:
Some programming-language features of Python are:
Due to a rise in data manipulation tasks from organisations world-wide python has been growing in popularity - this and the ease at which data scientists are sharing their work on collaborative workbooks like Jupyter means we are putting it firmly in the recommended category.
Google Analytics 4 is a major update to the Google Analytics platform, with several new features and changes. The most notable change is the move from a traditional pageview-based model to a model that tracks user engagement across devices. This change enables Google Analytics 4 to provide more accurate and granular data on how users interact with websites and apps.
Google Analytics 4 has a number of features, including:
GraphQL is a query language for your API, and a server-side runtime for executing queries using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
Some of Python's notable features:
Some programming-language features of Python are:
Due to a rise in data manipulation tasks from organisations world-wide python has been growing in popularity - this and the ease at which data scientists are sharing their work on collaborative workbooks like Jupyter means we are putting it firmly in the recommended category.
Docker is an open platform for developing, shipping, and running applications.
Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security allows you to run many containers simultaneously on a given host. Containers are lightweight and contain everything needed to run the application, so you do not need to rely on what is currently installed on the host. You can easily share containers while you work, and be sure that everyone you share with gets the same container that works in the same way.
Docker provides tooling and a platform to manage the lifecycle of your containers:
GraphQL is a query language for your API, and a server-side runtime for executing queries using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data.
Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the "K" and the "s". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.
Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.
Some of Python's notable features:
Some programming-language features of Python are:
Due to a rise in data manipulation tasks from organisations world-wide python has been growing in popularity - this and the ease at which data scientists are sharing their work on collaborative workbooks like Jupyter means we are putting it firmly in the recommended category.
Snyk is a platform allowing you to scan, prioritize, and fix security vulnerabilities in your own code, Open Source dependencies, Container images, and Infrastructure as Code (IaC) configurations.
Developers now assemble applications with a combination of proprietary and open source code, run that code in containers, and then deploy with infrastructure as code configurations with technologies like Kubernetes and Terraform.
A good security process secures each of these components where they are built and maintained. Snyk integrates into DevOps processes to work the with developers in the methods they prefer to work while following and supporting industry best practices. Snyk integrates directly into your IDEs, workflows, and automation pipelines to add security expertise to your toolkit.
Build your own
Get a view of what AND Digital’s technology recommendations mean for your technology roadmap