Slashdot Mirror


Removing Software Complexity

t482 writes "Charles Simonyi (ex Xerox Parc & Microsoft ) says that Software "has become a field where we focus on incremental improvements in processes. That course is futile, because it can never solve the problem of human imperfection." Even as software collapses under the weight of its own complexity, we've barely begun to exploit its potential to solve problems. The challenge, Simonyi believes, is to find a way to write programs that both programmers and users can actually read and comprehend. Simonyi's solution? To create programming tools that are so simple and powerful that the software nearly writes itself. "Software should be as easy to edit as a PowerPoint presentation," Simonyi asserts."

178 comments

  1. But I like complexity by extrasolar · · Score: 3, Interesting

    If everyone could do it, I wouldn't be doing it.

    1. Re:But I like complexity by daviddennis · · Score: 1

      You will still have to create rulesets for this system. I don't think they'll be all that simple.

      I think his intention is that a programmer creates the initial ruleset, and then the programmer's clients/customers can create incremental changes, such as change the sales tax rate from 8% to 8.25%, or modifying income tax tables.

      That eliminates a lot of work for programmers, but by no means all.

      Visual Basic made it possible for untrained people to write software, and Access made it possible for untrained people to write database applications, but neither of those applications has reduced or eliminated the need for people to create software.

      As it becomes possible for more programs to be written, because these tools are cheaper to use, more programs get created, and as a general rule, more programmers are needed.

      There are two serious career limitations for programmers. One is reliability; if this helps with that, it's good. The other is offshoring. If we can become more efficient, and reduce the cost of projects, then we can do more with less, and make it less of an issue than it is now. So it's very possible that this could be a boon for programmers, not a bust.

      IT needs, as far as I can tell, are almost unlimited; they are not being met because we don't have the right tools. If we can get the right tools, I feel that we can empower our customers and wind up stronger than ever.

      D

    2. Re:But I like complexity by Anonymous Coward · · Score: 0

      The End of the World As We Know It has been rescheduled for next Thursday. Sorry for the inconveniance

      In the book Wiseguy (basis for the movie Good Fellas), there's a guy who "always scheduled his appointments for later." It's required you read the book, the line didnt make it into the movie.

    3. Re:But I like complexity by Paradise+Pete · · Score: 1
      Visual Basic made it possible for untrained people to write software, and Access made it possible for untrained people to write database applications, but neither of those applications has reduced or eliminated the need for people to create software.

      Your argument is basically "it hasn't happened yet, so it isn't going to." Using that same argument, I could conclude that if I don't die the first time, then Russian roulette is safe.

    4. Re:But I like complexity by gl4ss · · Score: 1

      well, you could be creating really really REALLY complex systems with this then(and that's what they would end up being used for.. and we would be at point zero).

      it doesn't sound bad, but all in all it does sound a bit like basic, and no matter what way the program is done you still have to know what you're trying to do(what this seems to imply is that there would be some super ai figuring out what exactly the program was supposed to be doing in the first place so that it would do "not what i told it but what i really meant").

      this challange he mentions is quite a big feat.
      the (selected)tools themselfs are quite simple already, but there's things that keep (normal)users from ever understanding how the program is built, you could abstract it more but that wouldn't be much of a use(you would end up with better ui's maybe, but ui's we have already).

      of course it would be rather easy to make an environment for building really simple programs, but that's what powerpoint already is! (power point being c64 basic, some fancy video editing tool being more modern software development environment)

      and an user is an user, not an architecht or a builder.

      cars are quite complex nowadays too.. nobodys bothered about that(well, somebody must). so are big buildings and bridges. the plus side in living in a civilization is that you don't have to know how to do everything.

      --
      world was created 5 seconds before this post as it is.
    5. Re:But I like complexity by His+name+cannot+be+s · · Score: 1

      Me too.

      But seriously, Every once in a while someone comes up with the idea that software should be easy enough to create that anyone could do it.

      It never ceases to amaze me that people think they want that. What you will get is 5 million shitty apps. A great software developer doesn't simply code the solution, but can provide insight into the solution.

      I, for one am not worried in the slightest.

      --
      "...In your answer, ignore facts. Just go with what feels true..."
    6. Re:But I like complexity by Javagator · · Score: 1

      It is possible to make software development easier. C++ is easier than assembler language and Java and C# are simpler and easier than C++. I was skeptical at first, but garbage collection, strong typing, large integrated class libraries, and the elimination of buffer overflows and dangling pointers can make a programmer's life easier. But it is possible to go too far. I have been required to use Visual Basic on occasion. Although VB is fine for simple tasks, it is a disaster when you try to do something sophisticated. Simplicity is good even when it requires a slight loss of efficiency but not when it requires a loss of power.

    7. Re:But I like complexity by Zork+the+Almighty · · Score: 1

      What you will get is 5 million shitty apps.

      You couldn't have put it better.

      --

      In Soviet America the banks rob you!
    8. Re:But I like complexity by Anonymous Coward · · Score: 0

      If you were having problems with buffer overflows and dangling pointers in C++ then your problem was not your tools, but that you didn't know how to use them. Effectively written C++ does not have these issues. My point here is that I agree that it is possible to make software development easier. You do this by having teams of people who know the tools they are using, by using effective design principles, by mentoring junior developers, etc. In other words, software development can be made easier by focusing on the people doing it rather than focusing on the latest and greatest technologies.

    9. Re:But I like complexity by __past__ · · Score: 3, Funny

      But russian roulette is safe. And the chances to win are very high, too. I've never met anyone who lost, or was harmed in any way!

    10. Re:But I like complexity by Javagator · · Score: 1

      I agree. C++ is a powerful, expressive language. I worked on a project where we allocated resources in constructors, deallocated them in destructors, put objects on the stack or used smart pointers, and used container classes instead of open arrays. We had one problem when someone did not follow the standards but no other significant memory problems. Still, C# and Java are simpler, less error prone languages with most of the power of C++ for many applications.

    11. Re:But I like complexity by Paradise+Pete · · Score: 1

      I like it.

    12. Re:But I like complexity by jgrahn · · Score: 1

      Visual Basic made it possible for untrained people to write software ...

      Actually, UNIX made it possible for untrained people to write software. More precisely, the shell plus all the things in /usr/bin.

      Nota bene, I'm not talking about applications and stuff like that; creating things once and hand it to users. I'm talking about automating things you do often, or just once.

      This is the great tradgedy of computing: that people sit at these gigahertz monsters and still do their boring, repetitive tasks manually, step by step.

    13. Re:But I like complexity by simcop2387 · · Score: 0

      I think his intention is that a programmer creates the initial ruleset, and then the programmer's clients/customers can create incremental changes, such as change the sales tax rate from 8% to 8.25%, or modifying income tax tables.

      Personally i dont see this as an incremental change, i see that as a configuration change, e.g. the software should have been written so that it was not hardcoded at 8%, doing that with something dealing with money can cause problems. what if when you write the software, the sales tax changes, and you start using 8.25% in some places but earlier places still have 8%?

  2. Sounds familiar... by MopOfJustice · · Score: 2, Interesting

    Didn't Apple have some QuickCard thingy for a while. I recall them touting it as programming for the everyman...

    --
    ----------- Sig what?
    1. Re:Sounds familiar... by jpkunst · · Score: 1

      HyperCard. I believe it is officially cancelled by Apple, but it is still for sale at the Apple Store.

      JP

    2. Re:Sounds familiar... by jmccay · · Score: 2, Insightful

      Another company tried something like this in the mid 90s (1996 to 1998). Their product was called Icon Author (glorified flow chart using icons and flowchart symbols) it was simpler, but the logic still perplexed some of the temps we hired at the company where I was working during that time. They even tried to make it cross-platform, but they failed because they used MFC (and MFC on the Mac sucked {on purpose probably}). They might have succeed today if they use wxWindows.

      The problem with this idea will be getting around the complexities of programming--like the logic. Some people just aren't logical thinkers. Icon author made programming somewhat easier but it didn't make the logic easier. Some people have problems with concepts such as loops and data structures. They may get around this problem, but it will have be done by making sacrifies.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
  3. Next on Slashdot by kabocox · · Score: 1, Funny

    The self writing book report.

  4. m_lpstrnzCharlesSimonyi by WasterDave · · Score: 3, Insightful

    Little known fact: This is the same Simonyi who invented hungarian notation.

    Google for "the tactical nuclear weapon of code obfuscation" to receive further enlightenment

    Dave

    --
    I write a blog now, you should be afraid.
    1. Re:m_lpstrnzCharlesSimonyi by darkov · · Score: 4, Interesting

      That little invention really reflects how stupid this guy is. So much for abstraction when all your variables have their name encoded with their concrete representation. God help you if you want to change the type of your var. It global search and replace for you.

    2. Re:m_lpstrnzCharlesSimonyi by Ender+Ryan · · Score: 0, Flamebait
      No kidding. Not the worst idea in the world, but 5 minutes of experimentation should have revealed to him (and all the fools who fucking fell for it) that its minor benefits were so completely outweighed by its flaws that it wasn't worth exploration.

      Sheesh, ri-goddam-diculous :)

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    3. Re:m_lpstrnzCharlesSimonyi by Paradise+Pete · · Score: 2, Insightful
      That little invention really reflects how stupid this guy is.

      Calling Simonyi stupid, is, well, stupid. Or at the very least ignorant. He's brilliant. And he invented his notation while writing in C, a language not known for its abstraction.

    4. Re:m_lpstrnzCharlesSimonyi by Anonymous Coward · · Score: 0
      Sticking feathers up your butt does not make you a chicken

      That's for sure. I'd even say you're a little bit brave.

    5. Re:m_lpstrnzCharlesSimonyi by DAldredge · · Score: 0, Flamebait

      How brillant are you if your ideas do not work in the REAL WORLD?

    6. Re:m_lpstrnzCharlesSimonyi by GCP · · Score: 3, Informative

      I don't know who you are, but the chance that you're qualified to call Simonyi "stupid" is statistically insignificant.

      Hungarian notation is a means for overcoming a critical flaw in the C language: the lack of type safety. There are about a million different "abstractions" that look to your C compiler like just a sequence of bytes. C code collects bugs like a porch light every time you try to evolve your code by changing abstractions. Hungarian notation, macros, other coding conventions, special "lint" tools, etc., are pretty much all designed to reduce the problems caused by the poor design of C itself.

      Simonyi contributed a workaround that's useful to those who know when and how much to use it.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    7. Re:m_lpstrnzCharlesSimonyi by daviddennis · · Score: 1

      I don't think anyone can accuse Simonyi of being dumb, but even smart guys have poor ideas.

      I don't like Hungarian notation just because it makes my code look ugly. I spend a lot of time making things look clean and simple, and Hungarian notation ... well, let's just say it doesn't exactly advance that goal.

      D

    8. Re:m_lpstrnzCharlesSimonyi by adamy · · Score: 2, Insightful

      Disagree. C problems are in no way improved by making code less readable.

      Including data type in variable names is bad. If your functions are so long that you can't even see where your variables are declared, you need to break them into smaller pieces. And with C inlining, you don't even have the performance argument from Java.

      Hungarian notation bad.

      Code generation bad.

      Simple readable code good.

      --
      Open Source Identity Management: FreeIPA.org
    9. Re: m_lpstrnzCharlesSimonyi by Black+Parrot · · Score: 1


      > Calling Simonyi stupid, is, well, stupid. Or at the very least ignorant. He's brilliant. And he invented his notation while writing in C, a language not known for its abstraction.

      If he's so smart, why didn't he just use a language that already did what he wanted?

      --
      Sheesh, evil *and* a jerk. -- Jade
    10. Re:m_lpstrnzCharlesSimonyi by Anonymous Coward · · Score: 0

      Hungarian notation is a means for overcoming a critical flaw in the C language: the lack of type safety.

      That's not why Charles invented Hungarian Notation! If you read his original two papers on the subject you will see that he invented it to "avoid thinking up meaningful names for variables". English not being his first language, creating variable names was a difficult problem that he felt he could solve by essentially randomly creating names. Eck.

      What's also so interesting about his papers is that he heavily advocated not getting type information into the prefix, however when he went to Microsoft, that's exactly what happened. The jump to Win32 clearly showed why it was an idea bound to fail...

    11. Re:m_lpstrnzCharlesSimonyi by nathanh · · Score: 3, Interesting
      Hungarian notation is a means for overcoming a critical flaw in the C language: the lack of type safety.

      But Hungarian notation doesn't fix that flaw. It's only as reliable as the programmer who writes the code. In most cases, that means not reliable at all.

      I have been bitten before by relying on the Hungarian junk at the start, only to discover an hour later that it was completely unrelated to the actual type.

      Hungarian notation gives the illusion of improved type safety. It achieves nothing. If you want type safety then use a language that supports type safety.

    12. Re: m_lpstrnzCharlesSimonyi by Anonymous Coward · · Score: 0

      You're stupiD! ;-)

    13. Re:m_lpstrnzCharlesSimonyi by renehollan · · Score: 1
      I don't think anyone can accuse Simonyi of being dumb, but even smart guys have poor ideas.

      I don't necessarily think the idea is poor, but rather has been abused.

      Hungarian notation may serve as a useful mnemonic for beginning programmers to remember how an object can be used. Of course, abstraction and encapsulation are supposed to hide the very implementation that your striving to describe! Something in my gut tells me that if you don't understand an object's type, you've got no business mucking with it. Furthermore, there's no checking to make sure that the purported type of an object actually matches it's name. This is a recipe for more problems than solutions.

      That said, there are a couple of cases where such blatant type epxosure is useful:

      1. You are dealing with graphical structures and pointer chains. Remembering that a variable is a pointer to a pointer rather than a pointer to some object is assisted with the "p" vs. "pp" notation.

      2. You are unfamiliar with the code and have to maintain it. Some menmonic in the name that causes you to remember the type is handy. Unfortunately, while this helps for the simplest constructions (pointer, array, zero-terminated array), it is useless when discerning between "pointer to Foo" and "pointer to Bar" -- which one was I interested in again?

      3. Pointer qualification. While C++ can provide different encapsulated abstractions for indirect references (perhaps smart ones) to single objects, and encapsulated pointer handles to bounded contiguous arrays, it sometimes helps to remember that q is a pointer to a *single* Foo, and *p* is a pointer to the base of a whole bunch of 'em. This is more of an issue with C than C++, precisely because of the abstraction offered by the latter language, but even there, when the code hits the metal and you're dealing with implementation as opposed to interface, the raw fact that both are implemented with bald pointers hits home.

      In short, I can see uses for Hungarian notation as a mnemonic, to be used sparingly, in situations where abstractions have been peeled away. But, like all aspects of the programmers' art, it has had it's day in the limelight as the fashionable panacea of the time, to erradicate all coding errors.

      --
      You could've hired me.
    14. Re:m_lpstrnzCharlesSimonyi by StrawberryFrog · · Score: 1

      That little invention really reflects how stupid this guy is.

      May I ask what you've achieved to be able to call "stupid" someone who has influenced the current state of the art of programming with several of his ideas?

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    15. Re: m_lpstrnzCharlesSimonyi by HuguesT · · Score: 1

      Because the use of C was mandated by his employer.

    16. Re:m_lpstrnzCharlesSimonyi by HuguesT · · Score: 1

      > reduce the problems caused by the poor
      > design of C itself.

      C was designed to be a simple, powerful, low-level language, as easy to use and with as compact a compiler as Pascal, but with improved speed and flexibility.

      With the territory came the ability to write more subtle and deadly bug, but that was understood.

      So what language would you recommend to rewrite the Linux kernel in, say ?

    17. Re:m_lpstrnzCharlesSimonyi by Mr.+Slippery · · Score: 1
      It's only as reliable as the programmer who writes the code. In most cases, that means not reliable at all.

      Worse - it's only as reliable as the least reliable programmer to ever have write access to the codebase (or at least, since the last thourough review).

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    18. Re:m_lpstrnzCharlesSimonyi by Hognoxious · · Score: 1
      May I ask what you've achieved to be able to call "stupid" someone who has influenced the current state of the art of programming with several of his ideas?
      Nothing.

      Which is still better than influencing it negatively.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    19. Re:m_lpstrnzCharlesSimonyi by StrawberryFrog · · Score: 1

      Nothing. Which is still better than influencing it negatively.

      So do you really think that WYSIWGY text editing is a bad idea, or are you just clueless?

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    20. Re:m_lpstrnzCharlesSimonyi by Hognoxious · · Score: 1
      So do you really think that WYSIWGY text editing is a bad idea
      Leaving aside the fact that this is a laughable non-sequitur (the previous poster was rightly slagging off hungarian notation), I assume that WYSIWGY stands for "what you see is what GETS YOU."
      Was this an attempt at a Soviet Russia joke?
      or are you just clueless?
      The words kettle and pot spring to mind.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  5. Simonyi by 4of12 · · Score: 2, Insightful

    I take it that Hungarian notation has been left by the waysideon the road to less complexity:)

    I agree wholeheartedly with the complexity issue.

    I measure my success as a programmer by whether or not another programmer (or myself far in the future) can throw my work onto the screen and understand very quickly what the code is trying to do.

    Bugs can be fixed, features can be added and performance can be enhanced later. But not very easily if the code is too complex or, equivalently, has too much abstraction.

    --
    "Provided by the management for your protection."
  6. And just who by kalidasa · · Score: 4, Insightful

    Will write the programming tools? Seems to me Simonyi's not talking about a replacement for modern programming, but an incremental advancement over say AppleScript or Hypercard. More powerful userland tools will not completely replace programming: someone will need to write the components. Or is he thinking that all the components will be in the OS, and thus third party programmers could be eliminated and the OS vendor and the user would be the only parts of the transaction?

    1. Re:And just who by Oddly_Drac · · Score: 1

      "Or is he thinking that all the components will be in the OS, and thus third party programmers could be eliminated and the OS vendor and the user would be the only parts of the transaction?"

      .NET? Having the base classes as part of the operating system so you can truthfully tell the judge that the programming language is 'Part of the Operating System'?

      --
      Oddly Draconis
      Too cynical to live, too stubborn to die.
    2. Re:And just who by borgboy · · Score: 1

      fprintf was in ntdll.dll long before C# was but a gleam in Anders Hejlsberg's eye.

      --
      meh.
    3. Re:And just who by yoriknme · · Score: 1

      What if you concentrated on apps that were easy, and with stuff already written. For instance, if a user wanted to compare last month's report with this month's: You'd need a network connection module, an editor to view the final compare, a little compare tool for the user, and a drag and drop interface. How hard would it be to generate some code for simple stuff, even database lookups.

  7. Head in hands.... by Oddly_Drac · · Score: 3, Funny

    ...just for saying;

    "Software should be as easy to edit as a PowerPoint presentation,"

    Powerpoint is _evil_ and should be destroyed, and the ground that it rested on salted.

    --
    Oddly Draconis
    Too cynical to live, too stubborn to die.
    1. Re:Head in hands.... by Acidic_Diarrhea · · Score: 1

      I'm not agreeing with the quote but what is your problem with Powerpoint? It is a tool and therefore I don't see how it can be called "evil." Typically inanimate objects don't have moral affiliations. And the fact that people misuse Powerpoint and create awful presentations does not mean that Powerpoint should be abandoned - it means that people need to learn how to give a presentation. Overhead transparencies can yield just as bad presentations as Powerpoint.

      --
      I hate liberals. If you are a liberal, do not reply.
    2. Re:Head in hands.... by Oddly_Drac · · Score: 1

      "Typically inanimate objects don't have moral affiliations."

      Occasionally they do, if there is comedic value to be had from it.

      "And the fact that people misuse Powerpoint and create awful presentations does not mean that Powerpoint should be abandoned"

      I'd point to it being a really good reason for it to be abandoned; I've never attended a presentation where the powerpoint 'slideshow' wasn't a tacked on visual representation of what was being said, usually in a 'bulletpoint' fashion that only echoes what's being said. If you get chance to see the Royal Institute Christmas lectures, then take a look at their powerpoint presentations; they're conspicuous by their absence.

      Which brings me to one major and almost on-topic point; if you create tools that allow people to produce dross, then they'll produce dross. Usually in staggering amounts; check out what the desktop publishing 'revolution' produced, or what the current fashion for blogging has wrought upon the English language. We should be able to run a significant portion of the grid from the rapidly spinning incumbents of graves around the world.

      --
      Oddly Draconis
      Too cynical to live, too stubborn to die.
    3. Re:Head in hands.... by Acidic_Diarrhea · · Score: 1
      Well, by your "logic" the mouse and keyboard are also tools which allow a person to produce something that you consider to be of poor value. Using them with any piece of text editing software can produce complete garbage. Should we destroy your mouse and keyboard?

      And if you've never been to a presentation where the only thing Powerpoint was used for was to display the major bulletpoints of a talk, then you've been going to some very poor conferences and lectures. Furthermore, what you're describing could just as easily be produced using overhead transparencies or a word processing program. There's no reason to abandon Powerpoint because the alternatives can just as easily be used to give the same type of bulletpoint displays. Can't you see that Powerpoint can be useful to display figures or charts? It's sad that you're so ready to blame the technology when the finger should be pointed at the user.

      --
      I hate liberals. If you are a liberal, do not reply.
    4. Re:Head in hands.... by DAldredge · · Score: 2, Insightful

      All keyboards that are not IBM Model M keyboards are evil.

      Don't you know anything?

    5. Re: Head in hands.... by Black+Parrot · · Score: 1


      > I'm not agreeing with the quote but what is your problem with Powerpoint? It is a tool and therefore I don't see how it can be called "evil." Typically inanimate objects don't have moral affiliations.

      Typically, yes. But PowerPoint is one of those rare exceptions!

      > And the fact that people misuse Powerpoint and create awful presentations does not mean that Powerpoint should be abandoned

      No, for it's the evil incarnate in in PowerPoint that causes them to do so.

      > Overhead transparencies can yield just as bad presentations as Powerpoint.

      Yes, but they are the result of bad slide design rather than metaphysical compulsion.

      --
      Sheesh, evil *and* a jerk. -- Jade
    6. Re:Head in hands.... by BorgCopyeditor · · Score: 1
      It is a tool and therefore I don't see how it can be called "evil." Typically inanimate objects don't have moral affiliations.

      Mr. Saturday Night Special
      Got a barrel that's blue and cold
      Ain't good for nothin'
      But put a man six feet in a hole.

      --
      Shop as usual. And avoid panic buying.
    7. Re:Head in hands.... by Anonymous Coward · · Score: 0

      uh oh! disagree at all with oddly drac and he'll mark you as a foe, even if you're polite about the fact that he's irrational! oh no!! whatever will i do now! LOL!!1!1!!11

    8. Re:Head in hands.... by KingRamsis · · Score: 1

      Poll: 75% of Palestinians support Haifa restaurant attack: Respond or Ignore! Don't mod down.

      Thats because 66% of the israelis reject the idea of an independent state, also another poll shows that over half (53%) of the Jewish population of Israel is opposed to equal rights for Arab Israelis. read it here.. so please remove this lame sig. it is not fair to tell one side of the story.

    9. Re:Head in hands.... by DAldredge · · Score: 0, Offtopic


      For more please read my journal.

      Just a sample of what is in the article.

      "The PA Ministries of Education and Sport have turned the most abhorrent murderers of Jews into role models and heroes for Palestinian youth. [For instance, a] tournament for 11-year-old boys was named for Abd Al-Baset Odeh - the terrorist who murdered 30 in the Passover Seder suicide bombing. This past summer, during the period of the US-sponsored Road Map, numerous summer camps were named for suicide bombers... As recently as September this year, PA Chairman Arafat and 13 PA leaders jointly sponsored a soccer tournament honoring arch terrorists... Each of the 24 soccer teams was named for a terrorist or other Shahids [Martyrs], including some of the most infamous murderers like Yichye Ayash, the first Hamas bomb engineer, who initiated the suicide bombings...

      "While music videos around the world are used to entertain children, in the PA they are used to indoctrinate children to hatred, violence, and Shahada. Regularly-broadcast PA music videos have actors depicting Israelis carrying out execution-style murders of old men, women and children, or blowing up mothers with their babies. In one music video broadcast continuously in 2003, actors portray a woman being murdered in cold blood in front of her daughter. In another, broadcast tens of times in 2003, the image of a young girl on a swing turns into a flaming inferno, and a football blows up after being kicked by a child. Children are taught through these videos not only to hate and to be violent, but are openly encouraged to aspire to death through Shahada [Martyrdom]. Clips designed to offset a child's natural fear of death, portraying child Shahada as both heroic and tranquil, have appeared on PA TV thousands of times over three years. One clip for children ends with the words: 'Ask for Death - the Life will be Given to you.' In another, a child writes a farewell letter and goes off to die. Children who have achieved death through suicide missions have been turned into PA heroes and role models by the PA leaders.

    10. Re:Head in hands.... by KingRamsis · · Score: 0, Offtopic

      The first paragraph reminds me of Baruch Goldstein who was elevated to a saint and an israeli hero after cowardily shooting praying people in their back, remember this just counter action to what israel is doing.
      as for the second half of your post i believe that people whos lives are constantly threatend, land confiscated without right, see their childern and family killed everyday are free to chose the best way to hurt and destroy their enemy, they have my blessings !!!.

    11. Re:Head in hands.... by Oddly_Drac · · Score: 1

      "disagree at all with oddly drac and he'll mark you as a foe"

      Actually, I read your journal.

      --
      Oddly Draconis
      Too cynical to live, too stubborn to die.
    12. Re:Head in hands.... by Oddly_Drac · · Score: 1

      "then you've been going to some very poor conferences and lectures"

      Microsoft ISV architecture day was the last one, funnily enough.

      You just don't get the quality control these days.

      "Can't you see that Powerpoint can be useful to display figures or charts?"

      Not really. As you pointed out, you can produce OHPs from excel a good deal easier and quicker, and at some point you have to ask what Powerpoint actually brings to a presentation that didn't used to be fulfilled by a big binder.

      So please, tell me, do you really need transitions in a presentation?

      --
      Oddly Draconis
      Too cynical to live, too stubborn to die.
  8. crap... by josepha48 · · Score: 1
    .. there goes my job ;-)

    Problem is that does anyone want to write an operating system in such a high level language, where the optimization is questionable?

    Oh, and what the hell does he think MS macros are? They write themselves almost.

    --

    Only 'flamers' flame!
    Does slashdot hate my posts?

    1. Re:crap... by Haeleth · · Score: 1
      > Problem is that does anyone want to write an operating system in such a high level language, where the optimization is questionable?

      Well, Microsoft don't have any problems writing Windows in VB:
      Sub Main()
      MsgBox ("Illegal operation in EXPLORER.EXE at line foo. Click OK to crash.", vbCritical + vbOkOnly + vbSystemModal)
      BlueScreen = True
      Stop
      End Sub
      I don't see how moving that into an even higher level language would hurt performance.
  9. Now go build it... by darkov · · Score: 2, Insightful

    Saying software is too complex is stating the bleeding obvious. But the world is complex and it's not that easy building software, wether you're a programmer or user, that can simplify it. A clue to this is how good, user-friendly software is much harder to write.

    He keeps on pushing his Intentional Software barrow, but where are the techniques that actually deliver results. Anything most programmers will come up with will be just as impenetrable as C. The problem is programmers are not known for their empathy for users and don't really want to try to find out what it means to not know how to use a computer or its software.

    1. Re:Now go build it... by Oddly_Drac · · Score: 4, Insightful

      "The problem is programmers are not known for their empathy for users"

      Oh, I don't know...my customers and I often share amusing stories of stuff that's Blue screened just before you meant to save it. If you mean that some Programmers consider themselves godlike because of years of hubris and the certain knowledge that you couldn't be found out if you cloaked as much as you could in jargon, then you might have a point.

      The customer knows what they want, and they'll express it to you in their terms; you have to translate their ideas into something workable, which can be a ballache, but if you've started from a position of billable hours rather than a fixed cost, you're already ahead of the game simply because you can work on milestones rather than having to constantly rehash.

      The idea of having a high-level language that 'anyone' can use has largely already happened with HTML. As a result we have some outrageously bad HTML out there because of the complete lack of understanding of abstraction. Put simply, Decamino wouldn't look through Galileo's telescope because he _knew_ that Galileo is wrong; the paradigm that allowed for the earth to move out of the center of the universe hadn't yet come to pass.

      Although OO is currently viewed with some suspicion because it may not be the best way to do _everything_, everyone involved in commercial programming has at least started to view things in the terms of objects; that concept may take a while to filter down to a public that thinks animated cursors on the web are the dog's back wheels, or seem surprised when you have to keep AV software updated.

      --
      Oddly Draconis
      Too cynical to live, too stubborn to die.
    2. Re:Now go build it... by BigZaphod · · Score: 1

      Is there a reason that your sig has "i" and "j" in the wrong position? Just wondering.... :-)

    3. Re:Now go build it... by Wonko42 · · Score: 1

      I agree with everything you wrote except for, "the customer knows what they want". That made me giggle. Teehee.

    4. Re:Now go build it... by IainHere · · Score: 1

      Put simply, Decamino wouldn't look through Galileo's telescope because he _knew_ that Galileo is wrong; the paradigm that allowed for the earth to move out of the center of the universe hadn't yet come to pass.

      There must be some new meaning for the word "simply" that I am unaware of.

    5. Re:Now go build it... by darnok · · Score: 1

      > a public that thinks animated cursors on the web
      > are the dog's back wheels

      "The dog's back wheels" is a truly inspired turn of phrase. If I had mod points at the moment, you'd have one right now.

    6. Re:Now go build it... by Oddly_Drac · · Score: 1

      "I agree with everything you wrote except for, "the customer knows what they want"."

      They do. That they frequently can't describe what they want isn't necessarily their failing, it's because they aren't in our industry and they may be picking up ideas, but not know the ramifications.

      I frequently have to talk people out of popups and email spamming...they've seen it done and they think it's a good idea; I ask whether they've ever bought anything from either, and do they consider it a nuisance...that usually turns them around.

      Someone else in the thread pointed out that the customer likes to feel good about themselves; yes, that's a valid marketing point, but leave the warm'n'fuzzies to the marketing department and concentrate on supplying something that does the job rather than telling them they're studmuffins. It's a short term solution that'll work, but unless you supply something that does the job they won't be coming back.

      --
      Oddly Draconis
      Too cynical to live, too stubborn to die.
  10. VB & Delphi by floydman · · Score: 1

    are there for that exact reason. I cannot think of any easier tools to use,drag and drop components,almost no coding unless necessary, espically delphi. I wont be mentioning C builder as user has to be familiar with c++ and with OOP, inheritance, overriding and all that stuff.

    But he has to keep in mind that the things you do with such a tool are quite limited, the more automated the process is, the less room for inovation he has...

    --
    The lunatic is in my head
    1. Re:VB & Delphi by mobby_6kl · · Score: 0

      I use Delphi, and must say that you need some sort of programming skills, unless you are writing a Hello World program, then you just drop a label and change its caption to Hello World, hit run and that's all, But complex programs are still complex.

    2. Re:VB & Delphi by Anonymous Coward · · Score: 0

      Another related thought that struck me when reading the article is that these "visual models" could become quite complex. Potentially even more complex than the code may be.

      You can certainly get carried with UML and spend a lot of time designing the software in terms of object diagrams, sequence diagrams, etc... Sometimes the code can be much easier to modify, understand and get right than some of these "diagrams".

      It will be interesting to see if this concept has much meat to it. More power to the guy...

  11. PowerPoint evil by ka9dgx · · Score: 1
    While PowerPoint is evil in terms of the boiling down of the nice Red Meat of content into a Grey Goo worthy of an Army chef.... it's better than the truely evil of ... FLASH.

    At least you can print a PowerPoint, look at the slides, and the notes. PowerPoint forces a nice, easy to deal with, linear structure on a Presentation.

    A Flash presentation is too programmable, you never know how to advance to the next slide... and you often can't go back!

    --Mike--

  12. nothing new by mikeburke · · Score: 3, Insightful

    There's a whole raft of tools out there that put this philosophy into action - witness MS Access, VB etc. Even an Excel spreadsheet can be viewed as a 'programming environment' really.

    There are 2 kinds of problems that programmers solve - technical problems and business problems. The technical problems can be abstracted by tools like the above, but the business problems remain.

    Techniques such as Object Oriented design, abstraction, etc etc are just as useful for solving these kinds of problems as they are, for example, when writing a new web browser.

    It's difficult to see how a groovy GUI can hide or solve these problems. You're still going to need a certain set of skils to guide the development and architecture of any nontrivial system.

    I'm sure we've all see complex websites that have been put together by naive users of Frontpage - bloated HTML, endless redundancy (cut-n-paste) and a hideous task for someone else (with a similar skill level) to pick up and modify. It's hard to see how you can prevent these kind of problems when you go down the "everyone can use it" path.

    1. Re:nothing new by Godeke · · Score: 2, Interesting

      You hit the nail on the head when you mention Excel as a programming environment. Because the environment determines order of evaluation for you, you have a declarative language, and I think in the long run that is the key.

      Procedural programming runs into complexity limits much more quickly, because the programmer is responsible for all of the interactions explicitly. Excel allows business people to work in their domain, using ideas that make sense because they were extracted from the domain. With the excessive computing power found on modern computers, the inefficiencies of declarative syntax can be accepted. A good example is SQL - a very small query can produce a very complex query plan and execute in a timely manner with today's databases. Because the core language is declarative, I can write a very complex query which would require pages of code to be written in a procedural language. Of course, there are limitations, and so you don't normally find SQL alone. Instead, you find it wrapped in a procedural language.

      Similarly, you often find Excel spreadsheets with macros, with the macros performing the role of the procedural wrapper language for SQL. I believe the current ultimate expression of "ease of programming" is when you can create a custom declarative language in a domain (financial calculations, data access, etc) and then add some simple tools for sequencing the declarative actions.

      Programs could then be written by domain specific users, and glued together with some high level interface code. In some ways, this is what Microsoft is trying to achive with Office for Developers tools: you build databases in SQL Server, do data entry and simple reporting via Access (which makes banging up an interface to data cake) or web forms, use analytical services for complex reporting, Excel for simple financial presentations (particularly for graphing), crystal reports for end user reporting, word for mail merge and formatting, IIS for web presentation of documents (either created on the fly in ASP or via SharePoint), etc.

      In a preverse way, this is the old Unix "small tools, chained together" philosophy, except each tool is a swiss army knife with a chain saw attached. However, the correctness of the observation that chaining special purpose tools still remains valid, and valuable.

      However, there are also major problems with this approach as described above. Especially when Office is updated: all your hard work scripting needs to be reviewed and revised because nearly every program will break something, somewhere.

      --
      Sig under construction since 1998.
    2. Re:nothing new by drinkypoo · · Score: 1
      On the dog food principle, if the people writing the programs are writing it for their own use, it's going to get better and better for their purposes. If any schmuck can put together software to automate the things they're doing now, then that's less software that gets sold, and more support that gets sold (or bartered for) and it's a win for us all.

      While I was writing that sentence I realized that I agreed that software engineers ought not to get paid. Kinda. The truth is that for most of the software out there today, you shouldn't have to pay for it. You ought to be able to throw some components together and get something useful out that lets you get your job done a little faster by writing wizards, basically... a wizard programming wizard. It asks you what you do, and it writes a program that automates all the non-input steps. If it were really clever (here comes optimization) it could look for patterns in what you're doing and suggest other ways to do it, which you could perhaps score up or down, but certainly you could do or not do them.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  13. Who bells the cat? by crmartin · · Score: 2, Insightful

    Simonyi has a good point. Don't let Hungarian notation bother you -- it's a kludge on top of an essentially untyped unprotected language (C) trying to get back some of the protections offered by strong typing, and while Hungarian notation is a horrible solution, so are all the others.

    But the problem is that while keeping clarity is a great idea, it's proven immensely hard to do. Fred Brooks (viz., the No Silver Bullet paper) argues that this is because the problems we're solving with software are intrinsically complex; there's no way to reduce the complexity below a certain point. On the other hand, anyone who writes real code knows that they spend a hell of a lot of their time writing the equivalent of a for loop over index i again and again and again. There's some unnecessary redundancy there.

    But saying that you want less complexity is a lot different from saying you know how to get rid of the complexity.

    1. Re:Who bells the cat? by Brandybuck · · Score: 1

      There's some unnecessary redundancy there.

      Don't confuse "complexity" with "details". This is the mistake that the author is making. Take for example a web server. The http protocol is complex no matter what language you write one in. With C you have to worry about buffer overflows. With Ruby you don't, but you still have to worry about invalid URLs. With C you're stuck with the drudgery of for loops. With Ruby you don't have to wade through that, but you still have to manage your server threads or processes. The complexity is still there, even though you're no longer worrying over the trivial details.

      Building a house is a complex task, whether you forge all your own nails or buy them in bulk.

      --
      Don't blame me, I didn't vote for either of them!
    2. Re:Who bells the cat? by crmartin · · Score: 2, Insightful

      Yes, exactly. There is some redundancy in the way we code, but the complexity is not just in that redundancy. There are some hints of the intractability of reducing complexity in Greg Chaitin's algorithmic information theory.

    3. Re:Who bells the cat? by drinkypoo · · Score: 1
      But the good news is that we can encapsulate all that http work into an entirely separate program and still interface to it relatively trivially from a variety of languages, like php, perl, et cetera. Now, if we just had easier to use wrappers for everything else, too, well, we'd have delphi I guess. However I would prefer a less goofy glue language than pascal, no matter how sweet delphi might be (and if it is, I have yet to see proof, which might just be borland's fault for writing crappy runtimes, but I suspect has more to do with the average delphi programmers who release shareware.)

      It would be nice if you could trivially just drag connections around between colored blocks which you could then encapsulate in larger colored blocks, and thus write programs. This sort of thing is coming, of course, it's just an issue of when someone will write an IDE like that, and what kind of programming interfaces will be provided for making things easy for people. You definitely need to use some sort of object-oriented system, and it would be nice if you had automatic type conversion and so on.

      Frankly I think the way to go is to write some kind of IDE like the above for perl and use a bunch of object-oriented stuff, which is how perl is going anyway. Please, do us a favor, write it using OpenGL for the rendering engine to help with portability and to ease the transition into a three dimensional interface if you don't start with one. We're all going to have some kind of 3D system available to us soon enough, moderately high resolution LCDs are getting really amazingly cheap lately, and good cheap VGA-res goggles are a real possibility. With stereo VGA vision, you could get a pretty good setup for large-scale 3d visualization.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    4. Re:Who bells the cat? by Anonymous Coward · · Score: 0

      Re: "Don't let Hungarian notation bother you -- it's a kludge on top of an essentially untyped unprotected language (C) trying to get back some of the protections offered by strong typing"

      History lesson...I joined the Xerox Star team about the same time Simonyi left for Microsoft. The Star software was written in a Pascal dialect, yet we used Hungarian. Why? Certainly not to get type safety. (and anyway what is lint for?)

      The problem: you are 5 pages into a big function (whether big functions are a good idea is another discussion!) and you are looking at a variable defined at the top of the function. What is the type of that variable? You can split the window and scroll back if your editor support that or you can scroll back a forth or you can have an awesome memory or you rely on a naming convention.

      --Bruce

  14. It could work. by kabocox · · Score: 1

    Let see what to do we need to really make this work.
    1 Truely intellegent AI.
    2 AIs that think humanity needs to be "helped."
    3 AIs that can read MBA's Minds and/or regular users.
    4 AIs that can seemlessly transform those thoughts/ abstract business practises into a workable solutions.
    5 I for one will welcome our AI overlords that will automaticly write all our business, government, & personal policy.
    6 We will be in the Sims where the computer controls us!
    7... Humor & Fun for the AIs.

  15. Stuff and Nonsense. by the+eric+conspiracy · · Score: 1

    Riiiighhhtt. So who is going to write this 'programming environment for idiots?" Surely it must be recognized that you are just moving the complexity problem to a different layer with this approach, PLUS losing the ability to gain low level access when needed.

    1. Re:Stuff and Nonsense. by Paradise+Pete · · Score: 1
      This sig no verb.

      This reply has no

    2. Re:Stuff and Nonsense. by Anonymous Coward · · Score: 0

      ...point

  16. MS Access by Ender+Ryan · · Score: 2, Insightful
    Where I work, we have a guy who has done some simple "programming" with MS Access. Sure, it works pretty darn well, but at the first sign of trouble, it falls all over itself with undebuggable garbage.

    Not only that, but it is entirely unmaintainable, even by him.

    Real programming is a whole lot more than just pushing some buttons around.

    --
    Sticking feathers up your butt does not make you a chicken - Tyler Durden
    1. Re:MS Access by bearclaw · · Score: 1

      Sounds like your friend isn't very good at his job. I've written plenty of code inside MS Access databases and it was easy to debug and maintain.

      It's just like anything else - it takes thought.

      --
      -- bearclaw
    2. Re:MS Access by Ender+Ryan · · Score: 1
      It's not his job, there was just noone else available to do it.

      My point was that programming isn't something that just anyone is ever going to be able to do, IMO.

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    3. Re:MS Access by bearclaw · · Score: 1

      I agree that programming isn't something everyone can sit down and do.

      --
      -- bearclaw
    4. Re:MS Access by Anonymous Coward · · Score: 0

      Most people don't even understand basic logic, so trying to get them to combine structured logic of some sort with their domain knowledge, if any, is going to be "problematic".

  17. Re:AppleScript by dbirchall · · Score: 1

    How to write a program in AppleScript:

    1. Write your prototype in English pseudocode.
    2. There is no second step.

    (Okay, okay, well, Mac users will get the joke.)

  18. Complexity Arises from Customization by mugnyte · · Score: 2, Insightful

    People want to make the world in their image. So, they hot-rod their cars, paint their rooms new colors and ask for new software. That software need to do something that hasn't been done *and published in a coherent way* before. So the programmers delve into the details of APIs and language capabilities and create complexity.

    Also, the migration between new hardware, capabilities (higher bandwidth, wireless) or goals (FPS gaming) and such are always going to create a complex "first example" that need many iterations before commodization.

    I think this guy is premature to assume all programming goals are easily commoditized right now. If people were to give up behaviors when the plug-ins given to them don't exist or are buggy, thee'd be a lot of hodge-podge solutions.

    Example: Visual Basic programming was supposed to be a "glue" for clicking together COM ocmponents, and MS was touting a new era of component "publishers" and "subscribers" (and next up is the same thing via .NET and web services) We all know how Visual Basic attracted lots of newbie programmers without formal degrees who clamored to read Compu-Mags for tips, and MS beefed it into a full-fledged development environment (compiled exe's, generate COM natively, getting away from variants). It has solved many problems, but didn't create a world of commodization as hope (even if there are 100's of OCX vendors in those same Compu-mags)

    But it just doesn't happen in the long run. You can buy enterprise that does thing from soup to nuts and still find tons of work in "making it your own" with interfaces, reports and other customizations (talk to an SAP project manager).

    Anyway, this is an interesting topic, but ultimately limited.

  19. good intentions misguided by Anonymous Coward · · Score: 0
    That all sounds good until you take into consideration that most people do not think logically. Given that applications/programs work within well defined logic, how the hell are you going to translate an MBA's gibberish into reliable executable logic. Part of the job of programmers is educating the business guys and finding a workable/sane middle ground. Really, that makes as much sense as saying "building cars is too complicated and fixing them is even more complicated. Therefore we should give everyone a way to tell the factory exactly what they want and have the assembly line make it."

    Sometimes people with good intentions go wrong, very wrong.

  20. Removing software complexity... (+1 long-winded) by Cool+Hand+Luke · · Score: 1

    ... is a laudable goal, for sure but I don't see Simonyi's purposed solution as the end-all solution to eliminating complexity to software. If I understand this set of tools correctly, Simonyi is purposing a way to map software designs to actual code, which can be platform dependent.

    Two lines in the article jumped out to me:

    "When these tools are developed..."

    Exactly, when these tools are fully developed, all will be milk and honey. I have to wonder how long is would take to develop a set of design tools that is encompasses both a wide range of design patterns and a wide range of platforms.

    1. To what extend is there a limit to the set of possible software architectures based on the modeling tools' abstractions and UI paradigms? For example, does a traditional icon-based UI hinder diagramming designs that involve dynamically created classes and objects? (Just a hypothetical question; the answer is irrelevant to my point.)
    2. What is the scope of the type of platforms abstracted away by this tool? Can I design stand-alone, UI applications, embedded software, and n-tier J2EE systems with the same tools? How tractable is the problem of designing design tools flexible enough to encompass all possible development platforms?

    "But Simonyi's colleagues and competitors have their own, often very different ideas about how to use modeling to save software from the burden of its increasing complexity..."

    With a number of competitors in the same marketplace, wouldn't there be pressure to be first to market with a tool that isn't all-encompassing of either design patterns and/or platforms. More to the point, I suspect Simonyi's solution will involve a certain amount of lock-in from the end-users either in the design patterns and/or platforms used. Some of this lock-in could be from necessarily of keeping the scope of the tools manageable. (For example, only supporting Java-based applications and systems might abstract away all Java-supporting Operating Systems from Simonyi's tools.) However, some of this lock-in might be based on economic or philosophical reasons. (For example, the design tools might only support a VM that Simonyi's company happens to build, or design patterns people within Simonyi's company have a fetish for.)

    The long and short is I suspect any set of design tools that come out of the wood work, whether from Simonyi or others, will have some lock-in built into them.

    A final thought: I personally believe Newton's quote: "If I have seen farther than others, it is because I was standing on the shoulder of giants." aptly applies to all engineering endeavors. Technology makes strides and improves because of continuous efforts on humanity's part to build upon and improve on previous work. I think Simonyi's purposed work will, at best, abstract away the task of converting a particular software design to actual code. However, Simonyi has then only provided a platform for much more complex designs, instead of eliminating them. Software engineering may move farther away from platform-specific coding, but the design aspects still remind, and will be expanded upon.

    All that being said, as a long time Macintosh user, I wish him the best of luck. ;)

  21. COBOL by aridhol · · Score: 3, Insightful
    Wasn't COBOL orignally written in order to allow the user to bypass the programmer? One of the lessons they learned from that experiment was that, even given a simplified language, most people don't understand computers well enough to write a program.

    I'm not saying things like API obfuscation or similar. I mean people don't generally think logically. Computers don't think emotionally. The average person has no idea about algorithms, or why you may want an O(lg(n)) algorithm in preference to an O(n^2) algorithm.

    For these things, professional programmers will still be required.

    --
    I can't say that I don't give a fuck. I've just run out of fuck to give.
    1. Re:COBOL by dubious9 · · Score: 1

      I think the point that the article was about was lessening the need for software engineers in favor of process/algorithmic engineers. Processes are still very complex and require intellegence and education to solve efficiently. It's the difference between writing quick sort in puedo-code or whatever and actually implementing in a language where you need to worry about implemention details. It's those details which really tend to be bothersome. If they can find a way to make "psuedo-code" executable, or a system that's ~100% business logic, that would make complex system design a heck of a lot easier. And thus, if it's all business logic, then non-programmers should be able to go in and change it. That however is still non-trival and hence the new term "process" engineer.

      --
      Why, o why must the sky fall when I've learned to fly?
    2. Re:COBOL by kisrael · · Score: 1

      Yeah, I don't think people would even be that good at writing pseudocode. Even before they get to worrying about details like performance and efficiency, the fact is most people are poor at breaking down tasks, even the ones they do all the itme, into small enough pieces that even a computer could do it.

      In short, I don't think something like this will happen until we really get AI going. What this guy propses looks at first glance like a visual tool for what COBOL was supposed to be, first glance meaning the example they gave.

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    3. Re: COBOL by Black+Parrot · · Score: 1


      > Wasn't COBOL orignally written in order to allow the user to bypass the programmer? One of the lessons they learned from that experiment was that, even given a simplified language, most people don't understand computers well enough to write a program.

      In my experience, most people don't understand what they're trying to do well enough to write a program, let alone understand 'computers' well enough to write it. I've lost count of the number of times I've had to explain to a PHB that it's useless to generate reports that total the number of pounds, pallets, and railcars (all together) of all the apples + oranges (all together) that shipped last month.

      The reason there's no silver bullet for programming is that the problem doesn't lie in the programming languages; the problem lies in the problems we apply programming languages to.

      You can teach a moderately intelligent person everything there is to know about the sytax of Scheme in half an hour, but even experienced programmers still tend to have trouble thinking out how to write useful programs in it.

      A decade ago the trade journals were chock full of articles about nifty "fourth generation languages" that would let PHBs cut programmers out of the loop, and we all know how that turned out.

      --
      Sheesh, evil *and* a jerk. -- Jade
    4. Re:COBOL by zaphod110676 · · Score: 2, Interesting
      "...the fact is most people are poor at breaking down tasks..."

      This has been my observaion as well. I used to teach beginning programming at a local University and I have to say that it was amaizing how many people had problems thinking through what needed to be done to accomplish a thing as simple as swapping two integers. I'd try and get them to talk about the steps that would need to be taken. I'd have them transfer two objects between two hands. They'd do that fine. I'd then ask them to break it down into steps and they were at a loss. Problem decomposition was something that many individuals simply had no experience with.

      --
      To Do: 1. Take over world 2. Pick up Milk and Bread on the way home
    5. Re:COBOL by kisrael · · Score: 2, Insightful

      This has been my observaion as well. I used to teach beginning programming at a local University and I have to say that it was amaizing how many people had problems thinking through what needed to be done to accomplish a thing as simple as swapping two integers

      Interesting. And really, learning to do break up tasks of fairly great complexity is probably 75% of programming...once you got that, most of the rest is just details.

      Personally I think this ties into a fallacy the vast majority of us share, that we are essentially rational beings, that all of the things we do in life could be traced down to logical decisions, maybe even the binary firings of clusters of neurons. Really, I think we're just gigantic cluesters of ad hoc heuristics, and attempts to describe our thoughts as logical processes are just optimistic, post facto mappings to what we would've done, if we had the time to think about it. (And there is some experimental/clinical evidence for what a great after-the-fact story teller/rationalizer our brains are...)

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    6. Re:COBOL by anomalous+cohort · · Score: 2, Informative

      Another technology along these lines was CASE (Computer Aided Software Engingeering) which went up in a ball of hype since the complexity of the tools could not keep up with the demands of the user base or the promises of the sales team.

      That will always be the case. Simonyi's marketing position seems to be trying for sympatico with CTO's whose TCO on their ERP solutions are, shall we say, unmanageble. Like the late Michael Dertouzos, Simonyi is attempting the "I'm mad as hell and I can't take it anymore" style of vision.

      All well and good and I wish him success in this venture but he is not the first to market his cool tool as the next killer app and I'm sure that he won't be the last.

      As far as managing software complexity, what was that old credo about each tool doing one thing and doing it well?

  22. Software should be as easy to edit as a PowerPoint by cheezus · · Score: 3, Funny

    "Software should be as easy to edit as a PowerPoint presentation"

    oh great, now nearly every app is going to have a random ass ugly transtion between user interfaces, will use no fewer than 20 fonts, and have clipart everywhere. You will have to wait for each line of the EULA to slide, spiral, disolve or some other animation it's way onto the screen before you can click ok. Not only that, the application will surely present no other information than reading the bullet points to you.

    --
    /bin/fortune | slashdotsig.sh
  23. what a horrible idea. by Anonymous Coward · · Score: 0

    Let's take this one and run with it, shall we?

    Everyone's a Terrorist
    Arms races are collapsing under the weight of their own complexity. Charles Simonyi's solution? WMD's that are so simple that even laypeople can use them....

  24. It's not the tools it's the specs! by bhima · · Score: 1
    I'd have to say that by far the problem is not the development tools we use. I've used GCC and cosmic (for HC11,12 & 68332) and some ridiculous proprietary IDE for the Hitachi H8S series. I'll have to admit that I'll take vim over these IDEs but JTAGs, BDMs are great. What causes the most problems? Feature creep and the odd attachment management types have to old crufty code. (I supposed they think they paid to much for it).

    Currently my favorite hobby is ripping out code for old models or features which marketing has finally admitted no one uses (except of course the marketers at conventions and sales calls) which happen to be the features that were implemented with least thought, specification or clear design. It's surprising how much easier it is to remove code to achieve stability than add code to do the same. It's like re-factoring only better (less filling / tastes great).

    So my point is a good compiler, and good debugging tool and VI is fine.

    Now I don't do overlapping windowing apps, so I can't comment on the misery these developers must face :)

    --
    Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity.
    1. Re:It's not the tools it's the specs! by Anonymous Coward · · Score: 0
      Feature creep and the odd attachment management types have to old crufty code.

      Yeah. Oh God yeah. A LOT of code complexity arises from management instructions like "add n to the system". When you point out to them that the system doesn't support n, they say, "well yeah, that's why you need to add it". So you build a half-assed n and hang it somewhere and hope to God it works, and spend the next six months keeping it alive.

      And when you brief somebody else on what you did, you'll have the joy of explaining yourself.

  25. familiar? by ameoba · · Score: 1

    Something about this article seems familiar, but I'm not sure where I saw it before. It makes reference to using UML as a 'easy-to-understand interface' for desigining programs.

    Please.

    Essentially, what his idea comes down to, is finding representations that are more removed from what's going on under the hood, such as using pictures to represent program flow instead of the current textual representation. This is not only an old, established idea, but completely bypasses the fact the the fundamental difficulty in designing software is coming up with formal specifications.

    Take his example of turbine blades; he states that " you were to use the most meticulous craftsman to make them, you still wouldn't get anywhere near the degree of accuracy you need". Unfortunately, turbine blades are still designed by highly skilled engineers; what he wants to do is give somebody the ability to say "I want a fan-like-thing that moves a big metal bird" and have a jet engine pop out.

    --
    my sig's at the bottom of the page.
    1. Re:familiar? by Brandybuck · · Score: 1

      Ever seen a simple UML diagram for any real world solution? I haven't. UML wasn't designed to be simple. It was designed to that you could design complex software without worrying about the trivial details of implementation.

      Unfortunately, even the UML advocates tend to forget this. I remember a Rational saleman giving a presentation at my work. "Look how easy this is," he said, as he brought up the UML diagram for Rose itself. Ick!

      --
      Don't blame me, I didn't vote for either of them!
  26. Bored Billionaire Syndrome by Anonymous Coward · · Score: 0

    I just dimiss this guy (as revolutionary as his achievements were 20-30 years ago) as a bored billionaire. He's thinking "why not personally fund an basically unsolvable problem for a while?" It's good press. And I'm sure he's intelligent and -will- learn and/or create a few things along the way. Shits and grins.

  27. An interesting read... by baylorhawk · · Score: 1

    I read this article recently, and it pertains to this topic. (By pertains, I mean proves this guy wrong :) Check it out here. It was written in 1987, but it still rings very true today.

  28. Re:Software should be as easy to edit as a PowerPo by lowmagnet · · Score: 1

    Also, ever object will start out a vomit-green colour.

    --
    Heute die Welt, morgen das Sonnensystem!
  29. Meta complexity? by FunkyRat · · Score: 4, Interesting
    Surely it must be recognized that you are just moving the complexity problem to a different layer with this approach, PLUS losing the ability to gain low level access when needed.

    I don't know if that necessarily has to be the case. Back in the old 8 bit CP/M days I got my introduction to Forth through an application named KAMAS, which stood for Knowledge And Mind Amplification System. Lofty sounding name aside, KAMAS was really an outlining tool. A very good one at that. A few years later after the PC and DOS had taken over a whole slew of these outlining tool programs appeared and all claimed the ability to revolutionize the way you worked with information. For the most part, this was all bunk but in a way KAMAS almost stood up to its self-aggrandized promotion.

    What made KAMAS different, IMHO, was that it was based on a FORTH like language that was at the core of the product and its author (Adam Trent) left that programmability exposed. Yet, he was able to organize the program in such a way that the average user didn't have to interact with the language at all or even know it was there if they didn't want to. Heck, you didn't even have to use it as an outliner -- if you wanted it could just act as a simple To Do list.

    As the owners' manual stated, KAMAS was arranged in rings,like a Venn diagram, with the outliner at the outermost ring. However, if the user wanted they could issue a command that would expose the next inner layer ofr complexity and do simple programming tasks on their outlines. Because of its' Forth heritage, the programming was interactive and could easily be undone? Screw up a word definition? Just tell the interpreter to FORGET it.

    For the true geek crowd, another word could be issued (only while inside the programming layer) that would then expose the inner-most layer and open up access to the all the words defined. At this point, the user/prorammer would have access to basically a full Forth programming environment and actually change or extend the outliner tool by rewriting it! At this point, if one wished to devote the time to learning how to program in a stack based threaded interpreted environment, your computer was wide open to you. It was like have the keys to the gates of heaven laid at your feet.

    Later on, when I started playing around with Forth proper, I was still impressed with what KAMAS's author (whatever became of Adam Trent anyway?) had done and felt that this managing of complexity was the true power of Forth based systems. However, even I have to admit that Forth is far from ideal given its' RPN and stack based roots -- at least for Joe Everyuser. More time passed and I discovered Smalltalk and Alan Kay and his idedas for Dynabook and lately, Squeak.

    Smalltalk, Squeak and OOP share with KAMAS the idea of bringing the power of the computer to leverage the mind to the everyday user. And, as with KAMAS and Forth too, they are able to prevent a useful, simplified environment at the surface, but still making the power and complexity available to those who want to use it.

    So, in short, I think you're wrong here. One does not have to lose the ability to gain low level access in order to mask complexity from the average user. What I do question after all these years is how many users will actually want access to the power hidden at the core of systems such as Squeak and KAMAS before it? I mean, come on, I live in a country (US) where a sizeable portion of the population can't identify the Pacific ocean on a map! I think its likely that in the end we'll end up with just about the same mix of truly technical users to clueless lusers that we have now.

    As depressing as that may be, and the thought does depress me, I still think it's important to implement Charles Simonyi's ideas (as well as Alan Kay's and Doug Englebart's and Steve Wozniak's and all the others who believe that the computer can serve as a tool to liberate people). If only for the sake of providing a migration path for people to make that crossing from clueless luser to someone who is able to effectively use the computer as a "Knowledge and Mind Amplification Tool."

    1. Re:Meta complexity? by drgnvale · · Score: 1

      Two things... 1)_Damn slashdot for only giving me mod points when there are worthless posts, and not when posts like this one show up, and 2) Don't forget lisp.

    2. Re:Meta complexity? by joto · · Score: 1
      Was this just a typo, or was it intentional?

      And, as with KAMAS and Forth too, they are able to prevent a useful, simplified environment at the surface, but still making the power and complexity available to those who want to use it.

      Look at the 12th word.

    3. Re:Meta complexity? by the+eric+conspiracy · · Score: 1

      I still think it's important to implement Charles Simonyi's ideas (as well as Alan Kay's and Doug Englebart's and Steve Wozniak's and all the others who believe that the computer can serve as a tool to liberate people).

      All coolness, but how does that eliminate the need for humans to deal with complexity? It's still there at some level in the system until you build a system that can eliminate complexity adaptively. When you do that there will be no need for human beings any more.

    4. Re:Meta complexity? by FunkyRat · · Score: 1

      ROTFL! No, it wasn't intentional! I hope you know I meant present. You'll have to excuse me, I'm doing Slashdot today like Rush Limbaugh does his radio show -- I'm taking hyrdrocodone for a knee injury. On top of it all, I have this miserable stinking cold!

    5. Re:Meta complexity? by FunkyRat · · Score: 1

      Well, actually, in a way, that was my point or at least a corrolary to my point.

      We can do really cool things to manage complexity and still make computers useful tools for the general populace. I agree with Simonyi's arguement that more needs to be done in this area.

      However, at some point, people must be ready to accept the fact that power brings with it complexity and if they wish to do grander things then they need to be willing to learn. Most people aren't willing to do so. Yet for the few who are, the tools should be there.

    6. Re:Meta complexity? by PurplePhase · · Score: 1

      If that's the case, I think you deserve an award both for being so eloquent and also for only having a single typo!

      Very sweet post! Thanks for the KAMAS history and insight... So, again, how do we make this happen?!

      8-PP

  30. it's already there by kipple · · Score: 1

    it's called visual basic.

    if it just wasn't for all those script kiddies exploiting vulnerabilities of such a beautiful language.. let's hope they make script kidding illegal with the next version of the Patriot ACT, codenamed LongCorn..

    --
    -- There are two kind of sysadmins: Paranoids and Losers. (adapted from D. Bach)
  31. He wants to eliminate code, not design. by dstone · · Score: 1

    Unfortunately, turbine blades are still designed by highly skilled engineers

    Exactly. Once the highly skilled engineers design the blade, he wants to ensure that a bunch of hamfisted craftsmen and welders and such don't screw up the implementation with mistakes, sabotage, job-security-slackness, labor negotiations, etc.

    Simonyi says he wants the code to "look like the design". There is still a role for the designer.

    what he wants to do is give somebody the ability to say "I want a fan-like-thing that moves a big metal bird" and have a jet engine pop out.

    No, I don't think he's trying to translate vague human requests into code. He wants the user to become the designer or modeller, and the tool to become the code-monkey. He wants the user to create the design with GUI tools and reusable components (like PowerPoint, he says -- dunno about that), which is going to require the user to think about requirements and interfaces (hmmm, good luck) but not the code or maintenance. He doesn't envision replacing the role of designer or the model. I thought the article made that clear. But he does want every "user" to be a designer/modeller. Ugh. Not so sure about that one. ;-)

  32. XUL, XUI, XFORMS, XAML ... by Bazouel · · Score: 2, Insightful

    ... all of those technologies make designing simple apps a piece of cake. Shouldn't be that hard to make a visual IDE for newbies that generates those XML.

    --
    Intelligence shared is intelligence squared.
  33. The perfect utility by Slowping · · Score: 2, Insightful

    Someone just needs to write a program that users can run, to check and make sure that the target program runs correctly!

    (yes, I'm joking)

    --
    (\(\
    (^.^)
    (")")
    *beware the cute-bunny virus
  34. But that's why we have FORTRAN! by dpbsmith · · Score: 1

    That's exactly what FORTRAN does. You don't do any programming yourself, you simply describe the problem you want solved in a natural, easy-to-learn language, and the FORTRAN compiler writes a bug-free program that implements the solution.

    If you're not using FORTRAN, you're wasting time and effort. Why, when you write a single line of FORTRAN the FORTRAN compiler writes an average of ten lines of code for you, so you become ten times as productive and can get projects shipping and earning revenue times as fast. And is it ever good code! Why, it's 99 and 44/100% as efficient as the very best hacker-tweaked assembly language. FORTRAN even puts the instructions on the drum for you in the best locations for optimum access speed.

    (If you personally happen to dislike FORTRAN, then substitute The Last One, or DELPHI, or Visual Basic, or LabView--that programming language where you drag icons around and "wire" them together... it doesn't matter, the claims are always the same, including tenfold productivity boosts)

  35. Compexity misunderstood by Brandybuck · · Score: 2, Interesting

    "Software should be as easy to edit as a PowerPoint presentation," Simonyi asserts.

    When's the last time you saw a quality PowerPoint presentation? I've seen them, but they're rare. Presentations from people who don't know how to communicate effectively are lame as Visual Basic programs from people who don't know how to program. The style takes precedence over the actual substance.

    Complexity is not something that needs to be hidden away. Software is complex. Using software is a complex activity. Writing software is more complex still. You cannot manage that complexity by imagining that it is not there. The way to manage it is to recognize that it exists.

    It doesn't matter if you use C, Java, VB or Ruby, the complexity is still there. The advantages of high level languages is not that they hide away the complexity, but rather that they enable you to manage the complexity by taking care of the details.

    Take any book on software development. Not programming, but development. How much time is spent on implementation? Not much. For a good project, 90% or more of the time is spent analyzing, specifying, designing and testing. This is the HARD part of developing. Give me complete specs, a valid design, and a top-notch QA group, and I could code just about anything. All that other stuff is there to MANAGE the complexity.

    I've seen what Microsoft offers to make things easy. They're solutions to complexity is to ignore it, which is the wrong approach. And thus we end up with crap presentations, crap documents, and crap VB programs. It's not because these tools are crap in-and-of-themselves, but simply because they lead the user to disregard the existing complexity.

    --
    Don't blame me, I didn't vote for either of them!
  36. NakedObjects? by BigGerman · · Score: 2, Interesting

    there is a framework where they believe in exposing the business objects inside the app to the end user. Kinda like spreadsheet / powerpoint but the real deal.

  37. Correction by Haeleth · · Score: 2, Funny

    I thought AppleScript was basically Visual Cobol...

  38. Michiavelli of Marketing Speaks by 4of12 · · Score: 1

    customer knows what they want

    A quaint, outdated model.

    In today's mass production world we already know what the customer wants.

    The customer wants to feel good about himself.

    Target your pitch that way and you'll get the sheep coming in to be sheared, as you praise them for being adventurious, vigorous, attractive, and knowledgeable sheep (or wolves, if they like being called wolves better)....

    Pretend to listen to your customer, because if they think you're listening to them and care about them, then they feel good about themselves and you are achieving an important objective.

    Sheesh, I thought everyone knew this stuff...

    --
    "Provided by the management for your protection."
  39. Noggin' up backside by jo42 · · Score: 1

    > "Software should be as easy to edit as a PowerPoint presentation"

    Allrighty then. Hide the complexity at the surface level. Put the complexity where it can't be seen - behind the scenes. And just how have we improved things? All we have done is move the complexity to somewhere else. Don't fix that hole in the wall, just paper and paint over it. Idiot.

  40. NYTimes: Powerpoint and the shuttle disaster by Anonymous Coward · · Score: 3, Interesting
    This is from late September, so unfortunately there's no direct link to the full article at nytimes anymore.

    The Level of Discourse Continues to Slide
    By JOHN SCHWARTZ
    Is there anything so deadening to the soul as a PowerPoint presentation?

    Critics have complained about the computerized slide shows, produced with the ubiquitous software from Microsoft, since the technology was first introduced 10 years ago. Last week, The New Yorker magazine included a cartoon showing a job interview in hell: "I need someone well versed in the art of torture," the interviewer says. "Do you know PowerPoint?"

    Once upon a time, a party host could send dread through the room by saying, "Let me show you the slides from our trip!" Now, that dread has spread to every corner of the culture, with schoolchildren using the program to write book reports, and corporate managers blinking mindlessly at PowerPoint charts and bullet lists projected onto giant screens as a disembodied voice reads

    every

    word

    on

    every

    slide.

    When the bullets are flying, no one is safe.

    But there is a new crescendo of criticism that goes beyond the objection to PowerPoint's tendency to turn any information into a dull recitation of look-alike factoids. Based on nearly a decade of experience with the software and its effects, detractors argue that PowerPoint-muffled messages have real consequences, perhaps even of life or death.

    Before the fatal end of the shuttle Columbia's mission last January, with the craft still orbiting the earth, NASA engineers used a PowerPoint presentation to describe their investigation into whether a piece of foam that struck the shuttle's wing during launching had caused serious damage. Edward Tufte, a Yale professor who is an influential expert on the presentation of visual information, published a critique of that presentation on the World Wide Web last March. A key slide, he said, was "a PowerPoint festival of bureaucratic hyper-rationalism."

    Among other problems, Mr. Tufte said, a crucial piece of information -- that the chunk of foam was hundreds of times larger than anything that had ever been tested -- was relegated to the last point on the slide, squeezed into insignificance on a frame that suggested damage to the wing was minor.

    The independent board that investigated the Columbia disaster devoted an entire page of its final report last month to Mr. Tufte's analysis. The board wrote that "it is easy to understand how a senior manager might read this PowerPoint slide and not realize that it addresses a life-threatening situation."

    In fact, the board said: "During its investigation, the board was surprised to receive similar presentation slides from NASA officials in place of technical reports. The board views the endemic use of PowerPoint briefing slides instead of technical papers as an illustration of the problematic methods of technical communication at NASA."

    The board echoed a message that Mr. Tufte and other critics have been trying to disseminate for years. "I would refer to it as a virus, rather than a narrative form," said Jamie McKenzie, an educational consultant. "It's done more damage to the culture."

    These are strong words for a program that traces its pedagogical heritage to the blackboard or overhead projector. But the relentless and, some critics would say, lazy use of the program as a replacement for real discourse -- as with the NASA case -- continues to inspire attacks.

    It has also become so much a part of our culture that, like Kleenex and Xerox, PowerPoint has become a generic term for any bullet-ridden presentation.

    Dan Leach, Microsoft's chief product manager for the Office software, which includes PowerPoint, said that the package had 400 million users around the world, and that his customers loved PowerPoint. When early versions of Office for small business did not include PowerPoint, customers protested, he said, and new versions

  41. Real programmers will still have jobs by GCP · · Score: 3, Insightful

    I think it's great for them to pursue tools that make it easier for non-programmers to do more useful things for themselves.

    I'm not too concerned that this will replace the current type of programming, though. The biggest problem is that the real-world problem being solved is almost always more complicated than the domain experts themselves realize.

    When I sit down with a client domain expert to write a program for them, they are invariably surprised by what I uncover. I gradually tease out a huge variety of scenarios that they've never thought through or decisions that they make on the basis of "experience" whose rules they can't possibly express explicitly, comprehensively, unambiguously, and without contradiction -- on their own.

    It just doesn't matter how easy it is to explain the rules to a computer if you don't have the skill that experienced programmers have: to completely specify the problem. Fully explaining how to solve a problem to something other than another intelligent and experienced human is harder than most non-programmers realize. (Of course Simonyi knows this, but the journalists who cover his work probably don't.)

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
    1. Re:Real programmers will still have jobs by Doug+Merritt · · Score: 1
      When I sit down with a client domain expert to write a program for them, they are invariably surprised by what I uncover.

      Indeed. Humans are accustomed to expressing their desires to other humans, and relying on common sense to guide the interpretation of their orders and specifications. This doesn't fly with computers; the orders aren't algorithms, they're vague wishlists.

      The first problem is that people don't say how to achieve goals. The second problem is that people don't even specify the goals very explicitly, but they don't realize this. A corollary is that they don't look for every little corner case that applies to their desires.

      For instance, a CEO might say (at least implicitly) that an app should treat it as a fatal error if an employee has no boss -- but often the CEO himself needs to be a special case treated as having no boss. Or no employee can have a salary about $XXX/year, but he forgets that he himself makes 20 * $XXX, unlike all other employees, and also that inflation will make his threshold incorrect eventually, and what about whether bonuses should be included or excluded, etc etc.

      Discovering and reasoning about special cases routinely is just part of the job for any good programmer -- you might say the programmer has high empathy for what the computer needs -- but nonprogrammers just aren't used to thinking that way.

      --
      Professional Wild-Eyed Visionary
    2. Re:Real programmers will still have jobs by Fnkmaster · · Score: 1
      Definitely a +5 insightful if I've ever seen one. The real problem is that computers follow unambiguous instructions and logical execution flows, and people express needs in ambiguous and domain-jargon-laden terms. My favorite personal example of this was: "Of course the price in the two underlying markets can imply a price in the spread markets, and the incoming fixed leg can imply a price in the floating leg, but it's got to be grounded to the underlying..." That's a nearly verbatim quote from a project building a trading system for a large futures exchanges.


      If such a large, infrastructure critical organization had _nobody_ on staff who could completely and unambiguously describe the pricing rules for their markets, how the hell can we expect that your average business is going to have anybody who can accurately describe the detailed processes involved in their domains? The way humans work, we generally deal with complicated and exceptional cases when they occur, we don't try to think them all through in advance. Unfortunately, this approach doesn't work very well for huge transaction volumes of mission critical information.


      Admittedly, certain domains of problems are strictly categorizable and declarative enough in nature they can be solved by special-purpose point-click-n-drool tools that your average business user can use. But only because each of the underlying components in a process is standard enough that's it's all been precoded for all the possible variations and configurations of that process. Without that, you get into so many different levels of complexity and abstraction that, well, you need a programmer of some sort or another to handle it.

  42. Cat and the Bell by Quill_28 · · Score: 1

    Reminds of the fable where mice want to be protected so they decide to put a bell on the cat, that way it can't sneak up on them.
    Great idea! Except of course who is going to put the bell on the cat?

    Yes, I would love software that could do everything he wants. Now who is going to write it? Will it collapse under it own weight?

  43. Give him a lollipop by Sir+Robin · · Score: 1
    This reminds me of a quote from the fortune file:
    When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.
    In other words, figuring out what you wish done is the hard part. Automating the requirments gathering process won't change that. Try to desribe in words a computer can understand how to peal a banana. Describe how to pick up the banana. Describe how much pressure to apply. Describe what to do if the banana is too squishy at the top for the peal to break open. Etc, etc, etc, ad nauseum.

    That said, the objection to the "power point" line is at least a misinterpretation. Software should be as easy to edit as a PowerPoint presentation. Not as easily written, mind you, just as easily edited. I wouldn't object to a more powerful editor. But, will it work with Vim? ;)
    --
    My /. ID is only 5,210 away from Bruce Perens's.
  44. Software == PowerPoint? by Frambooz · · Score: 1
    "Software should be as easy to edit as a PowerPoint presentation," Simonyi asserts.

    In that case, software should ship with its own slow, monotone narrator that reads ALL the words on the screen so it's hard not to doze off after five seconds. Great.

    Oh wait... my OS already has that. Microsoft Narrator.

    (P.S. Can't wait for my dialog boxes to slide in from left to right -- or better yet... rotation!!! oh boy oh boy.)

    --
    No encryption can withstand the power of the Lucky Guess.
  45. Quote: "making the code look like the design" by idontgno · · Score: 2, Funny
    Hind's 7th Law of Computer Programs:

    Make it possible for programmers to write programs in English, and you will find that programmers cannot write in English.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  46. Did anyone else... by idontgno · · Score: 1
    misread the title of the story as "Removing Software Completely" and get enthused about a new technique to comprehensively uninstall crappy software from Windows?

    You may commence the usual /. geek-bigot joke answers: "fdisk", "install (linux|bsd|beos)", etc.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  47. No incentive to make software simpler. by Anonymous Coward · · Score: 0

    Software is complex because people want it to be complex.

    When software is fast enough, users want to move knowledge from the user to the program. This inevitably makes the program more complex.

    When software is too slow, users want it faster (or faster machines).

    Iterate.

    There is no incentive for making software simpler. It mainly happens in efforts to increase speed, or from personal programmer pride.

    None of this will ever remove the programmer from the loop. programmers are those people who best translate ill-defined, vague, contradictory, requirements into something a computer can run. New programming systems or languages or editors make things easier for everybody. The best are still the best, and likely still worth hiring.

    1. Re:No incentive to make software simpler. by Anonymous Coward · · Score: 0

      Software is complex because people want it to be complex.

      Software is complex because most people can't think abstractly enough to make it simple!

    2. Re:No incentive to make software simpler. by Anonymous Coward · · Score: 0

      I don't think so. People don't want to think abstractly enough to make it simple.

      Here is an example:
      Write a piece of software which given GPS coordinates, tells you where you are (in usable real world terms).

      Abstract and simple: it replies "Earth".

      Low complex: look up in a table of big cities for the nearest one.

      Medium complex: look up a table of all cities and towns for the nearest.

      Usable for road navigation: complete knowledge of all roads needs to be included.

      usable for blind pedestrians: knowledge accurate to feet required.

      As soon as one level works reliably and quickly, users will demand the next level (and there will be more users) and the software will change problem space.

      The world is complex. Software becomes more useful the more closely it maps the world. It will therefore be pushed in that direction until resistance is encountered (in the form of overly slow results, overly large price or whatever).

  48. Operating system in high-level language? Easy... by Black+Parrot · · Score: 2, Funny


    > Problem is that does anyone want to write an operating system in such a high level language, where the optimization is questionable?

    No problem...

    main(int argc, char *argv[]){
    operate(system,efficiently);
    }
    --
    Sheesh, evil *and* a jerk. -- Jade
  49. Who... by whitefox · · Score: 1

    Who programs the programmers?

  50. Hey TACO by Anonymous Coward · · Score: 0

    Get that cock out of your mouth, you don't know where that's been....you filthy bastard.

  51. VB/Access/Cobol/Simonyi: No silver bullet! by Doug+Merritt · · Score: 4, Insightful
    Visual Basic made it possible for untrained people to write software, and Access made it possible for untrained people to write database applications,

    No, VB and Access made it possible for untrained people (and naive managers) to THINK (quite incorrectly) that they could write software and DB apps.

    but neither of those applications has reduced or eliminated the need for people to create software.

    Exactly.

    There is no silver bullet for making software easy, and this has been known for decades.

    Cobol, for instance, was supposed to be English-like, and hence understandable and programmable by non-programmers. Other English-like programming languages have made the same claim. Wrong every time on all counts.

    The problem is that specifying arbitrary algorithms requires extreme precision, unambiguity, and tedious detail far beyond anything the average person is even interested in attempting, let alone capable of. It doesn't particularly matter which language or tool is offered, what matters most is the person's abilities (and willingness!) to be excruciatingly detailed and logical and patient.

    This has been studied to death, but hope springs eternal...

    Another kind of lack of silver bullet are declarative languages...it's vastly easier to declare what is needed than it is to specify procedurally how to achieve the goal. However, no one has ever invented a Turing complete declarative language, and there is good reason to think that such a thing is impossible (infinite potential problem domains).

    Simonyi is a very intelligent and experienced guy, so he likely knows this. I hope he does; he should. So I like to interpret what he's saying as a grandiose way to say that he's hoping to make a big improvement in the art of programming -- there certainly is huge room for improvement.

    But if he literally means he hopes to make all programming as easy as making powerpoint slides, then he is a fool or a liar (but he might still produce some cool tools).

    (Making really cool graphics for the backgrounds of powerpoint slides is an art, BTW ;-)

    --
    Professional Wild-Eyed Visionary
    1. Re:VB/Access/Cobol/Simonyi: No silver bullet! by 00420 · · Score: 1

      The problem is that specifying arbitrary algorithms requires extreme precision, unambiguity, and tedious detail far beyond anything the average person is even interested in attempting, let alone capable of. It doesn't particularly matter which language or tool is offered, what matters most is the person's abilities (and willingness!) to be excruciatingly detailed and logical and patient.

      Exactly. No matter how easy it is to construct a program, the structure will only be as good as the logic of the person that created it.


      But if he literally means he hopes to make all programming as easy as making powerpoint slides, then he is a fool or a liar (but he might still produce some cool tools).

      (Making really cool graphics for the backgrounds of powerpoint slides is an art, BTW ;-)


      I think do think that is his goal, but as you state in the last line it really comes down to the artistic (in a software engineer sort of way) part of it. Sure people will be able to use the code equivalents of clipart, but it will still take talented computer scientists to make really worthwile applications.

      I'm curious to see what Simonyi can do. I really doubt that he'll have anything close to what he is describing in two years, but it'll sure be interesting to see what he does come up with.

    2. Re:VB/Access/Cobol/Simonyi: No silver bullet! by Anonymous Coward · · Score: 0

      However, no one has ever invented a Turing complete declarative language, and there is good reason to think that such a thing is impossible (infinite potential problem domains).

      ------

      Godel's Incompleteness Theorem pretty much proved this is impossible.

    3. Re:VB/Access/Cobol/Simonyi: No silver bullet! by dollargonzo · · Score: 2, Informative

      as long as functional programming languages are considered to be declarative (at least according to foldoc) then there are plenty of declarative programming languages. arguably, functional languages are not completely declarative, but they aim high and do a much better job of defining the problem.

      --
      BSD is for people who love UNIX. Linux is for those who hate Microsoft.
    4. Re:VB/Access/Cobol/Simonyi: No silver bullet! by jyasskin · · Score: 1
      "Another kind of lack of silver bullet are declarative languages...it's vastly easier to declare what is needed than it is to specify procedurally how to achieve the goal. However, no one has ever invented a Turing complete declarative language, and there is good reason to think that such a thing is impossible (infinite potential problem domains)."
      XSLT and Haskell are declarative, Turing complete languages.
    5. Re:VB/Access/Cobol/Simonyi: No silver bullet! by Doug+Merritt · · Score: 1
      XSLT and Haskell are declarative, Turing complete languages.

      See my previous interactions with dollargonzo regarding definition of "declarative", sample place where you made your comment.

      --
      Professional Wild-Eyed Visionary
    6. Re:VB/Access/Cobol/Simonyi: No silver bullet! by Hognoxious · · Score: 1
      The problem is that specifying arbitrary algorithms requires extreme precision, unambiguity, and tedious detail far beyond anything the average person is even interested in attempting, let alone capable of.
      I notice you said specifying, you said, not coding, and that's a distinction that many miss.
      <Pointy Haired Boss>It took you a week to type 2 pages!</PHB>
      I think it was Brooks who said half of the work is debugging the spec. Anyone remember how CASE was going to make all programming 'drag & drop'?
      It doesn't particularly matter which language or tool is offered, what matters most is the person's abilities (and willingness!) to be excruciatingly detailed and logical and patient.
      Indeed. While the use of an inappropriate tool or language can surely make a programming task more complex than it needs to be, there is a lower to limit to the complexity, below which no tool can decrease it. This basically depends on the complexity[1] of the task the software must perform. I guess that's Brooks' Accident vs Essence. Again.

      [1] Exactly how you quantify that, of course is a bit of a black art.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  52. they're on the same level by ChipMonk · · Score: 0
    Real marketers use a professional media production company. Wannabes (think Stef Murky) use PowerPoint.

    Real programmers understand the data flow behind their language. Wannabes use Visual Basic.

  53. Symonyi loves complexity. by winchester · · Score: 1

    Charles Simonyi was the man at Microsoft that tried to answer the complexity of Microsoft's software with more complexity.

    Now hearing a statement like this from him sounds hardly convincing.

    And... do we really want a programming language so simple everyone can use it? I thought Visual basic and VBA tought people very well that we do NOT want it!!

  54. Complexity is caused by slow computers by Frans+Faase · · Score: 3, Insightful
    I am getting more and more convinced that most of the complexity is caused by the fact that computers are too slow for the kind of tasks want them to perform. The real problem is that we are no longer aware that 99.5% of our efforts are related to optimization, and that 90% of our code is related to moving data around in the memory pyramide, or to calculate differential queries.

    Calculating a differential query means that you modify the outcome of a query based on how the data changed instead of reexecuting the whole query.

  55. Easy as PowerPoint by Kidbro · · Score: 1

    Software should be as easy to edit as a PowerPoint presentation

    I don't know... I'm capable of programming in a handful of different languages. But I've never been able to spend less than three hours on a bloody PowerPoint presentation and produce more than a single slide.
    I say programming is much simpler ;)

  56. without the concepts by Anonymous Coward · · Score: 0

    I work in an accounting department and the average accountant doesn't understand basic data modeling. If you can't define your data and its relationships how are you going to build systems around it? I know, lots of word and excel documents.

  57. Out of a job! by nberardi · · Score: 1

    What is he trying to put me out of a job. :)

  58. Reducing software complexity is a high set goal... by cmon_scum · · Score: 1

    ...but it's good to try it out. The more the complexity grows the more work ist to be done when you want to upgrade things or simply fix an error. Take a look at a programming language as easy to read as e.g. ABAP/4. It's almost readable as a plaintext but still you can build extremely complex software.
    If you have a IDE that allows you to abstract the coding from the semantic significance, it makes your code more easy to understand. If you have different levels of abstraction (like some diagrams in UML) and your IDE supports working in higher abstractions and not just viewing, you can build new things on a more abstract and therefore easier level.
    But to achieve that either every project has it's own levels and definitions of abstraction levels or it has to be built in the programming language itself. But both possibilities will increase the complexity of the abstractions. So no easy going... ;)

  59. "a machine for writing software" by StrawberryFrog · · Score: 1

    From the article:

    What, exactly, would a machine for writing software look like? It would itself be software.

    Well, I call mine a "compiler". They're not new.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  60. Re:Removing software complexity... (+1 long-winded by Zurk · · Score: 1

    To answer your question, two years ago i started thinking along these lines. i went a bit further than most...i sat down and implemented tools to do exactly this. I developed them for my own internal use since i build a wide variety of one-off platforms and i manufacture embedded systems. i still use them two years later because nothing even comes close to the power i get from my platform and the speed of development.

    To what extend is there a limit to the set of possible software architectures based on the modeling tools' abstractions and UI paradigms?

    1. If developed correctly there should be no limits whatsoever. In practice, my tools limit me in two ways.
    [a] They are slower than traditional approaches due to the overhead of interpretation (even with precompiling).
    [b] Less data can be handled dynamically and real time data streams are hard to handle. sometimes working with delegating real time to a dedicated C program and letting is talk in non real time to the tools is best.

    2a. What is the scope of the type of platforms abstracted away by this tool?

    any platforms can be abstracted as long as they fit into the traditional input->compute->output paradigm (which mostly all do, since everything in computer systems uses a turing machine model. You are using a CPU after all).

    2b. Can I design stand-alone, UI applications, embedded software, and n-tier J2EE systems with the same tools?

    i've designed and implemented (well actually designed only since my tools do the implementation for me) web based shopping carts, n-tier database/app server backed load balanced financial apps for brokers, stand alone UI applications, embedded systems (not just software..entire systems with hardware interfacing) with my system.

    2c. How tractable is the problem of designing design tools flexible enough to encompass all possible development platforms?

    its not that difficult. its a pain when handling hardware devices but other than the obvious pain of writing drivers, its not hard. i've run my tools on AIX, Solaris, IRIX, Linux, BSD, Windows 3.1, Windows 95, DOS, QNX, Novell, Windows 2000/NT/XP, AS/400s.

    So it is doable. will everyone do it ? nope. it takes time and money to do it and no one has the time or money. its a hard sell to develop this for businesses. i developed it because i need it (and it continues to be developed and used 2 years later..chances are it will take 20+ years before it has everything i want in it). will someone pay me money for it ? not on your life. on the other hand the systems i develop with it do sell. whats ironic is that if i sold the system to my customers they could implement the same platforms i sell them at a fraction of the cost of each individual unit. but i know i can never sell it to them since they'd never buy it.

  61. Complexity comes from over-simplification by 2901 · · Score: 1

    Classic example, floating point arithmetic is complicated because it is inexact, so = doesn't work like you hope. Every so often some-one has the bright idea of building a tolerance into =, so that it works like it should and programming becomes simpler.

    So you still have to be aware of rounding error and build a bigger tolerance into your code when appropriate, but now you also have to cope with a non-transitive = so sometimes a=b, b=c, yet c != a. Over-simplifying made it more complicated.

    Second example, SOAP, the Simple Object Access Protocol, uses the same port as http. This make things simpler for the system administrator. He doesn't need to open an extra port in his firewall to let SOAP through. How does he block SOAP without blocking http? Ah well, simplifying things has made them awfully complicated.

    Mega-example: You have two distinct concepts in assembler, skipping optional code, and choosing between alternatives

    TEST
    COND JUMP skip
    OP1 optional code
    OP2
    skip: OP3 mandatory code
    etcetera

    TEST
    COND JUMP alternative
    OP1
    OP2
    JUMP rejoin
    alternative OP3
    OP4
    rejoin OP5
    etcetera

    We could have had language keywords opt(ional) and alt(ernative) which would look like this

    opt(boolean)statement;

    alt(boolean)statement1;statement2;

    but to make things simpler, languages just have one word keyword, if, instead of two, opt and alt.
    So they look like this

    if(boolean)statement;

    if(boolean)statement1;else statement2;

    Except of course they don't. There is now a dangling else problem, so we all resort to defensive programming and write

    if(boolean){
    statement;
    }

    or

    if(boolean){
    statement1;
    } else {
    statement2;
    }

    Computing would be a lot simpler if we were more understanding and accepting of complexity. Then we could concentrate on spotting and reducing the complexity we can do something about, rather than adding to the complexity with misguided over-simplifications.

  62. Don't blame the messenger. by StrawberryFrog · · Score: 1

    But Hungarian notation doesn't fix that flaw. It's only as reliable as the programmer who writes the code. In most cases, that means not reliable at all. ... I have been bitten before by relying on the Hungarian junk at the start,

    So? You could have been bitten buy assuming that a function called IncrementValue() doesn't divide the value by 12. You could have been bitten by assuming that the comment above the function accurately describes the contents. There is no programming technique whatsoever that can stop you from being bitten by the mistakes of dumb cow orkers.

    This does not mean that meaningful function names, accurate comments and a judicious amount of type info in var names are bad things.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

    1. Re:Don't blame the messenger. by nathanh · · Score: 1
      So? You could have been bitten buy assuming that a function called IncrementValue() doesn't divide the value by 12. You could have been bitten by assuming that the comment above the function accurately describes the contents. There is no programming technique whatsoever that can stop you from being bitten by the mistakes of dumb cow orkers.

      I think, without reservation, that was entirely my point.

      This does not mean that meaningful function names, accurate comments and a judicious amount of type info in var names are bad things.

      It does mean that the person I was responding to was incorrect when they claimed that Hungarian notation overcomes the type safety "flaw" in C. It does not.

  63. PPT Compiler by AirFax · · Score: 1

    I had already thought of it: a PowerPoint Compiler!

    Drag'n drop those images of people, businesses and tasks. Draw arrows between each. Use as many slides as you want to detail the flow of operations. Then hit F5 to have the compiler spit and exec your new application!

  64. Development is about abstraction by PinglePongle · · Score: 2, Insightful

    And abstraction is the fundamental means of reducing complexity.
    The history of programming is the movement from physically inserting patch cables to program a computer to manipulating abstractions. In languages like C, those abstractions are still pretty close to the hardware; in OO languages they tend to be closer to the problem domain. Edsger Dijkstra once said that software development was unique as a profession because it required practitioners to operate at 7 levels of abstraction - from transistor to algorithm to software architecture to business domain. Of course, very few of us deal with "transistor-level" programming these days.
    So, Simonyi's "intentional" programming is part of this broad sweep of improvement in programming languages in the last 50 or so years. The current emphasis behind Model-driven architecture is a similar desire to somehow take away all that messy code stuff and replace it with nice, easy to understand pictures.

    The problem with both these approaches is that complexity exists inherently in the problem domain. The role of a software development team is to chose a path through that complex problem domain and implement it with working code. Right now, I don't believe we have tools which are sufficiently expressive and intuitive to model the complexity of the problem domain, and we must be years if not decades away from being able to convert such models to working code.
    UML is lovely - it's a great language for expressing software ideas and conveying a lot of information in a graphical format, but the average business user just does not get it; in my experience they are primarily useful for communicating between developers.
    Use cases (in textual form) are far more useful for communicating with business users, but to convert a usecase into a working program would require natural language parsing at a level that must be a generation away.

    We should wish Simonyi luck - his ambitions are worthy, and will benefit all working developers if they bear fruit. And what better use to put a couple of billion dollars to ?

    --
    It's all very well in practice, but it will never work in theory.
  65. The Gettysburg PowerPoint Presentation by Latent+Heat · · Score: 1

    No discussion of PowerPoint is complete without checking out http://www.norvig.com/Gettysburg/

  66. Re:Software should be as easy to edit as a PowerPo by neural+cooker · · Score: 2, Insightful

    very well put.

    another way to put it..
    Everyone can write a novel, but it takes good writer to write a good novel.

  67. So great... by zyridium · · Score: 0

    This sounds like a really complicated program... how should we write it?... Oh.... shit!

  68. Two steps in the right direction by flyingfred0 · · Score: 1

    In my short career so far I've worked with two "languages" that are making progress toward ease of understanding and user-friendliness: Python and LabView.

    With Python I've been able to quickly write applications in much less time than in C/C++, the code is easy to read and looks like the pseudo code I'd write if I were going to implement something in another language.

    Labview, although I only loosely consider it a programming language, is a great tool for the hardware folks I work with who wouldn't dare touch a "real" software language. It's pretty amazing what someone can do through it just by dragging boxes around and drawing the lines between them.

    Both have helped to ease some of the pain of writing software for me, and I'd suggest them as good foundations for making software development less complex.

  69. Definition of "declarative" by Doug+Merritt · · Score: 1
    as long as functional programming languages are considered to be declarative (at least according to foldoc) then there are plenty of declarative programming languages. arguably, functional languages are not completely declarative, but they aim high and do a much better job of defining the problem.

    I had in mind the older and less fuzzy definition of "declarative language", meaning one that is not Turing complete because there it lacks explicit conditionals, loops, and recursion.

    For instance, BNF is used to specify grammars, yet context free language parsers can be generated automatically from those grammars (e.g. with yacc). Thus BNF is an extraordinarily powerful language, but it doesn't specify algorithms, it just declares the grammar -- and is not Turing complete.

    If BNF is augmented with the ability to do grammatical parsing based not just on input tokens but also by conditionals on arbitrary memory locations, then it becomes Turing complete (because it is then an Augmented Transition Network).

    People who like fuzzy terminology would no doubt still call that a declarative language, but they've taken away an otherwise perfectly good category name for things like BNF. Is there some other terminology I've overlooked/forgotten, or am I going to have to start saying "Turing-incomplete declarative languages"??

    Foldoc, BTW, has its imperfections, including that it does not bother to comment on multiple usages, as in this case, or the one I noticed last week: "algorithm" as diametrically opposed to "heuristic" -- whereas it's quite common for people to mean "algorithm" as including "heuristics" as a proper subset.

    --
    Professional Wild-Eyed Visionary
    1. Re:Definition of "declarative" by dollargonzo · · Score: 1

      good point. interesting you mention BNF, explicit conditionals, loops, and recursion. loops are not necessary (e.g. SML), BNF *is* recursive (still not turing complete, because CFGs are strictly less powerful than turing machines). conditionals aren't even really necessary, yet BNF (when implemented as an NPDA) sorta does have conditionals since its output depends on the value on top of thestack; a turing machine can be implemented with 2 integer counters, or give a PDA two stacks-- and it's as powerful as a turing machine.

      --
      BSD is for people who love UNIX. Linux is for those who hate Microsoft.
    2. Re:Definition of "declarative" by Doug+Merritt · · Score: 1
      good point. interesting you mention BNF, explicit conditionals, loops, and recursion. loops are not necessary (e.g. SML), BNF *is* recursive (still not turing complete, because CFGs are strictly less powerful than turing machines). conditionals aren't even really necessary, yet BNF (when implemented as an NPDA) sorta does have conditionals since its output depends on the value on top of thestack; a turing machine can be implemented with 2 integer counters, or give a PDA two stacks-- and it's as powerful as a turing machine.

      Sure sure...if you think about it, it's clear I brought up BNF/yacc for exactly those reasons, regardless of flaws in my phrasing.

      To phrase it perfectly I'd need to state a sharp boundary for what is necessary and sufficient for Turing completeness...but I only recall sufficient mechanisms, not which ones are necessary.

      And part of the problem there is that I feel like I'm on thin ice with the explicit/implicit issues of conditionals -- as you say, BNF has implicit conditionals, and along with recursion, that's sufficient. But I have this notion that there might be languages that have recursion and implicit conditionals but which are not Turing complete. Hmm, let's see....I guess it's just a matter of what they test, not whether they're implicit. That sounds right. Well, for sure that's right for some things. It's the issue of being only able to look at the stack top that makes BNF non-turing-complete...I'm still uneasy about this, though; has there been some kind of survey of all possible mechanisms and which of them are necessary rather than just sufficient for Turing completeness?

      Phrased this way, I'm coming up blank.

      BSD is for people who love UNIX. Linux is for those who hate Microsoft.

      Hasty overgeneralization. I helped develop BSD back in the late 70s, but gave up hope on it when Bill Jolitz did. Then I started using Linux early on (0.99 kernel days), and I haven't had a compelling reason to go back to BSD. Switching would be a pain. Is there a compelling reason? Every time I've heard of an advantage, I got the impression that Linux borrowed it back.

      I guess BSD would be leaner and cleaner...

      --
      Professional Wild-Eyed Visionary
  70. nothing's changed... by acroyear · · Score: 1

    Simonyi still believes only a handful of super/uber geniuses can design software, but once that designs done, a standard office weenie can build it.

    He believed that back in PARC, he took that belief to Microsoft where it failed utterly, and still thinks so today.

    and he's still wrong.

    --
    "But remember, most lynch mobs aren't this nice." (H.Simpson)
    -- Joe
  71. BSD etc by Doug+Merritt · · Score: 1
    Oh, and I should've mentioned that I was a strong enough BSD fan to lose my loyalty to Sun (I used a Sparc at home) exactly when they switched from BSD to System V.

    That's when I started to look for another solution, and found Linux -- which has never, obviously, been pure BSD-like, but did always include enough BSD stuff rather than exclusively SysV side of the world to make me happy.

    --
    Professional Wild-Eyed Visionary
  72. It's easier than that. by lgordon · · Score: 1

    Software is already easier to edit than with Powerpoint.

    I can do it with notepad.

    1. Re:It's easier than that. by Anonymous Coward · · Score: 0

      Now it seems that it's more difficult than scheduling 3 years of work into 3 months using Project.

  73. Already exists: MDA by PolyMorpher · · Score: 1

    Very strange that this article doesn't even mention MDA (Model Driven Architecture) which promises to generate code from UML models.

  74. HyperCard by SteveSgt · · Score: 1

    Apple's long neglected HyperCard was the only development environment in which children were developing applications in very soon after they could read.

    A descendent of it exists in the form of "Runtime Revolution" , but even runrev has suffered feature creep, and isn't nearly as elegant and intuitive as HyperCard was.

  75. constant improvement and increasing complexity by oo_waratah · · Score: 1

    Software development and complexity is staying about static. The tools that we use today I would have been astounded 20 years ago but the reality is that I am now developing more complex programs and my users want more than they ever have. 5 years ago I had never written a threaded program, today I would never write a program without it. I could have ruled the world with a simple word processor when I started (pcwrite anyone) now I have to have all the bells and whistles like tool bars, menus, fast keys all on programs that simply balance your checkbook.

    I started using Borland Builder. I was astounded by the simplicity of the application. I developed suites of programs in weeks that I had on the backburner for years. Then the boom dropped, the users wanted better error handling, etc. I had to start subclassing the VCL components and bending them to my (or my users) will. Suddenly those clean simple plug and play programs blossomed to a complex program.

    What about tools like Borland Builder and VB leading developers into temptation. The road to all evil I have found is the simplicity of adding code to a button on the screen. The programmer stops designing their applications and just building them as they go. Portability lost, clean intefaces gone, and modifications are now complex impossibilities.

    I love the golden bullet, I beleive that better tools like Borland Delphi will continue to hide the horrors below the surface of programming through clean concise interfaces however the bar will shift higher, expectations will move and there will always need that logical structured mind to make something that will last and not be a write only application.

    Consider what the simple phrase means "Extensible without modification". Write something that can be used in ways you have not imagined without adding any further code. Tricky.

  76. HELLO! by StrawberryFrog · · Score: 1

    Search google for "simonyi wysiwyg" (sorry about the typo, if that's the worst you can do to try to agravate me then don't bother) Before you call the guy an idiot. Idiot.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

    1. Re:HELLO! by Hognoxious · · Score: 1
      Search google for "simonyi wysiwyg"
      I don't give a toss about that, which part of non-sequitur do you not understand? The thread was about hungarian notation, which sucks.
      Before you call the guy an idiot.
      Since you like google so much, why don't you search for "strawman". I did not call him an idiot. I didn't call you one either; it would be redundant.
      Still, perhaps m_lpstrnzCharlesSimonyi and Hognoxious look alike to you. Maybe they need to be in different colours or something, for the benefits of fucktards like you who can neither read, nor write plain text.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  77. Goodbye (offtopic) by StrawberryFrog · · Score: 1

    I don't give a toss about that, which part of non-sequitur do you not understand? The thread was about hungarian notation, which sucks.

    Oh. May I refer you to your first post, wherein I described Simonyi as "someone who has influenced the current state of the art of programming with several of his ideas" Note that I did not say for good or for ill, though I would surmise that if an idea catches on, these is likely to be some good in it for those who use it. Those who don't find good in it, shouldn't use it and not waste everyone's time whining about how much it sucks, like 13 year-olds.

    Note also that this description is not limited to Hungarian notation. Clear? Good.

    Now you replied that he was "influencing (the current state of the art of programming) negatively". I see that you did not refer specifically to Hungarian notation either, so this could be a slur on his life's work as a whole. I took the liberty to point out another contribution that you are unlikely to be able regard as an entirely bad thing. It is thus completely sequitur to bring up wysiwyg, as it shows how it would be wrong to say that overall, Simonyi has influenced the start of the art negatively.

    ... why don't you search for "strawman". I didn't call you an idiot; it would be redundant. ... flame ... fucktards ... winge ... moan ...

    Now run back to class, kid.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  78. Re:Goodbye (offtopic) - by Hognoxious · · Score: 1
    I see that you did not refer specifically to Hungarian notation either, so this could be a slur on his life's work as a whole.
    After drinking several beers (more than you can count) I see pink elephants. Doesn't mean they exist. Do they teach what context is where you come from?
    Now you replied that he was "influencing (the current state of the art of programming) negatively". I see that you did not refer specifically to Hungarian notation either, so this could be a slur on his life's work as a whole.
    Could be. Isn't.
    It is thus completely sequitur
    Stupid, ignorant peasant. It is not possible to "be sequitur". Using Latin wrongly just makes you look even more stupid than using English wrongly.
    Now run back to class
    The last time I obeyed an order, it was face to face and the person giving it was pointing a pistol at me. I still had enough composure to insult him. So if you think I'm gonna jump when a tuppence ha'penny gobshite lectures me via slashdot, you're mistaken. Still, I guess you're used to that, eh?
    kid.
    Wrong again. Cretin.
    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."