The Definition of Simple is a Complex Thing...

Started by xytroxon, April 18, 2011, 01:36:23 AM

Previous topic - Next topic

xytroxon

Carl Sassenrath, CTO of REBOL Technologies has posted this long, complicated blog article on the Definition of Simple...

http://www.rebol.com/article/0509.html">http://www.rebol.com/article/0509.html



Simple is:

   1. Clear abstraction: smart, well-drawn layers of "knowledge focus" that allow hiding of details.

   2. Clean expression: meaningful, concise but not cryptic, representation and communication of concepts.



... Yet, when I browse these massive code-bases what I clearly see is a complete naivety of the engineers and/or programmers who wrote it. I'm not talking about their understanding of the knowledge domain, I'm talking about how they've mostly ignored tapping into the realm of expression as part of their solution.



Some designers recognize deep down that something is wrong, and to help solve their problems, they often invent yet another language as a layer within their system. Modern Linux is completely littered with such languages, and it's a huge mess that spans everything from how you configure and build the kernel down to how you write little script jobs.



The problem here is that there's no unity of language design, and in fact since most domain-smart programmers don't know much about language construction, you get something really quite ugly and nasty. Sure, people will force themselves to learn it, but only because they want the final solution... the circuit design, chip layout, kernel build, highway structure, nuclear reactor simulation, ...



But something important is lost in that approach. Simplicity is sacrificed. ....



=============================



"Simply" switch to newLISP Carl... "Simply" switch to newLISP....



-- xytroxon



P.S. Check out the comments section for this blog article... (ouch!) Rebel er. "Rebol" programmers are getting a little tired of waiting for Rebol 3 to be completed... I feel their language pain... Up(de)grading my Python 2.x scripts to Python 3.x is driving me nuts... It's simple to convert code with their conversion script, but all the batteries (Python 3 third party modules) I need are not yet included (converted and or properly debugged) :(



(Of course waiting for them gives me time to rewrite my old snake skin programs in newLISP :)
\"Many computers can print only capital letters, so we shall not use lowercase letters.\"

-- Let\'s Talk Lisp (c) 1976

cormullion

#1
Snake skin programs? Intriguing



The comments on the rebol post were interesting. Community looks enthusiastic but frustrated...

xytroxon

#2
After the "shedding" of the Python  2.x version "snake skin", the snake (Python 3) looks very much like the last, but the snake can't go back and comfortably wear (run) any of it's old snake skin scripts without the help of a good alterations tailor ;)



In my case, Python 3 dropped future support of a "standard" module, so I have to keep both Python 3 and Python 2.7 in my programming language "zoo" :(



-----------------------



The goal of Rebol 3 to achieve "simple" programming has been complicated by  the lack of a working integrated GUI like Rebol 2 has... This is the source for much of the "Rebol yell"...



When you make the GUI an integral part of your language, your users then "simply" expect it to be there in newer versions...



Lutz's embracing of a Java based GUI for newLISP, while less than optimal for GUI gurus, was "simple" genius...  With the near universality of the JRE being pre-installed on modern machines, it avoids many end user problems with instillation, specific machine versions, upgrades, licenses etc... Picking wxwidgets, Qt, or even the old Gtk GUIs would require much more work to support users...  And the JRE gives a professional looking face to newLISP with relatively little (or at least manageable), effort by Lutz...



A major part of achieving "simple" programming, is knowing when to leverage the complex to your advantage...

 

-- xytroxon
\"Many computers can print only capital letters, so we shall not use lowercase letters.\"

-- Let\'s Talk Lisp (c) 1976