## 1 Introduction
Most VPLs are developed using textual programming languages; for example, the first generation of PWCT was developed using Visual FoxPro and Envision was developed using C++. Self-hosting PWCT2 is crucial, as it allows the development and modification of the PWCT2 environment using the same visual programming tools that it provides to users. This means that developers can update and enhance PWCT2 through visual programming rather than writing textual code, making the process more intuitive and accessible [28]. We assume that using the Ring programming language to develop PWCT2 could yield better results. The choice to transition from Visual FoxPro to the Ring programming language for the second generation of PWCT was driven by several key factors. Both Visual FoxPro and Ring are dynamic languages that support object-oriented programming (OOP), and each comes with an integrated development environment (IDE), a Graphical User Interface (GUI) framework, and a form designer, making them both suitable for many similar programming tasks. However, Ring distinguishes itself with the advantage of compatibility across multiple modern operating systems, which ensures that the new generation of PWCT can operate efficiently on various systems. Moreover, Ring was specifically designed for developing PWCT2. This decision not only leverages Ring's strengths but also provides an excellent test of its features and capabilities, particularly since PWCT2 is an advanced project and, to our knowledge, Ring has not previously been utilized for such extensive applications. By incorporating Ring, the second generation of PWCT aims to offer a useful tool for Ring developers while also validating Ring's effectiveness in handling projects on a scale similar to PWCT2 [29, 30]. Therefore, the primary aim of this work, as demonstrated in Figure 3, is to use the Ring programming language to develop a research prototype for the second generation of the PWCT visual programming language. PWCT2 offers several enhanced features, including a more flexible environment, time dimension and auto-run, rich colors and customization, rich comments using text, lines, images, and HTML, an enhanced form designer for GUI applications, support for importing Ring source code and interactive textual-to-visual code conversion, self-hosting of the PWCT2 environment, and cross-platform implementation that supports Windows, Linux, and macOS. These features aim to improve the overall functionality, user experience, and performance of the PWCT2 environment. The main contributions of this study are:  
* The design and implementation of the research prototype PWCT2, which offers enhanced features, lower storage requirements for visual source files, and better code generation performance compared to the first generation. * The design and implementation of the first VPL that supports code generation in the Ring language (RingPWCT), containing 394 visual components. This integrates visual programming with the flexibility of the Ring language. * The design and implementation of a textual-to-visual code conversion tool called Ring2 PWCT that can import Ring programming language code. Using this tool enables a self-hosting VPL based on Ring. * Testing the feasibility of using the Ring programming language compiler and virtual machine in the development of projects on a scale similar to PWCT2. The remainder of this paper is structured as follows: Section 2 delves into related work. Section 3 describes the materials, methods, and the proposed visual programming language. In Section 4, the results and evaluation of the visual programming language are presented. Section 5 includes the discussion. Lastly, Section 6 provides concluding remarks and outlines future work.