Programming is giving instructions to computer to perform the required job, the process of programming have more than one stage from analysis and design to implementation and test.
The most common way to do programming is (writing code) which our compiler under usage can understand based on the syntax of the programming language.
To write code you need software called a Code Editor (CE), which Enable the programmer to organize his/her source code file, Modern Code Editors comes with nice features like (Auto completion, Syntax highlighting & IntelliSense) which enable the programmer to work more easier and faster.
Since coding requires from the programmer the attention and effort, a lot of researchers focus on this point, some researches work on making coding less harmful while other researchers try to eliminate and reduce the necessary and the need of coding which we say about (Programming without coding)
There are a lot of steps towards (Programming without coding), the first step was (Copy & Paste) operations where the programmer write the code one time then copy it and use it another time in another program, and this without doubt is very bad solution and seems to be the heart of problems.
The second step was the (Code Bank) where the programmer stores his common code in one place to get it quickly and still do (Copy & Paste) Operations.
The third step was the (Library) where a one or more of functions are encapsulated together and are available for use directly by the programmer after referring to the library header file in the source code and referring to the path of the library file for usage by the linker to produce executable file.
The forth step was the (Template) which is a mask of code, which can be used more than one time.
The fifth step was the (Code Generator) which uses (Templates) and get data from the programmer to generate the code automatically.
The Sixth step was the (Designers) like (Database designer, Class Designer, Form Designer, Menu Designer, Report Designer,…etc)
The seventh step was the (Wizard) which is a group of interaction pages that end up with generating designer files and source code.
In these days the (IDE and Frameworks) are used to integrate Libraries, Templates, Code Generators, Wizards and Designers together.
But still the Programmer/Developer needs to write code to complete his task (the required job).
Programming without coding technology presents the first general purpose programming without coding language (Mahmoud), programming without coding environment (RPWI) and programming paradigm (DoubleS = Super Server) for developing software applications 100% without coding by providing full isolation from the programming language syntax where the programming effort done through interaction instead of writing code and (You need to know procedure instead of being declarative).
Since Programming without coding technology change the programming world from it's heart (The Code), it's expected from this new technology to present something different replace what we use while coding.
|
Coding |
Programming without coding |
|
Job/Problem |
Goal |
|
Lines of code + Comments |
Step |
|
Code Editor |
Goal Designer |
|
Writing Code |
Interaction |
|
Compiler |
Interactive Language (GUI) |
|
Programming Language Syntax |
You need to know procedure |
|
Wizards & Code Generators |
Transporter |
Table 1: Coding vs. programming without coding
Goal Designer is the tool of programming without coding
Inside programming without coding technology
Goal Designer is Full Replacement for Code Editor
Goal Designer can work side by side with Code Editor if this feature is
required
Goal Designer manage your source code file in Modern way, each goal is group of
steps, while each step contains its block of code
Using code extractor application, you can create source code file by extracting
code from one goal or more.

Fig. 1 (The idea of Goal Designer)
Goal Designer Features:-
Moving between different Goals
Create New Step
Edit Step name
Delete Step
Move Step Up in the steps tree
Move Step Down in the steps
tree
Interaction to determine the
job of the step
Step Details (Data, Analysis,
Information, Code, Info)
Copy Step or group of steps
into buffer
Insert Step or group of steps
from buffer to the steps tree
Interaction vs. writing code
Interaction used to determine the job of the step
The procedure of the interaction process
As a result of the interaction process
The question now, what is new over the legacy code generator and wizards?

Fig. 2 (Programming without coding technique)
Isolation from programming language syntax
Custom User Interface (Human Language)
Based on Programming Language Behind the scene
Use Any Programming Language Behind the scene
No Restrictions & Without Limitations
The Transporter
In Programming world, there is Low Level Programming Languages and High Level Programming Languages, Also in programming without coding technology which presents new Generation of programming languages (Interactive Languages) there is Low Level RPWI and High Level RPWI Languages
RPWI means " (R)eal (P)rogramming (W)ithout cod(I)ng ", Where you don't need to write code, or to study programming language syntax because you develop your software in RPWI Environment through interaction, i.e. GUI instead of writing Code.
Low Level RPWI requires from the developer/programmer to know programming concepts, and requires that you understand the features and rules presented by the programming language under usage because the interactive language just present GUI (in human language) to all features available from the programming language under usage.
Also all Components (Servers/Transporters) available in interactive language which is Low Level RPWI, will be like direct interface to features available by the programming language, so the code generated from any component (Server/Transporter) will do a job that may not make sense in the general application, but only the developer/programmer who uses the component can understand the generated code.
High Level RPWI doesn't require from the developer/programmer to know programming concepts, no need to know the rules of the programming language under usage, because here the interactive language that is High Level RPWI, provides GUI (in human language) + components (Servers/Transporters) which generates code which do expected job anyone can fell with it and make a sense in the general application under development.
Transporter, this name because it's used for transporting the programming language to RPWI Environment.
Transporter differs from the wizard and code generators, its upgrade to them because transporters work together in solving the same problem which maximize the power and free the space to an infinite number of applications that we can develop which provide us with unlimited and general purpose programming environment.
Programming without coding technology architecture

Fig.3 (Programming without coding technology architecture)
(1) Programming without coding layer
a. Mahmoud Programming Language
b. RPWI Environment
c. DoubleS (Super Server) Paradigm
(2) Coding Layer
a. HarbourMiniGUI Extended (GUI Framework)
b. Harbour/xHarbour Compiler
c. Borland C/C++ Compiler
How to get Programming without coding technology?
You can download programming without coding technology from
URL: http://www.sourceforge.net/projects/doublesvsoop
It's Free and Open Source.
The tools used for building the technology
1 – Microsoft Visual FoxPro 9.0 SP2
2 – HarbourMiniGUI Extended (GUI Framework)
3 – Harbour/xHarbour Compiler
4 – Borland C/C++