IfC-2023: Technology Landscape

Part Two: Five-Factor Analysis

Introduction

  • Programming Language — is an IfC product based on an existing mainstream programming language(s) or embarks on developing a new one?
  • Runtime Environment — does it still use some existing runtime environment (e.g. Node.js)?
  • API — is it proprietary or some form of standard/open source? Cloud-specific or cloud-agnostic?
  • IDE — does it assume its proprietary, presumably cloud-based, Integrated Development Environment or could be integrated with one or more of existing IDEs?
  • Deployment — does it assume deployment applications/services to its own cloud account or produced artifacts could be deployed to the customer’s own cloud account?

Programming Language

New Languages

New Languages

  • Confusion between sequential, concurrent and parallel execution at different levels of isolation: process, thread, greenlet
  • Confusion between in-proc function call and out-of-proc message passing
  • Lack of common syntax for external event triggers
  • Lack of consistent data access control
  • Confusion between synchronous and asynchronous APIs
  • Confusion between blocking and non-blocking API call
  • Programming paradigm: procedural, functional, object oriented, actor-based
  • Static vs dynamic typing
  • Interpreted vs compiled
  • Compile- and/or run-time meta-programming support
  • Standard vs 3rd party libraries
  • Interoperability with other languages
  • Probably many more …

Mainstream Programming Languages

  • Klotho: JavaScript, Python, Golang, (Java, C# in development)
  • Nitric: JavaScript, Python, Golang, (Java, Kotlin, C# in development)
  • Cloudflare: JavaScript, Rust, C, Cobol, Kotlin, Dart, Python, Scala, Reason/OCaml, Perl, PHP, FSharp
  • Vercel: JavaScript, Golang, Python, Ruby

Runtime Environment

  • Language syntax
  • Compilation target (bytecode vs native machine code)
  • Calling and argument passing conventions (see Application Binary Interface)
Fig. 1: Python Ecosystem

APIs

  • Encore: proprietary, cloud-agnostic, main API, decorators for HTTP routing, no support for 3rd party Open Source libraries
  • Shuttle: proprietary, cloud-agnostic, main API, heavy usage of decorators, support for 3rd party Open Source libraries (web, db)
  • Chalice: proprietary, cloud vendor-specific main API, decorators for event triggers, no support for 3rd party Open Source libraries
  • Modal: proprietary, cloud-agnostic main API, use decorators, support for Machine Learning Open Source libraries
  • CAIOS: language standard or 3rd party Open Source cloud-agnostic API, optional support for decorators (e.g. HTTP request routing), open-end architecture supports onboarding of missing 3rd party Open Source libraries
  • Klotho: Open Source APIs, cloud-agnostic, heavy usage of annotations, support for adding additional 3rd party Open Source libraries
  • Nitric: proprietary, cloud-aware main API, decorators for HTTP routing (at least), no support for 3rd party Open Source libraries
  • Ampt: proprietary, cloud-aware, main API, no usage of decorators, extendable via Bring Your Own Framework mechnism
  • Cloudflare: proprietary, cloud-aware, main API, no decorators, no support for 3rd party Open Source libraries
  • Dark: proprietary main API, no decorators, no support for 3rd party Open Source libraries
  • Vercel: standard languge APIs, cloud-agnostic, usage of decorators depends on framework, support for onboarding 3rd party libraries
  • Wing: proprietary, cloud-aware, main API, no decorators, support for JavaScript libraries, but presumably those which do not require access to cloud resources

IDEs

Deployments

Wait a Minute! What About …?

What About Observability?

What About Kubernetes and Terraform?

What About Cloud Portability?

What About Engineering Platform?

All I See are Trees. Where is the Forest?

--

--

Software technologist/architect; connecting dots across multiple disciplines; C-level mentoring

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Asher Sterkin

Software technologist/architect; connecting dots across multiple disciplines; C-level mentoring