  Like other engineering disciplines, software engineering should also have
principles to guide the construction of sustainable computer applications.
Tangible properties include a) unlimited scalability, b) maximal
reproducibility, and c) optimizable energy efficiency. In practice, we expect a
sustainable scientific application should be written once and execute many
times on multiple different processing platforms of different scales with
optimized performance and energy efficiency. For more than two decades,
explicit parallel programming/processing paradigms only focused on performance.
Practices showed that the rigid program-data binding prohibited dynamic runtime
resource optimization and fault isolation, making it difficult to reproduce
applications in scale. This paper reports our practice and experiences in
search of the first principles of sustainable software engineering for compute
and data intensive applications. Specifically, we report our practice and
experiences using implicit parallel programming/processing paradigms.
