[HN Gopher] Lingo: A Go micro language framework for building Do...
___________________________________________________________________
Lingo: A Go micro language framework for building Domain Specific
Languages
Author : adityasaky
Score : 29 points
Date : 2024-10-24 19:23 UTC (3 hours ago)
(HTM) web link (about.gitlab.com)
(TXT) w3m dump (about.gitlab.com)
| dlock17 wrote:
| This seemed like nuclear overkill for most problems I can think
| of.
|
| And where it should be used, I can't imagine you can't find a pre
| existing language (Cuelang maybe) instead.
|
| I was expecting a section at the end where they demonstrate which
| services need a new language written just for it's configuration,
| but nope, just general examples.
|
| Also, this should have a (2022) in the title.
| tony-allan wrote:
| I think that a Domain Specific Language without the scaffolding
| of a language like python to generate test data is a great use
| case.
|
| You have a specific DSL to generate test data and store code
| written using your DSL with your test cases.
|
| You then have a security model that separates the
| responsibilities of the test team from that of other
| developers. The team can generate many test cases in a secure
| environment. You could then seek community input into your test
| processes with having to worry about rogue code.
| jerf wrote:
| It is nuclear overkill for most problems you can think of.
|
| But when you hit a problem that you need something like this
| for... you _need_ something like this. The attempts to get
| around it or avoid it or do some unbelievably hacky thing leads
| to piles and piles of terrible, terrible code.
|
| In 2024, though, I do try very hard to embed my DSLs in an
| existing serialization. It doesn't always work out, but, the
| case they show of directly embedding an AST into YAML is a
| worst-case scenario. In real life I've done things like specify
| a particular field carries an expr[1] expression to do that
| sort of thing, and then the structure of the rest of the file
| just follows normal serialization format.
|
| [1]: https://github.com/expr-lang/expr , but I'm sure many
| static languages have something like this. If you don't know
| one, it's a good tool to put in the belt in case you ever need
| it.
| Alifatisk wrote:
| Regarding the Ruby example, why did they use Float("...") instead
| of #to_f?
| intelekshual wrote:
| Probably because `Float()` is stricter and will raise an error
| if the string isn't a valid number, whereas `#to_f` will
| silently return 0.0 or do a best-effort conversion (e.g.
| "1.2abc".to_f => 1.2)
| Lyngbakr wrote:
| > Some popular DSLs most software developers use on a regular
| basis include Regular Expressions for pattern matching, AWK for
| text transformation or Standard Query Language for interacting
| with databases.
|
| Isn't it _Structured_ Query Language? Or are both variants used?
___________________________________________________________________
(page generated 2024-10-24 23:00 UTC)