Slashdot Mirror


Symbolic vs. Mnemonic Relational Operators: Is "GT" Greater Than ">"?

theodp writes: "Mnemonic operators," writes SAS's Rick Wicklin as he weighs the pros-and-cons of Symbolic Versus Mnemonic Logical Operators, "tend to appear in older languages like FORTRAN, whereas symbolic operators are common in more recent languages like C/C++, although some relatively recent scripting languages like Perl, PHP, and Windows PowerShell also support mnemonic operators. SAS software has supported both operators in the DATA step since the very earliest days, but the SAS/IML language, which is more mathematically oriented, supports only the symbolic operators. Functionally, the operators are equivalent, so which ones you use is largely a matter of personal preference. Since consistency and standards are essential when writing computer programming, which operators should you choose?"

22 of 304 comments (clear)

  1. mnemonic assumes everyone speaks English by Anonymous Coward · · Score: 3, Insightful

    Stick to simple mathematical symbols for the basic comparators we've use since elementary school. Shame about the fucking mess with = and ==.

    1. Re:mnemonic assumes everyone speaks English by Alain+Williams · · Score: 4, Insightful

      I sometimes wonder how many zillions hours of programmer debugging time would have been saved if K&R had used ':=' for assignment (like Pascal) rather than '=' ? The number of times people have assigned rather than compared is huge.

  2. Are there any non-English languages? by xxxJonBoyxxx · · Score: 4, Insightful

    Are there any non-English languages or anyone using the language for whom English is a challenge? If there are, the use of symbols would seem to be preferred over remembering what the first letters of "plus que" are in English. (FTW.)

  3. Knowledge of English by ledow · · Score: 4, Insightful

    ">" is universally understood in mathematics
    "GT" relies on a knowledge of English, and what it stands for, and thus what it means.

    But the bigger question - WHY does any language created nowadays have hard-coded operator names? If you prefer >, why not just use that and make it equivalent to GT in whatever default settings you provide? Why are you constrained to the choice of operators given to you and the mnemonics they choose to use?

    However, arguing over it is pointless. Change if it you can, otherwise it doesn't matter. If you can change it, or overload it, or rename it, or macro-ise it as you like, than it doesn't matter either.

    1. Re:Knowledge of English by cfalcon · · Score: 3, Insightful

      Because code review

    2. Re:Knowledge of English by countach · · Score: 4, Insightful

      I don't know if the world needs even more unreadable code where people are overriding the basic operator names.

  4. Re:Wow, a paper about GT by prunus.avium · · Score: 4, Interesting

    We're on /.. By definition we're all wasting time....usually instead of working.

    That being said, this raises some interesting questions about how our brains parse the languages. Would a mnemonic like GT be simpler to parse than >.

    Of course, I think this brings up the question of first language. Someone with English and the Latin alphabet may find the mnemonics easier but someone for whom the Latin alphabet is not their primary alphabet might handle the operators better.

  5. Ignored after the first sentence by OverlordQ · · Score: 4, Interesting

    They unfortunately used perl as an example. While yes Perl does have both gt and > one is a string comparison and the other is a numerical comparison.

    --
    Your hair look like poop, Bob! - Wanker.
    1. Re:Ignored after the first sentence by truckaxle · · Score: 3, Informative

      Perl has the right idea, but it's too easy to forget to use the right one, especially if you work with other languages.

      Actually it is quite easy to remember Perl's usage... The operator 'gt' uses strings and is used for a string comparison. The ">" is a math symbol and used for numeric comparison.

  6. Re:Do anything other than what Perl did by Anonymous Coward · · Score: 4, Informative

    In Perl, where there are both operators (e.g. gt and >), the textual one (gt) does a string comparison, while the mathematical one (>) does a numeric comparison, fairly consistently.

  7. It's all squiggles by OrangeTide · · Score: 3, Interesting

    It's all squiggles on the screen that I have to learn to interpret in the correct context.

    --
    “Common sense is not so common.” — Voltaire
  8. Re:Do anything other than what Perl did by nogginthenog · · Score: 5, Funny

    ^ This

    Not This?

  9. Re:The problem is using operators for other things by johnw · · Score: 5, Insightful

    It's one thing to use ">" for "less than".

    That would be almost bound to cause confusion.

  10. Re:Typing versus Reading by Xolotl · · Score: 4, Insightful

    The comparison operators > and < have been in use for four hundred years and are (or should have been) learned in primary school. They also work in any (human) language, not just in English, and map directly to what is used in mathematics. No one should be confused by them.

  11. Re:Of course! by cellocgw · · Score: 3, Funny

    Of course a Gin & Tonic is greater than some symbol

    Yes! Cue the blonde joke: "I'll have a Fifteen." bartender: "What?" blonde 'You never heard of a Seven and Seven?"

    thanks; try the veal.

    --
    https://app.box.com/WitthoftResume Code: https://github.com/cellocgw
  12. Not even correct. by whoever57 · · Score: 4, Informative

    He includes Perl as a language that has both symbolic and mnemonic operators, and says that functionally they are equivalent, but this isn't really correct. In Perl, for example, "==" is not the same as "eq": one is a numeric comparison, the other is a string comparison and for consistent results the correct operator must be used.

    --
    The real "Libtards" are the Libertarians!
    1. Re:Not even correct. by azcoyote · · Score: 4, Informative

      I can understand why one might dislike this distinction between string and numeric operators in Perl, but I personally like it a lot.

      Perl is an odd hybrid. On the one hand, it for the most part does not distinguish between different scalar data types syntactically (no strict declarations as in C++). This makes it a more casual language that is good for quick scripting within a limited environment (similar to JavaScript), but of course it could lead to confusion later on if a programmer reassigns variables to different data types on the fly. On the other hand, Perl solves potential confusions by using distinct operators for string and numeric operations. This means that (A) it is clear what is being done at any given point, and (B) it simplifies converting between numeric and string data types for on-the-fly operations. This is why Perl is amazing: you can do so much in a single, miniscule line of code, and yet everything you do is very clear and straight-forward in the syntax, however brief it is. Perl is thus capable to some extent of emulating one's flow of consciousness rather than requiring a strict, logical process according to clearly-defined data types. After all, my brain only seems to distinguish between string and numeric data types when I operate upon them (e.g. when I think about the number 2, I can freely flow between adding 3 to it and writing the number out as a word).

      --
      Incipiamus, fratres, servire Domino Deo, quia hucusque vix vel parum in nullo profecimus.
    2. Re:Not even correct. by Cederic · · Score: 3, Informative

      So you've averaged writing over a hundred lines of perl every day since Larry Wall first shared it?

      There's clearly something wrong with the language and/or you, but I'll be polite and avoid suggesting which.

  13. Re:Wow, a paper about GT by grimmjeeper · · Score: 4, Informative

    I would agree with you except for the horrendous number of hours wasted tracking down places where a single equal was used in place of a double. While lexical analysis tools can catch it, and coding standards (like putting the constant/literal value on the LHS) will help, it's still an unnecessarily wide trap that catches too many people.

    There is little real benefit to allowing an assignment to be used as a member of an encompassing expression. In fact, that "feature" only promotes overly complex statements that are harder to read and debug. And with optimizing compilers being so good these days, there's no reason not to break a statement into smaller, more readable pieces.

  14. It's not a matter of preference by jdavidb · · Score: 3, Informative

    relatively recent scripting languages like Perl ... Functionally, the operators are equivalent, so which ones you use is largely a matter of personal preference

    That is not the case in Perl at all! In Perl, operators like gt and lt are for string comparisons, and operators like are for numeric comparisons. Since in Perl you can conveniently transmute numbers intro strings and vice versa, which operator you use can make a whole lot of difference!

  15. Re:Is it really a waste of time? by nmb3000 · · Score: 5, Insightful

    We could say ">", "GT" or "gt", or perhaps even "greater than."

    I disagree. I believe > is easier to parse while reading code since it separates it from identifiers, control statements, constants, numbers, and other keywords. It's the same reason && is better than "AND" in C syntax derivatives.

    I'd be quite pleased with a language that understood all three to be the same thing, with similar broad expression capabilities for everything else as well.

    Please, no. Syntactic sugar is one thing but creating multiple equivalent ways to express the same thing is just a readability, support, and maintenance nightmare.

    explicit and English-like for the newcomer.

    Which is how we got COBOL. It turned out that just making source code use lots (and lots) of English words isn't enough to allow laymen to understand it or make changes, so all you end up with is a language that programmers find exhausting to read and annoying to write.

    --
    "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
    /)
  16. Re:Typing versus Reading by Waffle+Iron · · Score: 5, Interesting

    On the other hand, students and people in-general have gotten > and < confused for a long time.

    Many decades ago, my first grade teacher explained that these symbols are like alligators: They choose to chomp on the bigger meal. I've never been confused on these symbols since that day.