summaryrefslogtreecommitdiff
path: root/doc/decisions_history.md
diff options
context:
space:
mode:
authorjbion <joffrey.bion@amadeus.com>2019-05-13 14:15:27 +0200
committerjbion <joffrey.bion@amadeus.com>2019-05-13 14:15:27 +0200
commitba9b2ffae4d687bc352a84e9f914da3617ac30d9 (patch)
treeb5e118d94fb07cc784b5d2001d00e6e17f166817 /doc/decisions_history.md
parentRemove flow-related stuff (diff)
downloadseven-wonders-ba9b2ffae4d687bc352a84e9f914da3617ac30d9.tar.gz
seven-wonders-ba9b2ffae4d687bc352a84e9f914da3617ac30d9.tar.bz2
seven-wonders-ba9b2ffae4d687bc352a84e9f914da3617ac30d9.zip
Rephrase Kotlin migration explanation
Diffstat (limited to 'doc/decisions_history.md')
-rw-r--r--doc/decisions_history.md18
1 files changed, 10 insertions, 8 deletions
diff --git a/doc/decisions_history.md b/doc/decisions_history.md
index 5090876d..72ab06a2 100644
--- a/doc/decisions_history.md
+++ b/doc/decisions_history.md
@@ -1,17 +1,19 @@
# Technical decisions and issues log
-## 2018.07.05-10 Kotlin Migration
+## 2018.07.05-10 Kotlin Migration of the Backend
[@joffrey-bion][1] — :key: *Backend, Kotlin*
-I recently fell in love with Kotlin, as it seems to improve the few things I disliked about Java:
+Kotlin really improves on Java on multiple aspects:
-- no unnecessary verbosity, Kotlin is much more condensed than Java: properties, streams, data classes, etc. There
-seems to be idioms for most things developers do all the time.
-- non-nullability is enforced at compile time when using non nullable types (no more NPEs and unnecessary null checks)
-- Kotlin stdlib has 2 different interfaces for read only and mutable collections
+- nullability is encoded in the type system, which means no more NPEs and unnecessary null checks
+- no unnecessary verbosity: Kotlin is much more condensed than Java for declaring classes and all their members,
+implementing delegation, transforming collections, etc.
+- the stdlib has 2 different interfaces for read only and mutable collections
+- extension functions allow to add methods to an existing type without extending it
+- and many more...
-Kotlin claims complete interoperability with Java and the possibility of incremental migration, so I decided to give
-it a try and migrated the game engine and backend server of Seven Wonders to see how it goes and if I could do this
+Kotlin is completely interoperable with Java and can be adopted incrementally, so I decided to give it a try.
+I migrated the game engine and backend server of Seven Wonders to see how it goes and if I could do this
kind of change at work. For now, this has been quite a success.
## 2017.08-2018.04 Livedoc development
bgstack15