Professional Documents
Culture Documents
RADAR VOL.16
Insights into the
technology and trends
shaping the future
thoughtworks.com/radar
#TWTechRadar
CONTRIBUTORS
The Technology Radar is prepared by the
ThoughtWorks Technology Advisory Board, comprised of:
Rebecca Parsons (CTO) | Martin Fowler (Chief Scientist) | Badri Janakiraman | Bharani Subramaniam | Camilla Crispim
Erik Doernenburg | Evan Bottcher | Fausto de la Torre | Hao Xu | Ian Cartwright
James Lewis | Jonny LeRoy | Marco Valtas | Mike Mason | Neal Ford
Rachel Laycock | Scott Shaw | Srihari Srinivasan | Zhamak Dehghani
WHATS NEW?
Highlighted themes in this edition:
The Radar themes emerge from observations and Python is a language that keeps popping up in
conversations during the vetting process; recently, interesting places. Its ease of use as a general
while compiling the Radar, weve noticed the number programming language, combined with its strong
of new entries in the Platforms quadrant. We think foundation in mathematical and scientific computing
this is indicative of a broader trend in the software has historically led to its grassroots adoption by the
development ecosystem. academic and research communities. More recently,
industry trends around AI commoditization and
Notable Silicon Valley companies have illustrated applications, combined with the maturity of Python 3,
how building a suitable platform can yield significant have helped bring new communities into the
benefits. Part of their success comes from finding Python fold.
a useful level of encapsulation and capabilities.
Increasingly, platform thinking appears across the This edition of the Radar features a few Python libraries
ecosystemfrom advanced capabilities highlighted on that have helped boost the ecosystem, including Scikit-
the Radar such as natural language, to infrastructure learn in the machine learning domain; TensorFlow,
platforms such as Amazon. Keras, and Airflow for smart data flow graphs; and
spaCy which implements natural language processing to
Businesses are starting to think about platforms help empower conversationally aware APIs. Increasingly,
when exposing select capabilities via product-inspired we see Python bridging the gap between the scientists
APIs. Development teams think more in terms of and engineers within organizations, loosening past
building platforms for integration and improved prejudice against their favorite tools.
developer experience. It seems the industry has finally
latched onto a reasonable combination of packaging, Architectural approaches such as microservices and
convenience, and usefulness. containers have eased the execution of Python in
production environments. Engineers can now deploy
One definition that we like is that platforms should and integrate specialized Python code created by
expose a self-service API and be easy to configure and scientists through language- and technology-agnostic
provision within a team environmentwhich intersects APIs. This fluidity is a great step toward a consistent
nicely with another emerging theme, developer ecosystem between researchers and engineers,
experience as the new differentiator. We expect to see in contrast to the de facto practice of translating
further refinement in both the definition and capabilities specialized languages such as R to the production
of platforms in the near future. environments.
RADAR AT A GLANCE
1 ADOPT 2 TRIAL
We feel strongly that Worth pursuing. It is
the industry should be important to understand how
adopting these items. to build up this capability.
We use them when Enterprises should try this
appropriate on our technology on a project that
projects. can handle the risk.
1 2 3 4
ADOPT ADOPT TRIAL ASSESS HOLD
3 ASSESS 4 HOLD
Worth exploring with the Proceed with caution.
goal of understanding
how it will affect your
enterprise.
96 108
Our Radar is forward looking. To make room for new items, we fade items
that havent moved recently, which isnt a reflection on their value but rather
our limited Radar real estate.
HOLD
18. A single CI instance for all teams
19. Anemic REST 11 4
20. Big Data envy
21. CI theatre NEW 18
22. Enterprise-wide integration test environments NEW
23. Spec-based codegen NEW 3
10 1
PLATFORMS 2
TRIAL
57. Airflow NEW
68 58. Cake and Fake NEW
66 67
69 59. Galen
60. HashiCorp Vault
61. Pa11y
70 62. Scikit-learn
63. Serverless Framework NEW
71 64. Talisman
59 65. Terraform
58
57 ASSESS
72
66. Amazon Rekognition NEW
67. Android-x86
73 68. Bottled Water
69. Claudia NEW
70. Clojure.spec
60 61 71. InSpec NEW
74
72. Molecule NEW
73. Spacemacs NEW
62 74. spaCy NEW
75 75. Spinnaker NEW
76. Testinfra NEW
63 76 77. Yarn NEW
55
HOLD
64
56 77
65
LANGUAGES & FRAMEWORKS
ADOPT TRIAL ASSESS HOLD ADOPT
78. Ember.js
79. Python 3
81 89 103 80. ReactiveX
80 81. Redux
78 102
88 TRIAL
79 82. Avro NEW
83. Elixir
101 84. Enzyme
87
85. Hangfire NEW
100 86. Nightwatch NEW
87. Phoenix
85 88. Quick and Nimble
86 99 89. Vue.js
83
98 ASSESS
90. Angular 2 NEW
82 91. Caffe NEW
92. DeepLearning.scala NEW
84 97
93. ECMAScript 2017
96
94. Instana NEW
95. JuMP
96. Keras NEW
94 95
97. Knet.jl NEW
93 104 98. Kotlin NEW
99. Physical Web
100. PostCSS NEW
91 92 101. Spring Cloud NEW
102. Three.js
90 103. WebRTC
New or changed
HOLD
No change 104. AngularJS
18
HOLD
3 55
18. A single CI instance for all teams 10 1
19. Anemic REST
56
20. Big Data envy 2
21. CI theatre NEW
HOLD ASSESS TRIAL ADOPT ADOPT
22. Enterprise-wide integration test environments NEW
23. Spec-based codegen NEW 32
33
34 26 80
35 24 78
79
36 25
37 27
Companies have wholeheartedly embraced APIs as a In previous Radars issues we mentioned tools such as
38
way to expose business capabilities to both external git-crypt and Blackbox that allow us 28to keep secrets
and internal developers. APIs promise the ability safe inside the39source code. DECOUPLING SECRET31 83
29
40
to experiment quickly with new business ideas by MANAGEMENT53 FROM SOURCE
42
CODE is our30way to 82
recombining core capabilities. But what differentiates remind technologists41
that there
43
are other options
an API from an ordinary enterprise integration service? for storing secrets. For example, HashiCorp vault, CI
44 45
One difference lies in treating APIS AS A PRODUCT, servers and configuration management 47 tools provide
even when the consumer is an internal system or fellow mechanisms for storing secrets that are48not49linked to
46 50
51 92
developer. Teams that build APIs should understand the source code of an application. Both approaches are 91
90
the needs of their customers and make the product viable and we recommend you use at least one of them
54
52
16
15
14
20
7 59
13 58
8 57
PLATFORMS
6 9
19
12 5 60
11 4
18
3 55
10 1
56
2
39 83
ASSESS 29 31
32. .NET Core 53
40 30
33. Amazon API Gateway 42 82
41
34. api.ai NEW 43
35. Cassandra carefully
36. Cloud-based image comprehension NEW 44 45
37. DataStax Enterprise Graph NEW 47
38. Electron
39. Ethereum 48
46 49
50
40. Hyperledger NEW 51 91 92
41. IndiaStack
90
42. Kafka Streams NEW 54
52
43. Keycloak NEW
44. Mesosphere DCOS
45. Mosquitto NEW
46. Nuance Mix
47. OpenVR
48. PlatformIO NEW
49. Tango NEW
50. Voice platforms NEW
51. WebVR NEW
52. wit.ai
HOLD
53. CMS as a platform
54. Overambitious API gateways
The Principle of Least Privilege encourages us to restrict AMAZON API GATEWAY enables developers to expose
software components to access only the resources that API services to Internet clients. It offers the usual
they need. By default, however, a Linux process can do API gateway features including traffic management,
anything its running user can dofrom binding to arbitrary monitoring, authentication and authorization. Our
ports to spawning new shells. The LINUX SECURITY teams have had positive experiences using this service
MODULES (LSM) framework, which allows for security to front AWS Lambda as part of serverless architectures.
extensions to be plugged into the kernel, has been used On the other hand, we have had more challenges using
to implement MAC on Linux. SELinux and AppArmor it as a more general purpose gateway to front HTTP/
are the predominant and best-known LSM-compatible HTTPS endpoints running on EC2where we have
implementations that ship with the kernel. We recommend been stymied by a lack of interoperability with VPCs and
that teams learn to use one of these security frameworks difficulty in establishing client cert authentication with
(which is why we placed it in the Adopt ring). They help the gateway. Due to this mixed experience, we would
teams assess questions about who has access to what like to advise teams to trial using AWS API Gateway with
resources on shared hosts, including contained services. Lambda but assess suitability when using it in a more
This conservative approach to access management will help general setting.
teams build security into their SDLC processes.
TRIAL 22
57. Airflow NEW 17
58. Cake and Fake NEW
68
59. Galen 21 67
66
60. HashiCorp Vault 69
16
61. Pa11y
15
62. Scikit-learn 70
63. Serverless Framework NEW 14 71
64. Talisman 20
7 59
65. Terraform 13
8 57
58
72
ASSESS
66. Amazon Rekognition NEW 6 9 73
67. Android-x86 19 12 5
68. Bottled Water 60 61 74
69. Claudia NEW
70. Clojure.spec
62 75
71. InSpec NEW 11 4
72. Molecule NEW 63
18 76
73. Spacemacs NEW
3 55
74. spaCy NEW 10 1
75. Spinnaker NEW 56
64
77
65
76. Testinfra NEW 2
77. Yarn NEW
HOLD ASSESS TRIAL ADOPT ADOPT TRIAL ASSESS HOLD
HOLD 32
33 81 89 103
34 26 80
35 24 78 102
88
79
36 25
87 101
Web application developers have it27easy when it comes
37 dynamic pipelines that resulted in lean and explicit data
100
to simplifying and automating
38 diverse application
28 workflows. Airflow85 makes it easy to define your operators
86 99
workflows; they can choose
39 from a variety of solutions and executors
83
and to extend the library so that it fits the
31
to help automate 53release processes. When developing
40
29
30 level of abstraction that suits your98environment.
42 82
for mobile, however, were dealing
41 with two operating 84 97
43 96
systems with two different ways of building, testing,
45
Our teams have adopted fastlane as the go-to
distribution, generating screenshots, 44
signing and
tool to automate the release process for iOS
94 95
47 93 104
distributing applications. To help ease the pain, our
and Android applications.
48
46 49
teams have adopted FASTLANE as the go-to tool to 50
51 91 92
62 75
11 4
18 63 76
3 55
10 1
64
56 65 77
2
HOLD
104. AngularJS
PYTHON 3 introduced many useful features that concerns, provides the required application plumbing,
are not backward compatible with Python 2.x. It also and extends the observable pattern on streams of
removed numerous Python 2.x features that were asynchronous events. ReactiveX also has an active
maintained for backward compatibility, making Python developer community and supports a growing list of
3 easier to learn and use and more consistent with the languages, the most recent addition being RxSwift. It also
rest of the language. Our experience using Python 3 in implements binding to mobile and desktop platforms.
domains such as machine learning and web application
development shows that both the language and most The open source REACTIVEX library beautifully
of its supporting libraries have matured for adoption.
abstracts away these concernslow-level
We were able to fork and patch minor issues of
existing libraries or avoided using incompatible Python threading, synchronization, thread safety,
2.x libraries that had been abandoned. If you are concurrent data structures, and non-blocking
developing in Python we strongly encourage you to use I/Oto provide the required application
Python 3.
plumbing, and extends the observable pattern
Distributed systems often utilize multithreading, event-
on streams of asynchronous events.
based communication and nonblocking I/O to improve ReactiveX
the overall system efficiency. These programming
techniques impose challenges such as low-level AVRO is a framework for data serialization. By storing
threading, synchronization, thread safety, concurrent schema along with the message content, it encourages
data structures, and non-blocking I/O. The open source schema evolution. Producers can edit field names, add
REACTIVEX library beautifully abstracts away these new fields or delete existing fields and Avro guarantees
SUBSCRIBE NOW
thght.works/Sub-EN
ThoughtWorks is a technology consultancy and community of passionate,
purpose-led individuals. We help our clients put technology at the core of their
business, and together create the software that matters most to them. Dedicated
to positive social change; our mission is to better humanity through software, and
we partner with many organisations striving in the same direction.
Founded over 20 years ago, ThoughtWorks has grown to a company of over 4000
people, including a products division which makes pioneering tools for software
teams. ThoughtWorks has 40 offices across 14 countries: Australia, Brazil, Chile,
China, Ecuador, Germany, India, Italy, Singapore, South Africa, Spain, Turkey, the
United Kingdom and the United States.
thoughtworks.com