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?

42 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 Bing+Tsher+E · · Score: 2

      The whole thrust of ESR's Cathedral and the Bazaar essay was aimed at the contrast of the old 'cathederal' method of software development and more open systems. In fact, the 'Cathedral' being criticized was the GNU Emacs team. (Many people miss this fact and assume the 'Cathedral' being criticized was Microsoft or some other entity that they don't like).

      The 'Priesthood' was the elite in charge of GNU Emacs development. Many Open Source projects have evolved in that direction, which is justified in that random-anyone can't just wander in and start committing patches. The contradiction is perilous.

    4. 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."
    5. 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 garyisabusyguy · · Score: 2

      "anybody can write crappy apps." FTFY

      To go a bit further, given cushy enough tools (Dreamweaver comes to mind), any damn fool can put something out there. Will it be useful, or will it actually hamper the work that people are trying to do? That is a good question

      What it comes down to, in my mind, is whether are not decent tools are being made available to people who are capable of producing something useful, or beautiful, from them

      The common availability of the tools to create software, and the elimination of outrageous barriers to their use seems to be the goal to me

      If we accomplish that, then people who have creativity, logic, etc will be able to create software that enables the people who use it to accomplish tasks, perform work, enjoy their lives entertain others, etc...

      That seems to be what we should want, rather than some notion that every damn fool will be able to create software

      --
      Wherever You Go, There You Are
    4. 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.

    5. 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
    6. 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.

    7. Re:Swift by gweihir · · Score: 2

      Productivity with languages does depend on the type of problem vs. the type of language. There are quite a few tasks where being able to do your own low-level memory management is critical to performance and reliability. A good coder knows this and has more than one tool in his box. C is definitely one of the tools that must be in there. On the high-level side, there are more possible choices. For example, some people will want C++, Eiffel or Ada, but currently it looks like the best mix is actually C plus scripting like Python, Ruby or Lua. This seems to be an improved version of the ages old UNIX paradigm of writing ultra-efficient single-task C programs and then tying them together with the shell.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:Swift by Dutch+Gun · · Score: 2

      Oh, don't misunderstand... I absolutely agree. I was simply giving an example of the benefits of higher-level language abstractions.

      I'm a videogame programmer, and we generally use C++ for engine code and game systems, since it's a pretty good balance of performance vs abstraction. But we often use C#/.NET for tools, and various scripting languages for game content.

      Essentially, I think a reasonable maxim is that a programmer should use the highest level of abstraction possible for the job at hand. Picking the right language for the job is important. I'd hesitate to call anything a "best mix", because it depends on the project at hand, the environment, and the team you'll be working with.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    9. Re:Swift by gweihir · · Score: 2

      I do agree on that. Just in order to get here, you actually need to know a set of tools. Many programmers these days seem to be single-language coders and that is just not enough, at least when you are deciding about what tools to use. It is just as with spoken languages: Once you have a second one, you begin to notice a lot about the restrictions your first one place on you.

      I also agree that going for the highest abstraction level that still gives you the control needed is the way to go. Sometimes that is C (or C++ restricted in parts to C) though. Fortunately, besides specialty stuff like some drivers, you can usually get away without using assembler at all these days. Although I did enjoy MC68k assembler. Intel is horrible ;-)

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    10. Re:Swift by TechyImmigrant · · Score: 2

      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.

      And that's how I became I developer. In college I was going to major in Economics with a minor in Computer Science - but then I took an "Intro to programming" class after 8 years of home computer BASIC - and I was amazed that these engineering students had no ability to understand the logic and problem-solving required for programming.

      I have a degree in computer science. I've been programming since I was 9. I learned Swift. It's quite good as languages go. But no amount of language knowledge or computer science knowledge will make the Apple APIs simple. They're not. They're complicated and hard to use. Swift will not make the APIs simple or logical. Making the APIs simple and logical will make the APIs simple and logical.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    11. 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.
    12. Re:Swift by AmiMoJo · · Score: 2

      You are not alone. Look at the game modding community, for example. Those guys do a lot of scripting with simply syntax or high level editor tools to reprogram parts of the game, but I doubt they could actually write the game themselves. It's the knowledge of things like the Open GL API, or how 3D scenes are built up and rendered that holds them back.

      A lot of people write software in Excel too. Mostly formula and simple logic based, perhaps with some simple BASIC code behind it. Where many of us would just write a little app in C or Perl in ten minutes, they will use Excel and some copy/paste to avoid learning how to load and parse text files.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    13. Re:Swift by TuringTest · · Score: 2

      Or Am I missing something?

      No one will be able to find the jewels among the ocean of crap.

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
  3. Yes, more people is better by JcMorin · · Score: 2

    I think the quality is already crap. The most people we have, the better chance there is good programmer will flourish and produce something good. Bad stuff disappear by attrition while good product are shared.

  4. Why is this even a story? by Puls4r · · Score: 2, Insightful

    I'm struggling to find the point in this story. Are you really asking if anyone who wants to shouldn't be able to learn to code?

    And it took you half a page of text to ask the question? A huge number of the 'advances' in technology have been made by people working out of their garage. People who would never have been allowed to program given this ridiculous elitist attitude.

    Oh. Right. I forgot to check who posted the story.

    1. 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)

    2. 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.

  5. 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
  6. 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...

    1. Re:And the point is... by thegarbz · · Score: 2

      This! It's like electrical engineers complaining that they had to use Matlab as part of their course with comments like "I'm an electrical engineer, not a programmer!"

      It's an incredibly naive post that doesn't realise learning to code != pumping games / social applications onto the Appstore. The only time I've ever programmed anything was to solve a specific problem that I myself had, whether that was some nasty script in Excel, a backup script on my server, or a small microcontroller to control fish tank lights because I was too tight to spend $2000 for something I could build for $200.

      Everyone should learn / know how to program as computers are nothing more than calculators; they are a tool. When you have low-level access to that tool it can become far more useful than just accepting what someone else *thinks* you should be *allowed* to use that tool for.

  7. 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!)

    1. Re:Let me rephrase that quesion by cascadingstylesheet · · Score: 2

      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.

      I think they do though ... VBA? :)

    2. Re:Let me rephrase that quesion by CanadianMacFan · · Score: 2

      Macs and Linux come with the various shells that you can script in plus Perl. Those are great for learning how to do simple things.

      On the Mac you have Automator which lets you visually build up a sequence of events and you can have it run AppleScript, JavaScript, or a shell script.

  8. 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.

  9. 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.
  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 khallow · · Score: 2

      CEOs don't purport to represent me.

    2. 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.

    3. Re:Um... you're not nearly cynical enough by MSG · · Score: 2

      Fuck you. I don't need gangsters taking another slice of my paycheck.

      Then don't elect gangsters to run your union.

  11. Yes. They have to at least understand by ciaran2014 · · Score: 2

    Software is running our lives. Anyone who can write software knows that, for example, electronic voting can be easily fixed. People who haven't written basic software find this question hard to analyse. Even if these people don't become full-time coders, it's still good that society has more and more people who know how the software running our lives works.

    --
    Help build the anti-software-patent wiki
  12. the most moronic subject matter on slashdot by circletimessquare · · Score: 2

    can we stop with this nonsense please? it is similar to idiots who oppose teaching all kids programming

    restricting access to developing a skillset which just builds on abstract reasoning is a joke, nothing more. it's as if lots of people making lots of programs somehow hurts good programs and good programmers. how? can someone define me how that works? there has to be a formal logical fallacy for what this low iq idea suggests. it's like saying gays getting married somehow hurts heterosexual marriage. and we see how well that mental diarrhea has persuaded

    lots of people trying programming only hurts mediocre programmers. the only kind of people who take this nonissue seriously. it's popularity on slashdot therefore does not bode very well for the readership of this website

    meanwhile, i welcome anyone who wants to try programming and i wish them well. it can be fun, it can be infuriating. and if in your quest you wind up being more skilled and hired to replaced than the kind of weak mouth breather who wants to somehow magically limit the pursuit of programming to some of kind of bullshit guild, this a surefire win

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
  13. 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!

  14. 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 ...

  15. Programming is the tip of the ice berg by plopez · · Score: 2

    What about requirements gathering? Business modeling? Testing? Versioning? Maintenance? Hosting? Building the app? Distributing the app.? Administering the build machines? Documentation? Communication and control of a project?

    I'm sure I missed something. But there are a huge number of components to a reasonably sized software project. Programming is often the smallest, in numbers, slice of the task.

    --
    putting the 'B' in LGBTQ+
  16. Re: TFA is a clickbait by Anonymous Coward · · Score: 2, Interesting

    I think the problem is a little more complex than that. Stupid people tend to have high self esteem, and high self esteem means among other bad things that they don't know their own limits.

    So if stupid people learn to program, they are unlikey to be self limited to harmless trivialities and to try something important or dangerous.

    Since people with high self esteem also tend to be good self promoters, and since we already know that business management is rife with people who can't judge technology or technologists worth a damn, the odds of stupid people being given something important to do is fairly great.