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 WikiWord
s, can be programmed linearly, chaotically, rapidly.
Why shouldn't an IntegratedDevelopmentEnvironment
be like wiki?
Why shouldn't an IDE BE a wiki? (good question. See WikiIde
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 WikiPage
Imagine if we could
- embed all code (Java, Perl, SQL, config data etc) in freeform text pages;
- allow free text annotations,
- allow easy Wiki linking to related pieces of info: from code to config "file", from bug reports to code blocks, code blocks to programmer homepages (with contact details)
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.
Are the LiterateProgramming
people converging on something parallel to this?
But I want something less structured. Code embedded in wiki rather than comments embedded in code.
is supposed to be code embedded in documentation rather than comments embedded in code. Take a look at TexTheProgram
. Granted, we're accustomed to BarelyLiterateProgramming
etc.), but that doesn't mean all programming has to be like that.
I wonder if an existing LiterateProgramming
tool could be adapted to crawl a wiki. Seems like a good way to handle collaborative projects. There might potentially be a problem with dependencies (look how long it takes pages to get ReFactor
ed here) or in ConcurrentEditing?
, but in does seem like the ultimate in Bazaar-style development.
- HyperPerl is an attempt to mix literate programming and wiki.
I love LiterateProgramming
. Nonetheless, the biggest problem I have with LiterateProgramming
, and the one thing that keeps me from using it beyond toy projects, is the difficulty of keeping the documentation and the code in sync. --SamuelFalvo?
The first paragraph builds a vision far beyond just mixing code and documentation - it's programming in a collaborative environment: users and programmers changing code fragments or modules whenever needed. The WikiIDE will care for version control and data migration. In my opinion if ProgrammingInWiki
becomes real this will change everything we knew about SoftwareDevelopment
could be a first step -- MirkoBlueming
and the PfompVision
on mixing code and data: http://www.itworld.com/nl/ebiz_ent/03112003/
I have taken the first steps down this path for a project which I have all but abandoned (attention deficit :) ). Over on my wiki, I have a utility called WikiExtract
. It crawls my wiki and pulls out specially-formatted PHP code. You can look at (but not run) the source code at:
(404 - File not found! Try http://web.archive.org/web/20050326181313/http://www.llamacom.com/~sky/wiki/phpwiki-1.3.3/index.php/WikiExtract. -- 20060328
Note that it's tested only on my wiki, which runs under PhpWiki
, and it only writes into my directory. Feel free to grab it and modify, though.
I have my own UnfinishedProject?
here (a wiki with code generation): http://www.nooranch.com/synaesmedia/beach/wiki.cgi/CodeGenerationExperiment
20070402) -- PhilJones
Ned Gulley wrote an interesting article on a closed access wiki-like programming competition, really goes to show the speed benefits of such a system above a standard comparable OSS system; blowing away the (already pretty small) restrictions to editing placed on traditional OSS projects seems to make a huge difference.
You can also find this paper at http://www.starchamber.com/gulley/pubs/tweaking/tweaking.html
Content is merely -> "Describe the new page here"
ProgrammingInWiki - MultipleIndependentLanguages
- This idea can be actuated, if it is organized and expressed so as to include required DefinitionAndImplementation and incorporates ReachableValues
- It requires a new way of thinking about how one uses words, by considering different types of Words as having facets, where the name can have a DescriptiveAndStructuralFacet as well as a ProceduralAndActionableFacet
- Incorporates the use of the different types of Words as representatives of components, functions, methods, containers and elaborations. Included must be the ability to add comments, reminders, ProgramInformation, DevelopmentSchedules, IndifiedActions, expressed as ExtendedWords within or linked from within the SourceCode (making it ReachableComputableAndDisplayable via the Executable.
- variables, constants, objects, structs, constructors, includes, etc
- visualComponents used in the Gui: Controls, Containers, and RelationalDevices and locationalInformation displayable through the visualInterface
- ExtendedWords? used to represent: