Live data from Hacker News

Problems with DSLs for non-programmers

artur-martsinkovskyi.github.io

111–120 of 144 posts

Re: Problems with DSLs for non-programmers

#112
post #12
post #8

The argument here boils down to: I haven't seen it work in places where I've been employed so it must not work. Reality check: I've worked on multiple large research teams that successfully developed DSLs still in use by domain experts -- military sigint in one case, doctors in another case, industrial engineers in another. We developed these languages for specific applications where the domain experts needed to prog…

Anyone who thinks DSLs for the general public can't work has never used Excel. The real trick is creating a domain model that "clicks" in the heads of your users.

Or Hypercard, which was popular among non-programmers in its day

Re: Problems with DSLs for non-programmers

#113
post #12

Earlier quoted context omitted.

Anyone who thinks DSLs for the general public can't work has never used Excel. The real trick is creating a domain model that "clicks" in the heads of your users.

> Anyone who thinks DSLs for the general public can't work has never used Excel. I would say Excel is exactly the opposite of a positive example. Unless you mean being used as a sort of electronic scratchpad, which works okay. But apart from that there's too much freedom in Excel to be used to make anything properly. Every time I've ever seen a non programmer use it, they make a pile of spaghetti. You never have any…

>I would say Excel is exactly the opposite of a positive example. Unless you mean being used as a sort of electronic scratchpad, which works okay.

That's just developer snobbism. Millions non-devs use Excel with excellent results, even whole business of billions depend on it.

(Excel has some flaws, and can give wrong results in some cases, but that's like "gotchas" in any language).

Re: Problems with DSLs for non-programmers

#114
post #41

I've met many non-programmers who are quite comfortable with SQL. There are many smallish scripting languages that should qualify as DSLs that allow lay access to domains that mystify normal people. Excel comes to mind. Mathematica used to be one of these before it became a real general-purpose programming language, if a somewhat limited one. The author appears to be projecting their personal convictions onto everyon…

I agree that DSLs can work for non-devs, and Excel is a good example of this. SQL though, I'm less convinced about - while I've known business people to use it for basic queries, many devs struggle with anything more complex.

That many professional developers are worse at SQL than professional non-developers is an indictment of those developers, not SQL.

Re: Problems with DSLs for non-programmers

#115

Earlier quoted context omitted.

> Anyone who thinks DSLs for the general public can't work has never used Excel. I would say Excel is exactly the opposite of a positive example. Unless you mean being used as a sort of electronic scratchpad, which works okay. But apart from that there's too much freedom in Excel to be used to make anything properly. Every time I've ever seen a non programmer use it, they make a pile of spaghetti. You never have any…

> I would say Excel is exactly the opposite of a positive example. Unless you mean being used as a sort of electronic scratchpad, which works okay. That's just developer snobbism. Millions non-devs use Excel with excellent results, even whole business of billions depend on it. (Excel has some flaws, and can give wrong results in some cases, but that's like "gotchas" in any language).

I don't think it is snobbishness. Some programming systems definitely encourage hacky spaghetti more than others (if you don't believe me try using LabVIEW) and Excel is definitely in that category.

There are ways that they could make it less so, like only allowing cell references by name, using a saner scripting language than VBA, allowing multiple cell grids on a single page/sheet, etc.

"Millions of successful businesses are built on Excel" is no argument at all. You can build a successful business with pen and paper.

Re: Problems with DSLs for non-programmers

#116
TL;DR - DSL's are hard

> The DSL fashion I oppose [...] is the fashion of self-baked business-specific tools that are intended to be used by users that are not programmers or even tech people. Those require much more effort than a regular system and are seldom to be done well. So it is better to think twice before creating your own DSL [...]

Re: Problems with DSLs for non-programmers

#117

Earlier quoted context omitted.

> I would say Excel is exactly the opposite of a positive example. Unless you mean being used as a sort of electronic scratchpad, which works okay. That's just developer snobbism. Millions non-devs use Excel with excellent results, even whole business of billions depend on it. (Excel has some flaws, and can give wrong results in some cases, but that's like "gotchas" in any language).

I don't think it is snobbishness. Some programming systems definitely encourage hacky spaghetti more than others (if you don't believe me try using LabVIEW) and Excel is definitely in that category. There are ways that they could make it less so, like only allowing cell references by name, using a saner scripting language than VBA, allowing multiple cell grids on a single page/sheet, etc. "Millions of successful busi…

Excel checks the "good enough" box and while you have a point, it isn't going away.

Re: Problems with DSLs for non-programmers

#118
post #41

I've met many non-programmers who are quite comfortable with SQL. There are many smallish scripting languages that should qualify as DSLs that allow lay access to domains that mystify normal people. Excel comes to mind. Mathematica used to be one of these before it became a real general-purpose programming language, if a somewhat limited one. The author appears to be projecting their personal convictions onto everyon…

I agree that DSLs can work for non-devs, and Excel is a good example of this. SQL though, I'm less convinced about - while I've known business people to use it for basic queries, many devs struggle with anything more complex.

I would argue that SQL is an excellent language and the only issue is with the actual inherent complexity of what goes on behind the scenes. Writing the equivalent of even a modestly complex SQL query in any other language is much more tedious and error prone.

Re: Problems with DSLs for non-programmers

#119
post #103

I'm surprised no one is talking about React JSX. I'd be very interested to hear the authors opinion on it. Unlike the author's examples, JSX isn't intended to be used by business people, but I think JSX presents some of the same problems but instead with regard to web designers. JSX is a DSL that was intended to help simplify and streamline the process of building a web app, but the leakiness of JSX as an abstraction…

My point was about the tools that let people do the job they'd ask to do programmers otherwise, but it is also a nice touch. Although, I think it is not only about JSX, virtually any modern framework markup part is not easily readable by non-developer. With complexity of the clients and trends we have now it is not fixable and won't be for a long time.

Re: Problems with DSLs for non-programmers

#120

P.S. I hate Gherkin, Cucumber and other DSLs that let you write the tests that “read like English” I'm with you there, friend! But then the author mentions Rspec as a good DSL, so I don't know what their ideal of a good DSL is because Rspec's about as English-like as it gets.

RSpec is written and read mostly by developers. Unlike those tools that business likes to use and abuse developers with extension requests just to feel more control over the situation.
Post reply on HN