Which programming languages do we use at Electric Imp?

electric-imp

I last posted on this topic about 4 years ago. It’s time for an update.

Note that opinions expressed herein are mine, not Electric Imp’s.

Based on a quick look through our source repositories, it would appear that we have code in the following languages:

  • bash — for various scripting tasks.
  • C++ — for impOS and the agent runtime.
  • Clojure — a one-off tool (runs as an AWS Lambda), because why not?
  • Erlang — most of the “core” backend.
  • Elixir — some of the “core” backend.
  • Expect — scripting.
  • Go — various microservices.
  • Java — BlinkUp SDK for Android.
  • JavaScript — impCentral (the IDE).
  • Lua — nginx integration.
  • Node.js — the API, some microservices.
  • Objective-C — BlinkUp SDK for iOS.
  • Perl — various scripts.
  • Python — system tests, ops tools.
  • RobotFramework — system tests.
  • Ruby — we use chef, other ops tools.
  • Squirrel — this is what customers use on our platform.
  • Swift — BlinkUp SDK for iOS
  • Tcl — we use Vera to enforce C++ conventions; it’s scripted using Tcl, and we have some custom scripts.
  • TypeScript — internal tools.