Innovations that would help developers?

Innovations that would help developers?

The classic Edit-Compile-Debug cycle has been around since the 50's, and we're still using that model to build software today. Hardware and display technology has improved to the point where we probably have terraflops of CPU bandwidth that's going unused today.

In another thread, people were talking about how this or that are no longer "innovative", and to ME, that implies something is missing for them in terms of what's possible. What is it? What's missing? What would really make a difference today, this year, in the next few years?

I personally don't see faster computers, more RAM, or bigger storage devices as providing much more than a marginally better experience.

I mean, how much quicker can we make the Edit-Compile-Debug cycle, and how can it possibly translate into significant improvements in our productivity?

Today, it seems the perception of overall programmer skills has shifted from "the ability to figure stuff out and structure software" to "how many libraries and APIs do you know by heart" multiplied by so many different languages.

The classic Edit-Compile-Debug cycle hasn't changed, although some languages replace the "compile" step with "deploy" since they're mainly interpreted languages. (Or perhaps it's more accurate today to refer to this as Edit-Compile-Deploy-Debug?)

I'm curious what sorts of innovations y'all think would make significant, if not quantum improvements in software developer productivity?

(Let's agree to keep everything related to raw speed improvements out of the discussion, ok? We all know that HW will keep getting faster, while RAM and storage will keep growing. So what? We don't really leverage what's there now.)

Comments

  1. David Schwartz Well, in that case if I had one I would not share it here but make some money from it ;)

    ReplyDelete
  2. Do you know that the guy who created Swift at Apple was just hired by Google? Nobody thought what he was doing at Apple was of any particular significance, but it happened to catch on with people pretty quickly. He was just lucky enough to be at a job that allowed him to "play around" with new ideas. Ya gotta wonder how many thousands of other innovative ideas are floating around inside the Apple's of the world that never see the light of day. He's probably one-in-10,000 over the past few years who's idea actually went anywhere, and he's probably the last person to have expected it to happen.

    ReplyDelete
  3. Fuzz/monkey testing and automated smart fuzzers could be the next Dev-Thing-That-Requires-Lots-Of-CPU.
    It cannot test what should work, but can do wonders to detect crashes, infinite loops, memory bombs, odd behaviors and such.

    If we had 10 times more memory and CPU on dev "machines", full state logging could become practical: you would not just be able to place breakpoints and inspect variables, but also step backward in execution time to figure out a-posteriori the conditions that led to undesired behavior.

    And if you had full state logging, you would then need advanced search mechanism and pattern detection to help pinpoint exactly what the developer needs to look at to figure out a bug (ie. construct a "simplified critical path" of all conditions, states, methods that led to an undesired state).

    So plenty of opportunities to use extra CPU and RAM :)


    David Schwartz I am not convinced about touch UI for development (or anything lasting too long), what you can do with touch is way too imprecise and too limited, plus your fingers/hands get in the way, and your arms get tired real quick when touching on a larger screen.

    Incidentally, it might be why tablets are struggling outside of media consumption: you can touch on a smartphone with much less fatigue than on a larger 10" tablet. You do not need to move your arms when touching on a phone, but you do for a large tablet or touchscreen.

    Mouse, keyboard and smartphone touch UIs have in common minimal arm movement.

    ...and yeah, that makes us all look like lazy couch potatoes :)

    ReplyDelete

Post a Comment