Close Menu
Ztoog
    What's Hot
    Science

    ‘Spectacular’ new orchid species is pollinated by moths

    Mobile

    Apple made the wrong decision not bringing the Apple Watch to Android

    Mobile

    Apple promises software update to lower the iPhone 12’s radiation in France

    Important Pages:
    • About Us
    • Contact us
    • Privacy Policy
    • Terms & Conditions
    Facebook X (Twitter) Instagram Pinterest
    Facebook X (Twitter) Instagram Pinterest
    Ztoog
    • Home
    • The Future

      What is Project Management? 5 Best Tools that You Can Try

      Operational excellence strategy and continuous improvement

      Hannah Fry: AI isn’t as powerful as we think

      FanDuel goes all in on responsible gaming push with new Play with a Plan campaign

      Gettyimages.com Is the Best Website on the Internet Right Now

    • Technology

      Iran war: How could it end?

      Democratic senators question CFTC staffing cuts in Chicago enforcement office

      Google’s Cloud AI lead on the three frontiers of model capability

      AMD agrees to backstop a $300M loan from Goldman Sachs for Crusoe to buy AMD AI chips, the first known case of AMD chips used as debt collateral (The Information)

      Productivity apps failed me when I needed them most

    • Gadgets

      macOS Tahoe 26.3.1 update will “upgrade” your M5’s CPU to new “super” cores

      Lenovo Shows Off a ThinkBook Modular AI PC Concept With Swappable Ports and Detachable Displays at MWC 2026

      POCO M8 Review: The Ultimate Budget Smartphone With Some Cons

      The Mission: Impossible of SSDs has arrived with a fingerprint lock

      6 Best Phones With Headphone Jacks (2026), Tested and Reviewed

    • Mobile

      Android’s March update is all about finding people, apps, and your missing bags

      Watch Xiaomi’s global launch event live here

      Our poll shows what buyers actually care about in new smartphones (Hint: it’s not AI)

      Is Strava down for you? You’re not alone

      The Motorola Razr FIFA World Cup 2026 Edition was literally just unveiled, and Verizon is already giving them away

    • Science

      Big Tech Signs White House Data Center Pledge With Good Optics and Little Substance

      Inside the best dark matter detector ever built

      NASA’s Artemis moon exploration programme is getting a major makeover

      Scientists crack the case of “screeching” Scotch tape

      Blue-faced, puffy-lipped monkey scores a rare conservation win

    • AI

      Online harassment is entering its AI era

      Meet NullClaw: The 678 KB Zig AI Agent Framework Running on 1 MB RAM and Booting in Two Milliseconds

      New method could increase LLM training efficiency | Ztoog

      The human work behind humanoid robots is being hidden

      NVIDIA Releases DreamDojo: An Open-Source Robot World Model Trained on 44,711 Hours of Real-World Human Video Data

    • Crypto

      Google paid startup Form Energy $1B for its massive 100-hour battery

      Ethereum Breakout Alert: Corrective Channel Flip Sparks Impulsive Wave

      Show Your ID Or No Deal

      Jane Street sued for alleged front-running trades that accelerated Terraform Labs meltdown

      Bitcoin Trades Below ETF Cost-Basis As MVRV Signals Mounting Pressure

    Ztoog
    Home » The Real Problem with Software Development – O’Reilly
    Technology

    The Real Problem with Software Development – O’Reilly

    Facebook Twitter Pinterest WhatsApp
    The Real Problem with Software Development – O’Reilly
    Share
    Facebook Twitter LinkedIn Pinterest WhatsApp

    A couple of weeks in the past, I noticed a tweet that mentioned “Writing code isn’t the problem. Controlling complexity is.” I want I might keep in mind who mentioned that; I might be quoting it quite a bit sooner or later. That assertion properly summarizes what makes software program improvement tough. It’s not simply memorizing the syntactic particulars of some programming language, or the numerous features in some API, however understanding and managing the complexity of the issue you’re attempting to resolve.

    We’ve all seen this many occasions. Lots of functions and instruments begin easy. They do 80% of the job nicely, possibly 90%. But that isn’t fairly sufficient. Version 1.1 will get just a few extra options, extra creep into model 1.2, and by the point you get to three.0, a sublime person interface has was a multitude. This enhance in complexity is one motive that functions are likely to develop into much less useable over time. We additionally see this phenomenon as one software replaces one other. RCS was helpful, however didn’t do the whole lot we would have liked it to; SVN was higher; Git does nearly the whole lot you can need, however at an unlimited price in complexity. (Could Git’s complexity be managed higher? I’m not the one to say.) OS X, which used to trumpet “It just works,” has advanced to “it used to just work”; probably the most user-centric Unix-like system ever constructed now staggers beneath the load of recent and poorly thought-out options.



    Learn sooner. Dig deeper. See farther.

    The drawback of complexity isn’t restricted to person interfaces; that could be the least vital (although most seen) side of the issue. Anyone who works in programming has seen the supply code for some venture evolve from one thing brief, candy, and clear to a seething mass of bits. (These days, it’s usually a seething mass of distributed bits.) Some of that evolution is pushed by an more and more complicated world that requires consideration to safe programming, cloud deployment, and different points that didn’t exist just a few many years in the past. But even right here: a requirement like safety tends to make code extra complicated—however complexity itself hides safety points. Saying “yes, adding security made the code more complex” is fallacious on a number of fronts. Security that’s added as an afterthought nearly at all times fails. Designing safety in from the beginning nearly at all times results in a less complicated consequence than bolting safety on as an afterthought, and the complexity will keep manageable if new options and safety develop collectively. If we’re severe about complexity, the complexity of constructing safe programs must be managed and managed in step with the remainder of the software program, in any other case it’s going so as to add extra vulnerabilities.

    That brings me to my important level. We’re seeing extra code that’s written (not less than in first draft) by generative AI instruments, equivalent to GitHub Copilot, ChatGPT (particularly with Code Interpreter), and Google Codey. One benefit of computer systems, after all, is that they don’t care about complexity. But that benefit can be a major drawback. Until AI programs can generate code as reliably as our present technology of compilers, people might want to perceive—and debug—the code they write. Brian Kernighan wrote that “Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it?” We don’t desire a future that consists of code too intelligent to be debugged by people—not less than not till the AIs are prepared to do this debugging for us. Really good programmers write code that finds a manner out of the complexity: code that could be a bit longer, a bit clearer, rather less intelligent so that somebody can perceive it later. (Copilot working in VSCode has a button that simplifies code, however its capabilities are restricted.)

    Furthermore, after we’re contemplating complexity, we’re not simply speaking about particular person strains of code and particular person features or strategies. Most skilled programmers work on giant programs that may encompass hundreds of features and hundreds of thousands of strains of code. That code could take the type of dozens of microservices working as asynchronous processes and speaking over a community. What is the general construction, the general structure, of those packages? How are they saved easy and manageable? How do you concentrate on complexity when writing or sustaining software program which will outlive its builders? Millions of strains of legacy code going again so far as the Nineteen Sixties and Nineteen Seventies are nonetheless in use, a lot of it written in languages which can be not common. How will we management complexity when working with these?

    Humans don’t handle this type of complexity nicely, however that doesn’t imply we are able to take a look at and overlook about it. Over the years, we’ve step by step gotten higher at managing complexity. Software structure is a definite specialty that has solely develop into extra vital over time. It’s rising extra vital as programs develop bigger and extra complicated, as we depend on them to automate extra duties, and as these programs have to scale to dimensions that had been nearly unimaginable just a few many years in the past. Reducing the complexity of recent software program programs is an issue that people can remedy—and I haven’t but seen proof that generative AI can. Strictly talking, that’s not a query that may even be requested but. Claude 2 has a most context—the higher restrict on the quantity of textual content it will probably contemplate at one time—of 100,000 tokens1; presently, all different giant language fashions are considerably smaller. While 100,000 tokens is large, it’s a lot smaller than the supply code for even a reasonably sized piece of enterprise software program. And when you don’t have to know each line of code to do a high-level design for a software program system, you do need to handle numerous data: specs, person tales, protocols, constraints, legacies and way more. Is a language mannequin as much as that?

    Could we even describe the objective of “managing complexity” in a immediate? A couple of years in the past, many builders thought that minimizing “lines of code” was the important thing to simplification—and it might be straightforward to inform ChatGPT to resolve an issue in as few strains of code as attainable. But that’s not likely how the world works, not now, and never again in 2007. Minimizing strains of code typically results in simplicity, however simply as usually results in complicated incantations that pack a number of concepts onto the identical line, usually counting on undocumented uncomfortable side effects. That’s not handle complexity. Mantras like DRY (Don’t Repeat Yourself) are sometimes helpful (as is many of the recommendation in The Pragmatic Programmer), however I’ve made the error of writing code that was overly complicated to remove one in all two very related features. Less repetition, however the consequence was extra complicated and tougher to know. Lines of code are straightforward to rely, but when that’s your solely metric, you’ll lose observe of qualities like readability that could be extra vital. Any engineer is aware of that design is all about tradeoffs—on this case, buying and selling off repetition in opposition to complexity—however tough as these tradeoffs could also be for people, it isn’t clear to me that generative AI could make them any higher, if in any respect.

    I’m not arguing that generative AI doesn’t have a task in software program improvement. It actually does. Tools that may write code are actually helpful: they save us wanting up the small print of library features in reference manuals, they save us from remembering the syntactic particulars of the much less generally used abstractions in our favourite programming languages. As lengthy as we don’t let our personal psychological muscular tissues decay, we’ll be forward. I’m arguing that we are able to’t get so tied up in automated code technology that we overlook about controlling complexity. Large language fashions don’t assist with that now, although they could sooner or later. If they free us to spend extra time understanding and fixing the higher-level issues of complexity, although, that might be a major acquire.

    Will the day come when a big language mannequin will have the ability to write 1,000,000 line enterprise program? Probably. But somebody should write the immediate telling it what to do. And that individual might be confronted with the issue that has characterised programming from the beginning: understanding complexity, realizing the place it’s unavoidable, and controlling it.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp

    Related Posts

    Technology

    Iran war: How could it end?

    Technology

    Democratic senators question CFTC staffing cuts in Chicago enforcement office

    Technology

    Google’s Cloud AI lead on the three frontiers of model capability

    Technology

    AMD agrees to backstop a $300M loan from Goldman Sachs for Crusoe to buy AMD AI chips, the first known case of AMD chips used as debt collateral (The Information)

    Technology

    Productivity apps failed me when I needed them most

    Technology

    Makers are turning discarded vapes into tiny musical instruments

    Technology

    Best 85-Inch TV for 2026

    Technology

    Breaking Boundaries in Wireless Communication: Simulating Animated, On-Body RF Propagation

    Leave A Reply Cancel Reply

    Follow Us
    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    Top Posts
    AI

    Researchers at Northeastern University Propose NeuFlow: A Highly Efficient Optical Flow Architecture that Addresses both High Accuracy and Computational Cost Concerns

    Real-time, high-accuracy optical movement estimation is vital for analyzing dynamic scenes in laptop imaginative and…

    Crypto

    What is Solana?

    What is Solana? Since the explosion of cryptocurrencies, each traders and cryptocurrency lovers have carved…

    Technology

    Your Tidal subscription is getting cheaper, but there’s a catch

    TL;DR Tidal is merging its HiFi and HiFi Plus plans into a single, cheaper tier…

    Gadgets

    15 Best Mattresses You Can Buy Online (2023)

    Searching for the(*15*) greatest mattress on-line is a waking nightmare, and selecting the mistaken one…

    Science

    How to spot the constellations Perseus and Auriga

    ECKHARD SLAWIK/SCIENCE PHOTO LIBRARY THIS week we will likely be searching for two necessary constellations…

    Our Picks
    Crypto

    Trezor launches two new devices to help onboard crypto newbies

    Mobile

    Meet the OnePlus Turbo in these leaked live images

    The Future

    Opal’s tiny, laptop-friendly Tadpole webcam is already 20 percent off

    Categories
    • AI (1,560)
    • Crypto (1,826)
    • Gadgets (1,870)
    • Mobile (1,910)
    • Science (1,939)
    • Technology (1,862)
    • The Future (1,716)
    Most Popular
    Crypto

    Top 50 Cryptocurrencies – Small Business Trends

    Technology

    7 of best video games you didn’t play in 2023

    Gadgets

    The best coffee travel mugs of 2023

    Ztoog
    Facebook X (Twitter) Instagram Pinterest
    • Home
    • About Us
    • Contact us
    • Privacy Policy
    • Terms & Conditions
    © 2026 Ztoog.

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