Programming Without Coding Technology (software)
In-game article clicks load inline without leaving the challenge.
Programming Without Coding Technology (PWCT) is a general-purpose visual programming language for developing applications and systems. The software is a free and open source software available on the Sourceforge platform under the GNU General Public License.
History
- The software is designed by the Egyptian programmer Mahmoud Samir Fayed starting from December 2005.
- PWCT 1.0 is released in 2008 as a product for Microsoft Windows.
- PWCT 1.8 is released in 2011 and added support for the Time dimension and improved support for code generation in multiple textual programming languages.
- In December 2011, the SourceForge team recorded a Podcast about the project, during the conversation Fayed announced the plan to develop a multi-platform edition of the software.
- PWCT 1.9 is released in 2013 and added support for two different modes (VPL Compiler & Syntax Directed Editor)
- From 2012 to 2020, the project received over 22,000,000 downloads (software, samples, etc.) according to Sourceforge statistics.
- PWCT 2.0 is released in 2023 on the Steam platform. This version of the software was rewritten from scratch using the Ring programming language and is distributed as commercial software (then switched again to a free and open source software project in 2025).
- While PWCT 1.x is distributed under the GPL license on Sourceforge platform, the PWCT 2.x software is distributed under the MIT license on the GitHub platform starting from 2025. PWCT 2.x supports Windows, Linux and macOS.
Features
- The software is designed to allow novice users to learn programming concepts, while allowing advanced programmers to develop large and complex software using visual programming.
- Each program is a group of visual source files. The visual source file is represented through a collection of steps (Steps Tree) where one or more of steps belong to the same visual component. The steps are automatically generated/updated after entering data to the visual component user interface (data-entry forms).
- The software support the Time dimension using a slider which change the visible steps based on the time point. The user could run the program at any specific time point. The software support a feature called (Play programs as Movie) to see how to create the current program step-by-step.
- The software comes with multiple visual programming languages where each one generates the textual source code in different textual programming languages like C, Python, Harbour, etc.
- The software support extension and developing new visual components and new visual programming languages
- Starting from PWCT2 the software becomes a self-hosting visual programming language and added the ability to import textual source code written in the Ring programming language which enable developing the current Ring projects using visual programming or using code generated by AI tools like Claude Code.
Usage & applications
- The software is used for developing the Ring programming language Compiler and Virtual Machine based on the C programming language through the CPWCT visual programming language. Ring is a multi-paradigm dynamic programming language that supports many platforms including Windows, Linux, macOS and WebAssembly.
- The software is used in developing research projects, front-end applications for machine-learning models, text-processing applications, IoT projects, etc.
Limitations
- PWCT 1.x is developed using Visual FoxPro (No longer under active development) and PWCT 2.x which is developed using the Ring programming language is not compatible with PWCT 1.x.
- While the PWCT visual approach is innovative, it comes with limitations where the visual representation which is based on a steps tree, data-entry forms and time dimension doesn't support abstraction layered architecture.
- Using PWCT 1.x still requires knowledge and understanding of programming concepts like variables, control structure, programming paradigm, etc. While PWCT2 supports importing the textual source code which could be generated by AI tools this is done manually through copy & paste operation.