Ridiculous Simplicity Demands Ridiculous Resources

The flip side of RidiculousSimplicityGivesRidiculousResources. It's a good thing that it does, because those ridiculous resources will be needed (in many cases) to do anything useful with a ridiculously simple system.

Sometimes, the trade-off is worth it, other time it isn't.

Examples:

The point of this page is not to trash simplicity--OccamsRazor is still frequently good advice. Rather, the point is to emphasize that such matters are trade-offs.


"Rapport plans to develop a version of its current KC256 chip that contains more than 1,000 separate eight-bit processing elements. ... The Kilocore1025 ..." http://news.com.com/2061-10791_3-6057551.html http://www.technologyreview.com/read_article.aspx?id=17076&ch=infotech http://www.power.org/news/pr/view?item_key=fcd9c09211203606ccd22996702dd8426a826712

Sure, 8 bit processors are "simple". Are 1 000 of them "ridiculous" ?


"Indoor GPS: The No-Chip Challenge" by Frank van Diggelen, Charles Abraham Sep 1, 2001 http://uc.gpsworld.com/gpsuc/article/articleDetail.jsp?id=308334

describes GPS reciever hardware that requires a much simpler CPU (and CPU software) than traditional GPS reciever. Also, instead of the traditional complicated correlators that have all kinds of options for tweaking Doppler frequency and code offset, it uses much simpler correlators that are hard-wired for a fixed Doppler frequency and code offset.

Yet it works better (can lock onto a weak signal faster; also uses less power) than GPS recievers using traditional designs.

Instead of the traditional 24 correlators (an "early" and a "late" correlator for each of 12 satellites), it uses 16 000 correlators. Ridiculous, right?


But that are all hardware related trade-offs of simplicity. Any software examples?

Hmmm... well, BrainfuckLanguage is ridiculously simple. It's quite minimal, really. Therefore, according to this thesis, programming in BrainfuckLanguage should demand ridiculous resources. Oh! I think it does! So, what else might we observe?... the interpretation or compilation of BrainfuckLanguage? Yes, that also seems a simple task, but if you wish to make it run very fast (e.g. recognizing repeated addition and substituting it for multiplication), I imagine that the compiler will require ridiculous effort to write and verify.

Discussion about ForthLanguage moved to RidiculousSimplicityGivesRidiculousResources due to a misunderstanding on my part. Sorry! --SamuelFalvo?


I just thought about something that is mentioned by a college every now and then:

"There is no problem in computer science which cannot be solved by one more level of indirection." (OneMoreLevelOfIndirection)

(I think this could even be generalized to science at large.)

And then I just stumbled over this page here. Can the problem of simplicity be solved by another level of indirection? Sounds like a contradiction. What do you think?

{In general, concerns that are described by constraint of behavior cannot ever be solved by another layer of indirection. This includes: security, privacy, safety, ensuring correctness, performance guarantees (hard realtime, strict space requirements), parallelism and synchronization, deadlock resistance, simplicity (especially ease of comprehension), optimization, and, of course, too many layers of indirection.}

{However, a great many 'positively' stated behaviors can be solved by clever use and appropriate placement of an additional layer of indirection, dispatch and delegation, or abstraction. I do find it a valuable maxim. One typically adds: "[...] except too many levels of indirection." - perhaps representing the general inability to support behavioral constraint.}


EditText of this page (last edited April 17, 2008) or FindPage with title or text search