Summary - Goal - Example - Tools - Roadmap - Tasks - Discussions - Name proposal
Structure - Inputs - Algo - Ouput - Related tools


PmGraphViz

Summary

hierarchizing the difference of languages thanks to fundamental dimensions to improve decision making by either selecting an existing instance or enginereing a new one based on lacks

Goal

to present platform in which best practices of programming language design is highlighted and are into debate. Debate is based on finite resources in the platform itself including two major categories: 1- Fundamental factors 2- use cases .

In this platform people and experts can evolve and shift current programming design to the nearly optimum fit. Secondary goal is to create integrated platform and center for discussions and scientific database in the field of programming languages. Third goal is to provide tools and environment for programmers and companies to easily migrate (evolve) their from their old programming languages to our new programming language or even to another programming language since grammar transformation scripts can be designed in two ways;

In summery the platform is to:

  • Birth of new language
  • Evolving and adapting the new language dynamically by
    • Collaboration based on debate over information available
    • Smooth migration based on grammar transformation scripts rather than backward compatibility
    • Testing theory based on defined use cases

back to the top

Example

migrating from Perl to Python is Perl to our new programming language --> our new language to python.

Sample Format

Context: General Purpose Programming Languages (use cases) Feature: Iterators

Designs:

  1. C# | Java:
  for each (Typename Variable in Iterator)
  {
     code
  }
  1. C++:
  no direct syntax, uses STD library objects instead.

comparison:

 1 is better than 2 because:
  1. It is [[fundamental\compiler aware]] structure
    • [[fundamental\Optimization]] (performance)
    • [[fundamental\portability]]
    • [[fundamental\standard interface]]
      • [[fundamental\Readability]]

and ...

Procedure of EKMT (evolutionary knowledge management tool)

  1. a topic over specific feature (one feature in one context) is posted in forum where
    • community offer their designs
    • design of current famous programming languages is discussed
  2. proposed designs are added to EKMT
  3. fundamental dimensions are added to EKMT
  4. comparison map is updated based on reasoning using fundamental dimensions
  5. one professional in the related field accepts/alters the result

back to the top

Tools

  • Information & collaboration environment (ex: wiki) that includes
    • Almost all famous features of programming languages in proper categories
    • Fundamental factors that make a feature more useful compared to other features in the same category (ex: Maintainability, Readability,
    • Structure of current famous programming languages (grammar, tools and features) for historical arguments
    • List of use case scenarios to highlight efficiency of a programming language
  • archives of earlier debates on the evolution of programming languages

back to the top

Roadmap

  1. ?
  2. ?
  3. ?

Tasks

  1. establish this online community till this weekend
  2. enquiry zero-$ research centers
    1. in Iran, if you work under license of non-commercial research centers , you have no tax or any payment and you are accredited (names center, institute, society, NGO, ...)
  3. ROI we can simply convert to business license
  4. think general , if the language thing fails , we can recover simply but other
    1. KM
    2. Cognitive researches
    3. ?

back to the top

Discussions

back to the top

Name proposal

  • language-debate.com
  • languagedesigner.com
  • more general term as main domain and then putting this special wiki as subdomain
    • languages.bestpractices.com
    • PIM.bestpractices.com
  • language.automated-design.com
  • language.assisted-design.com
  • crowd-inferred-language.com
  • commulang.com
  • crowdputation.com
  • lang.commuwiki.com
  • language-selector.com

back to the top

Structure

Inputs

  • user situation
    • his history of languages used
    • his preferences
    • his situation with the problem it has to solve
  • community suggestions
  • list of existing languages
    • for each language its properties
  • list of non-existing theoretical languages
    • for each language its properties

Algo

  • mapping listed languages to situations
    • rework the mapping according to community suggestions
  1. if two entities are exactly the same ( in the domain of view ) you cannot distinguish them
  2. in technological problems you have to select one way over others
  3. (from 1 and 2) there have to be difference (in the domain of view ) for subjects to be able to choose one over another necessity of Existence of difference in units of selection ( in domain of view)
  4. demonstrate the differences for upgrading evolution, difference are gradient of values in specific dimensions
    1. ex: A is different from B , in which way ? in what dimension (aspect ?)
  5. (from 3 and 4) if we want to highlight differences we have to define, dimensions of difference
  6. if we want to help technological problems to evolve we have to define fundamental differences

Ouput

  • propose with justification a language
    • if it's a newly generated language, add it to the list of non-existing theoretical languages (cf inputs)

back to the top

Related tools

back to the top