Pages

Technology Radar — May 2020 review — Part 2

A review of the recent Technology Radar May 2020 update.


Technology Radar — May 2020 review — Part 2

A review of the recent Technology Radar May 2020 update — I review three to four items from Platforms and Languages & Frameworks this part

Yes! Vol. 22 is out now and this is my review. The Tech radar provides the Software Engineering community, a very good glimpse of what technologies, techniques, patterns, tools, languages, frameworks are recommended for Adopt, Trial, Assess and Hold in four quadrants.

If you haven’t read part 1 of this review, you may want to read here

You can also create your own radar, here

These are, however, only guidelines as they stand, based on the research performed by ThoughtWorks. Needless to say, these recommendations doesn’t suit every organisation depending upon your needs. What tyou are encouraged to do though, is to create your own Technology Radar; see thoughtworks.com for more details.

Photo by VM Quezada on Unsplash

This article gives you my perspective of the techniques that I identify as ready to be adopted and fit into the current architectural/system design needs of many organisations; no matter the size/team, how disruptive or what you are building. You can also subscribe to the radar so that you won’t miss the radar as it is published.

Check out the interesting themes for this edition and you guessed it right, it is starting with the “remote” aspect — Zoom!

The Radar is a document that sets out the changes that we think are currently interesting in software development — things in motion that we think you should pay attention to and consider using in your projects. It reflects the idiosyncratic opinion of a bunch of senior technologists and is based on our day-to-day work and experiences. While we think this is interesting, it shouldn’t be taken as a deep market analysis.

Birth of Technology Radar

As a supplement, if you want to know about the history of Technology Radar, this will help.

Photo by Samuel Ryde on Unsplash

Platforms

Interactive radar: https://www.thoughtworks.com/radar/platforms

ADOPT: .NET Core

To put simply, .Net Core — an open-source, general-purpose development framework for building cross-platform apps — is the future of .Net; read it from Scott Hunter.

.NET Core’s characteristics include Cross-platform, Open Source, Modern, Performance, Consistent across environments and Flexible deployment.

Also, read about Microsoft done a lot of work to make .Net Core container friendly.

You can choose .NET Core when you have the following requirements for your apps:

Cross-platform
Microservices architecture
Containers
High-performance and scalable systems
Side by side .NET versions per application level
Stackoverflow Developer Survey Results 2019
Photo by Carlos de Almeida on Unsplash
TRIAL: Firebase

Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds.

With Firebase, you can build more powerful, secure and scalable apps, using the world-class infrastructure.

Now for the products that I most liked in Firebase: Realtime Database and Cloud Firestore.

Realtime Database is Firebase’s original database. It’s an efficient, low-latency solution for mobile apps that require synced states across clients in realtime. We recommend Cloud Firestore instead of Realtime Database for most developers starting a new project.

The Firebase Realtime Database lets you build rich, collaborative applications by allowing secure access to the database directly from client-side code. Data is persisted locally, and even while offline, realtime events continue to fire, giving the end-user a responsive experience. When the device regains connection, the Realtime Database synchronizes the local data changes with the remote updates that occurred while the client was offline, merging any conflicts automatically.

About Realtime Database

Store and sync data between users and devices — at a global scale — using a cloud-hosted, NoSQL database. Cloud Firestore gives you live synchronization and offline support along with efficient data queries. Its integration with other Firebase products enables you to build truly serverless apps.

Cloud Firestore is a cloud-hosted, NoSQL database that your iOS, Android, and web apps can access directly via native SDKs. Cloud Firestore is also available in native Node.js, Java, Python, Unity, C++ and Go SDKs, in addition to REST and RPC APIs.

About Cloud Firestore
Photo by Christopher Burns on Unsplash

Thoughtworks highlight the Firebase App Distribution, which makes it easy to publish test versions of app via a CD pipeline, and Firebase Remote Config, which allows config changes to be dynamically pushed to apps without needing to republish them.

Photo by timJ on Unsplash
TRIAL: Snowflake

A Modern data platform offering big data storage, warehouse solution built for Cloud. Snowflake is an analytic data warehouse provided as Software-as-a-Service (SaaS). Snowflake provides a data warehouse that is faster, easier to use, and far more flexible than traditional data warehouse offerings.

Snowflake’s data warehouse is not built on an existing database or “big data” software platform such as Hadoop. The Snowflake data warehouse uses a new SQL database engine with a unique architecture designed for the cloud. To the user, Snowflake has many similarities to other enterprise data warehouses but also has additional functionality and unique capabilities.

Snowflake enables:

Modern Data warehouse
Augmented Data Lakes
Secure Data Exchange
App Development
Advanced Data Science
Integrated Data Engineering

Supported cloud platform includes AWS, Azure and GCP.

Intro to Snowflake

In the growing world of visual analytics, Tableau tops the list and here is a good of Tableau technology solution overview with Snowflake and followed by best practices.

Overall, it has pretty good documentation and while it has been engaged for medium-sized workloads, it is yet to be tried in large ecosystems where data need to be owned across segments of the organization; hence it is in TRIAL.

Best practices for using Tableau with Snowflake
Photo by Christine Makhlouf on Unsplash
ASSESS: JupyterLab

Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Its uses include data cleaning and transformation, numerical simulation, statistical modelling, machine learning and much more.

Lab is an evolution of Jupyter Notebook, which makes it a next-generation web-based user interface for Project Jupyter.

JupyterLab enables you to work with documents and activities such as Jupyter notebooks, text editors, terminals, and custom components in a flexible, integrated, and extensible manner.

Here is less than 7 minutes video on How to use Jupyter Lab, give a try:

How to use JupyterLab

JupyterLab will eventually replace the classic Jupyter Notebook. Throughout this transition, the same notebook document format will be supported by both the classic Notebook and JupyterLab.

Photo by JESHOOTS.COM on Unsplash
Photo by Jacob Morch on Unsplash

Languages & Frameworks

Interactive radar: https://www.thoughtworks.com/radar/languages-and-frameworks

ADOPT: Vue.js

The Progressive JavaScript Framework for building user interfaces. Unlike other monolithic frameworks, Vue is designed from the ground up to be incrementally adoptable. The core library is focused on the view layer only and is easy to pick up and integrate with other libraries or existing projects. On the other hand, Vue is also perfectly capable of powering sophisticated Single-Page Applications when used in combination with modern tooling and supporting libraries. There are some awesome use cases and an entire website showcasing the projects built with Vue.js, so try it out.

Learn more here:

Courtesy: State of JS

Made with Vue.js

TRIAL: PyTorch

An open-source machine learning framework that accelerates the path from research prototyping to production deployment. An alternative to Tensorflow and would be appropriate to perform any head to head comparison.

Other alternatives include Keras, MXNet, scikit-learn to name a few.

PyTorch is the Python successor of Torch library written in Lua and a big competitor for TensorFlow. It was developed by Facebook and is used by Twitter, Salesforce, the University of Oxford, and many others. PyTorch is mainly used to train deep learning models quickly and effectively,

It has some significant advantages:

  • The modelling process is simple and transparent thanks to the framework’s architectural style;
  • The default define-by-run mode is more like traditional programming, and you can use common debugging tools as pdb, ipdb or PyCharm debugger;
  • It has declarative data parallelism;
  • It features a lot of pre-trained models and modular parts that are ready and easy to combine;
  • It supports distributed training.
  • It is production-ready since version 1.0.

The first stable version, 1.0, transforms PyTorch into a mature and production-ready tool.

New features and improvements

It now supports model serving with three strategies:

  • Direct embedding,
  • Model microservices,
  • Model servers,
  • Official support for Tensorboard,
  • Portable development improvements — JIT compiler tools and a C++ frontend.
Comparison from Stackshare

Discussion on the topic of PyTorch v Tensorflow v MxNet in Kaggle

ASSESS: MediaPipe

Continuing our journey on ML framework … which you can use combined with Tensorflow.

Open-sourced by Google over a year go, MediaPipe is a graph-based framework and simplest way for researchers and developers to build world-class ML solutions and applications for mobile, edge, cloud and the web.

Better put, it is a framework for Perceiving and Processing Reality. Here is the research abstract:

Demos to try in your browser

https://storage.googleapis.com/tfjs-models/demos/facemesh/index.html

https://storage.googleapis.com/tfjs-models/demos/handpose/index.html

Photo by Abraham Barrera on Unsplash
Photo by N. on Unsplash

Create Your Radar

You can create your own technology radar and see where the blips are compared to the ones published by Thoughtworks. It is important for you to understand the differentiator and what makes sense for you and why. There is also constant review needed in order adjust your radar when there is a need for a new framework or techniques that your team want to adopt and they have a credible reason/business case for it. Also, be mindful that you’d also need to create some artefacts including a lightweight Proof of concept to ensure that you are not leaving it too far to figure out any major constraints with the items from our Radar and perform a durable Market scan(s).

Have you created and used your own Technology Radar for your project/organisation? It’d be great to hear your feedback and experience (comments welcome)!

Karthick

No comments:

Post a Comment