Live data from Hacker News

Problems with DSLs for non-programmers

artur-martsinkovskyi.github.io

141–144 of 144 posts

Re: Problems with DSLs for non-programmers

#141

> The last time I had a business analyst that wanted to write SQL, he tripped over one join and asked me to do the job. SQL is used widely, but it does not work that well for people who are not programmers. HTML and XML were also originally intended for non-programmers - where are they now? They are used by amateurs or enthusiasts sometimes, but most of the time programmers do the job. At both is my last two jobs (Sa…

My experience has been there are definitely people who become very proficient with sql while not knowing any other programming but they generally hit a ceiling. For most people they can do joins and some basic nesting but they start getting out of their elements if you mention window functions, ctes etc

I'm just one data point, but this group I'm thinking of uses a LOT of CTEs. Perhaps too many - they seem to always have a bunch in their saved queries, personal notepad, etc and would probably benefit from being allowed to create views so that they'd have smaller queries with fewer WITH clauses.

Seeing things like the above or spreadsheet power users really makes me think that "everyone should learn to code" education / literacy initiatives could be a very good idea if done properly.

Re: Problems with DSLs for non-programmers

#142
post #68

Earlier quoted context omitted.

I came to say that exact thing. Good DSLs are almost unnoticed, because they are frictionless.

Good DSL are hard and expensive to design and maintain. Look at the good example of DSL in comments here. They are not small project with small workforce. If not very limited, a DSL is an ambitious project (if very limited a GUI will surely do a better Job). Developers should think twice before writing a DSL for "non-programmers"

Nonsense. Making a good DSL is easy. I’ve built production DSLs that users adore.

What’s hard is finding developers who know the domain and its users in the first place. You can’t solve a problem if you don’t understand the problem space. And most devs don’t understand shit except how to turn it off and on again, nor are they willing to learn. So if your average professional university-educated programmer can’t even get a simple turnkey CRUD app right, what chance of them delivering a tool that successfully hands those keys to its users?

..

Go read the “Collaborative Work Practices” chapter of “A Small Matter of Programming: Perspectives on End User Computing” by Bonnie A Nardie that describes how basic users, expert users, and trained developers can develop their own software tools together, where each layer supports and educates the layers above and below it.

And then count the number of programmers you know who’d embrace working like that. Sadly I doubt you’ll run out of fingers.

Re: Problems with DSLs for non-programmers

#143
post #73
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.

The counterpoint would be Visual Basic. It was meant for non-engineers/managers to be able to write programs, but that never really happened. It was always easier for a manager to write an email 'I need an app that does X' than to write the app themselves.

There are many more success non-popular stories around DSLs. Last year, in the Community event of JetBrains MPS, a bunch of big companies (Siemens, Bosch, Workday, etc.) showcased their DSLs built with MPS technology. Here are the videos: https://www.youtube.com/watch?v=102hoaAdctk&list=PLQ176FUIyI...

Re: Problems with DSLs for non-programmers

#144

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).

Excel is a great example of a domain-user tool that's very hard to use correctly, and even harder to know when you're using it incorrectly; that's not "snobbism".

https://www.zdnet.com/article/excel-errors-microsofts-spread...

https://www.teampay.co/insights/biggest-excel-mistakes-of-al...

Post reply on HN