Slashdot Mirror


Ask Slashdot: How Will You Be Programming In a Decade? (cheney.net)

An anonymous reader writes: Programmer Dave Cheney raised an interesting question today: How will you be programming in a decade? If you look back to a decade ago, you can see some huge shifts in the software industry. This includes the rise of smartphones, ubiquitous cloud infrastructure, and containers. We've also seen an explosion of special-purpose libraries and environments, many with an emphasis on networking and scaling. At the same time, we still have a ton of people writing Java and C and Python. Some programmers have jumped headfirst into new tools like Light Table, while others are still quite happy with Emacs. So, programmers of Slashdot, I ask you: How do you think your work (or play) will change in the next ten years?

18 of 279 comments (clear)

  1. Easy. by hey! · · Score: 5, Funny

    With a gesture-based interface connected to my fishing rod.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    1. Re:Easy. by ranton · · Score: 3, Interesting

      I do see software development roles split between people still writing code and people using graphical (perhaps gesture based) interfaces designing workflows, approval processes, user interfaces, etc. Not sure how fishing rods factor in.

      I think my recent work with Salesforce has given a good glimpse of the future of software development, at least in the next decade or two that is. 90% of the work I would have done a decade ago is now handled by a third party platform, and I just work on the few things that need to be custom. That has been attempted by SAAS vendors before (even before it was called that), but never as well as Salesforce has done it. There is plenty of room for improvement, but their software gives an idea of what can be accomplished. Though I hope someone else beats out Salesforce's Force.com platform with something that is more engineering focused instead of sales/marketing focused.

      I see the software development industry breaking up into tiers like most other industries. Similar to engineering where you have engineers and you have CAD operators (among other roles). I see elite software engineers making much more money than they do now, but a class of programmers making wages closer to CAD operators (although a bit more) becoming the norm for most programmers. Overall it will let the industry create more software with less costs.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    2. Re:Easy. by PolygamousRanchKid+ · · Score: 3, Insightful

      Not sure how fishing rods factor in.

      Fishing rod == retirement. Or at least so I'm guessing.

      I'll be retired in a decade, so I'll just be programming for fun. That's how.

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    3. Re:Easy. by hey! · · Score: 3, Insightful

      Well, as you probably guessed I've been around a long time, and this idea comes up over and over again, and it never takes off, and for a good reason. Programming is hard; it's deeply tied to logical reasoning, which in turn is tied to language and notation. Having visual representations as an adjunct often does make reasoning easier, but having only visual representations does not.

      Through the years I've met a number of people who claim to be "visual thinkers", but in fact I don't think most people who make that claim are particularly good at visual thinking. What they really mean is they want things kept simple so they don't have to work that hard; when confronted with visual subtlety or complexity they're just as lost as when they are confronted with linguistic complexity. Basically they're mentally lazy but prefer to think of themselves as misunderstood.

      Now there are people who are great visual thinkers. Any decent graphic designer is bound to be a strong visual thinker. But oddly enough it's not graphic designers who make this claim. It's usually managers who don't have the patience to read through pages of text; but they don't have the patience to wade through pages of diagrams, either.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  2. I plan on ossifying by halivar · · Score: 5, Insightful

    Learning new languages every six months in a young man's game. As I get older, I will gravitate towards jobs where I can leverage 15+ years experience in a language to get better-paying positions.

    1. Re:I plan on ossifying by Anonymous Coward · · Score: 5, Insightful

      Easy enough to move from language to language, but toolstack to toolstack less so. If you've used c++ you can "learn java" very quickly, but learning the increasingly complex libraries and frameworks that tend to accompany it can take awhile. Even if you've worked with similar tools, it can take awhile to learn all the best practices and shortcuts and little nuances.

      It even extends beyond programming itself. Methodologies change and the toolstack used to implement those methodologies changes with them. We've generally migrated from bug trackers (bugzilla, mantis, etc) to project trackers (trac, redmine), and chances are in a few years we'll be doing something else.

      People joke about old men stuck in their way, but as I get older I kinda get it. After a few iterations my enthusiasm to learn the next greatest thing has waned, and it feels like something I have to do rather than something I want to do, and the gain starts to feel less worth it. Is gradle really that much better than maven? Was maven really that much better than ant+ivy? Once I become a gradle guru, something is just gonna come up and replace it as the defacto, so why even bother?

      The only solution is to become a manager and become the roadblock we all hated when we first started.

    2. Re:I plan on ossifying by Rob+Y. · · Score: 3, Insightful

      It's not the language at all. It's the way to structure an application that's changed drastically. I used to write server-based apps, with a smart terminal front end. It made for a nice, simple, supportable structure, with a reasonable GUI. Recently, I've delved into web programming. Javascript is fine as languages go - though the various libraries built around it are probably more difficult to get a handle on. But the main surprise is what has come to constitute an application. To the extent that there's an application, per se, it consists of Javascript code in the browser, with data accessed via services on the back end. And mostly on a single page basis. In other words, the surprise is that there's no module that counts as an overarching 'application' that defines a structure encompassing a large set of functionality. I have no idea how this structure would scale up beyond a small set of web pages. Not scale in terms of being able to support a large number of users, but in terms of anybody knowing (or remembering) how all the bits of code fit together.

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    3. Re:I plan on ossifying by angel'o'sphere · · Score: 3, Informative

      until I came across a guy who had come to it from C and was like 'yeah, so basically callback functions with a loose stack implementation
      Except that functional programming is much more than that ...

      The C++ analogy would be: have a class with overloaded operator(), its "objects" then behave as functions. You can return such functions from ... erm ... functions.

      In real functional languages you can compose new functions on the fly and either use them as parameters, or result types or apply them to arguments.

      And, for the C crowd: a function is not an address to a piece of code you call, it is more a piece of "data" you allocate with malloc and interpret later. Or in C++: it is a so called "first class citizen" like a class or a struct.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  3. programming by telling programmers what to program by bigpat · · Score: 5, Funny

    In ten years I intend to be programming in management speak, functional specifications and almost completely useless and barely intelligible pseudo code.

  4. Judging by past performance? by LynnwoodRooster · · Score: 5, Funny

    Poorly.

    --
    Browsing at +1 - no ACs, I ignore their posts. So refreshing!
  5. Good tool support needs "good" languages by DaPhil · · Score: 3, Insightful

    It seems to me that you need the languages with the right features to be able to implement good tool support. Consider the excellent IDEs that have been created for Java (Eclipse, IDEA, NetBeans) with extremely advanced refactoring capabilities, code navigation, and inline compilation with meaningful error messages. Such support requires the ability to do static analysis, which you can't do properly in some of the newly popular languages like JavaScript.

  6. Re:10 Years [damned UI's] by Tablizer · · Score: 4, Insightful

    You are behind, dude, Cherry MX Periwinkle Switches Reloaded++ is now out.

    Seriously, who the hell knows what's 10 years down the road. The industry is driven as much by fads as logic, if not more.

    I just hope the UI side simplifies so that one doesn't have to say diddle with the minutia of scroll-bar coordinates for everyday GUI idioms and bread-and-butter CRUD. I'd like to focus on domain logic rather than micromanage UI glitches all day.

    UI's are f8cking mess unless you target a specific browser brand and version. We devolved from the desktop days. I pray the industry cleans up the UI mess created by the browser. Unfortunately the industry seems to be chasing eye candy fads instead instead of practical things, but I guess the money is in hype and flash.

    In summary, get off my UI lawn!

  7. Re:Coding is for Girls by Grishnakh · · Score: 3, Interesting

    Random feminists do not have access to your birth records. So in the future when anyone can get a CRISPR (or whatever) genetic treatment and suddenly look like a 25-year-old male or female of their choice, this stuff will largely be irrelevant. If there's hordes of stunningly gorgeous, 25-year-old women working in tech jobs, no one will be able to figure out, without some serious digging, if they were actually born female 25 years ago, or if they're actually 75-year-olds who used to be beer-bellied, balding men.

  8. But...they told me Agile was eternal... by engineerErrant · · Score: 3, Funny

    My Scrum Lord says that I'll drive peak stakeholder value for a billion years if I but open my heart to the One True Methodology.

  9. Visual Haskell by TuringTest · · Score: 4, Interesting

    There's a wealth of new research going on in Programming Language Theory, with several breakthroughs in the last years bridging the gap between functional and imperative programming.

    The other trend in declarative programming is reactive languages like React.js and Flux being applied to user interfaces. This allows for tools like React Native which can abstract away all the spaghetti code to handle events, providing a higher abstraction, including the "debug & rewind" and "live programming" capabilities seen in online "web embedded" environments like Github Gist or JSFiddle.

    I expect that, as these techniques mature, they will settle down and allow for development techniques that allow for easy discoverability of APIs without having to learn a particular complex syntax, and better programming by connecting components without the drawbacks and limitations of classic Visual tools.

    All these new techniques based in Category Theory are driving advances in mainstream languages - starting with libraries like Linq and jQuery but also Python, Javascript and even C++ adopting lambdas, advanced type systems with auto-inference of types, and libraries with constructs for declarative race-free parallelism such as promises and agent models.

    The majority of those techniques are being tested first in experimental languages by researchers eating their own dog food, with Haskell often having its most pure form (see what I did there?). Anyone interested in enhancing the expressivity of PLs may lurk Lambda the ultimage, where guys much more clever than you and me hang around and can give pointers to all the relevant theoretical results.

    --
    Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  10. Re:The old-fashioned way! by MightyYar · · Score: 4, Funny

    I directly load programs into memory though the tape-in port by modulating my flatulence into a microphone.

    --
    W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  11. Re:10 Years [damned UI's] by RabidReindeer · · Score: 3, Interesting

    We devolved from the desktop days.

    Oh yes. One of the worst things that browsers did was virtually destroy the ability to use shortcut keys to do useful work instead of having to grab mouse and irritate carpal tunnels. All the shortcut keys now either do nothing or control the browser, not the app in the browser.

    Plus far too many webpage authors don't leverage what few amenities we could have. For example, how many form-based pages have you visited where there's a preselected input where you can start typing instantly instead of grab-mouse-and-click before you start typing?

    And don't even get me started on the drag-resized panes where the "drag grab" area is so small that you have to have machine-like motor skills to be able to mouse over it, click down, and drag without losing the whole operation.

    But when it comes to gratuitous and annoying auto-playing audio-visuals, we're great!

  12. Re:Article and comments missing the point by bluefoxlucid · · Score: 3, Interesting

    You can not do functional programming in C

    Looks like you're right; I'm one paradigm off. When I started, the programming books I used didn't talk about using subroutines as a major programming structure; using function calls was new when I got into C.

    Understandable if your background is so limited

    The books are a mess to read. They're not well-organized, they're not well-written, and they don't convey information. They have a lot of information, but it's organized like shit.

    Imagine if you got in a car with 7 pedals. Depending on what combination of pedals you hit, the accelerator or brake may come on, and the gears may switch to a particular configuration. To accelerate in third, you need to hit pedal 3 and 5; to accelerate in first, you need to hit pedals 2 and 7; to brake, you hit pedals 4 and 7. Is your difficulty driving this beast a matter of your background being limited, or the interface being fucking retarded?

    Human memory is associative, and heavily benefits from organization.

    consider how far Tony Bevis would have get if he had not the shoulders of giants to stand on

    He took the disorganized mess out there and produced a couple books covering concepts in ways people can more readily understand. That reduces the amount of time a person must invest to develop a particular skill. That's the same thing the original GoF and Code Complete books did, except they brought together more information and didn't do it as clearly.