2015 in the rear-view mirror

Another year has passed - it's the highest time to review what has happened in the past 12 months & presumably draw some conclusions for future (yes, I tend to do New Year resolutions & I don't treat them lightly) - to avoid excessive exhibitionism, I'll keep the personal stuff for myself, while publishing only universal stuff that you may find interesting.

Client-side development

Not surprisingly, 2015 was all about JavaScript. It's in a better shape than ever & its future perspectives are stellar:

  • great ECMAScript 2015 adoption (with a great help of transpilers like Babel)
  • common, widely accepted direction for ECMAScript development (as a language - just compare ECMAScript 2015 & TypeScript)
  • great success of JS-powered non-web client apps (i.e. Electron-based Atom or Code)
  • unexpected blitzkrieg of simple, lightweight frameworks like React (+Flux/Redux) or Flight, that give up techniques like 2-way binding for ultra-fast rendering of scoped components

According to my grim predictions, Windows 10 didn't revolutionize client apps. Don't get me wrong - it's really OK as an OS as long as you use it as a standard Windows desktop OS, but UWP apps (aka universal apps) are already dead & quite likely to remain in the graveyard. The last & only hope for them is setting its niche within embedded micro-devices (like Raspberry PIs) that will end up in pretty much every electronic device in our homes, but fighting off Android/Linux (& their relatives) there will be tough. UWP for desktops/mobile/wearables is cold'n'stiff, don't bother.

My resolution(s):

  1. Consider switching to TypeScript within at least one pet project.
  2. Try Ionic/React Native in at least one pet project.

Server-side development

Surprisingly few interesting things have happened here:

  1. Containers are getting a lot of interest (aka over-hyped like f#$k) but very few (except of bleeding edge "unicorns") use them massively in production. Docker itself is a bit too cumbersome to scale (operation-wise), Kubernetes doesn't feel to be "there" yet (in terms of maturity), etc.

  2. Everyone's talking massive distribution, web-scale, actor model, etc., but ... it's mainly talking as not many actually need it YET. IoT is still in day-dream phase, wearables didn't prove as useful as marketers had believed them to be ... Same applies to concepts like DevOps - people nod in recognition when they hear about them, but the truth is that they make the recognizable difference only in particular conditions (that appear quite rarely):

    • massive (I mean - MASSIVE) scale
    • very high competitiveness in the market, that requires very frequent delivery of meaningful changes
    • susceptibility to basic economic calculation rules (i.e., this is NOT a standard in enterprise segment - where you just get a targeted budget & cost saving in one bucket doesn't mean you'll have more to spend in another ...)
  3. JVM tech stalk is still (& will remain for long) in iron grip of Java - none of the contenders got massive increase in interest. Well, more & more people are writing Java in Scala, but I don't think it really counts as a change ;P

  4. OSSing .NET turned out to be no bullshit - clearly it has given Microsoft some time, good PR & has stimulated the community but to what degree? No-one knows yet. If Microsoft counts for the next big thing ("big buzzword") emerge on .NET tech stalk, it didn't happen yet. What's more, there are some orange, warning lights blinking:

    • Roslyn was meant to be a game changer, enabling creation of completely new categories of tools - have you heard about any?
    • during all those years Microsoft wasn't able to fix NuGet, it rather felt like they denied the obvious problems & limitations that exist - OSSing it didn't change much, which is very worrisome
  5. The new wave of hipsterism in software development is massive :) Based on number of tweets / blogs / conf sessions:

    • Haskell is the most popular language these days ...
    • the only kosher way to write client-side code is Elm ...
    • all .NET developers write F#, etc.

Clearly, something's gonna blow soon. It's like the calm before the storm :)

My resolution(s):

  1. Continue my basic strategy - with a relatively narrow (but deep & always up-to-date) area of expertise (mainly .NET, Web), make sure to cover all other key (IMHO) platforms (i.e.: JVM, Node, Android) on the basic level (ability to create something relatively simple practically without a need for additional preparation).
  2. Continue digging into Elixir (+OTP, +Phoenix, etc.) - there's still MUCH to crunch & I'm fully committed to go all out for it
  3. Keep watching Go - it seems limited, it's not being much talked about, but in the end people keep creating really amusing pieces of software using it

General

I've slapped below anything that doesn't belong to categories above:

  1. Two biggest hypes of past year remain unconcluded - I mean microservices & rennaisance of functional programming:

    • almost everyone loves microservices & they get a great synergy with other parallel trends (DevOps, containers, actor model gaining popularity), but there's no simple answer for one basic, killer question: how to avoid the transformation from big, tangled ball of mud to big, tangled ball of microservices? (& if you're capable of preventing the latter, why don't you do it for the first one?)
    • non-opinionated FP (with mutable types, hybrid language constructs, etc.) is just fooling yourself; OTOH opinionated FP (Haskell, OCAML, etc.) forces you to leave behind not just bad practices, but also massive heirloom of libraries, frameworks & other useful tools to start with barely anything at your disposal
  2. Services, services, services everywhere - there's no way back. On-line is default, all kind of subscriptions are standard now (recently even for IDEs & programming tools).

  3. Bitcoin didn't take over the world, neither did Blockchain as a more general idea. We've been hearing great ideas what's possible with them (distributed ledgers, Internet of Value, etc.), but no-one has really managed to reforge this concepts in something truly ground-breaking & viral (well, the latter may not be the point really ...).

  4. Disillusioning year for gadgets - none of the "big names" made through: Google Glass won't even get to market (without a significant revamp), so-called wearables (incl. Apple Watch) appeared to be just Pagers 2.0 (nothing but notifications), 3-D printers are still either very expensive or totally crappy (pick one). Gadgets that got most vibe were ... hoverboards, but ... yea, not even really worth digging into. Even Apple has lost its "golden touch" - customers ain't stupid, they are waiting for stuff that will bring some real benefit into their lifes.

  5. OSS is da king - no single company, including the most potent ones, can match the creative potential of OSS community. All big players have finally got it. Closed tech will without a doubt lack behind open tech, unless:

    • unfair, dated patent rules & policies restrict the free market & fair competitiveness
    • there's no (potential) community for this particular tech (i.e.: industry-specific software for legislatively regulated markets)

My resolution(s):

  1. Ah, screw that, I'm going to support at least one OSS project - got something on my mind already (Elixir-related). Not sure how I find time for that, but the idea was tempting for far too long already :)

Short questions, short answers:

Question Answer
1. Motto of the year? Lightweight is the new black.
2. Disruption of the year? Not found ...
3. Software product of the year? Witcher 3, of course ;D
4. Tech thing I wait for in 2016? (.NET) Azure Service Fabric production-ready (seriously).
5. Tech thing I wait for in 2016? (non-.NET) Nothing really, I want to get surprised.
6. Fingers crossed for in 2016? That physical borders will continue do disappear for digital services.
7. Personal development goal for 2016? I want product development instead of project conducting. Desperately.
8. Biggest fear(s) / concern(s) for 2016? Security of digital identity. Problems gets more & more serious, while there are no real solutions on the horizon.
9. Who will reign in software dev job market in 2016? No change, employees.
10. Will the Silicon Valley start-up bubble blow in 2016? Not just yet, I think ;P

P.S.

Happy New Year!

Pic: © SSilver - Fotolia.com