From fd31a7e7cc71d1be6bc743be0114783be514ffdb Mon Sep 17 00:00:00 2001 From: Danny Lin Date: Tue, 1 Feb 2022 00:09:56 -0800 Subject: [PATCH] readme: Document choice of language --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 1ac1b71..73b3751 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,23 @@ yarn global add adevtool - [Using individual helper commands](docs/commands.md) - [Supported system source formats](docs/system-source.md) +## Why TypeScript? + +TypeScript is not a common language for Android-related tools, but I picked it for several reasons: + +- Fast (enough) and easily parallelizable +- Good static type system (for developer experience: fewer bugs and better editor code intelligence) +- Good libraries for friendly CLI interfaces with pretty output +- Relatively lightweight + +### Why not... + +- Python: May not meet speed/parallelization goals easily, types aren't as nice +- Kotlin: Requires big+heavy JVM to run, CLI libraries aren't as good +- Go: Good choice overall, but error checking can be overly verbose + +Overall, TypeScript is a decent compromise on all of these points. + ## License This tool is licensed under the [MIT license](LICENSE), ensuring that anyone is free to use it for any purpose in compliance with the license. Contributions are welcome!