Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Error’d: Pickup Sticklers

      September 27, 2025

      From Prompt To Partner: Designing Your Custom AI Assistant

      September 27, 2025

      Microsoft unveils reimagined Marketplace for cloud solutions, AI apps, and more

      September 27, 2025

      Design Dialects: Breaking the Rules, Not the System

      September 27, 2025

      Building personal apps with open source and AI

      September 12, 2025

      What Can We Actually Do With corner-shape?

      September 12, 2025

      Craft, Clarity, and Care: The Story and Work of Mengchu Yao

      September 12, 2025

      Cailabs secures €57M to accelerate growth and industrial scale-up

      September 12, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Using phpinfo() to Debug Common and Not-so-Common PHP Errors and Warnings

      September 28, 2025
      Recent

      Using phpinfo() to Debug Common and Not-so-Common PHP Errors and Warnings

      September 28, 2025

      Mastering PHP File Uploads: A Guide to php.ini Settings and Code Examples

      September 28, 2025

      The first browser with JavaScript landed 30 years ago

      September 27, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured
      Recent
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»News & Updates»Representative Line: Not What They Meant By Watching “AndOr”

    Representative Line: Not What They Meant By Watching “AndOr”

    August 26, 2025

    Today’s awfulness comes from Tim H, and while it’s technically more than one line, it’s so representative of the code, and so short that I’m going to call this a representative line. Before we get to the code, we need to talk a little history.

    Tim’s project is roughly three decades old. It’s a C++ tool used for a variety of research projects, and this means that 90% of the people who have worked on it are PhD candidates in computer science programs. We all know the rule of CompSci PhDs and programming: they’re terrible at it. It’s like the old joke about the farmer who, when unable to find an engineer to build him a cow conveyer, asked a physicist. After months of work, the physicist introduced the result: “First, we assume a perfectly spherical cow in a vacuum…”

    Now, this particularly function has been anonymized, but it’s easy to understand what the intent was:

    bool isFooOrBar() {
      return isFoo() && isBar();
    }
    

    The obvious problem here is the mismatch between the function name and the actual function behavior- it promises an or operation, but does an and, which the astute reader may note are different things.

    I think this offers another problem, though. Even if the function name were correct, given the brevity of the body, I’d argue that it actually makes the code less clear. Maybe it’s just me, but isFoo() && isBar() is more clear in its intent than isFooAndBar(). There’s a cognitive overhead to adding more symbols that would make me reluctant to add such a function.

    There may be an argument about code-reuse, but it’s worth noting- this function is only ever called in one place.

    This particular function is not itself, all that new. Tim writes:

    This was committed as new code in 2010 (i.e., not a refactor). I’m not sure if the author changed their mind in the middle of writing the function or just forgot which buttons on the keyboard to press.

    More likely, Tim, is that they initially wrote it as an “or” operation and then discovered that they were wrong and it needed to be an “and”. Despite the fact that the function was only called in one place, they opted to change the body without changing the name, because they didn’t want to “track down all the places it’s used”. Besides, isn’t the point of a function to encapsulate the behavior?

    [Advertisement]
    Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!

    Source: Read More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleLog Outgoing HTTP Requests with the Laravel Spy Package
    Next Article Rediscovering joy in learning: Jason Lengstorf on the state of development

    Related Posts

    News & Updates

    Building personal apps with open source and AI

    September 12, 2025
    News & Updates

    What Can We Actually Do With corner-shape?

    September 12, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    The Architecture of Mathematics – And How Developers Can Use it in Code

    Development

    Announcing the new cluster creation experience for Amazon SageMaker HyperPod

    Machine Learning

    Qualcomm waarschuwt voor misbruik van GPU-lekken in Androidtelefoons

    Security

    Backups Are Under Attack: How to Protect Your Backups

    Development

    Highlights

    OpenAI Expresses Interest in Acquiring Chrome Amidst Google Antitrust Scrutiny

    April 23, 2025

    OpenAI Expresses Interest in Acquiring Chrome Amidst Google Antitrust Scrutiny

    According to a report by Reuters, the head of product for OpenAI’s ChatGPT revealed that if Google were ever compelled to divest its Chrome browser, OpenAI would express interest in acquiring it.
    Shou …
    Read more

    Published Date:
    Apr 23, 2025 (4 hours, 53 minutes ago)

    Vulnerabilities has been mentioned in this article.

    CVE-2024-4947

    JavaScript Weekly Insights #20: Latest Frameworks, Tools & Trends

    April 4, 2025

    Ukrainian Government Systems Targeted With Backdoors Hidden in Cloud APIs and Docs

    June 23, 2025

    How to Make a Simple JavaScript Quiz

    July 16, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.