The greeNsort® project follows a pragmatic scientific approach, from focused R&D over free publication to low-cost implementation


Research & Development

A good scientist is a person with original ideas. A good engineer is a person who makes a design that works with as few original ideas as possible. — Freeman Dyson

Science shall be systematic and unbiased, but trends and biases threaten objectivity, namely replication bias and publication bias. What testing is for IT, is replication for science: it’s core to the method but rarely done because there are little incentives. greeNsort® is an extreme replication project: greeNsort® went back to the roots of digital sorting, starting with von Neumann’s Mergesort (1945) and Hoare’s Quicksort (1961). greeNsort® analyzed trends in the history of sorting research and questioned important research results. greeNsort® reviewed core sorting literature, identified limiting beliefs and focused on unexplored parts of solution space.

Core elements of the greeNsort® method are:

Using this method, greeNsort® developed sustainable algorithms, see results and portfolio


Liberating the Intellectual Property

The value of an idea lies in the using of it — Thomas Edison

In order to realize it’s full savings potential, the greeNsort® algorithms must be freely available. Usual patent licensing would block broad adoption. Hence, if not patenting, a philantrophic or governmental sponsor is needed to recover greeNsort®’s R&D costs (see Next Steps). Once R&D costs are covered, greeNsort® algorithms can be published - maybe as a patent9 - and implemented.


Publication

computing professionals should promote environmental sustainability both locally and globally — ACM Code of Ethics

The Association for Computing Machinery (ACM) is a is a US-based international professional association for computing. With its motto “Advancing Computing as a Science & Profession” it runs journals for scientists and practitioners, hence ideal for disseminating new scientific results relevant for practice. As soon as the intellectual property is liberated, greeNsort® will develop a publication in the practitioner journal acmqueue for final publication in ACMs flagship journal Communications of the ACM which addresses the most broad audience of scientists and practitioners.


Implementation I: Plug-in rollout

good interfaces are the essence of good code — Bjarne Stroustrup

greeNsort® algorithms can be quickly adopted by plugging them into the standard sorting APIs of the most important programming languages, because this requires no changes to software calling these APIs. The TIOBE index ranks programming languages for popularity. The following is a list of TIOBEs ten most important languages (July 2020) plus another five that are important as systems programming languages or for large-scale numerical processing:

Position Language Ratings% Cumulated%
1 C 16.45 16.45
2 Java 15.10 31.55
3 Python 9.09 40.64
4 C++ 6.21 46.85
5 C# 5.25 52.10
6 Visual Basic 5.23 57.33
7 JavaScript 2.48 59.81
8 R 2.41 62.22
9 PHP 1.90 64.12
10 Swift 1.43 65.55
12 Go 1.21 66.76
18 Rust 0.70 67.46
26 D 0.55 68.01
36 Julia 0.34 68.35
50 Fortran 0.22 68.57

They cover two thirds of the TIOBE index ratings, hence by improving their standard sorting libraries, it is possibe to roll-out superior algorithms to a large number of software applications. One entry point for finding allies for getting this done is: ClimateAction.tech.


Implementation II: Optimal Interfaces

interfaces shouldn’t be unduly influenced by implementations — Kent Beck

Additional energy savings can be realized if sorting APIs are improved. Since improved APIs require changed in the calling code, the fruits of such optimizations can only be harvested in the long run. Some examples of improvement opportunities follow:


Implementation III: teaching

The cheapest, fastest, and most reliable components are those that aren’t there — Gordon Bell

In some cases, writing custom algorithms has advantages over re-using libraries. Hence software engineers need to know algorithms. Hence we need to teach them.


If you have an apple and I have an apple and we exchange these apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. — George Bernard Shaw



  1. “First, solve the problem. Then, write the code.” ― John Johnson↩︎

  2. “It came to appear that, between two truths of the real domain, the easiest and shortest path quite often passes through the complex domain” ― Paul Painlevé↩︎

  3. “The key to performance is elegance, not battalions of special cases” — Jon Bentley and Doug McIlroy↩︎

  4. “Simplifications have had a much greater long-range scientific impact than individual feats of ingenuity. …. Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.” ― Edsger W. Dijkstra↩︎

  5. “It is better to be vaguely right than exactly wrong.” — Carveth Read↩︎

  6. “In the fields of observation chance favours only the prepared mind” — Luis Pasteur↩︎

  7. “The difficulty lies not so much in developing new ideas as in escaping from old ones.” — John Maynard Keynes↩︎

  8. “Genius is one percent inspiration, and ninety-nine percent perspiration.” — Thomas Edison↩︎

  9. Why do firms give away their patents for free? The technology providing firm, is characterised by making specific core patents freely available […] In serving society these companies argue that patenting and afterwards releasing the patent guarantees that the technology remains open.↩︎

 

greeNsort logo


Copyright © 2020 Dr. Jens Oehlschlägel - All rights reserved - Terms - Privacy - Impressum