The Joys Of Data-Driven Programming

Rustom Mody rustompmody at gmail.com
Sun Aug 21 07:53:07 EDT 2016


On Sunday, August 21, 2016 at 5:13:28 AM UTC+5:30, Lawrence D’Oliveiro wrote:
> On Saturday, August 20, 2016 at 8:08:24 PM UTC+12, Marko Rauhamaa wrote:
> >
> > Lawrence D’Oliveiro:
> > 
> >> On Thursday, August 18, 2016 at 4:47:28 PM UTC+12, Marko Rauhamaa wrote:
> >>>
> >>> ... as a rule, I dislike rules. Rule languages tend to
> >>> grow out of all bounds, always remain deficient and have impenetrable,
> >>> ad-hoc semantics.
> >>
> >> That’s a very peculiar thing to say, considering that data-driven
> >> programming is a well-known technique for writing compact code.
> >>
> >> Less code, and in particular, less repetitive code => fewer bugs.
> > 
> > I can't relate to what you say.
> > 
> > All I can say is that I've encountered numerous bad cases of rule
> > systems, eg:
> > 
> >  - iptables
> > 
> >  - selinux policies
> > 
> >  - systemd unit files
> > 
> >  - asterisk
> > 
> >  - sendmail
> 
> I can’t relate to you, either. All those are spectacularly successful examples of highly-configurable pieces of software.

Very interesting dialogue…
Theoretically Ive generally been aligned along the lines of Lawrence:
“Declarative is better than imperative”
[ Ive even espoused it as “data-orientation” in http://blog.languager.org/2012/10/functional-programming-lost-booty.html , 
a page that gets a lot of hits of late]

But seeing Marko’s list I am very uneasy (with my own default preferences)
Ive always taken it as an individual specific incidental case when one of these
instances does not fare well.
However seeing that list together like that I cant help wondering:
Is the philosophy of data-driven-ness itself somehow ill-conceived?

Some other examples:
1.
Aren’t makefiles data-driven? And if so should not much more declarative
attempts like jam have been correspondingly more successful?
https://www.perforce.com/resources/documentation/jam

[Personally Ive always believed that jam is better than make and is less used
for entirely historical reasons; something like half the world eoling with crlf 
and half with lf.  But maybe make is really a better design because more imperative?]

2. Basic computing theory shows that re-s and dfas are equivalent.  Which would 
one prefer to write/debug? [Thats not a rhetorical question]

3. Scheme — the language but also the informal culture around SICP — is where
data-driven programming got installed as a sacred dictum.
Scheme doesn't seem to be doing too well of late…
Coincidence??



More information about the Python-list mailing list