|
Re: Automation vs. DSLs (was: Development: A Structure d Problem Area?): msg#00070programming.language-of-the-year
--- "Frohnhofer, James" <james.frohnhofer-kYwkPH9/VXA@xxxxxxxxxxxxxxxx> wrote: > (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. I assumed this posting was meant tongue-in-cheek, but either I misunderstood or a lot of other readers didn't get the joke. I have never seen non-technical people enjoy even modest success with SQL. Even programmers who should know better frequently get stuck writing simple SQL statements. Hiding SQL behind a GUI, as Microsoft Access does, might let people do something with the data, but only with trivial database designs. And of course the underlying database design influences the SQL needed to query and manipulate the database, and database design is generally outside the control of end users (not to mention programmers). The primary metaphor of relational databases is the relation, not tables, rows, and keys: those are the metaphors of ISAM databases. I know that plenty of programmers misuse relational databases in this way, but that should not reflect badly on the relational paradigm. And I also know that lots of databases that could be handled with text files or simple ISAM structures are made complicated and forced onto RDBMSs, which again is the fault of programmers. > (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. Again I assumed this statement was meant sarcastically. I think programmers coming to C sometimes falter on the array and pointer issue, but 0-based arrays (which C shares with, for example, Visual Basic) or the ternary operator (an unnecessary construct in any case) should not pose significant problems for serious programmers. As for "many people" having trouble with C, if you mean the non- technical public, I would say that the syntax or quirks of C is the least of the problems facing a newbie. Most people don't understand (or care to understand) programming at all, any more than they understand electrical engineering or heart surgery. Your statement seems to me equivalent to saying that many people have difficulty designing circuits because they get confused about the color-coding on resistors, when in fact something more fundamental is missing. > 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. I completely agree. I have frequently bored junior programmers with my insistence on understanding the idioms of C, because that's where they will learn mastery of the language. Every language has metaphors and idioms, and programmers who ignore those can never learn the language, no matter how much syntax they memorize. SQL and the relational database model are the same, but even more so. The underlying principles of the relational model are not obvious or intuitive: one must study. Of the thousands of programmers I've known, many of whom have mastered the arcana of Perl or C++, only a handful have taken the time to learn the relational model and master it. Most get stuck using relational systems for ISAM databases, or as a dumb data store for serializing and persisting their objects. > 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. You succintly say what I tried to communicate in several previous posts. Greg Jorgensen PDXperts LLC - Portland, Oregon USA ------------------------ 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> |
|---|---|---|
| Previous by Date: | Re: Fun with SQL: 00070, Chris Morris |
|---|---|
| Next by Date: | Looking for article on programmer culture: 00070, Greg Jorgensen |
| Previous by Thread: | Re: Fun with SQLi: 00070, Chris Morris |
| Next by Thread: | Re: Re: Automation vs. DSLs (was: Development: A Structure d Problem Area?): 00070, Gregg Irwin |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |