home *** CD-ROM | disk | FTP | other *** search
- ******************************************************************************
-
-
- MAYBE IT'S TIME FOR 'MAYBEBOL'
-
- ENTROPY:
- The amount by which a system differs from its ideal state.
-
- The Second Law of Thermodynamics can be interpreted as saying "Entropy
- always increases with time". This means that as soon as a perfect system is
- achieved, it starts to deteriorate. This may be understandable in mechanical
- systems where moving parts are subject to wear and tear. But, what is not so
- evident is the concept of entropy applies to logical, or software systems
- also.
-
- It is no secret that 60% to 80% of every programming dollar is spent on
- combatting entropy -- that is, maintaining existing systems. If you are
- involved with any commercial systems, think of how often programmers have to
- code changes upon changes to that "ideal" system. Why is this always the
- case? Is there any way to get around this problem?
-
- Let's examine the situation. Many times the people requesting a new
- computer system (the users) cannot define their needs precisely. Often they
- are not sure what they want or how to deal with certain situations. Many
- ambiguous features are left in systems with the idea "We'll deal with that
- problem when we get to it".
-
- Programs and programming languages require exact and unambiguous
- definitions to function effectively: solving an unknown or ambiguous problem
- is next to impossible with todays programming languages.
-
- As I see it, there are two possible solutions to this problem :
-
- Solution #1: Carefully and objectively resolve the system design to
- achieve an exact problem definition.
-
- Response: Who are you kidding? Face it, people have been trying to
- do this since day one and no one has succeeded yet. Every time they get
- close, entropy sets in.
-
- Solution #2: Change the programming langauage.
-
- Why not? We're trying to use rigidly defined programming langauages
- structured along exact lines to provide predictable and consistant results.
- This obviously does not reflect real-life applications at all. To handle
- modern complex situations, a more flexable langauage is needed -- a langauage
- with the ability to procrastinate and deliver the silicon equivalent of a
- shrug.
-
- After much research, deep thought and trial and error, I have come up
- with the outline of an innovative programming language which I call the
- Multiply Analytic Yet Basically Evasive Bull... Oriented Language, or
- M.A.Y.B.E.B.O.L.
-
- The following are some of M.A.Y.B.E.B.O.L.'s more attractive features...
-
-
- 1) IF ... THEN ... MAYBE:
- An eloquent concrete admission of indecision. This statement is
- the heart and soul of MAYBEBOL.
-
- 2) DO SOMETHING:
- When those un-foreseen situations occur; the user is on sabbatical
- in Africa and the project is due tomorrow, the DO SOMETHING statement
- just might help you hit the deadline.
- Example: IF ADD-CHG-DEL-CODE = "PIZZA" THEN DO SOMETHING.
- Ideally, no one should have any idea just what might be done.
- (Some more adventurous souls may wish to set up a pool and bet on the
- outcome).
-
- 3) GO SOMEWHERE:
- Where? I don't know, do you?
-
- 4) ON ERROR conditions:
- The ON ERROR statement has two possible formats:
-
- 1) ON ERROR GENERATE EXCUSE:
- Everyone knows excuses are more important than results.
-
- 2) ON ERROR FORGET ABOUT IT:
- Self explanatory.
-
- In each of the ON ERROR conditions, control will be returned to the main
- program by means of the GO SOMEWHERE statement.
-
- 5) GENERATE X REPORTS:
- X is an integer from 1 to 32. Users always demand reports. They
- take these reports and place them carefully in multicolored binders. These
- binders are then stacked on a shelf, giving the users a place to store their
- dust collections. Since no one ever looks at these reports, a great deal of
- time and effort can be saved by generating them randomly.
-
- 6) COIN:
- A bulit-in subroutine. COIN will return a character value of
- "HEADS" or "TAILS". This can be very useful when making decisions.
-
- 7) GUESS:
- The programmer doesn't know what to do, the user doesn't know what
- to do, nobody knows what to do, so why not?
-
- 8) PRETEND:
- As in "IF BAD-DATA THEN PRETEND".
-
- 9) SEARCH (table-name):
- The SEARCH statement will consecutively search a table in memory.
- Note that it is illegal to supply what to search for. If somehow a match is
- found, set the ERROR condition (see ON ERROR).
-
- 10) LOOP FOREVER:
- A great time saver for the programmer. Instead of having to
- subconsciously invent subtle and hard-to-find infinite loops, he may now
- declare them explicitly.
-
- 11) DIVIDE x BY ZERO:
- Same concept as LOOP FOREVER.
-
-
- The above statement and philosophy will be the basis for MAYBEBOL. As
- time permits, I will attempt to complete the language design. This task
- should be much easier to accomplish than it may appear. When done it will be
- available to all.
-