dot-dsl: update README
tracks
attn:
# DOT DSL
-Write a Domain Specific Language similar to the Graphviz dot language.
-
A [Domain Specific Language
(DSL)](https://en.wikipedia.org/wiki/Domain-specific_language) is a
-small language optimized for a specific domain.
+small language optimized for a specific domain. Since a DSL is
+targeted, it can greatly impact productivity/understanding by allowing the
+writer to declare *what* they want rather than *how*.
+
+One problem area where they are applied are complex customizations/configurations.
For example the [DOT language](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) allows
you to write a textual description of a graph which is then transformed into a picture by one of
@@ -21,7 +23,14 @@ Putting this in a file `example.dot` and running `dot example.dot -T png
-o example.png` creates an image `example.png` with red and blue circle
connected by a green line on a yellow background.
-Create a DSL similar to the dot language.
+Write a Domain Specific Language similar to the Graphviz dot language.
+
+Our DSL is similar to the Graphviz dot language in that our DSL will be used
+to create graph data structures. However, unlike the DOT Language, our DSL will
+be an internal DSL for use only in our language.
+
+More information about the difference between internal and external DSLs can be
+found [here](https://martinfowler.com/bliki/DomainSpecificLanguage.html).
## Builder pattern
@@ -105,5 +114,9 @@ If you want to know more about Exercism, take a look at the [contribution guide]
[cargo]: https://doc.rust-lang.org/book/ch14-00-more-about-cargo.html
[rust-tests]: https://doc.rust-lang.org/book/ch11-02-running-tests.html
+## Source
+
+Wikipedia [https://en.wikipedia.org/wiki/DOT_(graph_description_language)](https://en.wikipedia.org/wiki/DOT_(graph_description_language))
+
## Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
