PWCT#Visual languages

{{Short description|Visual programming language}}

{{Infobox programming language

| name = PWCT

| screenshot = PWCT 1.9 - Goal Designer.png

| paradigm = Multi-paradigm: Visual Programming, imperative, procedural, object-oriented

| year = {{Start date and age|2005|12|26}}

| designer = Mahmoud Samir Fayed

| developer = The PWCT Development Team

| latest_release_version = 2.0

| latest_release_date = {{Start date and age|2025|01|20}}

| latest_test_version =

| latest_test_date =

| programming language = Visual FoxPro (PWCT 1.x)
Ring (PWCT 2.0)

| operating_system = Microsoft Windows (PWCT 1.x)
Windows, Linux and macOS (PWCT 2.0)

| license = GNU General Public License (PWCT 1.x)
MIT License (PWCT 2.0)

| website = {{Official URL}}

| file_ext = .ssf (PWCT 1.x)
.pwct (PWCT 2.0)

}}

PWCT (Programming Without Coding Technology) is a free open source visual programming language for software development.{{cite web |url=https://www.softpedia.com/get/Programming/Coding-languages-Compilers/Programming-Without-Coding-Technology.shtml |title=Programming without coding technology review |first=Andrei |last=Fercalo|date=11 March 2014 |publisher=Softpedia}}{{cite web |url=https://web.archive.org/web/20190927105042/http://www.alriyadh.com:80/321807 |title=Free Open Source Visual Programming Language |first=Hend |last=Al-Khalifa|date=29 February 2008 |publisher=Al Riyadh}}{{cite web |url=https://www.youm7.com/story/2016/11/23/%D8%A8%D8%AF%D8%A1-%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D8%A7%D9%84%D8%AC%D9%8A%D9%84-%D8%A7%D9%84%D8%AC%D8%AF%D9%8A%D8%AF-%D9%85%D9%86-%D8%AA%D9%82%D9%86%D9%8A%D8%A9-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%A8%D8%AF%D9%88%D9%86-%D9%83%D9%88%D8%AF/2979508 |title= Developing Programming Without Coding Technology 2.0|first=Mones |last=Hawas |date=23 November 2016 |website=youm7.com |publisher=youm7}}{{cite web |last=Mutha |first=Abhishek A. |title=This Month's DVD Contents |url=https://archive.org/details/Electronics_For_You_Plus_September_2015_IN |website=Electronics For You Magazine |date=September 2015 |publisher=EFY Group}} The project was founded in December 2005 as a free open-source project that supports designing applications through visual programming then generating the source code. The software supports code generation in many textual programming languages.{{cite web |url=https://web.archive.org/web/20190617161302/http://www.alriyadh.com/535735 |title=Useful open source projects - Programming Without Coding Technology |first=Khaled |last=Almesahuge|date=17 June 2010 |publisher=Al Riyadh}}{{cite web |url=http://doublesvsoop.sourceforge.net/Al_Gomhuria_Jounral_2009.pdf |archive-url=https://web.archive.org/web/20190618171803/http://doublesvsoop.sourceforge.net/Al_Gomhuria_Jounral_2009.pdf |url-status=dead |archive-date=2019-06-18 |title= Programming Without Coding Technology - Innovative Project (offline source) |first=Naglaa |last=Elsayed|date=2009 | publisher=Al Gomhuria}}{{cite web |url=https://www.youm7.com/story/2018/5/29/%D9%85%D8%B5%D8%B1%D9%89-%D9%8A%D9%81%D9%88%D8%B2-%D9%81%D9%89-%D9%85%D8%B3%D8%A7%D8%A8%D9%82%D8%A9-%D8%A7%D9%84%D8%B3%D9%88%D8%B1%D8%B3-%D9%81%D9%88%D8%B1%D8%AC-%D9%84%D9%84%D9%85%D8%B4%D8%A7%D8%B1%D9%8A%D8%B9-%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D8%B5%D8%AF%D8%B1/3812107 |title= Progress in developing PWCT 2.0|first=Mones |last=Hawas |date=29 May 2018 |work=youm7.com |publisher=youm7}}{{cite web |url=https://sourceforge.net/blog/top-5-education-software-week/ |title= Top 5 Education Software of the Week |date=27 April 2018 |website=SourceForge }}

Goal

PWCT is designed to be a general-purpose visual programming language that can be used for applications and systems development.{{cite web |url=https://web.archive.org/web/20190904083519/https://computertotaal.nl/artikelen/apps-software/de-beste-freeware-tips-van-oktober-4 |title=Free software: the best freeware from October 2018 - Includes (You can make almost anything with PWCT) |website=Computer Total Magazine |date=7 October 2018 |publisher=Computer!Totaal }}{{cite magazine |url=http://doublesvsoop.sourceforge.net/al_allam_magazine_issue_number_116.pdf#page=26 |title= Programming Without Coding Technology Review |magazine=AL-AALEM Magazine|date=November 2008 | publisher=AL-AALEM the Scientists Magazine, Issue No. 116, Pages 26-27 Deposit number 18/0157 |issn=1319-6545}}{{cite web |url=https://files.eric.ed.gov/fulltext/EJ1167344.pdf#page=6 |title= A String Search Marketing Application Using Visual Programming |author=Chin, Jerry M. |display-authors=etal. |date=2013 | publisher=e-Journal of Business Education and Scholarship of Teaching}} PWCT can also be used for introducing programming concepts.

The environment supports a time dimension where the programmer can play programs as a movie to learn how to create them step-by-step and get better understanding of the program logic. Changing time is done using a

timeline slider which allows the programmer to select a specific point in time to view.Frandsen, A. B., Jensen, R., & Lisby, M. Ø. (2013). Auditory & Visual Debugging.

History

File:PWCT 1.9 - Data Entry Forms.png

  • PWCT was registered on SourceForge in December 2005
  • PWCT 1.0 was released on 18 October 2008
  • PWCT 1.1 was released on 20 February 2009
  • PWCT 1.2 was released on 4 May 2009
  • PWCT 1.3 was released on 30 May 2009
  • PWCT 1.4 was released on 28 August 2009
  • PWCT 1.5 was released on 27 March 2010
  • PWCT 1.6 was released on 16 May 2010
  • PWCT 1.7 was released on 15 September 2010
  • PWCT 1.8 was released on 18 October 2011 (Last update: 22 April 2013)
  • PWCT 1.9 was released on 7 May 2013 (Latest update: 3 May 2025)
  • PWCT 2.0 was released on Steam on 1 March 2023 (Latest update: 20 January 2025)
  • PWCT 2.0 source code was made available on GitHub in January 2025

{{cite web |url=https://sourceforge.net/projects/doublesvsoop/ |title= PWCT Home (Sourceforge)|author=PWCT Team |date=26 December 2005 |publisher=SourceForge}}{{cite web |url=http://doublesvsoop.sourceforge.net/pwctblog/ |title= PWCT News (New Releases)|author=PWCT Team |date=4 May 2025 |publisher=pwct.org}}{{cite web |url=https://biggo.id/news/202501040122_visual-programming-tool-pwct-sparks-debate |title= PWCT 2.0, Visual Programming Tool Sparks Debate About Textless Coding|author=BigGo Editorial Team |date=4 January 2025 |publisher=biggo.id}}

Concept

File:PWCT 1.9 - Components Browser.png

File:PWCT 1.9 - Form Designer.png

The PWCT architecture contains three main layers:Phalake, V.S. and Joshi, S.D. Low Code Development Platform for Digital Transformation. In Information and Communication Technology for Competitive Strategies (ICTCS 2020) (pp. 689-697). Springer, Singapore.da Silva, A.M.O.P., Orchestration for Automatic Decentralization in Visually-defined IoT, 2020.

  • The VPL Layer that provides functionality to perform a specific task.
  • The Middle Layer that provides interface between the User view and the System Layer.
  • The System Layer that generates executable code in different languages.

The visual source inside PWCT is designed using the Goal Designer where the programmer can generate the steps tree through the interaction with the visual language components.

Inside PWCT, the visual source is a collection of goals, each goal contains tree of steps and each step/node inside the steps tree may contain one or more of data entry forms. Steps tree uses colors that tell the programmer about the step type. Some steps allow containing sub steps, other steps do not allow this, also some steps are not more than comments for the programmer. The steps tree gives the programmer two dimensions where the relationship between the node and another node could be "next to" or "contains" where the programmer can go depth-first or breadth-first when he/she interacts with the steps tree.

The programmer can use the "contains" dimension to perform operations on a group of steps/nodes simultaneously (move up/move down/cut/copy/delete), utilize the form designer to create the user interface, and employ the time dimension to track when each step is created (Date & Time) and navigate through the time dimension to view only the steps at any point during the development process.

Inside the Goal Designer, the user can use the mouse or the keyboard to select the visual components and generate new steps in the steps tree. Using the mouse we can explore the environment to see the components that are ready for use. Using the Keyboard by typing the component name, the programmer can quickly get any component and start using it.{{cite web |url=http://doublesvsoop.sourceforge.net/pwcthelp/main.htm |title= PWCT Environment Reference|author=PWCT Team |date=2 January 2021 |publisher=pwct.org}}

Features

  • General-purpose.
  • Visual Programming (More than one dimension, No Syntax Errors, Time Dimension and Colors).
  • Visual Editor (Keyboard shortcuts, Customization, Cut, Copy, Paste, Search and Replace)
  • Syntax Directed Editor (Avoid Errors).
  • Free Editor and VPL Compiler.
  • The programmer can see and edit the generated source code.
  • The programmer can change the step name and the steps colors.
  • Support many textual programming languages (Harbour, C, Python, etc.)
  • The programmer can play programs as a movie to learn how to create the program step by step
  • Doesn't force a programming paradigm.
  • Extension (Create new components).
  • Run programs at any point in the past during the development process.

{{cite web |url=http://doublesvsoop.sourceforge.net/pwcthelp/features/visualprogramming.htm |title= Visual Programming in PWCT|author=PWCT Team |publisher=pwct.org}}

{{cite web |url=http://doublesvsoop.sourceforge.net/pwcthelp/features/practicaleditor.htm |title= PWCT Features - Practical Editor|author=PWCT Team |publisher=pwct.org}}

Visual languages

The PWCT visual programming language components are classified into the next categories {{cite web |url=http://doublesvsoop.sourceforge.net/EFYArticle_January_2013.pdf#page=2 |title=Educational Software Tools - Programming Without Coding Technology - Electronics For You Magazine |author= SRINIVAS N.C. A|date=January 2013 |publisher=EFY Group}}

  • CPWCT: Visual Components that generate source code in the C programming language.
  • PythonPWCT: Visual Components that generate source code in the Python programming language.
  • HarbourPWCT: Visual Components that generate source code in the Harbour programming language.
  • SupernovaPWCT: Visual Components that generate source code in the Supernova programming language.
  • C#PWCT: Visual Components that generate source code in the C# programming language.
  • RingPWCT (Introduced in PWCT2): Visual Components that generate source code in the Ring programming language.{{cite web |url=https://doublesvsoop.sourceforge.net/pwct2/visualcomponents.html |title= PWCT2 visual components|author=PWCT Team |date=5 January 2025 |publisher=pwct.org}}

Usage

Since the textual source code could be generated in different textual programming languages like C and Python, PWCT could be used in developing projects that have different requirements like Internet of Things (IoT) projects,Patel, S. and Jena, S.R., 2022. Internet of Things (IoT): Theory and Applications. Scholars' Press. Artificial Intelligence and Machine Learning applications,Dhanaraj, R.K., Jena, S.R., Yadav, A.K. and Rajasekar, V., 2021. Mastering Disruptive Technologies: Applications of Cloud Computing, IoT, Blockchain, Artificial Intelligence & Machine Learning Techniques. HP Hamilton Limited, UK. GUI projects Alohali, Y.A. et al, A machine learning model to predict citation counts of scientific papers in otology field. BioMed Research International, 2022. and Text processing applications.Alohali, Y.A. et al, 2023. Machine Learning and Cochlear Implantation: Predicting the Post-Operative Electrode Impedances. Electronics, 12(12), p.2720. Also, PWCT is used for developing and maintaining the Ring programming language Compiler and Virtual MachineFayed, Mahmoud Samir, and Yousef A. Alohali. "Ring: A Lightweight and Versatile Cross-Platform Dynamic Programming Language Developed Using Visual Programming." Electronics 13, no. 23 (2024): 4627.Ayouni, M., 2020. Beginning Ring programming (Vol. 978, No. 1, pp. 4842-5832). Apress.

Criticism

  • The PWCT software still requires that the user have a familiarity of programming structures such as the While-Loop and the If-Then. Syntax errors are decreased but the logic and analysis of the program solution are still created, developed and judged by the user.
  • PWCT tries to innovate and provide a new way of viewing software design; however, such innovation comes at a cost. PWCT focuses on the visualization of code blocks in a structure that they describe as a "Steps Tree", which mirrors the nested structure seen in regular textual programming languages. Also PWCT does not have strong inherent support for visualizing code as diagrams and no strong support for Abstraction Layered Architecture (ALA) applications.Sen, Arnab. GALADE: A Round-Trip Graphical Modelling Tool for Abstraction Layered Architecture Applications. Diss. Auckland University of Technology, 2021.

==See also==

{{Portal|Free and open-source software|Computer programming}}

References

{{Reflist}}

Further reading

  • Fayed, Alohali. (2025) [https://www.mdpi.com/2076-3417/15/3/1521 PWCT2: A Self-Hosting Visual Programming Language Based on Ring with Interactive Textual-to-Visual Code Conversion], Applied Sciences
  • Fayed, Al-Qurishi, Alamri, et al. (2020) [https://link.springer.com/article/10.1007/s42486-020-00038-y PWCT: a novel general-purpose visual programming language in support of pervasive application development], Springer
  • Fayed, Al-Qurishi, Alamri, Aldariseh (2017) [https://dl.acm.org/citation.cfm?id=3056782 PWCT: visual language for IoT and cloud computing applications and systems], ACM
  • Fayed (2017) [https://arxiv.org/abs/1712.10281 General-Purpose Visual Language and Information System with Case-Studies in Developing Business Applications], King Saud University
  • Fayed (2013) [https://www.codeproject.com/Articles/113731/Using-C-NET-through-Programming-Without-Coding-Tec Using C#.NET through Programming Without Coding Technology], Code Project
  • Fayed (2013) [https://www.codeproject.com/Articles/693408/Using-Python-inside-Programming-Without-Coding-Tec Using Python inside Programming Without Coding Technology], Code Project
  • Fayed (2013) [https://www.codeproject.com/Articles/296472/The-Time-Machine-and-the-PWCT-visual-programming-l The Time Machine and the PWCT Visual Programming Language], Code Project