logo       

RE: Automation vs. DSLs (was: Development: A Structure d Problem Area?): msg#00055

programming.language-of-the-year

Subject: RE: Automation vs. DSLs (was: Development: A Structure d Problem Area?)

(1) SQL has been so remarkably successful with end users because

A) its syntax creates mostly readable sentences.

B) its primary metaphor of rows, tables and keys is consistent,
pervasive
and easily grasped.

(2) Many people have difficulty with C because of

A) difficulty remembering that arrays are 0-based and what the ternary
operator means.

B) a failure to grasp the nature of the relationships between arrays,
pointers, variables and functions.

(3) Many experienced C programmers continue to write procedural programs after
switching to C++

A) they can't figure out what those angle brackets are doing outside an
include statement.

B) they haven't made the mental switch to the object paradigm.

My point (if you've missed it) is that mastery of a programming language isn't
about syntax. It's about internalizing the main metaphors of the language.

The simple problem of this thread is that requirements are notoriously
ambiguous; code cannot be. I think specifically the removal of that ambiguity
is where much of our value as professionals lies. It resists automation, of
course, because it is ambiguity.

The argument then becomes is a two-step process (reqs->model->code) more
valuable than a one-step process (reqs->code). Which, practice is more
efficient, and is the 'model' and artifact of some business value?

-----Original Message-----
From: Gregg Irwin [mailto:greggirwin-mn4gwa5WIIQysxA8WJXlww@xxxxxxxxxxxxxxxx]
Sent: Tuesday, June 22, 2004 4:42 PM
To: Robert Watson
Subject: [pragprog] Automation vs. DSLs (was: Development: A Structured
Problem Area?)

Programmer-ese isn't always easy to see, because we're steeped in it.
The more "visible syntax" there is, the more the user has to remember,
the harder it will be for them to use. e.g. which is best for an end
user?

set_customer_first_name cust "Robert"
print (1, get_customer_first_name(cust))

customer.name.first = "Robert"
lines(1).print customer.name.first

customer's first name is Robert
print customer's first name on line 1

A more declarative approach is often more natural for non-programmer's
as well (IME).


==============================================================================
This message is for the sole use of the intended recipient. If you received
this message in error please delete it and notify us. If this message was
misdirected, CSFB does not waive any confidentiality or privilege. CSFB
retains and monitors electronic communications sent through its network.
Instructions transmitted over this system are not binding on CSFB until they
are confirmed by us. Message transmission is not guaranteed to be secure.
==============================================================================



------------------------ Yahoo! Groups Sponsor --------------------~-->
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->


Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/pragprog/

<*> To unsubscribe from this group, send an email to:
pragprog-unsubscribe-hHKSG33TihhbjbujkaE4pw@xxxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise