Technology radar is published by ThoughtWorks. It publishes insights into the technology and trends which may shape the future. It also maintains position of existing tools and technologies. I am writing my personal technology radar in this article. I will explain tools, technologies and frameworks which I will keep an eye on for this year.
Software industry is moving too fast these days. The main problem for every one is to predict which technology will grow and become mainstream and which one are just buzz words. It’s nearly impossible for a person to keep track of all latest technologies, I am not exception in that so I have decided to keep an eye on following technologies for the 2018.
Machine Learning / Artificial Intelligence
- Scikit Python: It’s the most popular machine learning library in Python. Simple and efficient tools for data mining and data analysis. Accessible to everybody, and reusable in various contexts. It’s built on NumPy, SciPy and matplotlib. Open source, commercially usable — BSD license. Sickit does not support GPU for processing. Scikit developers belive that GPUs don’t play a large role in machine learning today and much larger gains in speed can often be achieved by a careful choice of algorithms.
- Tenserflow: It is an open-source software library for dataflow programming across a range of tasks. It is a symbolic math library, and also used for machine learning applications such as neural networks. Tenserflow lite and mobile versions are available which helps to run model in low GPU/CPU devices such as Android, iOS and Raspberry Pi.
- Apache Spark: It is known as a fast, easy-to-use and general engine for big data processing that has built-in modules for streaming, SQL, Machine Learning (ML) and graph processing.
- Deeplearning4j: Eclipse Deeplearning4j is a deep learning programming library written for Java and the Java virtual machine (JVM) and a computing framework with wide support for deep learning algorithms. Tensorflow, Keras and Deeplearning4j work together. Deeplearning4j can import models from Tensorflow and other Python frameworks if they have been created with Keras.
- Docker: Docker is a software technology providing operating-system-level virtualization also known as containers, promoted by the company Docker, Inc. Docker is not new so why it’s in my list? Actually I am looking for products which are built around Docker, like Docker compose, docker machine, docker cloud etc.
- Kubernetes: It is an open-source system for automating deployment, scaling and management of containerized applications. It’s container orchestration tool. Kubernetes is also known like Docker but again I am interested in ecosystem and projects developed around Kubernetes, like kubless, openfaas, fission, workflow.
- openwhisk: Apache OpenWhisk (Incubating) is a serverless, open source cloud platform that executes functions in response to events at any scale. IBM provides openwhisk as service as pert of BlueMix. Openwhisk is more mature compare to Fn project but it’s also complex to deploy and maintain. check architecture of openwhisk.
- Fn project: It’s an event-driven, open source, Functions-as-a-Service (FaaS) compute platform that you can run anywhere. Written in Go, It’s native to docker, and runs every function in docker container which means you can run any programming language with Fn project. It’s easy to operate and maintain. I think, Fn project is not production ready yet.
- Ethereum: Here, I mean ethereum framework and solidity language. Using Ethereum framework you can implement blockchain use cases. Ethereum is community driven and very fast moving technology.
- Hyperledger: It’s another blockchain framework. Hyperledger is considered as business or enterprise blockchain. It is modular and extendable framework. Hyperledger is manage by Linux Foundation and govern by many companies.
- Kaaproject: Kaa is an open-source platform for building and facilitating applications in the realm of Internet of Things. It is horizontally scalable, fault tolerant and provides a broad set of features. Kaa provide SDKs for popular languages and It has out of the box hardware support.
- Google Firebase: Its really next generation MBaaS (Mobile Backend as a Service). I consider firebase as next generation because I consider Parse.com (If you remember) I consider it as first generation. Parse was providing database and authentication only but when we look at Firebase, it provides many services and Google Cloud Function to write logic. Firebase best to build PoC. Google seems very serious for Firebase based on how they are adding features in to it.
- CloudBoost: If you want to use Firebase but you want everything in on premise or hosted on your server which you can control then CloudBoost.io is best for you. Cloudboost provide almost same functionality as Firebase but entire project is open source. Cloudboost also provides hosted / cloud solution if you do not want to host on premise.
- Flutter: It is most interesting cross platform app development tool. It’s still in alpha version. I am interested because they took unique approach to develop cross platform applications. Flutter does not use native widget or components to render the UI. Instead they have developped their own components which looks like native Android and iOS. Flutter just takes screen from OS and render every pixel on it’s own. They know productivity and performance are key to success. In Flutter they keep these thing in mind. Following is the introduction sentence of Flutter.
“Flutter is a mobile app SDK for building high-performance, high-fidelity, apps for iOS and Android, from a single codebase.”
- Reactive Native: It’s open source framework from Facebook. The main difference between Ionic and Reactive Native is rendering. Ionic uses web view for rendering widget while Reactive Native uses native widget for rendering.
- Ionic: Ionic is an HTML5 mobile app development framework targeted at building hybrid mobile apps. Hybrid apps are essentially small websites running in a browser shell in an app that have access to the native platform layer. Frontend developers can develop web and mobile both if you use NodeJs as backend. If your application is data driven and you do not need fancy animation then Ionic is perfect choice.
- Java 9: I think this is biggest change ever seen by Java community. Java 9 introduces modularity, REPL, compiler improvements and much more. Before Java 9, Java’s popularity was dropping, young developers and startups were choosing other languages but after Java 9 and 6 months release plan Java’s community will be vibrant again. I think Java will again attract developers and startups. Even after all ups and downs of Sun Microsoft System and Oracle, Java has managed to maintain 1st rank in TIOBE Index.
- Kotlin: Statically typed programming language for modern multi-platform applications. Kotlin was not very popular language until last may, when Google announce Kotlin as first class programming language support for Android development. Kotlin is developed by Jet Brain – a company which is famous for IDE development. In TIOBE Index Kotlin ranked 39. The only reason that Kotlin is in my personal technology radar is “Android” development.
- Go Lang: If you are looking for performance, productivity and simplicity then Go Lang is perfect place. I am learning Go Lang since last year. It’s open source statically typed programming language from Google. It’s general purpose language
- Dart: I do not have experience with Dart language but I am learning it because of Flutter.io. According to wikipedia following is the purpose of Dart language.
Dart is a general-purpose programming language originally developed by Googleand later approved as a standard by Ecma (ECMA-408). It is used to build web, server and mobile applications, and for Internet of Things(IoT) devices. It is open-source software under a permissive free software license
- Python: Python is a general-purpose programming language that can pretty much do anything you need it to: data munging, data engineering, data wrangling, website scraping, web app building and more. It’s simpler to master than R. Also, python has many great libraries for data science or statistics which are specially used in machine learning like scikit-learn, numpy, matloplib for data visualization, pandas, scipy etc.
Apart from above list I am also interested in Quantum computing. IBM, Microsoft and other big companies are working on it. Quantum computing will change entire paradigm of computer processing. Few helpful links link1, link2, link3 and link4. Google is working on new Operating System called fuchsia. Computer Brain Interface will be another big thing that may change how we interact with the computer. Emotiv is working on CBI. We don’t know what future hold for us.
The power for creating a better future is contained in the present moment: You create a good future by creating a good present. — Eckhart Tolle