In this case, it probably is "Domain Specific Language". If you're unfamiliar, that means it's created for a very specific context, unlike other, more general languages. That means you can keep the set of features small and save a lot of time making complex stuff work that isn't relevant to that context.
Loops are complex stuff. If you don't really need them, you're better off just keeping your language linear.
On the other hand, they're neat. Can't be that bad, can it?
I'm puzzled too. In DSL the "local loop" is the wiring between your house and the nearest central office or concentrator. Kind of like "last mile" but more like "last block or two". So I don't get what "adding loops" would mean.
Besides Domain Specific Language which somebody else refers to in the thread, DSL can also mean Damn Small Linux. Still no clue about adding loops.
I have created a handful of DSLs over the years and I think most of them were bad ideas. Ironically the most complex one is the one that I think was actually right. It had support for a lot of stuff like loops, functions, custom variables and even some weird shit like async execution of child commands.
I think what made it work in that case was mostly that the purpose of the DSL was completely different from the others. The system wasn't designed with a DSL in mind. The DSL was just a simpler way to provide input for something that was already there.
Exactly! Making a DSL and using it like a programming language introduces necessities that will not be considered as throughly if they where added to a "real" language.
I once wanted a DSL for a calendar program I was making (so the user could define complex events and stuff). So I made a simple programming language that could be embedded in the program, kinda like how lua is commonly used.
27 Comments
bricked@feddit.org · 46 pts · 69d
Aaand... it's Turing-complete!
BodilessGaze@sh.itjust.works · 34 pts · 69d
You now have a moral obligation to port Doom to it
spazzman6156@sh.itjust.works · 34 pts · 69d
Ok I'm inferring here, but why does DSL mean more than one thing in the technology/computer field? The only one I know is Digital Subscriber Line
Hasherm0n@lemmy.world · 44 pts · 69d
The one I'm familiar with is "Domain Specific Language"
Mikelius@lemmy.ml · 19 pts · 69d
I was thinking Damn Small Linux. Felt weird reading "small damn small Linux"
fruitycoder@sh.itjust.works · 4 pts · 68d
"small, damn small. Linux."
Sounds like an ad lol
luciferofastora@feddit.org · 22 pts · 68d
In this case, it probably is "Domain Specific Language". If you're unfamiliar, that means it's created for a very specific context, unlike other, more general languages. That means you can keep the set of features small and save a lot of time making complex stuff work that isn't relevant to that context.
Loops are complex stuff. If you don't really need them, you're better off just keeping your language linear.
On the other hand, they're neat. Can't be that bad, can it?
pinball_wizard@lemmy.zip · 11 pts · 68d
Lol. Brings back so many memories of my own regrettable assumptions.
diabetic_porcupine@lemmy.world · 16 pts · 68d
Dick sucking lips
kevincox@lemmy.ml · 7 pts · 68d
Because every three letter acronym means more than one thing. There are only 17 576 TLA so they are going to be heavily duplicated.
You should almost always spell out acronyms on the first use.
LovableSidekick@lemmy.world · 0 pts · 68d
I'm puzzled too. In DSL the "local loop" is the wiring between your house and the nearest central office or concentrator. Kind of like "last mile" but more like "last block or two". So I don't get what "adding loops" would mean.
Besides Domain Specific Language which somebody else refers to in the thread, DSL can also mean Damn Small Linux. Still no clue about adding loops.
Hudell@lemmy.dbzer0.com · 17 pts · 69d
I have created a handful of DSLs over the years and I think most of them were bad ideas. Ironically the most complex one is the one that I think was actually right. It had support for a lot of stuff like loops, functions, custom variables and even some weird shit like async execution of child commands.
I think what made it work in that case was mostly that the purpose of the DSL was completely different from the others. The system wasn't designed with a DSL in mind. The DSL was just a simpler way to provide input for something that was already there.
owsei@programming.dev · 2 pts · 68d
Exactly! Making a DSL and using it like a programming language introduces necessities that will not be considered as throughly if they where added to a "real" language.
I once wanted a DSL for a calendar program I was making (so the user could define complex events and stuff). So I made a simple programming language that could be embedded in the program, kinda like how lua is commonly used.
marcos@lemmy.world · 15 pts · 69d
Your DSL isn't embedded on a Turing complete language. That was your mistake.
deadbeef79000@lemmy.nz · 15 pts · 69d
YAML has entered the chat.
marcos@lemmy.world · 6 pts · 69d
Well, for all Turing complete languages around, you picked that one?
Using Blank Space or Malboge would be the wrong answer too.
deadbeef79000@lemmy.nz · 6 pts · 69d
It seemed to best fit the theme of the thread.
Unpigged@lemmy.dbzer0.com · 2 pts · 68d
So... How about Conway's life for DSL?
marcos@lemmy.world · 1 pts · 68d
That...
Wasn't on my enumeration of bad options :)
Unpigged@lemmy.dbzer0.com · 2 pts · 67d
I wonder can you build a CI/CD framework what runs on life?
SubArcticTundra@lemmy.ml · 7 pts · 69d
If your DSL has loops tyen it should be a Python library
SubArcticTundra@lemmy.ml · 1 pts · 69d
Looking at you, Gradle
trem@lemmy.blahaj.zone · 8 pts · 69d
Gradle uses Groovy or Kotlin for its DSL, though...
Chais@sh.itjust.works · 2 pts · 69d
So python compiled to JVM-bytecode.
lukalix98@programming.dev · 4 pts · 69d
https://www.jython.org/: let me introduce myself
Supercrunchy@programming.dev · 7 pts · 69d
One word: Terraform
hypna@lemmy.world · 10 pts · 69d
You either put it in the DSL or people start writing generators for your DSL.