Summary - Goal - Example - Tools - Roadmap - Tasks - Discussions - Name proposal
Structure - Inputs - Algo - Ouput - Related tools
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:
- C# | Java:
for each (Typename Variable in Iterator)
{
code
}
- C++:
no direct syntax, uses STD library objects instead.
comparison:
1 is better than 2 because:
- It is [[fundamental\compiler aware]] structure
- [[fundamental\Optimization]] (performance)
- [[fundamental\portability]]
- [[fundamental\standard interface]]
- [[fundamental\Readability]]
and ...
Procedure of EKMT (evolutionary knowledge management tool)
- 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
- proposed designs are added to EKMT
- fundamental dimensions are added to EKMT
- comparison map is updated based on reasoning using fundamental dimensions
- 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
- ?
- ?
- ?
Tasks
- establish this online community till this weekend
- enquiry zero-$ research centers
- 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, ...)
- ROI we can simply convert to business license
- think general , if the language thing fails , we can recover simply but other
- KM
- Cognitive researches
- ?
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
- if two entities are exactly the same ( in the domain of view ) you cannot distinguish them
- in technological problems you have to select one way over others
- (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)
- demonstrate the differences for upgrading evolution, difference are gradient of values in specific dimensions
- ex: A is different from B , in which way ? in what dimension (aspect ?)
- (from 3 and 4) if we want to highlight differences we have to define, dimensions of difference
- 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