-
Notifications
You must be signed in to change notification settings - Fork 142
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perhaps extensible syntax? #51
Comments
@adrian-herscu I'm personally strongly against that kind of DSL's. I believe that they only make code less readable. I'm using Ruby a lot and I really hate their DSL's. Very often I simply can't understand what the code does and have no idea where to look for documentation. So, I'm in favor of a very strict and specific syntax. No sugar, no DSLs, etc. See aa56f21 |
Agree. Languages with too much "magic" give me the creeps (e.g. Elixir, Ruby frameworks) |
As I understand, every such custom DSL uses the idea of using compile-time analysis, mainly in IDE, to verify a statement in this DSL. Also, a question about DSL is not always a question about syntax extensibility, e.g. Scala-based DSLs. |
@yegor256 I believe there should be space for DSLs in a general programming language. Otherwise, boilerplate code will probably be necessary for some particular tasks. In an attempt to support my point of view, I want to point out that the README already contains some code that could be considered as beloning to a DSL. Namely, the |
|
You're reviving a very old thread! In any case, I believe what I meant is that I agree with you that it isn't a language feature, but a DSL doesn't have to be a language feature, all it needs to do is be its own language IIUC. It appears I wanted to use this point to support the view that DSLs can help simplify code, which I still believe is sound. For example, |
All languages today provide a fixed set of tokens , keywords, and constructs. What about letting users define their own "little languages" and have them supported by the tools?
The text was updated successfully, but these errors were encountered: