Working with computers since I was a child I experienced that the tools available never fit what you actually need in your current projects.
When I did my first programming project I knew BasicLanguage, PascalLanguage, PrologLanguage, AssemblyLanguage and some of ForthLanguage and ModulaLanguage. I found all of these ProgrammingLanguages useful to some extend and wondered why is there no language covering the features of all of them. Together with some friends in 1985 I started a project called Pf0mp to develop a ProgrammingLanguage that unites the features of all ProgrammingLanguages known by us at that time.
Pf0mp is an acronym of the first letters of Pascal, Forth, Modula, and Prolog. The 0 is for ObjectOrientedProgramming. As a little joke we put zero instead of O because it’s computers.
Note: PfOMP is also the nucleotide sequence ‘ACiTiTTT(A/G)TGTATTGGiTT(A/G)GATCC’ of the L512 primer
Since 1985 I have got to know even more languages and programming concepts (see PfompHistory): other ObjectOrientedLanguages (CeeLanguage, CeePlusPlus, JavaLanguage) FunctionalProgramming languages (HaskellLanguage) ScriptingLanguages (JavaScript, ShellScripts) CategoryDatabase programming (SqlLanguage, XmlProgrammingLanguage) MarkupLanguages (LaTex, RichTextFormat, HyperTextMarkupLanguage) ExtensionProgrammingLanguages (RegularExpression) I love all of them, but as said before, each has its domain and its limits and yield to the ProgrammingDejaVu. As you could imagine: up to now I couldn’t achieve anything from my vision. In recent years I focussed more on conceptional work and ProjectManagement. I learned about development concepts as CaseTool and UnifiedModelingLanguage ModelDrivenArchitecture DesignByContract ComponentBasedProgramming ExtremeProgramming So the vision widened even more:
The PfompVision describes an integrated development platform providing support for InformationFlow? and KnowledgeManagement integration of ProjectPlanningSoftware, ProjectControlling?, and QualityControl project communication (integration with CollaborationTools) integrated QualityAssurance support (TestDrivenDesign, DesignByContract, CodeUnitTestFirst) DatabaseIntegration and DatabaseAccess? VersionControl PlatformIndependence easy handling of MovingTarget?s support and restriction to CodingStandards DesignPatterns SelfDocumentingCode, UnitTestAsDocumentation supporting WebDevelopment ExtremeProgramming and RapidPrototyping AutomatedCodeGeneration, MetaProgramming WorkflowTool? and ProcessDesign? integration of some ProgrammingParadigms (ProceduralCode, ObjectOrientedProgramming, FunctionalProgramming, DeclarativeProgramming) DistributedComputing and ConcurrentProgramming FuzzyLogic and QuantumComputing ExtremeDeployment and it should be ProgrammingInWiki (see also MeatBall:CommunityProgrammedWiki)!
To achieve the PfompVision I invite everyone on the web to join the discussion!