Zef’s Tech Radar for September 2016

The technologies I keep an eye on and find interesting evolve over time. I thought it could be interesting to start sharing the things I’m currently seeing, thinking about, and playing with. The things on my technological radar, if you will.

Here’s my list for this month.

1. Post-GC era programming languages

Given my background, I keep being intrigued by new programming languages, and my current interest is (systems) languages that work without a garbage collector.

For the longest time I assumed GC (garbage collection) was the way of the future when it comes to memory management, but with the emergence of mobile devices and IoT where memory and CPU cycles are relatively scarce, a GC becomes too costly and too unpredictable. Both Rust and Swift are modern, high-level programming languages that attack this problem from different angles.

Swift inherited Objective-C’s automatic reference counting. Rust does automatic memory management through its ownership model. Of the two, Rust is probably the more academically interesting one. I see Swift as the more pragmatic, about-to-become-huge one, especially now that Apple released a Linux version of Swift and people are experimenting with it on the server. Full stack development with a single language is a dream mobile developers have too, as it turns out. And who uses JavaScript anymore these days…

2. Bots

When chat bots became a thing, my first response was: whatever, AI blah blah, not something for me to be that interested in from a development perspective, because I’m not really a machine learning, natural language processing kind of guy.

However, over the past few weeks I’ve been thinking and reading a bit more about them, and I increasingly feel they are worth exploring.

Honestly I’m not convinced that bots are the future of human-computer interaction, but they may have their uses. Again, is worth exploring and playing with.

What I like about chat bots:

  1. Nothing to install for users, so low barrier to try them out. I played with a few FB messenger bots, and it’s really low friction to start using — you just send a message, and go.
  2. No GUI design required — this great for me, because I’m really bad at this. I can write, though, so textual interfaces may be easier to design for me.
  3. Push — in most apps, push is secondary, in a chat bot it’s expected. You can do request-response, but pushing notifications is a super obvious thing in messengers and a great way to make bots useful. The trick is to not overdo it, of course, I’ve disabled many bots because they flooded me with news updates and what not. And just like friends on messenger that get too chatty — I blocked their ass.
  4. Easy to do cross platform — largely this is all text, with some images and bells and whistles, but there are already a bunch of frameworks that allow you to build bots that operate on multiple messengers, which in turn operate on many different mobile and desktop platforms, so it’s pretty easy to reach your audience wherever they are.

3. Micro services

I still try to figure it to what extent micro services are primarily a technical advancement or about scaling large systems across many teams in a sane way. Probably a mix.

At Egnyte I’m responsible for the Partner Integrations team, which operates about a dozen small independent services. Technically they’re pretty micro, but they are independent to the end extent that they don’t talk to each other at all, just to the Egnyte public API. Another team here is actively looking at splitting more of the “monolith” into smaller services and hopefully improve team ownership. Yet another is investigating micro services on the client. Anyway, the topic is on my mind a lot.

4. Serverless web apps

I remember the first time I was able to host an interactive web app somewhere (it was on a free web host called hypermart that supported Perl through CGI). It was great, but I didn’t have much freedom to install new stuff.

Later I progressed to running my stuff on my own VPS with root access. It was awesome.

Then operating a big sure on servers with root access became my job, then I learned it was really hard.

So, now I’m super excited about the chance that the next big thing may be serverless web apps, where apps are just a bunch of tiny functions that are scaled and operated autostart by companies that know how to do that stuff, like Amazon with AWS Lambda or Google with Google Functions.

I’m eager to see where this will all go and what the scope of this approach will be. One use case for sure are chat bots.