Contemplating Simplicity
I've always liked Einstein's famous quote: "Make things as simple as you can, but no simpler." The "no simpler" part of that sentence is very important. Solving some types of problems requires more than just the simplest solution. In many cases, "simple" by itself will not work. Have you ever found that many programmers and IT people don't understand what we mean when we say "simple" in reference to REBOL? I think what we have here is a failure to communicate. "Simple" is probably not the right word. We like it, because the word simple is simple. But, maybe we've oversimplified simple. Here is a good case in point. REBOL/Services provides robust security for communication. It does quite a lot, as summarized in the section below. Its implementation cannot be considered "simple". In fact, parts of it are somewhat complex (but not overly so). However, the programming interface is indeed quite simple to use. In one line of REBOL, you can establish a connection to a REBOL/Service, authenticate, and initialize robust encryption. That is handy. Equally relevant to the simplicity argument is the simple fact that the current REBOL/Services client implementation is only 24 KB of source code (comments stripped). In mold-compressed form (the download size), it is 5.8 KB. The server is 48 KB or about 15 KB mold-compressed. Do we call that simple? Not really. We would call that "tiny". But, when it comes to software, what is the relationship between tiny and simple? Is there one? We might be tempted to label it as "simple" when explaining it to someone, but that might falsely imply that it is also underpowered or inadequate. It is not. In fact, it is not only powerful, but very flexible. So, what's the best word to use? Elegant, lightweight, agile, dynamic? As usual, we will want to pick the word carefully. We need a word that is quite simple, but no simpler.
|
Updated 18-Nov-2024 - Copyright Carl Sassenrath - WWW.REBOL.COM - Edit - Blogger Source Code |