Most of the coding projects are being done in formal languages (e.g. C, Java, Python). These formal languages have the benefit of being really effective in use, but have the downside of having a steep learning curve for beginning programmers. This steep learning curve is an issue which might be partially sidestepped by making use of a Domain Specific Language (DSL). DSL’s can be described as: “Small languages, focused on a particular aspect of a software system. Designed to express statements in a particular problem space, or domain”.
Domain specific languages have the benefits of being more descriptive in the code itself; this allows for a better understanding, at least for beginning programmers, of ongoing operations in a domain. Making use of DSLs, unfortunately, also has its downsides. As the name suggests, the language can only be used in specific domains, which means for larger projects a lot of different DSL’s need to be used. Lastly, the usage of a DSL does not automatically solve the big problem of having a steep learning curve for beginning programmers, they still need to learn how to program, which stays a daunting effort.
This is where graphical editors, like Scratch, come in; they remove the large amount of ‘complex’ text for beginning programmers. In addition, it also provides for a better overview of the code structure. Using a graphical editor also means a way of ‘interactively’ learning to code. Unfortunately, it is less efficient to use for experienced programmers. Moreover it is also difficult and time consuming to build a proper usable graphical editor since they are build towards only one programming language, thus, creating a big problem when being combined with DSL languages on a larger scale.
With G2GE we are building an easy and pleasing to use Graphical Editor for any DSL given the grammar of this DSL. Effectively trying to solve the above mentioned problems.