6 ms·
I think DSLs are about defining a 100% textual format. And spreadsheets are GUI apps. There's a DSL for defining a cell formula but in total it's a small part o
by twa927 7y ago
I think DSLs are about defining a 100% textual format. And spreadsheets are GUI apps. There's a DSL for defining a cell formula but in total it's a small part of the experience of using a spreadsheet app.
- mannykannot 7y ago> I think DSLs are about defining a 100% textual format. Spreadsheets are an argument for thinking outside of that particular box.
- DonHopkins 7y agoSpreadsheets are about thinking inside of a lot of little general boxes, instead of just one big particular box.
- claimred 7y agoWhat about Unreal Blueprints, Dynamo BIM? Visual GUI doesn't make them less DSLish.
- twa927 7y agoI think these are examples of a https://en.wikipedia.org/wiki/Visual_programming_language https://en.wikipedia.org/wiki/Visual_programming_language, while https://en.wikipedia.org/wiki/Domain-specific_language#Examples https://en.wikipedia.org/wiki/Domain-specific_language#Examp... are purely text-based.
- darkpuma 7y agoDon't confuse a deficiency of a wikipedia article for the definition of that thing.
- deleted 7y ago[deleted]
- twa927 7y agoSo where should I look up the definition of a DSL?
- detaro 7y agoLet's take the Wikipedia definition, not the examples list: > A domain-specific language (DSL) is a computer language specialized to a particular application domain. where computer language links to a list of things that includes "programming languages", which visual programming languages are a part of. Other sections of the article also mention some graphical examples, e.g. UML. (which isn't a programming language, but a modeling language, also used sometimes as an input to software)
- darkpuma 7y ago> "I think DSLs are about defining a 100% textual format." That's an unjustified qualification. I could throw together a spreadsheet format that is all text. The spreadsheet GUI then becomes a advanced text editor that, when editing that particular format, exposes advanced content-aware controls not at all unlike advanced text editors like emacs can for s-expressions. We can bridge the gap in other ways too, for instance the '2d' racket language that lets you do control flow using a two-dimensional ascii art grid: https://docs.racket-lang.org/2d/index.html https://docs.racket-lang.org/2d/index.html It's not hard to see how this concept could be iterated on to become something quite like a spreadsheet, and with editor support the editor/language combination would begin to look a lot like a spreadsheet too.
- teddyh 7y ago> I could throw together a spreadsheet format that is all text. […] The spreadsheet GUI then becomes a advanced text editor that, when editing that particular format, exposes advanced content-aware controls not at all unlike advanced text editors like emacs can for s-expressions. Emacs already has that, included in org-mode: https://orgmode.org/org.html#Tables https://orgmode.org/org.html#Tables (Emacs also has an even more spreadsheet-like mode; ses-mode, but that saves its data in less-than-purely-textual format. Or, at least, less textual than org-mode.)
- twa927 7y ago> That's an unjustified qualification. I could throw together a spreadsheet format that is all text. The spreadsheet GUI then becomes a advanced text editor that, when editing that particular format, exposes advanced content-aware controls not at all unlike advanced text editors like emacs can for s-expressions. If you could invent a text format that could be efficiently edited with a basic text editor then I would agree it's a DSL. But I feel like you would lose a lot by dropping a dedicated GUI, e.g.: - horizontal scrolling of columns, adding, hiding columns - "smart copying" a formula by scrolling down - selection of rows/columns/cells I don't think anybody would use such DSL using a basic editor. Overall it's discussion about the definitions of terms, but I don't understand why people want to capture anything having some "editable format" as a "DSL" when addtional terms like "visual programming" allow more differentiation?