Friday, 1 January 2016

Time Through the Eyes of an Exponential Entrepreneur

I'm super excited for 2016 and how all things on the development front are accelerating forward at an exponential rate, making bold ambitions possible. The past year has sped by with increasing excitement and I found myself coding and drinking coffee doing what I enjoy most days, actualizing my software product.

Because my product solution is an answer to market demands there is a strong sense of purpose to my engineering and development. All in good humor, I experience a motivation that is somewhat similar to the following clip from the movie Bruce Almighty, where Bruce is answering prayers.

For Christmas my beautiful wife Sandra got me an awesome book called BOLD, which she of course wanted to read first. The book perfectly describes the world as we see it and provides a strategic roadmap to realizing great ambitions in our modern digital age.

To sum up a progressive 2015 and to get this post to you I'll highlight some of the events representing the more monumental pivot points I have navigated. Continual learning has been super important to drive progress forward into the exponential future.

Exponential Devices

The product I'm developing has always been about us humans interacting with computers in natural ways. It is good then to see fantastic new devices come to the market to facilitate such interaction and also increase the potential market share for my product.

Mobile platforms continue to rapidly expand with many more Android devices than iOS devices and it is also very good to see Apple finally release the iPad Pro, which features a natural hand held pen-cil. I'm sure more tablets with pens from other vendors will follow suit.

Then there is HoloLens, a mind blowing device from Microsoft that is going to radically change the way we interact with computers within our everyday environments. The HoloLens is a smart blend of Virtual and Augmented Reality that is super practical for many industries.

Exponential Apps

The product I'm developing is aimed at both the mass and professional markets so it will be deployed to as many target devices as possible. This is made much easier by new tools like React Native from Facebook and Electron from Github. Using only one codebase we are now able to deliver products to all the leading mobile and desktop platforms.

It's a well known fact that the greater portion of apps out there are useless and that users download and forget them in most cases. Quality apps are the next wave and having the means to have them quickly updated and authenticated is ultra important.

The growth of technology is in the throes of outpacing the limiting app-store model of business. Strong web standards together with a fully reactive framework like Cycle.js plus robust client and server interaction has made this possible. For further information on this important turning point read, The App-ocalypse: Can Web standards make mobile apps obsolete?

Exponential Coding

The product I'm developing requires the best foundation. It has been great to see ES6 arrive as the next very robust version of JavaScript. Also, the app frameworks, functional libraries and buzzwords have been churning out at a ridiculous rate. This rate of change is causing developer fatigue and frustration throughout the industry and after the noise is cleared there are only a few novel innovations that truly help the developer.

One paradigm that is here to stay is Reactive Programming. This is simply the realization that the user interface is the product of data, expressed as UI=ƒ(data). This has become popularized by Facebook's React although the idea behind it is similar to how spreadsheets have always worked, where as the state of data changes it is immediately reflected.

The more important paradigm to emerge is Functional Programming. This is a strict programming discipline where functions are expected to be pure, meaning that given the same inputs they will always return the same output without introducing side-effects.

There are many important implications of this and it is very good that this sound mathematical approach is finding it's way out of university labs and languages like Haskell to modern day JavaScript.

Next, these two paradigms have been brought together in a revolutionary approach to programming called Functional Reactive Programming (FRP). This new way of engineering and developing code is replacing long established practices like Object-Oriented Programming (OOP) or in the very least moving in as an equal part of the way development is done.

FRP also facilitates an all around better methodology of development than some of the practices that have stood in it's absence, for an enlightening experience watch the following video.

The leading FRP solution is ReactiveX, which was started and open sourced by Microsoft. RxJS is the JavaScript version of ReactiveX and it is now being adopted as an integral part by all the major frameworks, including: Angular2, React, Ember and to the greatest extent by Cycle. RxJS conforms to the Observable protocol that will soon become part of the ES7 version of JavaScript.

To complete the foundation for modern FRP apps on the backend there is Firebase, the Google service that acts as a FRP collaborative database in the cloud. Firebase provides robust security, authentication, storage and collaboration making it the premier solution for a product like ours that needs to scale rapidly across all devices.

Living the Dream

Having all this exponential growth across the internet, device, app, and coding spaces gets us excited and ignited. While we work like busy elves to ready our product we also had a great camping holiday this past summer and Sandra has enjoyed playing in a soccer league, singing in a classical choir and keeping me fed with great home cooking.

To off load after the days of coding I very much enjoy the physicality of playing my guitar, having a good neo-classical shred workout harmonizes the senses. Music is an awesome thing and we are happy to have it permeate our lives. We also know that living the dream can be tough at times but the outcome will be exponentia!