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''''''s. Imagine if we could * embed all code (Java, Perl, SQL, config data etc) in freeform text pages; * could MarkupLanguageNine be used for this? ''Discussed below''. * is having multiple languages a GoodThing? ''Discussed below''. * 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.'' LiterateProgramming 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 (JavaDoc 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. CommunityProgrammedWiki could be a first step -- MirkoBlueming and the PfompVision. ---- Sean McGrath 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: http://www.llamacom.com/~sky/wiki/phpwiki-1.3.3/index.php/WikiExtract (''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. -- PatrickConnors ---- I have my own UnfinishedProject here (a wiki with code generation): http://www.nooranch.com/synaesmedia/beach/wiki.cgi/CodeGenerationExperiment. (BrokenLink 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. http://portal.acm.org/ft_gateway.cfm?id=986264&type=pdf&coll=GUIDE&dl=GUIDE&CFID=37969099&CFTOKEN=20840995 You can also find this paper at http://www.starchamber.com/gulley/pubs/tweaking/tweaking.html. ''Content is merely -> "Describe the new page here" '' ---- * http://jot.com is a wiki with structured forms and programmable pages. Jot's wiki markup includes search, if, etc. * IBM's QEDWiki looks in the right direction too : http://files.zend.com/qedwiki/ , http://services.alphaworks.ibm.com/qedwiki ---- '''ProgrammingInWiki - MultipleIndependentLanguages''' * This idea can be actuated, if it is organized and expressed so as to include required D''''''efinitionAndImplementation and incorporates R''''''eachableValues * 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 D''''''escriptiveAndStructuralFacet as well as a P''''''roceduralAndActionableFacet * 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, P''''''rogramInformation, D''''''evelopmentSchedules, I''''''ndifiedActions, expressed as E''''''xtendedWords within or linked from within the SourceCode (making it R''''''eachableComputableAndDisplayable via the Executable. ** I''''''nformationIntersectionsAsIdentities *** variables, constants, objects, structs, constructors, includes, etc *** visualComponents used in the Gui: Controls, Containers, and R''''''elationalDevices and locationalInformation displayable through the visualInterface ** namingConventions ** ExtendedWords used to represent: *** functionNames **** functions **** routines **** operations **** processes **** routings *** elementIdentifiers **** controlledElements **** uncontrolledElements *** Components *** Definitions *** I''''''nformationIntersections *** Storage **** Reference **** temporarySpaces **** verifiedSpaces **** controlledInfoSpace *** Procedures **** uncontrolledExternalProcesses **** controlledVerifiedProcesses *** addIns -- DonaldNoyes 20100714 20120523 ---- See WikiWithProgrammableContent, SoftWiki, XpSystem, SelfProgrammingWiki, HyperPerl, LanguageOrientedProgramming, WikiIde ----- CategorySourceManagement