Well, am going to answer these questions. By the end of the post, you will be able to draw a clear line between general-purpose and domain-specific programming languages.
General-purpose programming
General-purpose programming languages are designed to write software that will be used to solve a wide range of problems. They have several application domains. They are known as general-purpose because they are designed not to solve any specific problem. Instead, they cover a wide range of problems. Sometimes, general-purpose programming languages are referred to as text-based programming. This is because programmers need to type texts, numbers, and symbols when coding. These languages also use a formal syntax. General-purpose programming languages are further divided into two types: (I) General purpose markup languages; This is a markup language that is used for more than one purpose but usually for making structures. Some of these languages include XML and HTML. (II) General-purpose modelling; These type of general purpose programming languages are used to create a representation of a system. One such language is Unified Modelling Language (UML)
Domain-specific programming languages
A domain-specific programming language or special-purpose is the one that is specially designed for a particular application domain. It can only be used to solve a particular problem. You cannot use such a language to solve a problem that does not fall within its domain. Examples of special-purpose programming languages include LISP and Prolog. These two languages are specially designed for artificial intelligence purpose. SQL is a domain-specific programming for database manipulation. So, what are some of the differences? Stay put. We are going to outline key areas where GPLs and DPLs differ. Semantics Domain-specific programming languages have a precise semantic that is meant to address specific issues. They have certain properties that are well-suited for certain problems. Special-purpose languages are very specific and offer the necessary abstractions and notations. They are also easier to use especially when solving specific problems. On the other hand, general-purpose languages are very open. They rarely support domain-specific notation. GPLs lack precise semantics. Software process General-purpose languages are well-established in a software development process. They have common characteristics that are familiar to most software engineers. For this reason, they can easily fit in a software life-cycle. On the other hand, it can be very technical to integrate special-purpose programming language into a software development life-cycle. As a software developer, you need to ensure that there is a specific problem that will only be solved by that particular programming language. You may need to get an expert in a particular domain to integrate a DSL into a software life-cycle. However, they still have a special place in a software engineering process. Support One reason why programmers love GPLs is they are easily supported by third-party libraries and APIs. On the other hand, DSLs lack third-party support and promotions. This explains why they are shunned by most programmers. As you can see, there is a line between general-purpose and special -purpose programming languages. However, they can still be used together in developing a complete software.