Slashdot Mirror


Ask Slashdot: Everyone Building Software -- Is This the Future We Need?

An anonymous reader writes: I recently stumbled upon Apple's headline for version 2 of its Swift programming language: "Now everyone can build amazing apps." My question: is this what we really need? Tech giants (not just Apple, but Microsoft, Facebook, and more) are encouraging kids and adults to become developers, adding to an already-troubled IT landscape. While many software engineering positions are focused only on a business's internal concerns, many others can dramatically affect other people's lives. People write software for the cars we drive; our finances are in the hands of software, and even the medical industry is replete with new software these days. Poor code here can legitimately mess up somebody's life. Compare this to other high-influence professions: can you become surgeon just because you bought a state-of-art turbo laser knife? Of course not. Back to Swift: the app ecosystem is already chaotic, without solid quality control and responsibility from most developers. If you want simple to-do app, you'll get never-ending list of software artifacts that will drain your battery, eat memory, freeze the OS and disappoint you in every possible way. So, should we really be focusing on quantity, rather than quality?

23 of 365 comments (clear)

  1. use this one neat trick by Anonymous Coward · · Score: 5, Funny

    to design complicated software, CLICK HERE

    1. Re:use this one neat trick by Anonymous Coward · · Score: 3, Funny

      Link is broken.

    2. Re:use this one neat trick by fyngyrz · · Score: 4, Insightful

      Back in the day, we called this concept the "Software Preisthood"

      It wasn't complementary.

      1) I am not threatened by "everyone" learning to program

      2) don't buy a bunch of stupid apps, and,

      3) Apparently, you're a programmer, so write your own apps. :)

      --
      I've fallen off your lawn, and I can't get up.
    3. Re:use this one neat trick by phantomfive · · Score: 3, Informative

      In fact, the 'Cathedral' being criticized was the GNU Emacs team.

      Interesting, I figured it was a reference to Mythical Man Month, which uses Cathedrals to describe a method of software development (that is the opposite of the bazaar).

      --
      "First they came for the slanderers and i said nothing."
    4. Re:use this one neat trick by thesandtiger · · Score: 3, Insightful

      Pretty much exactly that.

      In my experience, people learning a little bit about programming tend to also learn to respect the fact that there's a ton of stuff they don't know. Yeah, I've run into some who think a single run through of some "Learn X in 24 Hours" book makes them a developer, but they're the minority.

      What's really valuable about "everyone" being exposed to programming is that it helps them learn to think about problem solving in a usually different way. Where I work, we had our entire product management team go through a week long programming bootcamp and it's been AMAZING in improving the quality of the specs they write. They aren't under the impression that they're developers but they definitely have a better appreciation for what we do.

      And, we developers went through a product bootcamp as well so that we had a better understanding of what they do and more insight into what is driving some of the things they ask for.

      More knowledge and understanding is very rarely a bad thing.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
  2. Swift by phantomfive · · Score: 5, Insightful

    Swift isn't going to make it so "anybody can write apps." That is something that's been tried for decades, with things like drag-and-drop programming. SQL was originally intended for non-programmers. It doesn't work, because the difficulty of programming isn't the syntax. The difficulty of programming is logic. You have to learn to think like a programmer, describe a sequence of steps, ask "what will happen in the user does.....X." You have to reasonably understand the if several things in a row are true, but the next one is false, then all of them are false (if anded together, but not if or'd together).

    The logic of programming is why it's good for everyone to learn programming. If it helps people learn to think a little more formally, then it's worth it.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Swift by JazzXP · · Score: 4, Insightful

      I was about to write exactly this. Syntax is easily learnt, the mindset of HOW to program is the hard bit.

    2. Re:Swift by Dutch+Gun · · Score: 4, Insightful

      Agreed. Swift makes it easier to program, but the notion that "anyone" can write apps is definitely a laugh. There are a lot of programmers who don't understand that some people have a really hard time with the core concepts and skills involved in creating software. It reminds me of math teachers who don't seem to understand that some people have a fairly difficult time with advanced mathematical subjects. People have different areas of competence, and not all are suited to be programmers. It's not just logic... you need to do some creative problem solving in formulating that logic, and you need to keep a LOT of complex things in your head all at the same time to get them to all mesh together at the end.

      Still, I have no problems with the efforts to make programming easier. Anything that helps will not only make it easier for novices, but will also aid professional programmers. If you don't have to worry about the fiddly bits of the language (for instance, low-level memory management in C), then your attention can be directed to more important parts of your task. There's a reason higher-level languages are considered to be more productive for programmers.

      I think some programmers get a bit defensive at the idea of novices stumbling into our professional domain. I honestly don't see it as a problem. We're nowhere near that magical "anyone can program" threshold, even with the "friendliest" languages people have tried to invent.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    3. Re:Swift by Darinbob · · Score: 5, Insightful

      Any fool can write buggy programs, but it takes a Senior Solutions Architect to really fuck things up.

    4. Re:Swift by rtb61 · · Score: 3, Interesting

      A lot of the complexity is driven by programming languages themselves. The conflict between compact code bulky self explanatory code, not having to rewrite functions creating large algorithm libraries, coding conventions as they differ from normal language and maths use, language logic being simply the arbitrary decisions of the people who coded the coding language amongst other issues. What to know how bad coding languages really are, give code without any documentation at all and get another coder to figure out what is going one and how to fix problems. Why is this inherently bad, it is like handing a text book to someone, and they requiring a second one in order to be able to read the first one, even when they know the language used in the first one.

      So what is this really all about, cheap greedy psychopath business types who have no idea at all about how to code but who want cheaper and cheaper and cheaper programmers (minimum wage cheap). So they want to flood the market with coders, whether by internal training as long as those coders pay for it themselves or by bringing in cheap temporary immigrant coders.

      --
      Chaos - everything, everywhere, everywhen
    5. Re:Swift by ArmoredDragon · · Score: 3, Interesting

      I don't know about anybody else, but I've written in scripting languages (bash, powershell) and have usually been pretty good at determining arithmetically what a program should do. The problem is I get stuck on the syntax a lot.

      It's not simple logical controls (I do proper for loops, do while loops, if/else/then, etc. just fine after googling for a few examples) but the APIs are where I really get stuck. Speaking of powershell, a lot of the stuff I've wanted to do involves a .Net handler that I've had to look up, and finding what I need to do sometimes takes a few hours or even days. Also, on scripting languages (ESPECIALLY powershell) I get stuck on figuring out why I can't pass quotes into a function or something like that (for example, I needed to make a script prompt the user for UAC admin permissions if not running as admin, and never could figure out how to make it work if somebody happened to rename the script to include spaces in it, because one of the functions used for checking if the user was admin had issues taking quotes. I had to ask on stackexchange how to do it, and somebody else figured it out, and the solution wasn't obvious at all.)

      I've also had situations where I've figured out algorithmically what a program should do to overcome a certain situation, and posted my idea to developers on e.g. forums, github, etc, and they've actually implemented what I couldn't do because I didn't know the syntax.

    6. Re:Swift by Dutch+Gun · · Score: 3, Insightful

      I'm presuming there are no second graders here. Don't overthink it... it was just an example. Calculus, differential equations, etc. Even basic algebra is quite difficult for some. For others, it's logical, intuitive, and even beautiful. Math instructors would obviously tend to be of the latter group, and as such, might have trouble empathizing with students who "just don't get it".

      Similarly, I've seen a lot of programmers who are convinced that *anyone* could easily learn to program, because *they* happen to find it easy.

      I'm just not convinced that's the case. Not everyone finds the same things intuitive.

      --
      Irony: Agile development has too much intertia to be abandoned now.
  3. Yes it is what we need by SuperKendall · · Score: 4, Insightful

    Think of the countless small ways in which knowing some code, or scripting has been useful over your life - sorting simple lists, renaming things in batch, formulas in a spreadsheet... etc. etc.

    Even if most people will not be doing code professionally, it will help them do little things for themselves. It will also help them understand to some extent why software driven things behave the way they do, and even to make more informed choices as to software driven hardware they buy (and that is the future).

    It's not like a flood of really bad programmers will get through most hiring barricades, already famously difficult to storm. They will go on to do things besides programming, where light programming can help them.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  4. And the point is... by baker_tony · · Score: 4, Funny

    I don't really get the point of this post. Kids to make Facebook apps aren't going to be immediately allowed to start writing car OS's, it's a way of encouraging kids to try programming and some of them will love it and become programmers!
    I started off typing out code from magazines, that got me in to programming and now look at me! I'm producing code that... ahh, OK, I just got the point of this post...

  5. Let me rephrase that quesion by marciot · · Score: 5, Insightful

    I think the question is whether everyone should be writing software AND then attempting to sell it to others via the app store. The answer to that, IMHO is no, as making software for others requires a level of professionalism and quality not everyone can reach.

    But it would be nice if we could somehow rewind back to the 80s in which every computer came with a simple programming language so that if I wanted to throw together some code to do a simple task for my own benefit, I could do so quickly and easily.

    (Note to Apple: Bring back HyperCard, please!)

  6. Re:Why is this even a story? by johnrpenner · · Score: 4, Interesting

    yeah — learning code should be hard and arcane and locked up in air conditioned rooms full of punched card readers, and the only way you're going to get to programme a computer is if you solder a CPU to a motherboard and your name is WOZ — like its such a horrible thing for a good elegant language to exist that finally replaces god-awful basic with line numbers, and is able to compile a mach kernal and the whole OS using the same language. — who wants a good easy deep language (or be stuck with java and objectiveC for the next 20 years!?) — the nerve of those folks, making good tools like this available for free.

    we've been in a desert for so long, and now you grow up with good compilers and plenty of RAM — and i just dont get it — why the author is complaining!?!?

    you can be handed good tools and still not know how to draw — but you may be drawn into the art and craft and learn and get better.

    by the same logic — should we ban typewriters!?!? — because millions of people might now be enabled to write crappy literature!?

    please dear author of this post — wtf!?

        If a head and a book come into collision and the resulting sound is hollow,
        the fault need not necessarily be that of the book! (Lichtenberg)

  7. Wrong question. by fuzzyfuzzyfungus · · Score: 3, Interesting

    These 'zOMG, everyone should STEM up and become an app entrepreneur!!!' stories aren't really about the desirability of everyone having a career in software development. They are more a reflection of the fact that plucky optimists looking for what kids should do to be successful when they grow up are...not exactly...swimming in options. Yes, they are also letting the fascination with shiny trendy things distort their perception of the options, hence the fascination with who will make the next Social Twitfriend app, rather than who will write unbelievably dull line of business stuff; but in broader strokes they aren't pushing this because it's a good idea, they are pushing it because it's an idea, and they don't have another one.

    The pronouncement that 'software is eating the world' may have been a bit hyperbolic; but it sure isn't doing the life chances of people without advanced qualifications any favors. "Everyone writing apps" sounds slightly better than "Everyone selling each other securitized bullshit", so it gets more face time.

  8. The hardware "ecosystem" depends on crap software by msobkow · · Score: 3, Interesting

    I run a P4 3.8GHz single core system as my main desktop, even though I do development with it. Switching to a newer Core i5 system will make it run 10 times as fast, but as the runtime on my huge (tuned) code base is under 5 minutes already, it really won't save me *that* much time compared to *editing* the code. It will save on build time, which is a boon to me, but even that savings is only due to the nature of my build process -- I do full instead of incremental builds.

    I do plan on buying a new machine in a few months when I've saved the money, but my main point is that the hardware we use has been "good enough" for a good decade. It is the crappy software the people shovel out that drives hardware upgrades nowadays, not the actual need for faster hardware.

    So it is to the hardware manufacturer's benefit that as much software as possible be absolutely incompetently written crap so that people will buy the latest shiny-shiny because their old one is "too slow."

    --
    I do not fail; I succeed at finding out what does not work.
  9. Re:Why is this even a story? by Sowelu · · Score: 3, Insightful

    As far as I can tell from the summary, it's not about people learning code. Totally it would make the world a better place if everyone who uses a computer regularly could at least write a simple shell script. (Impractical to spend the time to learn or just plain out of reach for a lot of folks, but whatever, it's a dream.) Instead, the objection looks like it's about lowering the barrier to make marketable things for an app store or whatever.

    "With this toolkit, anyone can make furniture and sell it!" Learning carpentry is good, opening up the market is good, but if you're going to distribute to the wider world, maybe you should know enough about engineering principles to build a chair that won't collapse after a couple months.

    A car analogy would just be gratuitous.

  10. Um... you're not nearly cynical enough by rsilvergun · · Score: 3, Interesting

    This is really just Apple, Microsoft et al trying to get cheap programmers. Not everyone can code the Linux kernel, but anyone without a learning disability can be a rank and file coder banging out data driven apps. Right now Apple has to pay $100k+ for some of those guys. The H1-B program helps, but it's never enough, is it? How 'bout $50k? $20? $15? How low can you go. All you need is enough food and drink to keep 'em going long enough. And so long as they get to look down on all those "non-Coders" (sorta like you're doing right now...) they'll be a-ok with this.

    Screw that. Let's get back to Unions, worker solidarity and high minimum wages.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:Um... you're not nearly cynical enough by Bing+Tsher+E · · Score: 3, Insightful

      That Union Steward isn't one of my coworkers. He works for the International Union. He is part of the mechanism to siphon off my union dues to pay for the politicians the International can afford to buy and/or the ones that the Union Bosses like the most for whatever reason they choose.

  11. electric power tools by NostalgiaForInfinity · · Score: 4, Insightful

    With the widespread availability of cheap electric power tools, now everybody can build bridges and sky scrapers!

  12. COBOL too ... by kbahey · · Score: 3, Insightful

    SQL was originally intended for non-programmers.

    And before SQL, there was COBOL (COmmon Business Oriented Language), which was meant for regular people to program computers instead of requiring programmers writing in assembler ...