Lambda the Ultimate

inactiveTopic Scapy - network DSL in Python
started 4/22/2003; 11:37:26 AM - last post 4/22/2003; 2:30:11 PM
andrew cooke - Scapy - network DSL in Python  blueArrow
4/22/2003; 11:37:26 AM (reads: 1782, responses: 2)
Scapy - network DSL in Python
The most interesting thing here (apart from the tool itself) is that it's presented as a tool that uses Python, not as a library or set of classes. I'm surprised (don't know why) at how integrated it appears - it looks like a tool with a command line, not Python with some extra classes. Is the DSL meme becoming more popular?

via sweetcode
Posted to DSL by andrew cooke on 4/22/03; 11:38:18 AM

Ehud Lamm - Re: Scapy - network DSL in Python  blueArrow
4/22/2003; 12:59:31 PM (reads: 613, responses: 1)
I only took a quick look, but it looks like DSL implemented in Python, not an embedded DSL, so I don't understand your surprise. Am I missing anything?

andrew cooke - Re: Scapy - network DSL in Python  blueArrow
4/22/2003; 2:30:11 PM (reads: 635, responses: 0)
I don't understand the difference between "implemented in" and "embedded", so I can't explain anything in those terms. In terms with less syllables: as far as I can tell it's a Python top-level loop with some extra classes defined in the current namespace. All of Python is still there.

If I had written it, I would have "sold it" as a bunch of classes that help with network programming - an extension to the language. Instead, it's presented as a network tool that just happens to have Python available. That's fair enough - they're equivalent - but I was surprised that (1) someone would take that approach (it seems to imply that DSLs are becoming more fashionable, or perhaps that I have just noticed) and (2) it actually appears to work well (you can read the whole page without thinking "hey, this is 'just' a couple of classes defined in Python".

Is this kind of thing common? Do people write Perl routines and then present them as general "Tools" rather than language extensions? Maybe I've just noticed something that's been obvious for a while. Wouldn't be the first time.