{"id":5440,"date":"2015-06-09T07:00:18","date_gmt":"2015-06-09T15:00:18","guid":{"rendered":"http:\/\/formtek.com\/blog\/?p=5440"},"modified":"2015-05-01T08:20:39","modified_gmt":"2015-05-01T16:20:39","slug":"domain-specific-language-empowering-domain-experts","status":"publish","type":"post","link":"https:\/\/formtek.com\/blog\/domain-specific-language-empowering-domain-experts\/","title":{"rendered":"Domain Specific Language: Empowering Domain Experts"},"content":{"rendered":"<p>You&#8217;re likely familiar with computer programming languages like C, Java and Python. \u00a0These languages are considered\u00a0\u00a0<a title=\"General Purpose procedural language\" href=\"http:\/\/en.wikipedia.org\/wiki\/General-purpose_language\" target=\"_blank\">general-purpose procedural languages<\/a> and often taught in schools and used across industries for software designed almost any type of problem.<\/p>\n<p>Recently there&#8217;s been a rise in popularity of languages that are more targeted to solving specific problems. \u00a0These domain-specific languages (DSL) include languages like <a title=\"LOGO programming language\" href=\"http:\/\/el.media.mit.edu\/logo-foundation\/logo\/programming.html\" target=\"_blank\">LOGO<\/a>, a very limited programming language targeted towards kids learning to program that has a limited set of actions, primarily for drawing lines and simple geometrical shapes. \u00a0In fact, a major characteristic of DSL languages is that they&#8217;re often easy for people knowledgeable\u00a0in the target domain to pick up quickly.<\/p>\n<p>A DSL language is often very stipped down in comparison to a general purpose language, often omitting support for things like\u00a0\u00a0data structures, conditional expressions and functions. \u00a0DSLs are used in industries like health care, finance and insurance. \u00a0Often the syntax of the language is English-like, using nouns and verbs, and incorporates jargon that is commonly used in the industry.<\/p>\n<p><a title=\"Paul Hudak bio\" href=\"http:\/\/haskell.cs.yale.edu\/people\/paul-hudak\/\" target=\"_blank\">Paul Hudak<\/a>, computer science professor at Yale University, <a title=\"Paul Hudak describing Haskell DSL\" href=\"http:\/\/haskell.cs.yale.edu\/wp-content\/uploads\/2011\/01\/DSEL-Little.pdf\" target=\"_blank\">said that<\/a> &#8220;programs written in a [<a title=\"Domain Specific Language\" href=\"http:\/\/en.wikipedia.org\/wiki\/Domain-specific_language\" target=\"_blank\">domain specific language<\/a>] (DSL) have one important characteristic: they can often be written by non-programmers\u2026a user immersed in a domain already knows the domain semantics. \u00a0All the DSL designer needs to do is provide a notation to express that semantics.&#8221;<\/p>\n<p>One frequent practice in industry is for an industry expert to work with a developer who then implements a specific business process or task using a general purpose programming language. \u00a0The problem with this approach is that often the translation of the business process results in code that the industry expert isn&#8217;t able to read and directly verify. \u00a0DSL languages are designed to instead allow the industry expert to directly implement the business rules directly without a middleman.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<div class=\"lightsocial_container\"><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/digg.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/digg.png\" alt=\"Digg This\" title=\"Digg This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/reddit.png\" alt=\"Reddit This\" title=\"Reddit This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.stumbleupon.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/stumbleupon.png\" alt=\"Stumble Now!\" title=\"Stumble Now!\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/buzz.yahoo.com\/buzz?targetUrl=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F&amp;headline=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/yahoo_buzz.png\" alt=\"Buzz This\" title=\"Buzz This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.dzone.com\/links\/add.html?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dzone.png\" alt=\"Vote on DZone\" title=\"Vote on DZone\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.facebook.com\/sharer.php?t=&amp;u=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/facebook.png\" alt=\"Share on Facebook\" title=\"Share on Facebook\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/delicious.com\/save?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/delicious.png\" alt=\"Bookmark this on Delicious\" title=\"Bookmark this on Delicious\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.dotnetkicks.com\/kick\/?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dotnetkicks.png\" alt=\"Kick It on DotNetKicks.com\" title=\"Kick It on DotNetKicks.com\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/dotnetshoutout.com\/Submit?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dotnetshoutout.png\" alt=\"Shout it\" title=\"Shout it\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.linkedin.com\/shareArticle?mini=true&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F&amp;title=&amp;summary=&amp;source=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/linkedin.png\" alt=\"Share on LinkedIn\" title=\"Share on LinkedIn\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.technorati.com\/faves?add=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/technorati.png\" alt=\"Bookmark this on Technorati\" title=\"Bookmark this on Technorati\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/twitter.com\/home?status=Reading+https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/twitter.png\" alt=\"Post on Twitter\" title=\"Post on Twitter\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.google.com\/buzz\/post?url=https%3A%2F%2Fformtek.com%2Fblog%2Fdomain-specific-language-empowering-domain-experts%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/google_buzz.png\" alt=\"Google Buzz (aka. Google Reader)\" title=\"Google Buzz (aka. Google Reader)\" \/><\/a><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>You&#8217;re likely familiar with computer programming languages like C, Java and Python. \u00a0These languages are considered\u00a0\u00a0general-purpose procedural languages and often taught in schools and used across industries for software designed almost any type of problem. Recently there&#8217;s been a rise<span class=\"ellipsis\">&hellip;<\/span><\/p>\n<div class=\"read-more\"><a href=\"https:\/\/formtek.com\/blog\/domain-specific-language-empowering-domain-experts\/\">Read more &#8250;<\/a><\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-5440","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/5440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/comments?post=5440"}],"version-history":[{"count":0,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/5440\/revisions"}],"wp:attachment":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/media?parent=5440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/categories?post=5440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/tags?post=5440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}