Why shouldn't programming be as easy as Wiki?
Easy to navigate, easy to document, easy to share comments, easy to peer review, programming by gradual accretion ... massive re-use through linking to defining WikiWords, can be programmed linearly, chaotically, rapidly.
Why shouldn't an IntegratedDevelopmentEnvironment? be like Wiki?
Why shouldn't an IDE BE Wiki?
Why is programming harder than sketching algorithms and diagrams in a notebook?
Increasingly the PainOfProgramming? comes from managing such rigid development environments. Think of the multiple files we manage, in different languages, in different file systems. The XML configuration files. The SQL scripts to build databases etc.
Now imagine all these different files replaced by WikiPages.
Imagine if we could
At the moment WE do the hard job of arranging things for the environment. But a make script could easily crawl a Wiki picking up various pieces of code, data in order to build source files, config files, etc.
The make script would itself be written on a wiki page for easy reference. It could save the various components in their traditional places before calling the compiler.
A Wiki based IDE would mix code, data and annotations on one type of page. It should support incremental development from concrete examples to abstraction and scripting, it would support LiterateProgramming
email@example.com (Jorn Barger) wrote in message news:<firstname.lastname@example.org>...
> There seems to be a deep analogy between _objects_ in object-oriented programming and _pages_ in web-hypertext.
Jorn, I've been thinking a bit about this from a different angle. I've been building a personal wiki this year and I've started thinking about how to combine wiki's free style organization with a scripting language. The basic idea would be to allow certain "marked-up" fields or slots to be placed within pages.
Then the language could be used to write macros which could, for example, allow data from one page to be used in a dynamic calculation on another. But if the macro-scripts were also notionally placed in named slots on the pages, we'd effectively be able to write PageName?.methodSelector within the script. All pages would become potential objects.
Why do this? One reason is a kind of literate programming, but instead of embedding comments in code, embed code in free-form wiki pages. The wiki or hypertext nature of the collection of object descriptions would give the language the ease of organization and refactorability of wiki. Something I think would be a big improvement over other development environments.
Wiki is just a complex filter. Ideally it should be able to translate WikiCode? to and from any other language, using some sort of ContextSensitivity? to DoTheRightThing?. WikiIsNotLimitedToHTML?. If you're editing a C program, for example, the WikiEngine? should be able to output dependencies for make, prerequisites for configure, necessary libraries for ld, RegressionTest? scripts for maintainers, and HTML documentation for developers, as well as the actual annotated C source code. In the opposite direction, users may submit BugReports?, FeatureRequests?, and suggestions via the wiki. WikiWillAbsorbCVS? and all other development tools.