Why Are Hackers Obssessed on DSL, Domain Specific Language
Why Are Hackers Obssessed on DSL, Domain Specific Language
- Also, i don't get programer's fascination of DSL. The concept, never really take any concrete form in my mind. To me, DSL is just a lang designed for particular task. And not worthy a name.
- Bash, is a DSL. Tcl, perl, can be considered a DSL. WolframLang aka Mathematica, can be considered a DSL. Prolog, a DSL. Erlang, a DSL. Regex, is a DSL. The C faaak's printf, is a DSL. Python and haskell eeedeeot's list comprehension are DSL. Common Lisp loop, is a DSL. Matlab, MathCAD, is a DSL. Ruby on rails, is a DSL. React, is a DSL.
- So why is the elite hacker ilk obsesses about DSL? Well, after decades, i kinda know the answer now.
- Elite hacker ilk obsesses about DSL, because, it's a dramatic phrase connoting to certain higher design, certain elegance, certain holier-than-thou affiliation.
- Like, lisp macro, or scheme tail recursion, or haskell monad, or emacs scratch buffer and meta key.
- It's a dramatic jargon of uncommon feature and perceived superiority.
- That's why, elite hacker ilks, obessesses about DSL often.
- So, u'll often see these elite types banter about DSL, beyond the concept's worth.
- DSL, is just a specialized lang.
- Like, a truck is a specialized car. McDonald is a specialized eatery. Chopsticks is a specialized utensil. Pisspot is a specialized urinal.
- Ruby on rails, is a DSL. Tcl is a gluing lang. Perl is too, and in particular, known for text processing. Ruby rails, is a web framework. C is also a DSL in a sense. For low level but not super low DSL. Assembly langs, are DSL too.
- The point here is, the fuzziness of DSL concept. In other words, there is no hardcore definition, of what DSL is. Like other culty things, such as unix philosophy. It's fuzzy and amorphous. Yinyang and Taichi. No actual any practical need for the jargon. e.g. The jargon did not came from some real world practice, or need of a definition.
- Almost every software written, is a DSL. The question is a matter of degree.
- So for example, in langs we have usually a length function to get number of items in list or string.
- But suppose, in my software, length of a particular custom data structure means the degree of complexity. So, i redefine length as, basically just rename it
comlexityLevel = length
- Am i now creating a DSL?
- The nature of DSL, domain specific language, is exactly the above. Renaming the length function to something more specific to your domain, is the most basic DSL.
Epiphany: the problem of creating domain-specific-languages is that you are creating a new framework. So, you get frameworktitis, like today's web.