PWCT 1.9 Art Documentation ( http://doublesvsoop.sourceforge.net )
2006-2013, Mahmoud Fayed ( firstname.lastname@example.org )
Summary for the project
Project Name: Programming Without Coding Technology (PWCT)
Visual Programming Tool (Framework, Languages, Environment, Samples/Projects, Documentation/Movies & Community) to create, use & publish new general purpose visual programming languages that are practical alternative to traditional text-based programming languages, the visual programming tool must be ready for use by mainstream programmers, professional software developers and researchers as practical software development tool, and by beginners as education tool to learn how to program.
The new visual programming tool are based on new proposed methodology called coding simulation method(CSM) , using CSM the application construction done through continuous interaction with visual components, which itself as a result of interaction generate/update tree of steps which describe the program under development , the steps tree manipulation done through interaction with visual components without the need to deal directly with text based code, the code generation process are managed in the background by the visual components to hide complexity from the user and to provide easy to learn & use programming tool. The visual representation of the programs happen using traditional GUI controls (Tree, labels, textbox, listobox ...etc) to get high performance. The coding simulation method replace the common technique for application construction (drag-and-drop) by the technique (give input- get generated representation) where the input is accepted by the visual components through interaction pages (Forms to get input from the user) and the generated representation take the form of generated/updated steps tree which the user can use to understand and maintain programs.
The tool must comes with visual programming languages framework to create new visual programming languages the uses the coding simulation method, the framework is a collection of designers to help in the construction of the visual programming languages, these designers are (Interaction Designer, Interaction Pages Generator, Transporter Designer & Domain tree/Components Manager).
The tool must come with visual programming environment to use the visual programming languages which are created using the framework; this environment contains (Goal Designer, Components Browser, Interaction Pages Interpreter, Form Designer and Code Extractor).
The tool must come with ready to use visual programming languages created using the framework and used through the environment and each visual programming language compiles the visual expression to different traditional and text based programming languages, as a start we will create four visual programming languages ( HarbourPWCT, SupernovaPWCT, PythonPWCT & C#PWCT).
Supernova is a new text based programming language created using the HarbourPWCT visual programming language to clear that the coding simulation method is practical enough to support general purpose visual programming languages that are practical alternative to text based programming languages.
Each visual programming language (HarbourPWCT, SupernovaPWCT, PythonPWCT & C#PWCT) must comes with complete documentation, samples & movies to be able to form a community around the language also support is necessary where the users must find a place (forums) to ask questions and get answers.
Main problem (replacing all the text based programming languages with visual programming languages)
· No complete solution for the problem
All other projects solve part of the main problem and there is no complete solution to the problem. Most of other projects present just a one visual programming language or a visual programming framework, and most of them uses the traditional techniques for visual programming languages constructions (drag-and-drop, arrows-and-connections…etc) and many of the visual programming languages are domain specific (not general purpose) and suffer from limitations so most of mainstream programmers still uses the text based programming languages.
We take the main problem as our problem and solve it through one huge project which contains many sub projects and each sub project may contain sub projects and so on.
· They concentrate only on beginners
Most of other projects concentrate on beginners and attract them by giving them the ability to create some applications quickly with little effort and without complexity, but most of these projects fail when the user is professional software developer who compare the visual programming language with the text programming languages and select his text programming languages to avoid limitations and sometimes low productivity with large/complex software.
Beside the beginners, we take the professional software developer in mind; we are going to replace the text based languages with better visual programming languages that are better enough to attract the professional software developers
· Developing new visual programming tool that are better than the current software development tools ( current TPLs & VPLs)
· The new visual programming tools must satisfy professional software developers, mainstream programmers, researchers & beginners to be used in software development and in education to learn users how to program.
· New generation of programmers/developers with high productivity means many of new programs that solve many problems and help the society in different fields
· New generation of users with the ability to learn and do programming in little time with little effort means huge number of new useful software besides attracting computer users to the programming field which will help them in their work and will increase their ability to think and solve problems.