Father of Wiki Speaks on Collaborative Development
An anonymous reader writes "eWeek is reporting that Ward Cunningham, creator of the wiki, has predicted an encouraging future for open source and collaborative development. From the article: "Cunningham, who is director of committer community development at the Eclipse Foundation, said open-source software will continue to grow and thrive because it enables user innovation. '[...] No end user wants to be a programmer; they just want to get their jobs done,' he said. But more and more people with powerful tools and powerful languages will be able to work together to build better systems, he said."
Programmers are end users as well. I see a trend of allowing more and more advaced programming concepts to creep into content creation programs to allow finer control of the end result.
-John Fenley
Under this definition, anyone who writes anything of any complexity in a modern wordprocessor is a programmer. Modern WP packages can be regarded as shells in which the operator enters instructions (literal formatting commands, such as right-justify, or bold), decisions (floating tables, grammar/spellcheck), loops/recursion (automatic table of contents, automatic indexing), etc. On WP's like Wordperfect, you could actually make all of the commands visible. It frightened users to do that, because it showed just how much coding they were actually doing.
The power of high-level tools, then, is not to help the user avoid programming, it is to help the user avoid seeing what they're programming. It isn't to do the user's work for them, it is to allow the user to sidestep their phobias long enough to get the work done.
One of the follies of fourth- and fifth-generation programming languages was the assumption that programmers wanted their programming hidden from them as well. It is certainly true that software designers need to have a high level of abstraction, as they don't need to know the details (and shouldn't). It is also true that there are special cases in programming where you need minor scripting changes to have a big impact on the end result. In these cases, high level programming is entirely correct. The rest of the time, when details are everything, you don't want any more abstraction than you can possibly get away with.
For end-users, though, applications really need to be extremely high-level programming languages and very little more. That is why Word (which is essentially a scripting engine with a bunch of macros pre-programmed in) is useful to end-users, even though AmiPro is technically superior and Ventura Publisher is much more impressive. Word is a programming tool that can do anything Visual Basic can do, whereas the others are only applications. The user may claim to hate programming, but they can claim it all they like. The fact remains that they pick the programming tool over the "pure" application - when it is disguised cleverly enough.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I know we all love to hype collaborative devlopment and the open source model, but in all honesty not everyone is cut out to be a programmer, and programmers come in differnt levels of ability. I will admit freely that I am not one of the few elite programmers, and there is a good likely hood that I will never be. Sure, some projects, perhaps the majority, benefit from average programmers, and collaborateive development works in those cases. However, the most cutting edge, and bug-less, projects are only ever going to be the realm of the best of the best, and it doesn't matter how many people want to collaborate. Plus bad programmers, who fool you into thinking they are good because they want to feel needed, hurt any project they join, if only because they commit to work they will never finish. So yes, collaborative development such as sourceforge can help some projects, but it is definitely not the be all and end all for programming.
Philosophy.
"The power of high-level tools, then, is not to help the user avoid programming, it is to help the user avoid seeing what they're programming. It isn't to do the user's work for them, it is to allow the user to sidestep their phobias long enough to get the work done."
No, the point of high-level tools is to allow the user to focus on the domain their problem lies in, while avoiding extraneous material. That's why you'll be seeing more DSL's and other tools.
I don't know how many times I've clicked on the "documentation" link in a project only to be greeted with "Coming Soon!". Never mind design documents.
I think we're going to need a much higher level of abstraction for code before we reach a tipping point where projects can survive and grow without their lead creator.
--Rob
Towards the Singularity.
...Are you saying that, all these times I've modded goatse posts down, I was really blocking the ability of artists to express themselves?
Oh, God! What have I done?
Obligatory Soundbite Catchphrase
People have been saying that "any day now, the general public will be making software" for decades. So far, we're not much closer to that goal than 20 years ago. Hell, even VB 6 is way beyond what the average person can deal with. VB.Net became even less noob-friendly, as they added more features... So there's not a lot of hope there.
Automatically share the housework in a fair way http://www.chorebuster.net/