I was tracing the network traffic between the gradle client process and the gradle daemon and was wondering if Java Serialized Objects make the most sense from a portability standpoint, especially since there is consideration of creating a native client to communicate with the daemon to mitigate JVM startup time concerns.
Short of using something like Excelsior JET, a directly compiled executable will be implemented in some other language besides Java, precluding easy use of Serialized Objects. Two obvious portable data serialization formats are JSON and Google Protocol Buffers, each with different advantages and disadvantages. Not saying that either one should become the data transport protocol to/from the daemon, but just listing them as potential alternatives. Instead of replacing the current communications, alternatively, there could be a (potentially more limited) adapter for separate control on a different port that uses something other than Java Serialized Objects for the transport mechanism. -Spencer
