: ;; if a + b < 5 then : ;; a <- 1; : ;; else : ;; a <- 2; : ;; endif;
: (cond ((< (+ a b) 5) : (setq a 1)) : (t : (setq b 2))))
: which is a lot more readable too, IMHO.
Of course.
: The principle of a programming language being mostly readable by : a reader not familiar with it. Programming is a difficult enough : job as it is - why make it harder by using languages that are hard : to read?
I look forward to the day when introductory textbooks explain
"The 'if <condition> then expression_1 else expression_2 endif' statment is the computer langauge's obscure version of what we humans all know as '(cond ((conditional_expression) (expression1)) (t (expression2))))'"
: Chris Gray c...@myrias.ab.ca [C macros - a powerful way to make bugs!] : Myrias Computer Technologies Inc. (403) 463-1337
-- -Matt Kennel m...@inls1.ucsd.edu -Institute for Nonlinear Science, University of California, San Diego -*** AD: Archive for nonlinear dynamics papers & programs: FTP to -*** lyapunov.ucsd.edu, username "anonymous".
c...@myrias.ab.ca (Chris Gray) writes: > * Trevor Blackwell wrote: > > There's something about languages with overly complex syntax and > > crufty semantic foundations that makes them popular. I wish I > > understood it. > I think that it's because natural languages are like this too (well, > they have complex syntax and semantics, perhaps not overly complex). > This however doesn't explain why only *some* people like these > programming languages. > --tim >I think it is quite simple. People who have trouble with abstract >concepts (like me), prefer languages with the minimum number of >new concepts over those they know from natural language. I am quite >happy to read something that is a few characters longer if it looks >more like something that I already know (English). Consider what is >required to understand: > (cond (< (+ a b) 5) > (setq a 1) > (setq b 1) > ) >versus: > if a + b < 5 then > a <- 1; > else > a <- 2; > endif;
Well, I think the latter is easier to understand for most people mainly because most computer languages are structured like the latter.
By the way, I don't think buy the argument that a language that is hard to understand for someone who hasn't learnt it, is therefore bad. If you followed this then I'd say COBOL would be the king of all languages because lot's of it can be understood by managers etc.
Look at pointers in C. They are very hard to understand for a beginner, but C has become very popular, even as a first programing language.
> ;; I think it is quite simple. People who have trouble with abstract > ;; concepts (like me), prefer languages with the minimum number of > ;; new concepts over those they know from natural language. I am quite > ;; happy to read something that is a few characters longer if it looks > ;; more like something that I already know (English). Consider what is > ;; required to understand: > ;; > ;; (cond (< (+ a b) 5) > ;; (setq a 1) > ;; (setq b 1) > ;; ) > ;; > ;; versus: > ;; > ;; if a + b < 5 then > ;; a <- 1; > ;; else > ;; a <- 2; > ;; endif;
>FYI: The above attempt at Lisp code is incorrect.
Anyway, COND must be just about the least readable part of Lisp. It's not too bad once you're used to it, but COND alone does not a fair comparison make. It's kind of like comparing Lisp and C by comparing (if test then-part else-part) with test ? then-part : else-part.
The usual answer for COND is "if you don't like COND, you can define an macro", but maybe that's not fair either. After all, COND is in the standard language, while this macro isn't, and having everyone write their own macro isn't a very good solution. But, on the other hand, Common Lisp isn't all there is to Lisp. In Franz Lisp, you could write
(if (< (+ a b) 5) then (setq a 1) else (setq a 2) )
lw...@chemabs.uucp (Larry W. Virden) wrote: // > Look at pointers in C. They are very hard to understand for a // > beginner, but C has become very popular, even as a first programing // > language. // // Ah, but in my experience the feature most often used incorrectly is // said feature of pointers! I have had folk who have written code for // 10 years (!) who come by with simple pointer questions, and when I // explain it, say 'I have always wondered how that worked' or 'I have // been doing that wrong for all these years' - a scary thought indeed!
One man's opinion: C's popularity is due to economic forces *at least* as much as to any of its inherent strengths. On this topic, I'd go as far as to say that unrestricted pointers are really the data structure equivalent of GOTOs (and C is the contemporary equivalent of old BASIC). I'm not saying that "pointers" sould be eliminated, but, just as WHILE and REPEAT loops can be thought of as controlled GOTO intructions, pointers should be controlled addresses. I think Pascal, for example, does a good job of this. "GOTOs and addresses belong in assembly code," he said as he climbed into his asbestos suit . . . :-)
-- Theatre is life. Film is art. Television is furniture.
> Look at pointers in C. They are very hard to understand for a > beginner, but C has become very popular, even as a first programing > language.
Ah, but in my experience the feature most often used incorrectly is said feature of pointers! I have had folk who have written code for 10 years (!) who come by with simple pointer questions, and when I explain it, say 'I have always wondered how that worked' or 'I have been doing that wrong for all these years' - a scary thought indeed! -- :s Great net resources sought... :s Larry W. Virden INET: lvir...@cas.org :s Personal: 674 Falls Place, Reynoldsburg, OH 43068-1614 The task of an educator should be to irrigate the desert not clear the forest.
| Sorry, its been 15 years since I programmed in LISP.
that may explain why you didn't do this:
(if (< (+ a b) 5) (setq a 1) (setq b 1))
but even this is not the best use of LISP. different languages, different concepts, and different expressability. if you try to write FORTRAN in LISP, it will look less pretty than FORTRAN, and FORTRAN will "win", but try to write LISP in FORTRAN, instead.
| The principle of a programming language being mostly readable by a | reader not familiar with it. Programming is a difficult enough job as | it is - why make it harder by using languages that are hard to read?
why do you want to optimize for irrelevant people? "a reader not familiar with" a programming language is either not someone you want to read your code, or he will become familiar with it shortly if he isn't. programmers have to be able to express themselves in a language, and that is more than just "familiarity". readability is a factor of many things, but common to all is familiarity.
| Here's kind of a twisted example, but heck, maybe someone out there can | help me with it. I've written a MUD system at home (if you don't know | what a MUD is, just ignore this), and one day I thought it would be | K00L to put a variant of "Eliza" or "Doctor" into it. I think all the | needed facilities are there. So, I grabbed the only version I had | around - that for GNU-Emacs ELisp. I have yet to be able to figure out | just what it does. This is precisely what I mean - if I can ever | convert it to my MUD system (a language along the lines of the first | one above), I would hope that it would be much more readable. Anyone | got a version that I can understand?
it's a twisted example, all right. with languages come concepts, and if you don't know the concepts, no amount of readability will help. the belief that one can "read" simple code (e.g., C) because the operations are simple is erroneous. you need to understand _why_ something is done, not just _what_ it does. you reimplement the _why_, not the _what_, anyway.
</Erik> -- Microsoft is not the answer. Microsoft is the question. NO is the answer.
Here's an example of something crufty in tcl syntax:
/usr/local/tcl/bin/wish % set names(fred) 3 3 % set names([list joe bob]) 99 99 % set names("joe bob") 43 wrong # args: should be "set varName ?newValue?" % set names({joe bob}) 33 wrong # args: should be "set varName ?newValue?" % set ind "joe bob" joe bob % set names($ind) 77 77
Why aren't these all the same thing? -- -- Trevor Blackwell t...@das.harvard.edu (617) 495-8912 (info and words of wit in my .plan) Disclaimer: My opinions.
In article <CuDn4G...@cogsci.ed.ac.uk>, j...@aiai.ed.ac.uk (Jeff Dalton) writes: > Anyway, COND must be just about the least readable part of Lisp. > It's not too bad once you're used to it, but COND alone does not > a fair comparison make. It's kind of like comparing Lisp and C > by comparing (if test then-part else-part) with test ? then-part : > else-part. > The usual answer for COND is "if you don't like COND, you can define > an macro", but maybe that's not fair either. After all, COND is in > the standard language, while this macro isn't, and having everyone > write their own macro isn't a very good solution. But, on the other > hand, Common Lisp isn't all there is to Lisp. In Franz Lisp, you > could write > (if (< (+ a b) 5) then > (setq a 1) > else > (setq a 2) > )
And in Common Lisp you can write,
(if (< (+ a b) 5) (setq a 1) (setq a 2))
or better yet for the "paper-saving" lispers among us,
Trevor Blackwell: . % set names("joe bob") 43 . wrong # args: should be "set varName ?newValue?" . % set names({joe bob}) 33 . wrong # args: should be "set varName ?newValue?"
% set names("joe\ bob") 44 44 % set names({joe\ bob}) 55 55
One thing bothers me: in the Tcl manual page, I find the statement "Backslash substitution is not performed on words enclosed in braces, except for backslash-newline as described above."
Also, % set names({{joe bob}}) 33 wrong # args: should be "set varName ?newValue?"
I think this should be considered a tcl bug.
Raul D. Miller n =: p*q NB. prime p, q, e <rockw...@nova.umd.edu> NB. public e, n, y y =: n&|&(*&x)^:e 1 x -: n&|&(*&y)^:d 1 NB. 1 < (d*e) +.&<: (p,q)
In article <Cu8nvK....@murdoch.acc.Virginia.EDU> sd...@elvis.med.Virginia.EDU (Steven D. Majewski) writes:
>In article <Ctu43o....@world.std.com>, >Joseph H Allen <jhal...@world.std.com> wrote:
>>I agree. Common lisp is hopeless. Its standard manual is longer than that >>of _every_ _other_ programming language
Not so. Look at InterLisp or ZetaLisp, for instance, or even PL/I. There may well be others.
>>and its syntax diverged from the >>lisp ideal since the introduction dotted-pairs and ' for quoting. Perhaps >>ideal lisp is not powerful or convenient enough for a real language.
Dotted pairs have been around since at least lisp 1.5. ' since at least the early 70s. Where do you get this "Lisp ideal" from? And why do you place the departure from the ideal at Common Lisp?
>The length of a language manual is not a commensurate metric.
Just so. For instance, it includes much that might otherwise be in a spearate "library" document.
>[...] >Guy Steele ( the editor of CLtL ) was also the coauthor of a reference >manual for C which was 2 or 3 times as long as K&R. Steele's C manual >was as detailed as the Lisp manual, with discussion and justifications >of various ANSI features, and comparison with non-ANSI compilers, etc. >A lot of explaination of WHY and WHY-NOT.
> The functional equivalent of the same level of documentation >for C would be Harrison & Steele's C Reference Manual *PLUS* another >book on portability and the standard C libraries. This would probably >equal the page count of CLtL1 ( The first version, which is the one >I have on my shelf. CLtL2, which adds documentation for CLOS probably >regains the record again. )
Note BTW that CLtL II describes some things that are *not part of Common lisp* (e.g. series) and some things that would ordinarily be considered a separate program (the XP-derived pretty-printer).
Some other randomly selected comparisons:
CLtL I is shorter than Knuth vol 1. CLtL II is shorter than the BSD library man pages, not to mention the X man pages. The XView Programming Manual alone (which I happen to have on my bookshelf) is as big as CLtL I.
>I'm not arguing that Common Lisp isn't, in many ways, a complex >language. Just that the size of the manual is NOT usually a reasonable >mesaure of complexity. ( I could also argue that there are different >TYPES of complexity, and that some types are better/worse than others, >but I'll save that argument for later! )
Is TeX simpler than CL? Is C++? I don't find them so.
In article <CuDn4G...@cogsci.ed.ac.uk>, j...@aiai.ed.ac.uk (Jeff Dalton) writes:
...
|> Anyway, COND must be just about the least readable part of Lisp. |> It's not too bad once you're used to it, but COND alone does not |> a fair comparison make. It's kind of like comparing Lisp and C |> by comparing (if test then-part else-part) with test ? then-part : |> else-part. |> |> The usual answer for COND is "if you don't like COND, you can define |> an macro", but maybe that's not fair either. After all, COND is in |> the standard language, while this macro isn't, and having everyone |> write their own macro isn't a very good solution.
Actually, in Common Lisp, IF is the primitive special form, and COND is a system-defined macro that presumably expands into an expression using IF.
-- James McDonald Kestrel Institute mcdon...@kestrel.edu 3260 Hillview Ave. (415) 493-6871 ext. 339 Palo Alto, CA 94304 fax: (415) 424-1807
>|> Anyway, COND must be just about the least readable part of Lisp. >|> It's not too bad once you're used to it, but COND alone does not >|> a fair comparison make. It's kind of like comparing Lisp and C >|> by comparing (if test then-part else-part) with test ? then-part : >|> else-part. >|> >|> The usual answer for COND is "if you don't like COND, you can define >|> an macro", but maybe that's not fair either. After all, COND is in >|> the standard language, while this macro isn't, and having everyone >|> write their own macro isn't a very good solution.
>Actually, in Common Lisp, IF is the primitive special form, and >COND is a system-defined macro that presumably expands into an >expression using IF.
Sure, but that's not inconsistent with what I said. COND is (almost always) built-in while (if ... then ... else ...) isn't.
In article <CuL4xn....@cogsci.ed.ac.uk> j...@aiai.ed.ac.uk (Jeff Dalton) writes:
--> In article <1994Aug13.223027.14...@kestrel.edu> mcdon...@kestrel.edu (Jim McDonald) writes: --> > --> >In article <CuDn4G...@cogsci.ed.ac.uk>, j...@aiai.ed.ac.uk (Jeff Dalton) writes: --> >... --> > --> >|> Anyway, COND must be just about the least readable part of Lisp. --> >|> It's not too bad once you're used to it, but COND alone does not --> >|> a fair comparison make. It's kind of like comparing Lisp and C --> >|> by comparing (if test then-part else-part) with test ? then-part : --> >|> else-part. --> >|> --> >|> The usual answer for COND is "if you don't like COND, you can define --> >|> an macro", but maybe that's not fair either. After all, COND is in --> >|> the standard language, while this macro isn't, and having everyone --> >|> write their own macro isn't a very good solution. --> > --> >Actually, in Common Lisp, IF is the primitive special form, and --> >COND is a system-defined macro that presumably expands into an --> >expression using IF. --> --> Sure, but that's not inconsistent with what I said. COND is (almost --> always) built-in while (if ... then ... else ...) isn't.
well, in Allegro 4.2, COND (to my surprise) expands into IF/THEN/ELSE nestings.
CLtL2 says it's a macro. my Explorer says it's a function. I could swear that some years ago it was a macro on the Explorer and that it expanded into some rats-nest of tagbody and GO and stuff like that...
My personal main bugbear of TCL is that, if I recall correctly, what we more mortals would code as a=b+c comes out as set a [expr $b+$c]. This hardly strikes me as intuitive. Also there is the array syntax which escapes me for the moment. If it weren't so popular I'd guess it was some variety of practical joke.
My personal main bugbear of TCL is that, if I recall correctly, what we more mortals would code as a=b+c comes out as set a [expr $b+$c].
No, actually mere mortals would code that as "ADD B TO C GIVING A". or maybe "(setq a (+ b c))". or maybe "b c + /a def". [Apologies to comp.lang.lisp'ers if that's totally bogus lisp.]
Seriously, there's nothing wrong with having a personal preference for the way things look in C over the way things look in Perl or Tcl or PostScript or APL, but the way expressions look in Tcl isn't a _failing of the language_, and it isn't _a priori_ less intuitive than some other way, it's just less like C. (And, to be honest, a little less like standard algebraic notation, although the "a=" part is pure C, because it's procedural rather than descriptive.)
I guess you could argue that it's inherently inferior to C because it requires more typing.
Of course, Tcl is a scripting language, so it makes sense to compare it to sh or csh, which do things more like Tcl than like C. (Perl is somewhere in the middle, but more like C.)
This hardly strikes me as intuitive. Also there is the array syntax which escapes me for the moment.
Hunh?
set foo(bar) something puts $foo(bar) set foo(1) something_else set i 1 puts $foo($i)
what's non-intuitive about that?
If it weren't so popular I'd guess it was some variety of practical joke.
-- John Styles
Ain't a practical joke, ain't necessarily better than what you like, ain't necessarily worse. Just differ'nt. Tcl makes radically different tradeoffs than C. That means they're good for different kinds of things.
All IMHO, of course.
-- Jay Sekora j...@bu.edu BU Information Technology (MIME ok) 111 Cummington Street Boston, MA 02115 +1 617 353 2780
: My personal main bugbear of TCL is that, if I recall correctly, : what we more mortals would code as a=b+c comes out as set a [expr $b+$c]. : This hardly strikes me as intuitive. Also there is the array syntax which
I think this is a matter of consistancy. The parsing rules for Tcl are very simple, and very consistent. What you define as 'mere mortals' are actually 'people who have coded a lot in other languages such as C'. (I have also coded a lot in C, but I try to keep an open mind.) For non programmers the a=b+c is also hard to grasp; what' this equation doing here.
Lets make a comparison of C and Tcl in several cases to show you what I mean with consistancy:
I want to put '1' in variable a: C: int a; a=1; Tcl: set a 1
I want to put 'Hello world' in variable a: C: char a[12]; strcpy(a,"Hello world"); Tcl: set a "Hello world"
I want to put '<value of b> + <value of c>' in variable a: C (of course 20 might not be enough, but to keep it simple): char a[20]; int b,c; b=23; c=46456; sprintf(a,"%d + %d",b,c); Tcl: set b 23 set c 46456 set a "$b + $c"
I want to put the result of <value of b> + <value of c> in variable a: C: int a,b,c b=23; c=45; a=b+c; Tcl: set b 23 set c 45 set a [expr $b + $c]
: escapes me for the moment. : If it weren't so popular I'd guess it was some variety of practical joke. : : -- : John Styles I can't agree. Tcl is actually very nice to use.
jsty...@aivis.demon.co.uk (John Styles) writes: >My personal main bugbear of TCL is that, if I recall correctly, >what we more mortals would code as a=b+c comes out as set a [expr $b+$c]. >This hardly strikes me as intuitive. Also there is the array syntax which >escapes me for the moment.
Well, arrays seem to work OK for me, but I really find lists much easier (if less efficient). But I totally agree that the inability to do simple assignments without having to call "expr" is a pain. The more programming I do in TCL, the less I like that aspect of things.
I also hate the fact that it is so easy to forget to put that damn "$" in front of a variable when you want to take it's value. I almost wish it were the other way around, like in C - variable name resolves to it's value, and you need a "$" to refer to the variable's storage location.
However, both of these "problems" make it much easier to write a small and efficient interpreter, so these might be reasonable tradeoffs.
>If it weren't so popular I'd guess it was some variety of practical joke.
Hardly. It *is* popular for a reason, it gets the job done with fewer problems than other tools. I do almost all my scripting now in TCL, and very little coding in C or sh (only use these for tools used outside my area).
-- |+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++| | Michael J. Suzio msu...@tiamat.umd.umich.edu | | Marketing Director - Friday Knight Games | | aka "That F*K*G company!" | |+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++|
In article <330iu3$...@news.bu.edu>, Jay Sekora <j...@bu.edu> wrote: > No, actually mere mortals would code that as "ADD B TO C GIVING A". > or maybe "(setq a (+ b c))". or maybe "b c + /a def". [Apologies > to comp.lang.lisp'ers if that's totally bogus lisp.]
No, that's fine, but your Postscript should be {/a b c add def}. -- Peter da Silva `-_-' Network Management Technology Incorporated 'U` 1601 Industrial Blvd. Sugar Land, TX 77478 USA +1 713 274 5180 "Hast Du heute schon Deinen Wolf umarmt?"
In article <1994Aug19.095616.15...@reks.uia.ac.be> deri...@reks.uia.ac.be (Peter.DeRijk) writes:
From: deri...@reks.uia.ac.be (Peter.DeRijk) Organization: U.I.A. X-Newsreader: Tin 1.1 PL5 References: <777233870...@aivis.demon.co.uk> Date: Fri, 19 Aug 1994 09:56:16 GMT Lines: 59
John Styles (jsty...@aivis.demon.co.uk) wrote: : My personal main bugbear of TCL is that, if I recall correctly, : what we more mortals would code as a=b+c comes out as set a [expr $b+$c]. : This hardly strikes me as intuitive. Also there is the array syntax which
I think this is a matter of consistancy. The parsing rules for Tcl are very simple, and very consistent. What you define as 'mere mortals' are actually 'people who have coded a lot in other languages such as C'. (I have also coded a lot in C, but I try to keep an open mind.) For non programmers the a=b+c is also hard to grasp; what' this equation doing here.
Lets make a comparison of C and Tcl in several cases to show you what I mean with consistancy:
I want to put '1' in variable a: C: int a; a=1; Tcl: set a 1
Common Lisp: (setf a 1)
I want to put 'Hello world' in variable a: C: char a[12]; strcpy(a,"Hello world"); Tcl: set a "Hello world"
Common Lisp (setf a "Hello world")
I want to put '<value of b> + <value of c>' in variable a: C (of course 20 might not be enough, but to keep it simple): char a[20]; int b,c; b=23; c=46456; sprintf(a,"%d + %d",b,c); Tcl: set b 23 set c 46456 set a "$b + $c"
Common Lisp (setf b 23) (setf c 46453) (setf a (format nil "~D + ~D" b c))
I want to put the result of <value of b> + <value of c> in variable a: C: int a,b,c b=23; c=45; a=b+c; Tcl: set b 23 set c 45 set a [expr $b + $c]
Common Lisp (setf b 23) (setf c 46453) (setf a (+ b c)) or (setf a #$ b+c $) Yes! Infix notation in Common Lisp!
I can't agree. Tcl is actually very nice to use.
I can't agree. Common Lisp is actually nice to use. :) -- Marco Antoniotti - Resistente Umano --------------------------------------------------------------------------- ---- Robotics Lab | room: 1220 - tel. #: (212) 998 3370 Courant Institute NYU | e-mail: marc...@cs.nyu.edu
...e` la semplicita` che e` difficile a farsi. ...it is simplicity that is difficult to make. Bertholdt Brecht
j...@caedmon.bu.edu (Jay Sekora) writes: >John Styles (jsty...@aivis.demon.co.uk) wrote: >Seriously, there's nothing wrong with having a personal preference >for the way things look in C over the way things look in Perl or Tcl >or PostScript or APL, but the way expressions look in Tcl isn't a >_failing of the language_, and it isn't _a priori_ less intuitive >than some other way
[stuff deleted]
>-- >Jay Sekora j...@bu.edu >BU Information Technology (MIME ok) >111 Cummington Street >Boston, MA 02115 +1 617 353 2780
I don't want to focus on TCL syntax (or C or APL). What I'd like to discuss is this idea of personal preference. Over the years I've observed that discussions of the merits of languages or particular constructs always seem to end when someone states that its use is a matter of 'preference'.
Do people really think that software development has become enough of an engineering discipline -- that is, has reached levels of comparative technical competence across *most* practitioners -- that 'preference' is a valid argument?
In the TCL discussion that prompted my message (and this was just the most recent in a long line of such discussions on more newsgroups than I can count) I think an objective analysis could be done to determine that one or the other syntax under discussion was more intuitive or useful, or just *standard*. This is the whole idea of user interface usability testing. In lieu of empirical results, we can surely at least perform some simple analysis be careful argumentation and refutation.
But my main point is that 'preference' is not a valid argument (at least not at this stage in the development of software engineering).
[The Mighty Captain Flame-Bait dons his Invulnerable Asbestos Suit...]
-- --------------------------------------------------------------------------- ----- Jeff Kotula kot...@camax.com Camax Systems Inc. Speaking only for myself -----------------------------------------------
In article <MARCOXA.94Aug20132...@mosaic.nyu.edu> marc...@mosaic.nyu.edu (Marco Antoniotti) writes: >Since we are at it... let's make some more noise. >In article <1994Aug19.095616.15...@reks.uia.ac.be> deri...@reks.uia.ac.be (Peter.DeRijk) writes: > ... What you define as 'mere mortals' are actually > 'people who have coded a lot in other languages such as C'. (I have also > coded a lot in C, but I try to keep an open mind.) For non programmers the > a=b+c is also hard to grasp; what' this equation doing here.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Huhh ??? Mere mortals are people who happened to attend any school that managed to teach them the basic algebra. For all those 99.99 % of population the expression: a = b + c has a clear meaning, whereas: set a 1 is something new.
However, programmers, who may account for some 0.01 % of Earth population are a different breed. For them, a = b + c may sound like "C" (rather than algebra) A = B + C may sound like FORTRAN SET A 1 may sound like COBOL
The problem with (many) programming languages is that they (for whetever reson) depart from paradigms that most people have learned at school. In some areas, it has clear advantages. In others, this conflict between language syntax and "algebra syntax" (as hammered into our heads at school) makes grasping such language "less intuitive", at least until the hammered-in expectation of an "algebra syntax" is broken.
For people who are exposed to a multitude of programming languages, the "algebra syntax" fixation is broken early in the process. For others, such as engineers who "also learned to code", this will be more difficult.
But on the original subject. Syntactical "cleanliness" and other "stuff" are, in my experience, much less important than - I can make it what I want - I can make changes fast and see the result NOW
This is why so many people like "C" with all it's bizzaire quirks (they can make it do whatever they want, good or bad), and this is why people like Tcl (they can see their changes NOW).
After that, what is "better", "cleaner", "more consistent" etc. has a very little value beyond estetics.
--
>>> Opinions presented above are solely of my own, not those of my employer <<<
Martin Brunecky mar...@xvt.com (303)443-5130 ext 229 or 443-4223
Jeff Kotula <kot...@camax.com> wrote: >Do people really think that software development has become enough of an >engineering discipline -- that is, has reached levels of comparative >technical competence across *most* practitioners -- that 'preference' is a >valid argument?
I think the relative [in]competence of most practitioners isn't the major issue; it's only one of many. You should always try to pick the best tool for a job, and sometimes that choice is a matter of preference, of taste.
The choice of programming language should reflect many factors, including how well you know the languages, whether the job is big enough to justify the cost of learning a new one, what features are available in each language, what language implementations are available and how good they are, who will have to support the resulting program and for how long, and so on. Sometimes there won't be a clear winner, given all the factors. Since nobody knows enough to really objectively evaluate all possible factors against all conceivable languages, there will be many cases where people disagree. Much of the time it's reasonable to call such cases ``matter of taste'', and leave it to individual preference.
: In the TCL discussion that prompted my message (and this was just the most : recent in a long line of such discussions on more newsgroups than I can : count) I think an objective analysis could be done to determine that one or : the other syntax under discussion was more intuitive or useful, or just : *standard*. This is the whole idea of user interface usability testing. In : lieu of empirical results, we can surely at least perform some simple : analysis be careful argumentation and refutation.
Some of this was based on a common view of what program variables are. The common view not always being the most straightforward.
I could argue every variable should be explicitly declared and devarred. It would certainly clean up C++ syntax and semantics.
-- Tha se eorl ongan for his ofermode | smr...@netcom.com PO Box 1563 alyfan landes to fela lathere theode. | Cupertino, California ... ond lof-gearnost. | (xxx)xxx-xxxx 95013