This paper introduces a series of APIs and idioms in Java SE (Java Standard Edition), GreatFree, to
program large-scale distributed systems from scratch without adopting any third party frameworks. When
programming with GreatFree, developers are required to take care of rather than be invisible to most of
the implementation issues in a distributed system. It not only strengthens developers’ skills to polish a
system but also provides them with the techniques to create brand new and creative systems. However,
taking care of many such issues is a heavy load because of the low-level of Java SE. To alleviate the burden
to program with Java SE directly, GreatFree provides numerous APIs and idioms in Java SE to help
programmers resolve indispensable distributed problems, such as communication programming,
serialization, asynchronous and synchronous programming, resource management, load balancing,
caching, eventing, requesting/responding, multicasting, and so forth. Additionally, as an open source tool
to program, developers are able to strengthen their systems through not only adjusting GreatFree
parameters but also upgrading GreatFree APIs and idioms themselves. According to the current intensive
experiments, it is convenient for developers to program an ordinary or a large-scale distributed system
from scratch with GreatFree.