I definitely like the idea. My question was more aimed to understand if Java has some desirable features for writing a torrent client maybe as part of the SDK or other 3rd party libs. I didn't even look at your source code yet :P
Java stood out to me because I don't think I've seen other CLIs written in Java.
$ time java HelloWorld
Hello, World
real 0m0.088s
user 0m0.088s
sys 0m0.016sSure it is loading libraries, everything that System.out.println() depends on.
There are plenty of JDKs that support it, and even Oracle is finally adding support for it with Java 9, initially only for Linux x64.
By Java 10 timeframe no one that only knows about OpenJDK and not the several other JDKs can state that Java starts slow vs C, because both will be AOT compiled to native code, loading native .so files.
Nevertheless it is quite useful for improving startup for tools like Gradle or server applications. But sure, I also don't expect Java startup performance to be a problem in the mid- to long-run.
This is only relevant to Oracle's implementation though.
Other JDKs do support static linking, as long as you restrain yourself from features that could require dynamic compilation.
There was a talk at JVM Languages Summit about the current state of AOT compilation regarding Java 10.
https://www.youtube.com/watch?v=n5DCg6M2MDM&index=11&list=PL...
Besides this comparison looks like a total bikeshedding unless you plan on downloading torrents with vim.
By the way the project looks fantastic. I'll be giving it a try.
The alternative for just command line torrent on a *nix is aria2 [0]. Works exactly as advertised.
But then you need to provide different app packages for different OSes.
On top of that, if lucky enough to be on an Linux x64 system, you can AOT compile to native code.