Slashdot Mirror


Better Tools For Programming Literacy

waderoush writes "Adam Wiggins, co-founder of Heroku, agrees with anthropologist Bonnie Nardi that programming isn't just for geeks. The problem, he says, is that today's tools for teaching programming are woefully inadequate. In a commentary, Wiggins argues that there are two major gaps preventing programming tools from being accessible to beginners: 1) they're too fussy, requiring extensive setup, and 2) they're focused on the technology rather than everyday tasks. A good tool for learning programming, Wiggins argues, would emulate an Excel or Google Docs spreadsheet – beginners would be able to fire it up instantly, and would be able to get useful things done right away. (He's dismissive, though, of visual programming tools that 'attempt to hide logic behind a point-and-click interface.') 'Broad programming literacy is crucial in a world increasingly made of computers,' Wiggins says. 'Despite common stereotypes, programming is not out of reach for the average person,' as long as the tools are easy to set up and specialized on the programmer's task."

317 comments

  1. So what they're really asking for... by Anonymous Coward · · Score: 0

    ...is a WYSIWYG editor for writing programs in Basic?

    1. Re:So what they're really asking for... by commlinx · · Score: 1

      Not sure really, understanding an article written by an anthropologist on programming seems harder than kernel development to me. But you're probably on the right track though. Other requirements from what I gather are a one-click install and a Microsoft Bob equivalent to ask what you want to achieve.

    2. Re:So what they're really asking for... by TapeCutter · · Score: 4, Informative

      Like an old boss of mine used to say, "They want a fucking big red arrow that points to the answer"

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    3. Re:So what they're really asking for... by slim · · Score: 4, Interesting

      I'm not sure he knows what he's asking for, but I think I know what might address his concerns, and it's basically more embedded languages in apps that people use.

      Lots of people learned simple procedural programming with Word/Excel macros. Record a macro, look at the code generated, amend it. Now some people do it with VBA, but I'd say that VBA is more hidden than the old macro language was.

      He says people respond "OK, that's cool but what could I use it for?" - and the answer is anything repetitive or mundane that you find yourself doing at a computer. If you find yourself repeatedly going through the same sequence of clicks, a coder thinks "I want to automate this loop". A non-coder just accepts the drudgery.

      The Raspberry Pi version of Minecraft can be automated with Python. Anyone who's laboriously built something brick-by-brick, click-by-click in Minecraft out to be impressed by a few lines of Python doing the same job in the blink of an eye. We need more apps that work like that. We need to get to the point where people demand it.

    4. Re:So what they're really asking for... by telchine · · Score: 4, Funny

      Other requirements from what I gather are a one-click install and a Microsoft Bob equivalent to ask what you want to achieve.

      Maybe they could reintroduce Clippy... "I see you're writing a kernel!"

    5. Re:So what they're really asking for... by gweihir · · Score: 1

      Nice! Best comment here so far!

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re:So what they're really asking for... by kestasjk · · Score: 3, Insightful
      Why not hire someone to fill the place within the organization? I interact with a lot of people on a day to day basis who are very smart and knowledgeable within their fields, but when it comes to automating some mundane task or sharing information in a structured way it's outside of their area of expertise.

      There are three possible approaches in that scenario:
      • They learn how to script / code themselves (most of them won't have the time/stamina, and even if they did they wouldn't be able to share the results so you get duplicated effort)
      • They hire an external company to write the software for them (but the overhead of dealing with another company that doesn't know your business and needs formal requirements can be huge, and you can still get the duplicated effort / lack of sharing)
      • You have an in-house team (3 people for 1500+ employees does the job for us), that manages custom software for specific purposes. They can direct people's requirements to either being 3rd party, having too high cost / reward, or requiring in-house software. With access to all the existing databases, with intimate knowledge of the business, with ties to various departments within the business, they have not only the skills but also the business knowledge, the access, and the relationships, to ensure that necessary software can be developed quickly, efficiently, and then propagated to any other staff / projects which need the same thing.

      You can't have an in-house team that tries to reinvent the wheel and write software where it's unnecessary, that's pure waste, but for a large organization having a small team that can take care of things that really do need to be done in-house can give a big competitive advantage.

      --
      // MD_Update(&m,buf,j);
    7. Re:So what they're really asking for... by slim · · Score: 2

      You're thinking about too large a scale of program. If it's big enough to ask a team (or even a lone programmer) to do, it probably does need a 'real' programmer.

      Think more along the lines of typing. In the 1970s, companies had a typing pool. Nowadays almost everybody does their own typing.

      I think lots of people would benefit from the ability to write simple scripts -- the kind many /.ers would consider throwaway.

    8. Re:So what they're really asking for... by Canazza · · Score: 2
      --
      It pays to be obvious, especially if you have a reputation for being subtle.
  2. Yes, it is out of reach by Anonymous Coward · · Score: 5, Informative

    People can't program the VCR clock. (For the young ones: Back in the old days we called the Tivo "VCR". Just like everything must have a camera today, back then everything had to had a clock, and it had to be set manually.) You can barely teach (most) people algorithms that aren't completely linear. If you think you can teach them to develop algorithms, you need to get back in the trenches and deal with normal people. Developing programs means to understand problems in depth and to correctly answer a lot of "what-if" questions about complex systems. Normal people actively try to avoid doing that kind of thinking.

    1. Re:Yes, it is out of reach by zwei2stein · · Score: 0

      People do not bother wil programing clocks for one reason: It is pointless - if you have tons and tons of clocks elsewhere and most likely some wall mounted right in the living room, reading manual and figuring out VCRs unique (and often stupid, lazy-dev) way of setting up when is it not necessary or even helpfull.

      I'd say that is pretty smart from dev pov: avoid unnecessary complexity, focus on solution (playing media), not bloat. In fact, when I think about it many thinks geeks tend to decry as stupid are actually very pragmatic and thus pretty smart.

      Normal people can code, but they need to need it. They need motivation. Not pointless "set up vcr clock".

      --
      -- Technology for the sake of technology is as pathetic as eschewing technology because it's technology.
    2. Re:Yes, it is out of reach by Anonymous Coward · · Score: 0

      What the heck is a "Tivo" granpa?

    3. Re:Yes, it is out of reach by Morpf · · Score: 1

      Those good old 12 o'clock flashers. :)

    4. Re:Yes, it is out of reach by eulernet · · Score: 4, Insightful

      This is because people are not interested into the problem, they are only interested by the solution.

      And this is true for everybody: personally, I don't really care about how my car works, I just want that it works.
      When it does not work, I go to a garage to solve my problem.

      Trying to simplify programming will only give a false sense of expertise, because REAL programming is tough: it's about solving abstract problems.

      No matter the difficulty of the subject, there will always be people who are interested in understanding, and people who don't care (even if it's simple).
      So I would prefer that, instead of training people who don't care about programming, we train people who are interested into programming.

      And the best tool to make people interested into programming is games, because a lot of programmers started programming because they wanted to write their own game.

    5. Re:Yes, it is out of reach by slimjim8094 · · Score: 4, Insightful

      The VCR clock was required to set up a scheduled recording, so hardly pointless. People wanted to be able to do that, but couldn't because they couldn't figure it out. I think the gp's example holds

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    6. Re:Yes, it is out of reach by Anonymous Coward · · Score: 0

      Not being able to set your VCR to record a certain channel at a certain time is "pointless"?

    7. Re:Yes, it is out of reach by MouseTheLuckyDog · · Score: 1

      Actually most people I knew could set the time on a VCR/radio/Coffeemaker/alarm clock.

      The main problem was that most of the devices used different interfaces so you had to know a lot of different interfaces.

    8. Re:Yes, it is out of reach by Anonymous Coward · · Score: 0

      Arrogant much?

    9. Re:Yes, it is out of reach by Anonymous Coward · · Score: 0

      GP is a member of the master race. He can calculate the adjustment between the real time and the display time in his head.

    10. Re:Yes, it is out of reach by Anonymous Coward · · Score: 0

      Have you actually tried to teach people how to develop an algorithm to solve a problem and then turn it into code?

    11. Re:Yes, it is out of reach by SoftwareArtist · · Score: 1

      To be fair, I found my VCR's clock pretty baffling. Programming in C was no problem. But the VCR? It was like they specifically designed it to be confusing.

      --
      "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
    12. Re:Yes, it is out of reach by Anonymous Coward · · Score: 0

      People couldn't program the VCR clock because the interface sucked. If the TV remote were similarly complex, society would be in a better place today

    13. Re:Yes, it is out of reach by smithmc · · Score: 1

      And this is true for everybody: personally, I don't really care about how my car works, I just want that it works. When it does not work, I go to a garage to solve my problem.

      Your car has a limited, well-defined set of functions. A computer is programmable. What happens when you want your computer to do something that it doesn't already do? For some people, the answer is "I'll pay a guy to come in and make it do that new thing", i.e. write some new software for it. And that's fine, if the new thing is complex enough to warrant bringing in an expert, and you've got the money. But for some things, particularly simple things that don't warrant the overhead of bringing in an expert, meeting and discussing reqs and specs, contracts, etc. wouldn't it be nice to be able to do some of things on your own? I'm sure at least a few people would answer yes...? (I may be a bit biased, having a number of years of SW development experience...)

      By analogy to your car - if you want it to have some really major new feature, like an ejection seat, you might call in a pro. But you might consider installing new speakers on your own...?

      --
      Downmodding is the refuge of the weak. Don't downmod, make a better argument!
  3. I agree that programming is not for geeks by gweihir · · Score: 5, Insightful

    It is a far more demanding task that "geek" would qualify you. It requires talent, education and experience. Those that gripe about the tools do not get it or have never gotten beyond toy examples. Sure, a better tool helps. But when you create software (as opposed to slapping together some disaster waiting happen), the direct level of skill needed to use the tools is actually a minor concern. In fact, the language used is a minor concern, the problem is what matters. Insofar I even agree with the article. But refusing tools that are a bit complicated is the hallmark of somebody that does not get it.

    Case in point: Pen and paper are exceedingly difficult to use for writing. Yet we spend years on every person to qualify them to use it. Yet compare the complexity of pen&paper on one side, and a computer on the other side. Anybody expecting the computer to be easier to use just has no clue at all.

    All that "simple" to use tools for software creation do is cause even more really bad programs to be written, as suddenly everybody and their grandmother thinks they can do it. Like giving calligraphy pens to amateurs. Sure, they can produce some smears, but they cannot produce anything worthwhile.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 5, Insightful

      Bullshit. Programming still is *piss-easy* compared to our actual mental abilities. Everyone of us does all the stuff you need for it in daily life anyway:

      Everyone of us uses the concept of identifiers (think variables), when we say “he" instead of "Jim", or even "Jim" instead of shoving that person in front of your eyes.
      Everyone of us uses the concept of sequences of commands, when making a to-do list.
      Everyone of us uses has no problem with including tasks into that to-do list, that themselves are a set of steps one could write down somewhere else.
      Everyone of us is able to say "Do this 10 times.", "Do this for all people in the room.", or "Until you have at least $1000, keep on saving.".
      Everyone of us is able to make lists, use property lists (dating site profiles, etc), handle tree structures (company hierarchies, file systems), and even more complex ones.
      Everyone of us uses grouping (think modules) all the time in daily life. It's part of how our brain works, to group things into classes.
      Everyone of us can use and understand the concept of expressions, when we read and write recipes. (Which essentially are programs: dinner = [(simmerFor (10 min) (add [cream,whiteWine,(dried chickenBroth),nutmeg,(piecesOf broccoli),salt,pepper,garlic] (fried (chopped chickenBreast)))) + ((cookedIn saltWater (8 min)) tagiatelle), readyMadeGarlicyFriseeSalad ].)
      You do the next one.

      There is absolutely nobody with a normal working brain who can't program. With the right interface and presentation, your grandma can program medium-sized software packages, no problem.

      And most importantly: There's nothing wrong with small shitty scripts grown from one-off one-liners.a

    2. Re:I agree that programming is not for geeks by JaredOfEuropa · · Score: 4, Interesting

      Don't confuse programming with software engineering. The latter does require a good deal of talent, education and experience. But programming? I agree with the author that many people can learn, given the opportunity and the right tools.

      Case in point: my high school taught a (somewhat unusual) computer class; this was in the mid-80s in what you might call a good high school (the Dutch high school system is divided in levels, the highest being "pre-university education" which was the level of my high school). The class consisted of some basic computer science (what is a computer, CPU, I/O bus, etc) as well as hands on programming in BASIC. This was a mandatory class which meant that we had a mix of geeks and non-geeks sitting in, but pretty much everyone was able to grasp the basic concepts of computing, logic, and programming, to the point were students were able to translate simple problems into working programs. Does this produce useful programmers? No, but it helps getting more people interested in the field, and in my current line of work I can see a clear difference between people who have had such a basic education in computing, and those who haven't. For people in IT who aren't actual software engineers, it's still useful to know a little bit about computers and programming.

      To achieve this, having the right tools is important. Complex tools may be necessary when writing complex software, and a software engineer refusing to master complex tools because they are complex is silly, but for a beginner, complexity distracts them from what they are actually learning: writing a program. That's why BASIC is still a good tool for teaching laymen about computers; it might not be a very elegant language with stuff like GOTO, but beginners can have a working program up and running in minutes, doing simple input and output. Contrast that with something like C, which requires you to set up and master a compiler first, which is no easy task for someone just starting to program.

      Your example of writing is a good one. Like programming, this too is something worthwhile to teach to the masses, and many are able to gain a basic proficiency in it. But you woudln't give a calligraphy pen (or a complex programming tool) to an amateur, you give them a BIC pen (or something like BASIC) so they can master the basics of the art without having to learn advanced tools as well.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    3. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      My Grandma does cryptic crosswords - I cannot. She cannot, however, program medium-sized software packages. I don't know of any program that could do cryptic crosswords. Nor do I expect anything capable of doing so in the near future. And this argument about mental abilities makes more sense than yours.

    4. Re:I agree that programming is not for geeks by martin-boundary · · Score: 3, Insightful
      No. Writing is an excellent example here.

      Think about ALL the people in the world. There are billions of people who've learned to write, but how many of those can _really_ write a letter if they have to? I'll accept even people who write with bad grammar and spelling mistakes. All I want is people who can write an actual letter that is sufficiently intelligible to serve a simple purpose.

      Well? I expect less than half of those who have learned to write are actually able to do so. And if they can't even write a letter after having been taught the alphabet, neither can they write a program if they would be taught BASIC..

    5. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      If you just want simple input output programs, then you have your programming tool right in front of you: A web browser with Javascript. How much easier does it have to be for the everybody can do anything people to realize that no matter how easy you make the tools, most people still lack the analytical skills for anything but writing sequences?

    6. Re:I agree that programming is not for geeks by slim · · Score: 4, Insightful

      You could learn to do cryptic crosswords. Most clues are modelled around a handful of patterns; general knowledge is a barrier, but you can allow yourself Wikipedia.

      Your grandma could learn to program; it might not be worth it, depending on her age and ambitions.

      All of these skills are learnt, learning takes time, and it's an opportunity cost. If I'd spent less time learning to code, I might have spent it learning to draw, or practising guitar, and I'd be better at those things. That's not about mental ability; it's about choice of specialisation.

    7. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 3, Insightful

      But you must understand the concept of "identifiers". Before you are 9-10, the name of your mother is useually just "Mom"... but so is everyones mother is named "Mom"... So now it is "joeys mom"... which is not "my mom"... and neither is a correct identity.

      Concept of a sequence of commands - not until you are told "No" long enough. The problem is not the concept of a sequence, but one of generating a sequence. And doing it properly is hard. It takes over twenty years for people to write a sequence of words correctly... even then they will do it wrong. As for a "to do" list - how many times are things left out. BTW, a "do do" list isn't ordered - it is a random list of things to do with no specific ordering implied.

      But saying "Do this 10 times" is frequently an exaggeration... and therefore not really done. Especially when 5 is enough. Or it really needs to be done 20 times... or even forever. And "keep on saving" always has an exception you don't expect.

      Nearly everyone handles lists.. If they can read. And comprehend what they read. Not everyone comprehends organization into trees. That is why you still fine people with thousands of files in one directory (which is also promoted by the worst operating system ever foisted off on the world).

      The same problem applies to grouping. Modules are not general. And they are not understood by people that do not understand tree structures either. Programming modules are founded in mathematics... and most people do not understand mathematics either.

      expressions... Right... Like, you know, really. As if... But people DON'T understand logic, for the most part. And how many times are recipes are "for disaster". It takes a decent cook to understand recipes in the first place. A recipe does not include directions on how to use utensils, or even the names of the utensils. And you expect the unknowing to be able to write a recipe? And your recipe is not understandable - what are [( for? and what is chopped chiekenBreast - 1 inch size, 1/2 inch, or is that 1/4... And your recipe would not be understood by a chef.. Did you write it in LISP?

      As for programming - it takes discipline, logic, understanding limitations, understanding the language...

      And there is a problem with crappy scripts grown from one-off liners - when someone else has to fix them. Or you forgot what it was for and have to fix it yourself.

    8. Re:I agree that programming is not for geeks by JaredOfEuropa · · Score: 2

      I'm thinking of the other half, the billions who have learned to write and are now able to write something useful. And how many of those billions got inspired to write something great? Likewise, I think it is worthwhile to expose more people to computer science and programming. It gets more people interested in the subject, and a sizable portion of students should be able to learn something useful from a beginners course, even if they never actually do any serious programming later. Programming teaches logic, expression of thought, and troubleshooting: all useful skills in many other fields. Just like I took biology in high school; I never did anything with it later in life (certainly not professionaly), but the knowledge still comes in handy every now and then. That's what a well rounded education is about. Vocational training is something else entirely.

      With that said, I agree that not everyone is going to be able to learn. But it doesn't require any exceptional skills or traits either.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    9. Re:I agree that programming is not for geeks by gweihir · · Score: 4, Insightful

      You fail to see the problem. What you describe is the "primitives" of a simple programming language. Understanding them does not help you write software of any meaningful complexity. Your argument akin to saying somebody that can carry around a brick and put it somewhere is able to build a house that is comfortable and durable. Not so, rather obviously.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    10. Re:I agree that programming is not for geeks by narcc · · Score: 0, Troll

      Skills take practice. Writing, being a skill, also takes practice. Writing computer programs is no different.

      The parent is right, any idiot can learn to program just as any idiot can learn to read and write. The the fact that it takes practice to do both well does not mean that those skills are forever beyond the potential of the average nobody.

      It seems like the only people who claim that writing computer programs takes a "special mind" or some other nonsense are insecure developers who have no other skills or interests. They have a lot of their identity and self-worth wrapped up in their tiny little skill-set. I suspect that many of them realize that computer programming is not beyond the reach of the unwashed masses, and that's a thought that absolutely terrifies them.

    11. Re:I agree that programming is not for geeks by gweihir · · Score: 4, Insightful

      As I said, there is a mechanical component, namely interfacing the tools. It is a minor part of the whole. You can learn to play the guitar all you like, you will never be a good jazz-guitarist or guitar composer unless you have quite a bit of talent. Sure, you can plunk the strings and may even be able to play sheet-music with some degree of accuracy. But that is not worth a lot.

      The architecture and design of software is not something you can learn this way. Algorithmic is not. And the real-world problem analysis skills required to have your software actually solve a problem are not either.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    12. Re:I agree that programming is not for geeks by gweihir · · Score: 2, Insightful

      I am not confusing them. A reasonable programmer needs at least some software engineering skills. Otherwise you get people that write unreadable code, use the wrong algorithms that break systems because they just do not understand what goes in and the characteristics are, etc. Sure, once you have a detailed flow-diagram, putting that into code is just a mechanical exercise. But who do you think fills in the details here? A software engineer? Unlikely, far too expensive and then they could fire the programmer and have a secretary do the final step.

      Also case in point: If the programmers cannot handle the tools and you say everything that actually requires understanding of the machine, the problem, the solution architecture and design and some a bit harder to use tools, what competencies are left for a programmer? Is a programmer in your view just a hired moron doing the job of a per-processor?

      As to BASIC: That just leads to people that think they can program, but cannot. Even worse.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    13. Re:I agree that programming is not for geeks by gweihir · · Score: 1

      Thank you, just my point. And if the letter suddenly needs to communicate a complex situation and how exactly to deal with it, and also includes reactions to uncertainties, then we are beginning to approach what software is. The arguments of all those here is alike to saying "Those that can write cannot only write any letter for any purpose, the can also program, as programs are written in text."

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    14. Re:I agree that programming is not for geeks by gweihir · · Score: 1

      Indeed. Very good example. And (oh the horror!) JavaScript may even be the next Cobol and replacing Java, the way things are progressing.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    15. Re:I agree that programming is not for geeks by martin-boundary · · Score: 2, Insightful
      While I agree that it is worthwhile to _expose_ as many people as possible to programming, I think you are being overenthusiastic about the expected success rate.

      Programming teaches logic, expression of thought, and troubleshooting: all useful skills in many other fields.

      Yes, except... writing teaches logic and expression of thought too, in a much more freeform and forgiving way. It doesn't even need a computer, just a pen and paper. The fact is that as a civilisation, we aren't doing that well on the simpler problem of writing, why should we do better with the more complex task of programming?

      With that said, I agree that not everyone is going to be able to learn. But it doesn't require any exceptional skills or traits either.

      Statistically, I've got to disagree with that statement.

    16. Re:I agree that programming is not for geeks by txibi · · Score: 2

      Everyone of us is able to say "Do this 10 times.", "Do this for all people in the room.", or "Until you have at least $1000, keep on saving.".

      Well you think that every one is able to understand that, but I know at least a person with a PhD in Law that is unable to understand the concept of "FOR" or a "WHILE", and we were 2 computer engineers and PhD in computer science trying to explain it...

    17. Re:I agree that programming is not for geeks by slim · · Score: 4, Insightful

      But TFA isn't about everyone becoming Donald Knuth.

      Millions of people derive great satisfaction from mediocre guitar skills (I know people who get a lot of pleasure from their guitars, who can hardly keep rhythm). There's a class of people who could get value from *very* basic programming skills.

      Difficult problems are difficult to solve, and require talent, experience and insight.
      Easy problems are easy to solve, and don't require as much talent, experience or insight.

      Example: an artist using Photoshop decides he needs 20 layers in progression of shades. Creating each layer takes 8 mouse clicks, including a fiddly colour dialogue. Or, he could write a for() loop in some scripting language or other, and create the layers in a few seconds -- and add the tiny script to their arsenal for reuse.

    18. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Please share the link to your grandma's medium-sized software package. I'm curious. What does it do?
      Is that 10K lines? She must have written "the great American novel" as well?
      It's the same process really. Plan (optional), write, review. (but no debugging or testing required!)

      btw only really anal retentive people do to-do lists (which is what you want in a programmer, or a task specifier), most neural typical people could not be bothered.

    19. Re: I agree that programming is not for geeks by strontium5 · · Score: 1

      That's what I tell my students, that they already know programming. It was developed by humans, and comes out of our everyday interactions with our world.

    20. Re:I agree that programming is not for geeks by JaredOfEuropa · · Score: 2
      You're talking about professional programmers, in which case I agree that you don't become one by using a few simple tools and doing a few courses.

      A programmer is someone who writes computer programs; any stricter definition is just elitism. If you can come up with (not just copy)
      10 print "hello world"
      20 goto 10

      , you're a programmer, even though you're just a beginner. So is the guy with the smarts to write a few VBA snippets to tart up his Excel spreadsheet. These are just hobbyists or guys writing bits of personal software to help them do their work, but they're still programmers, and what they are doing serves a useful purpose.

      As to BASIC: That just leads to people that think they can program, but cannot. Even worse.

      Worse than what? The problem is not crap hobbyist programmers; but the people who hire them to program professionally. If they remain hobbyists or write tools for their personal use, it shouldn't bother you.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    21. Re:I agree that programming is not for geeks by TheCarp · · Score: 1

      Show me an artist and I will show you someone who wasn't afraid to make a few smears.

      I don't see how any of this negates the argument that making the learning curve for getting started a little more shallow for those who need that could help more people learn to program. Its a useful skill, and frankly, I think a good one to learn. Teaches strong logical reasoning skills, is that not a good thing?

      What is wrong with smoothing barriers to entry?

      --
      "I opened my eyes, and everything went dark again"
    22. Re:I agree that programming is not for geeks by slim · · Score: 2

      Your argument akin to saying somebody that can carry around a brick and put it somewhere is able to build a house that is comfortable and durable. Not so, rather obviously.

      And again, you're not allowing people to be non-experts.

      Not everybody can architect a house. Almost everyone can learn enough in a day to build a garden wall.

    23. Re:I agree that programming is not for geeks by thesandtiger · · Score: 1

      What's wrong with more "really bad" software being written? What's wrong with "everybody and their grandmother" thinking they can make software?

      I *want* more people to have simple to use tools. I *want* more people to believe that they can write software. Why?

      It exposes more people to software development (and maybe more people get passionate about it and become good). Most people I've run across who are REALLY good at this whole software development thing got their start fucking around with simple, accessible tools and no idea of how complex being a good developer actually is.

      It also lets people who don't know anything about computers but do have expertise in another field come up with useful (even if poorly written) tools and create them when they don't have a budget to get a "real" developer involved. In some cases, these "smears" as you would call them have been the first steps to completely changing how an entire field does their work.

      The downside you cite - that more shit software is created as a result - is frankly just a case of geek arrogance. Who gives a fuck if there's a ton more shit software out there since by and large you will NEVER have to deal with it?

      As to the times you WIL have to deal with it, anyone who is skilled enough at software development to not be a hypocrite to complain about it as you just did will also be skilled enough to handle those situations where they come up.

      Boss hires shitty people to work with you and you have to re-write everything they make because they suck, and is completely inflexible because that shitty coder is his gammy gam? Quit and get a new job - surely if you're some amazing software developer you won't have a problem with that since good developers are always in demand.

      You have to work with a codebase that is a horrifying mass of spaghetti code? Either make the business case to re-write or replace it or accept that the tool that exists is deemed good enough. If it's untenable, again, if you're any good you can walk and work elsewhere.

      Shitty amateur code will pretty much never get used in this day and age in TRULY critical applications. Yes, there are horror stories, but they are, statistically speaking, irrelevant.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    24. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Indeed. Very good example. And (oh the horror!) JavaScript may even be the next Cobol and replacing Java, the way things are progressing.

      Node.js FTW!

    25. Re: I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Ah, not really.

      Programming WAS developed by humans, but it does not come out of everyday interactions with the world.

      Programming comes from mathematics, and it requires the same background knowledge, as does accounting.

      Yes, specific tools were targeted at a subset of accounting - but being able to do quickbooks does not make you an accountant.

    26. Re:I agree that programming is not for geeks by gweihir · · Score: 1

      Nobody is talking about Don Knuth. What we are talking about here is the equivalent of a musician that can entertain the crown in a restaurant in the medium price range.

      I would also say that the very basic scripting skills you describe (no, that does not qualify as "programming"), are something people can either pick up easily by themselves, or have no chance mastering. Teaching something like this is entirely a waste of time. Talent is everything on this very basic level, and most people do not have the talent to do even these very simple abstractions. The others will do a 5 minute search on the web and have it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    27. Re:I agree that programming is not for geeks by gweihir · · Score: 2

      Indeed. You have to get the view a program has of the world, i.e. the abstraction used. Unless you understand that, nothing can help you. And by now I am convinced from experience that this cannot actually be taught, most people are just not equipped mentally to understand it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    28. Re:I agree that programming is not for geeks by TheRaven64 · · Score: 2

      There are two hard concepts in programming, and your list doesn't cover either of them. These are recursion (induction, for the theoreticians) and pointers (indirection, for the theoreticians). The idea of a pointer as something that is a name for a name for a name for a thing, at arbitrary number of levels of indirection, and that you can work with these instead of with identifiers (which are a single, fixed layer of indirection) is something that a lot of people, even those enrolled on computer science degrees, have problems with. The idea of induction is also one that a lot of people struggle with. The concept that you can define something for a simple case and then define it for every subsequent case by defining a rule that simplifies it by one step is the other concept that a lot of people struggle with.

      Generally, people who grasp those two concepts in their first year have no problems completing their degree. Those that fail, tend to drop out. If you can understand them, then everything else is easy, but any list of everything that a programmer needs to know that misses them is flawed, to say the least.

      --
      I am TheRaven on Soylent News
    29. Re:I agree that programming is not for geeks by gweihir · · Score: 2

      An ad hominem argument, the hallmark of a mind that fails to come up with any good argument and knows it.

      And no, you cannot teach everybody how to read and write. Not even in the western world. Oh, you can teach letters and words, but there is something called "functional illiteracy" and it is not rare. Wikipedia puts it at 14% of all adults even in the US. And programing is far harder than reading and writing.

      I also have to say I am not at all scared about "the masses" finding out how easy it is to program. I am scared about all the damage they will do when trying to. And it has already started, e.g. with businessmen automatizing things using spreadsheets that bypass any organizational requirements for documentation, software quality, maintainability and even backup. These are disasters waiting to happen.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    30. Re:I agree that programming is not for geeks by slim · · Score: 1

      Do what's actually happened here is that you've set a higher bar for your definition of "programming" than TFA's author.

      TFA *is* talking about the very basic scripting skills I describe. Every advanced programmer started with that level of simplicity. Even if you never advance beyond that level of simplicity, scripting is useful. At the moment, lots of people who *could* benefit from scripting, do not, because the applications they use are not scriptable, or because the scriptability is not clearly signposted.

      Likewise, if someone wrote an article about attracting more people into learning a musical instrument, people getting good enough to take paid jobs gigging at restaurants would not be foremost in their mind.

    31. Re:I agree that programming is not for geeks by gweihir · · Score: 0

      And once again, you miss the point. I am not talking about "professional programmers". I am talking about programmers than can solve actual problems competently. Your definition is worthless. But even with your simple example, you will find that it is beyond most people to come up with something on that level by themselves.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    32. Re:I agree that programming is not for geeks by locofungus · · Score: 1

      Ambiguity.

      The most people do not recognise ambiguity. People say things and then look at you oddly when you point out that what they have said also has a completely different meaning. The meaning they intended is usually obvious from the context but they are so locked on the context that trying to explain the alternative meaning is usually a wasted cause.

      That mindset just does not handle programming at all well. "It's obvious" is a usually a disaster when you start thinking about programming because it's only obvious because you obviously aren't worrying about all those other cases. Although I think the mindset is better adjusted to handling interactions with people where "going with the flow" is a good strategy. Sometimes I'll lose the flow because I'll be worrying about whether we're talking about A or B and miss the ongoing conversation while others "knew" it was A and so didn't get distracted.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    33. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      spoken like a true fresh out. Probly be a CIO one day, pretending to know what you're talking about, making real devs lives intolerable.

    34. Re:I agree that programming is not for geeks by Half-pint+HAL · · Score: 2

      Everyone of us uses the concept of identifiers (think variables), when we say “he" instead of "Jim", or even "Jim" instead of shoving that person in front of your eyes.

      False friends. Pronouns (he, she) etc are a closed set (think "keywords", not "variables"). And pronouns, like names, are fuzzy, context-sensitive references. It is precisely these linguistic constructs that make variables hard. We're not used to the fixed, uncompromising nature of an instatiated variable, and we're not used to the idea of strict scoping and overwriting of variables. I can talk about three different Jims without ever once making an explicit assignment declaration to the label "Jim".

      Everyone of us uses the concept of sequences of commands, when making a to-do list.

      But that would be a semantic list, not a procedural list. Far more like HTML than programming, and not much like that either.

      Everyone of us uses has no problem with including tasks into that to-do list, that themselves are a set of steps one could write down somewhere else.

      "Could", not "does". We're still in semantic mode. The idea that we have to spell every single step out for a process that a human mind has rationalised as elementary is counter-intuitive.

      Everyone of us is able to say "Do this 10 times.", "Do this for all people in the room.", or "Until you have at least $1000, keep on saving.".

      Yet we don't normally put in explicit and unequivocable block markers to say which exact step(s) to do 10 times -- again we rely on semantics to make it obvious what needs to be repeated.

      Everyone of us is able to make lists, use property lists (dating site profiles, etc), handle tree structures (company hierarchies, file systems), and even more complex ones.

      Funny that your example for a property list is a computer-based example, because we're normally not quite as neat as the internet would like us to be. Most profiles are incomplete anyway.

      Tree structures are very rare in most people's world, and most people use computer filesystems as a collection of flat or very shallow systems -- notice how Windows has "My Documents", "My Pictures", "My Music" etc. Within that most users will only go one or two layers down ("My Documents\University assignments","My Pictures\Christmas 2012" etc).

      Everyone of us uses grouping (think modules) all the time in daily life. It's part of how our brain works, to group things into classes.

      But our groupings are unclear, multiple, overlapping and interfering. Our structures are often self-contradictory and our brains handle the contradiction. OO has been fighting with this since the beginning, experimenting with classes, prototypes, interfaces, multiple-inheritance etc etc trying to create a means of reconciling computers' inherent anal retentiveness with human fuzziness.

      Everyone of us can use and understand the concept of expressions, when we read and write recipes. (Which essentially are programs: dinner = [(simmerFor (10 min) (add [cream,whiteWine,(dried chickenBroth),nutmeg,(piecesOf broccoli),salt,pepper,garlic] (fried (chopped chickenBreast)))) + ((cookedIn saltWater (8 min)) tagiatelle), readyMadeGarlicyFriseeSalad ].)

      Expressions like that are very abstract and actually quite difficult. A recipe is not written like that because most people would be incapable of understanding it. We go to incredible lengths to render a simple sequence of steps into a prose-like form that a human can accept.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    35. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Neither explicit use of pointers nor recursion are necessary to accomplish any programming task. Many languages had neither (Fortran-77 is one). Whatever can be done recursively can be done (often in a clearer way) iteratively.

    36. Re:I agree that programming is not for geeks by Half-pint+HAL · · Score: 1

      Your argument akin to saying somebody that can carry around a brick and put it somewhere is able to build a house that is comfortable and durable. Not so, rather obviously.

      And again, you're not allowing people to be non-experts.

      Not everybody can architect a house. Almost everyone can learn enough in a day to build a garden wall.

      Yes, but they do have to be taught. Bricklaying is not an inate skill, and neither is computer programming..

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    37. Re:I agree that programming is not for geeks by dcollins · · Score: 1

      I'll bet you $10,000 that you can't take a part-time position at a community college, teach one section of basic programming (less than 50 hours of instruction), and get everyone to pass a test in it. Because no one's every succeeded at that in the history of programming. Thus: Your assertions are wild insane ravings in the face of hard facts known for decades.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    38. Re:I agree that programming is not for geeks by Half-pint+HAL · · Score: 1

      But Javascript is more than a wee bit mind-bending, and navigating a DOM is really rather difficult until you've got your head round a lot of concepts...

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    39. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 1

      Anyone can program, but that's why ./ is full of stories of bad programmers. Anyone can be a rocket scientist, but would you take a ride on a rocket that isn't made by those with a "special mind"?

      A programmer is someone who can tell a computer to do something. A good programmer is someone who knows how to analyse a problem and give it a good solution.

      Just look at multi-threading, it's crazy simple to design a system that isn't full of race-conditions, but people seems to have an issue wrapping their head around potential corner cases. You need to not only look at a problem and know how to fix it, but look at code and know how to break it.

    40. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Even the basic understanding that a large part of our world is run by if-then statements and loops is a fundamental insight. Getting more people to be sensitive to this, and learn to see these systems around them, will help demystify living in a high-tech society.

      As Douglas Rushkoff said: program or be programmed.

    41. Re:I agree that programming is not for geeks by slim · · Score: 1

      Yes, but they do have to be taught. Bricklaying is not an inate skill, and neither is computer programming..

      ... and whoever said either of them are?

      TFA is about reducing the barriers to learning, and creating motivators for learning.

    42. Re:I agree that programming is not for geeks by TheRaven64 · · Score: 1
      Without indirection, via pointers or some equivalent, you can't create variable-sized data structures. The same applies to unbounded computations and recursion. You either use recursion, or you emulate it with a loop and some structure representing a stack.

      I would say that you can't claim to be able to program if you can't write a program that can be run on a Turing-complete computing engine, but can't be run on a finite automaton, and for that you need to understand indirection and iteration.

      --
      I am TheRaven on Soylent News
    43. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      But without the thousands of worthless xml and other config files to feed eclipse and its endless lists of framework dependencies for even the most simple information systems, we lock out the vast majority of potential "makers" by limiting tool use to java geeks who thrive in exceedingly tedious and somewhat liturgical job environments.

    44. Re:I agree that programming is not for geeks by HeckRuler · · Score: 3, Insightful

      All I want is people who can write an actual letter that is sufficiently intelligible to serve a simple purpose.

      Dear mom,
      We're out of milk.

      for(x=0; x!=100; x++)
      if(cell(x,1) == 5)
      cell(x,2).value = "good";


      What? Do you think programming or writing are some sort of high art that the plebs can't comprehend? Doesn't my letter serve a simple purpose? Doesn't it convey a thought? Doesn't the for loop perform a function?
      No, most people will never be professional programmers, or write "moderately complex" software. Because they don't have to.

      but how many of those can _really_ write a letter if they have to?

      No true scotsman fallacy. Get off your high horse.

      I expect less than half of those who have learned to write are actually able to do so.

      That's because you have an EXTREMELY jaded and cynical outlook on humanity. Go talk to some people.

    45. Re:I agree that programming is not for geeks by Jmc23 · · Score: 1
      Ah, said by someone who has encountered failure quite a bit in his life through lack of 'talent'.

      Don't peddle your whiny excuses onto others. Just because you haven't found the way doesn't mean there isn't one!

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    46. Re:I agree that programming is not for geeks by Jmc23 · · Score: 2

      He didn't write that monstrosity in Lisp. I can barely understand it and Lisp is the only thing I understand.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    47. Re:I agree that programming is not for geeks by Jmc23 · · Score: 1

      You've never seen housing in 'developing' countries have you? ...or whatever the PC term du jour is.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    48. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Hmmm... It would be cool to have some everyday examples of recursion. I'm interested if /.ers have some examples.

    49. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Well, you see, the examples you present are not problems, they are automation. There's nothing wrong with automation, part of developer time is spent doing automation. However, the reason most people here disagree with the "tools for programming" is that programming includes developing new stuff, new algorithms, new components which then can be automated, by you, or other people.

      So yeah, maybe Wiggins should get a mac and learn about automator, the useful programming tools for the masses.

    50. Re:I agree that programming is not for geeks by Jmc23 · · Score: 2
      Perhaps, the problem lies that most of the abstractions are created by programmers, and let's face it programmers have a unique way of thinking that's a bit different than the rest of the population.

      Coupled with the fact that these ad-hoc abstractions are usually developed incompletely, don't model the real world, and are frequently mired in tedious details it starts to become very clear why regular people are left out of programming.

      Seriously, programming language syntax is confusing and arbitrary. Pretty much the only language that doesn't get bogged down in tedious details, doesn't have inconsistent syntax, allows for easy construction of your abstractions, and is to some extent built upon something that everybody understands, a list, is Lisp.

      Now, the really strange thing is that most programmers can't grok Lisp! They get so lost in the details of their abs and algos that they need the jailed syntax and protection against stupidity that 'popular' languages foist upon them to keep them on track.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    51. Re:I agree that programming is not for geeks by Jmc23 · · Score: 1

      So... the programming world would be a better place if everybody was a Lisper?

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    52. Re:I agree that programming is not for geeks by Jmc23 · · Score: 1

      Well, as long as YOU expect it's only half, we'll all take your divine word for it, and accept your stupid opinion as a valid counter-argument.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    53. Re:I agree that programming is not for geeks by gweihir · · Score: 1

      What's wrong with more "really bad" software being written? What's wrong with "everybody and their grandmother" thinking they can make software?

      If you have to ask that, then you are part of the problem. Sorry, but it is really not possibly to correct a misconception this massive in a /. discussion.

      Who gives a fuck if there's a ton more shit software out there since by and large you will NEVER have to deal with it?

      I have to deal with it regularly.

      Shitty amateur code will pretty much never get used in this day and age in TRULY critical applications.

      I can personally attest to this being wrong.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    54. Re:I agree that programming is not for geeks by gweihir · · Score: 2

      I agree with you on Lisp. The core language is strikingly elegant. I did some smaller work with it way back and really enjoyed it. I think the problem that most programmers have with Lisp is that if you do not understand recursion, it is very hard to get anywhere. That said, I am all for teaching (core) Lisp in school. You cannot get much more pure and simple than that. And maybe it will motivate the few that have the talent to go into software afterwards.

      However, as soon as you bring libraries in, Lisp is a mess. For example, the Emacs Lisp manual has > 1000 pages and that is just for programming an editor. I have heard bad things about Lisp libraries from people working with it in automated theorem proving as well, as random crashes, inconsistent runtime, the garbage collector collecting too much or too little, etc. That was 20 years ago though, maybe things have gotten better.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    55. Re:I agree that programming is not for geeks by Lodragandraoidh · · Score: 1

      Everyone doesn't need to be able to manage memory directly, manipulate CPU registers, or do authentication/cryptography. I'm not saying to take away systems programming; but application programming shouldn't require these low level constructs - and where they do need to interact with those systems level things, a standard and secure implementation should be imbedded in the framework/sandbox you're using so that the interaction is consistently bug free and secure. We do need tools that limit the problem domain - even for so-called 'professionals' that continue to churn out zero-day exploits on a daily basis.

      The bigger problem is too many unskilled (in terms of the complexities described above) programmers having to implement these things in their application layer programs.

      We can build systems that are easy to use and manage - and easy to program for applications layer things. We don't do that because we are lazy and would rather hide behind a limited liability license and collect revenue for each gee-whiz feature that differentiates our product from the thousands of others out there.

      My suggestion is for us to do something before the users come at us with pitch forks and torches.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    56. Re:I agree that programming is not for geeks by thesandtiger · · Score: 1

      So congratulations, I guess, in so completely missing my point.

      Please explain to me what is bad about more people learning enough about programming to be able to write software - even bad software - to scratch an itch. Because that's what I was talking about, which I made perfectly clear in my post.

      Difficulty: do it without being a condescending asshole, if you can.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    57. Re:I agree that programming is not for geeks by Lodragandraoidh · · Score: 1

      Here's a wild idea - why not make a user-level computer language that abstracts away those details for the user-level programmer.

      Basically create a development tool specifically for end users that doesn't allow them to shoot themselves in the foot.

      I've been programming for 30+ years - and I know end users would find use for simple scripting/automation tools if they were designed correctly.

      A useful program isn't necessarily a complex one; I'm seeing too many people here conflate usefulness with complexity - and no such correlation exists. I can only assume they are worried that if people can roll their own - there will be less need for 'professional' programmers. That is the wrong way to view this - instead think about the overflow of projects that exist today - there will be less trivial ones to deal with in this scenario, and our professionals will be able to focus more time and energy on making the complex projects better.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    58. Re:I agree that programming is not for geeks by Jmc23 · · Score: 2
      I'll admit the library problem in Lisp still exists today, though probably not in the same way. There are so many abandoned libraries out there it's hard to tell what to use. Though just a little bit of experience with Lisp brings an understanding of the library problem. You see, it's just too easy to write your own solution. I've spent probably 3x the time looking up libraries than I spend writing exactly when I need after finding out it doesn't exist.

      I wouldn't use Emacs as an example. Most good lisp libraries that I use have documentation or dictionary on one page. There's a lot with no documentation, but a quick look at the source and you realize the documentation would probably come out larger than the source.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    59. Re:I agree that programming is not for geeks by Lodragandraoidh · · Score: 1

      You're assuming a static tool set (leaning towards systems programming level skill).

      Given the right tools - anyone can generate automation for themselves that is useful in some context. This is what the original article is talking about - and I don't understand the lack of understanding of that basic premise by ostensibly smart people who can handle complexity. The programmers here "do'th protest too much!"

      Every problem is not a nail, and every tool is not a hammer. This is 30+ years of experience talking here; giving users decent automation tools for their skill level isn't going to make you lose your job...unless you're already a complete moron.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    60. Re:I agree that programming is not for geeks by locofungus · · Score: 2

      if(milk.quantity == 0) {
        pick up purse
        put on coat
        put purse in coat pocket
        open front door
        go out of front door
        close front door
        take purse out of coat pocket
        take key out of purse
        lock front door
        put key in purse
        put purse in coat pocket
        walk to car
        take purse out of coat pocket
        take key out of purse
        unlock car door
        open car door ...
        put milk in fridge
        close fridge door
      }

      Dear computer.
          5 is the good value.

      MOM: ABEND. Key does not fit in lock.

      Non programmer. Of course I *$%^&ing meant take the front door key out of the purse to lock the front door. What idiot would take a car key out of their purse to do that.

      Computer programming requires a pedantry that the vast majority of people are unwilling to tolerate. Even socially well adapted (good) programmers tend to bring a pedantry to social situations that at best, non programmers find quaint and amusing and some find unbearable.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    61. Re:I agree that programming is not for geeks by msobkow · · Score: 1

      Good Lord. Given the difficulty people have with the basic algebraic concept that "X is a variable", do you really think the "average" person could ever write a useful program?

      I have great faith in the unwashed masses hanging themselves if they tried.

      --
      I do not fail; I succeed at finding out what does not work.
    62. Re:I agree that programming is not for geeks by Lodragandraoidh · · Score: 2

      I am scared about all the damage they will do when trying to. And it has already started, e.g. with businessmen automatizing things using spreadsheets that bypass any organizational requirements for documentation, software quality, maintainability and even backup. These are disasters waiting to happen.

      This is no worse than what 'professional' programmers are already doing to those same end users through zero-day exploits and bugs that confound easy use of their computing systems.

      Why not build automation tools instead that not only allow end users to handle some of their own automation without shooting themselves in the foot - but also ties those solutions into the enterprise systems as well? Geez guys - this is not rocket science. For that matter, we could also create tools that limit what application programmers can do to avoid the security pitfalls - and make programming faster and more accurate even for the professionals who shouldn't be doing systems level programming anyway.

      What I keep hearing is laziness, fear, and some amount of greed talking. Computers weren't designed for your private amusement. They are tools for the greater good - that is currently causing as much lost time and suffering as not having the computers would have in the first place. We need to do something about this.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    63. Re:I agree that programming is not for geeks by Hazelfield · · Score: 1

      I expect less than half of those who have learned to write are actually able to do so.

      Wait a minute, how did you come up with this figure? If you can't write an actual letter that is sufficiently intelligible to serve a simple purpose, then by any reasonable definition you can't write. Are you saying half the people who have learnt how to write have since forgotten it, or that they have a level of writing that isn't even sufficient to compose a letter? I don't buy that. If you've learnt how to write, you can write a simple letter.

      This isn't off topic either, because the analogy carries over to programming. If you've learnt how to program once, then you can probably use that skill for simple tasks like writing VBA macros for Excel. It doesn't matter if you don't know the exact syntax - you can always search the web for that - but the basic knowledge of variables, formulas, loops, how code is executed line by line, how to step through the function to debug and so on, that's something that far more people than actual programmers can use. I should know - I'm not a programmer and I wouldn't know how to write a standalone program that could do anything remotely useful, but I do save a lot of work every day with my custom-written macros.

    64. Re:I agree that programming is not for geeks by jbo5112 · · Score: 1

      The problem with programming most people will face is the level of detail and accuracy required for a computer. The human mind has a remarkable ability to understand someone when you use the wrong word, and most on the job training I've gotten was from someone who couldn't have reduced the task to an exact list of step by step instructions without pictures or demonstrations. They rightfully expect people to fill in the gaps and know what they meant. Computers don't have that feature.

      I do think small scale programming would be useful and doable for a lot of professionals. Excel spreadsheets (or equivalent) would generally be a good place to start for most. You can chain together functions and logic, and possibly even some looping (at least copy and paste the operation). Something like awk or bash might be useful for someone getting a little more advanced. However complex or open-ended algorithms quickly lose most everyone. Even writing a binary tree and putting a simple algorithm in it baffled my 2nd year CS classmates at a difficult college.

    65. Re:I agree that programming is not for geeks by c0lo · · Score: 1

      A useful program isn't necessarily a complex one; I'm seeing too many people here conflate usefulness with complexity - and no such correlation exists.

      Actually, there is one, even if it is an inverse correlation (the more complex a program the less useful. See Unix for a counter).

      --
      Questions raise, answers kill. Raise questions to stay alive.
    66. Re:I agree that programming is not for geeks by plover · · Score: 1

      Semantics. You guys are really arguing about the difference between programming (creating a set of instructions) and software development (creating a set of instructions and arranging them in such a manner such that they are testable, logically correct, meet the given requirements completely, reusable, secure, modular, efficient, and understandable and maintainable by other humans.)

      Anyone can write a program, but not everyone who writes a program is a software developer. Including some software developers I know... :-/

      --
      John
    67. Re:I agree that programming is not for geeks by Hognoxious · · Score: 1

      you've set a higher bar for your definition of "programming" than TFA's author.

      TFA's author is an art historian or sociologist. So I'd *totally* trust him (or more likely her) to set the bar correctly. [eyeroll]

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    68. Re:I agree that programming is not for geeks by DavidHumus · · Score: 1

      Without indirection, via pointers or some equivalent, you can't create variable-sized data structures.

      Unless you use one of the many languages with dynamic data structures, like J, etc. But that would be too easy...

    69. Re:I agree that programming is not for geeks by Hognoxious · · Score: 2

      Don't peddle your whiny excuses onto others.

      Don't sell your excuses onto others.

      WTF is that supposed to mean, you cretin?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    70. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      I disagree with your assertion that writing teaches logic. Given the amount of blatantly illogical things I've seen written I'd argue that it does little, if anything, to inherently teach logic.

    71. Re:I agree that programming is not for geeks by Hognoxious · · Score: 1

      Almost everyone can learn enough in a day to build a garden wall.

      You either have a natural knack for bricklaying or you've never tried it.

      'Fess up. Which?

      Second thoughts, don't bother. Whichever it is, you're wrong.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    72. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Your family.

    73. Re:I agree that programming is not for geeks by plover · · Score: 3, Informative

      I'll give it a shot.

      There are two primary contributing factors to problems with respect to badly written software. One is that it's generally difficult to look at the software externally and determine its quality. I'm not an automotive engineer, but I can look at a 1980 Chevette, take it for a test drive, and determine that it was built from duct tape, bubblegum, and staples, and was not a well made vehicle. The same is less possible with software, which often doesn't offer those externally visible clues; and it's even more of a problem for non-developers to see its quality (or the lack thereof.)

      The other half of the problem is that providing solutions of any kind (not just software) enable further external dependencies upon those solutions. The fact that it's a software solution may make some people believe that it's reliable in ways that it is not.

      For example, a beginner programmer might write up some home automation code that turns on a light when the garage door opens. They might then extend it to make it dial a phone and play a recording when a button is pushed. And that's absolutely a great thing, because the kid is starting to learn.

      The problem starts when Uncle Joe, who is not a software engineer, says "that's really neat, now give that button to Grandma so that if she falls she can push it and we'll go help her out." But the beginner's software might have a hidden fault that causes it to only execute when the garage door is open, which it was throughout its limited testing. What has been created is a program that externally looks good, and so it gets reused, but has had insufficient testing and is in no way well-engineered or ready for production use. And nobody involved in the project understands that until it's too late.

      Not recognizing that the software is bad, someone then created an external dependency on that bad software. Grandma might fall when the garage door is closed, she pushes the button instead of dialing the cell phone because she believes the button will work, and instead goes unrescued for too long.

      This is of course a contrived example, but it's amazing how much bad code is woven into so many different places in the real world, with so many dependencies on it. And once you add those dependencies, it's often very hard to change them. Believe it or not, I've heard the management equivalent of "We can't take the button away from Grandma now, what if she falls again? It makes her feel better."

      This is not saying its bad for people to create software. What is bad is that people don't understand that what they've created is of low quality.

      --
      John
    74. Re:I agree that programming is not for geeks by Jmc23 · · Score: 1
      I didn't say sell. I said, and meant, peddle which has more connotations. Though I guess some people are unaware of what connotations are and the flavour and dimensions they can add.

      Have you heard of cognitive dissonance theory and/or rationalization? When we have beliefs that support our failures we tend to peddle them to others, hoping for some sort of agreement or support in return, something that will stave off the truth, that really deep down we are aware of.

      BTW, you do know it's bad form to insult somebody just because you were unable to understand their dialogue with someone else, right?

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    75. Re:I agree that programming is not for geeks by darkwing_bmf · · Score: 1

      Programming is a craft, and every good craftsman knows the value of good tools.

    76. Re:I agree that programming is not for geeks by chrismcb · · Score: 1

      And again, you're not allowing people to be non-experts.

      Not everybody can architect a house. Almost everyone can learn enough in a day to build a garden wall.

      No, no they can not. A LOT of people can learn to build a garden wall, and some can learn it in a day. But some people can't. And THAT is simple. Programming is difficult. VERY difficult. Sure a lot of people can learn it. But some people never will. They just don't get the concepts.
      Someone pointed out "everyone of us" can do X... And they are wrong. Some people can't follow a list, some people can't follow directions, let alone create directions. Could they do with practice? Perhaps. But they don't want to. They don't need to.

    77. Re:I agree that programming is not for geeks by chrismcb · · Score: 1

      While I agree that it is worthwhile to _expose_ as many people as possible to programming

      Why is it worthwhile to expose people to programming? I think you should give me people a chance to learn it, but it isn't necessary to expose them to it. Knowing how to program isn't going to really help you in any other profession. Knowing some logic would help, but then you can just learn logic.
      There are lots of profession that it might be useful to expose to people, but there is only so much time.

    78. Re:I agree that programming is not for geeks by chrismcb · · Score: 1

      A programmer is someone who writes computer programs; any stricter definition is just elitism. If you can come up with (not just copy) 10 print "hello world" 20 goto 10 , you're a programmer, even though you're just a beginner.

      A programmer is someone who writes computer programs. Not someone who once upon a time wrote hello world. And it is impossible to come up with hello world, without copying it. That is like saying, someone who once placed a single brick is now a brick layer. No, they aren't.

    79. Re:I agree that programming is not for geeks by firewood · · Score: 1

      Show me a great artist or architect, and you'll probably also find someone who as a kid made some very primitive and stupid looking (except to parents) scribbles. Take away all their drawing and painting (etc.) implements until someone is old enough for Structured Programming and Algorithms 101, and probably a huge portion of the great artists in the world would have never picked up an interest in the subject during their formative years, or ever after.

    80. Re:I agree that programming is not for geeks by martin-boundary · · Score: 1
      That's meaningless. A surgeon is someone who knows how to cut a person with a knife. A good surgeon is someone who knows how to patch up a person in a hospital.

      All you're doing is changing the meaning of established words to fit your argument.

    81. Re:I agree that programming is not for geeks by gweihir · · Score: 1

      Ask yourself whether you want MDs being trained this way. Sure, everybody can put on a band-aid, and that is fine. But most people do understand their limitations there and we do not teach amateurs the basics of surgery, for example. That is completely off-limits for non-medical personnel. It would be easy to teach it. Badly stitching up a cut, for example, is something everybody should be able to learn. Or making a cut through skin. The problem here is that without extensive training, skill, knowledge and experience, you cannot assess the potential harm you are doing and you cannot do the task well.

      My point is that computer software creation is similar. What I have observed time and again is that people with some small programming skills do not realize they are not programmers and have no business writing larger or more complicated software. Instead they apply for jobs as programmers and some even get them! And then they start to do damage.

      As to your "difficulty": Not possible, I have to adjust my writing to your level or you would not understand. It still requires you actually trying to understand what I am saying.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    82. Re:I agree that programming is not for geeks by gweihir · · Score: 1

      I completely agree. Nice example BTW.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    83. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      An ad hominem argument, the hallmark of a mind that fails to come up with any good argument and knows it.

      And no, you cannot teach everybody how to read and write. Not even in the western world. Oh, you can teach letters and words, but there is something called "functional illiteracy" and it is not rare. Wikipedia puts it at 14% of all adults even in the US. And programing is far harder than reading and writing.

      I also have to say I am not at all scared about "the masses" finding out how easy it is to program. I am scared about all the damage they will do when trying to. And it has already started, e.g. with businessmen automatizing things using spreadsheets that bypass any organizational requirements for documentation, software quality, maintainability and even backup. These are disasters waiting to happen.

      So, teach the businessmen! I'm not a programmer; I'm a technical writer. My colleagues and I carry out loads of formatting operations that I suspect could be carried out more efficiently and effectively using macros, but every time I go looking for the kind of Visual Basic tutorials that could help me construct them, I either get extremely simplistic "this is how to create a calculator button in Excel!" tutorials, or completed macros that do almost exactly what I want, but give no indication of how to modify them to to exactly what I want.

      I would kill for a good, solid mid-level tutorial database, but most of what I've found is incomprehensibly jargon-filled. Maybe they could use a technical writer. /irony.

    84. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 0

      Okay, I'll do the next one...
      Everyone of us can communicate all of those things to another person in a completely unambiguous manner so that they can follow our instructions perfectly and not have to ask follow-up questions. ...
      Oh, sorry.

    85. Re:I agree that programming is not for geeks by thesandtiger · · Score: 1

      As I said in both my original post and the follow-up to your reply, I am not talking about people joining the profession but rather people developing a simple basic level of understanding of programmatic concepts.

      That you cannot get this through your head despite my saying it clearly two times, means you are not worth talking to; either you aren't capable of comprehending what you read or you are intentionally ignoring what I'm saying.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    86. Re:I agree that programming is not for geeks by plover · · Score: 1

      We aren't at the magical level of Star Trek computers yet. One problem in particular is understanding exceptions. In the software engineering world, we understand that all kinds of things can fail. The casual scripter today doesn't understand this, that in order to have any program work that some thought must be given to the failure modes. In many cases, the failures are obvious and immediate, and can be handled manually. I scripted a phone dialer, I hear the phone is busy, I run my script again. That same person won't understand that a busy signal is always a possibility, and that their script needs to handle it. Or they may script that, but not a line-in-use case, or any other unexpected problem.

      If computer systems could provide rational default behavior for every problem they might encounter, there is somewhat less of a problem. Restricting them to a limited domain, such as scripting a DVR, where all failure modes are known AND the amount of damage a mistake can cause is trivial, can make someone successful. Letting them off the reservation, to freely interconnect whatever they want in a language they barely grok, can set them up for more serious problems that they do not understand.

      We have to build better systems and languages to really enable this stuff to be truly successful out in the real world, in the hands of the masses. We are not there yet, despite many tries.

      --
      John
    87. Re:I agree that programming is not for geeks by thesandtiger · · Score: 1

      I don't disagree with the idea that the casual scripter doesn't take exceptions into account (or even, unfortunately, many "professional" developers) - they either trust that the user won't screw up on accident or intentionally or they don't think of the cases where something else might go wrong etc.

      But, I think it's actually not THAT hard to teach the concept and necessity of handling exceptions. I volunteer teaching adults programming classes, and exceptions and exception handling is integrated into every lesson - in fact, the first lesson ('How to think like a computer") wherein I have my students write a recipe to make an omelette, spends most of the time with them figuring out exceptions, classifying them from fatal to recoverable to annoying but ultimately able to be ignored, etc. My students have always taken to it easily - people get the concept of shit not working right and breaking in weird ways.

      On your other point - that people working in less safe domains with limited knowledge - what makes programming so special, when that is true of literally any other technology I can think of? An untrained person with very little experience working on something important in any field can cause very serious problems, and yet society goes on. We have ways of handling the exceptions that come up from people with limited skills breaking things (safety measures, liability, common sense - "No, Bob, I don't care if you read about it on the Interwebs, I'm not going to let you use your ShopVac to perform liposuction on me!" and so on).

      I'm not talking about "letting people off the reservation" so that they can do whatever the hell they want to anything anywhere. Just as I wouldn't let my idiot brother work on the electrical wiring in my home or work on my car or my plumbing, I wouldn't let any random yahoo touch any other system that I believed important. Nor would I buy a product or use a solution for anything that I needed to rely on from just anyone cause they kinda sorta have a version that might work sometimes. Personal responsibility comes into play in a huge way.

      Sometimes people even find ways to break other people's shit when they didn't get permission - something they did with a technology they barely understood or didn't fully appreciate winds up causing someone else harm. Some years ago the apartment building next door burnt down because one of the residents didn't know to clean the lint filter in his dryer. Should we then complain that the barrier to entry to doing laundry is too low because an idiot can burn down a building in a worst case scenario? I know someone who died from salmonella poisoning they got from having under-cooked chicken at a dinner party. Do we need to require that someone who wishes to turn on their stove only be able to do so after being retina scanned and confirmed to have basic food safety knowledge?

      My point here is that people misuse potentially dangerous technology all the time, yet society goes on, and programming is no different. More people having a basic understanding of it - making it easier for people to learn that computers are not just some magic box that shows them porn - is actually a really good thing BECAUSE of the concerns people here are having. First, it will mean that more people will know enough to make a more informed decision when letting someone else make software for them, which will help filter out the idiots. Second, it will mean that society will find ways to adapt to all those bad things that shitty software can do.

      Personally, I think the arguments against it reek of the same kind of nerd arrogance that fueled arguments way back when regular people first started getting online - they'll break things because they're stupid, they'll make it worse for us, blah blah blah. And yep a lot of bad shit happened - but we got over it, adapted, and now have more robust systems in place. And, even better - all those people who are just "regular" (read: not CS/Engineering students) folks wound up making the Internet a lot more interestin

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    88. Re:I agree that programming is not for geeks by plover · · Score: 1

      I completely get what you're saying. I guess I'm looking at it more cynically. If you divide the world into two sets, people who want to understand programming, and people who want the computer to do stuff for them, it's the latter that cause the problems. Everyone in your classes is of the former set, and I understand why you want them to have every opportunity to succeed. They should have it. But I have to deal with people who fall into the other set, the ones who don't want to hear about exceptions, or think that by asking about them we're trying to derail their ideas. They confuse "exception" with "problem".

      Some of the more clever members of that set get it into their heads that if I can script an answer, they are smart enough to script an answer as well. "I can program my DVR, I can program this other thing too." So they're the arrogant version of script kiddies. And they cause the damage.

      So yeah, we try to put rubber bumpers around the languages and systems to try to keep them from causing as much damage as possible. (So far, that has only yielded crap languages like BASIC and .Net.)

      So my spin on all this is: if you want your programming students to be successful, teach them a real language, with sharp edges and all. Help them be real programmers. Leave the safe scripting languages to the unwashed masses.

      --
      John
    89. Re:I agree that programming is not for geeks by thesandtiger · · Score: 1

      I wonder how you're approaching the idea of exceptions with people if they're getting upset when you explain exceptions to them. I've worked in multiple different businesses and environments ranging from extremely corporate to extremely casual and have literally never experienced someone causing me of trying to detail their idea when I ask them to help me figure out potential weak spots in an implementation and how to address them.

      Maybe it's just that I make it clear that, if we're pursuing the idea at all it must be a good one, and figuring out failure modes just means we are going to make sure it's as bullet-proof as possible? Seriously, exceptions exist EVERYWHERE in every different type of environment - I mean, I've had people start giving me laundry lists of exceptions and ways they get handled in things ranging from cars (fuel gets cut off in a crash etc) to cooking (you're missing an ingredient, replace it or change plans) to, well, everything.

      I'm not saying you're coming off like a jerk to those people who get upset, but it just seems like such an absolutely bizarre experience, since in almost 20 years of professional life in a wide range of environments I've never had that experience. Ether I'm just a ridiculously lucky person, you're an unlucky one, or something else is afoot.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
  4. Problem-solving... by Anonymous Coward · · Score: 0

    If you lack the problem solving ability needed to set up your devkit, maybe programming isn't for you.

    1. Re:Problem-solving... by mwvdlee · · Score: 3, Insightful

      Considering that a basic devkit like Eclipse (sufficient to write a lot of Java code) can be set up by downloading, unzipping and double clicking on the file with the colorful picture, I can only concur.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:Problem-solving... by feedayeen · · Score: 5, Insightful

      Considering that a basic devkit like Eclipse (sufficient to write a lot of Java code) can be set up by downloading, unzipping and double clicking on the file with the colorful picture, I can only concur.

      You are missing a few steps, like installing the JDK and possibly installing the JRE, figuring out what the heck this workspace thing is. The Hello, World example you copied from the Internet also doesn't work because the package doesn't match. Congratulations, Hello, World compiles in Eclipse, but you want to see it as a standalone program. You click on your .java or .class file, 'Windows can't open this file'. After googling the problem, you find out that you need to run it from the command prompt by typing "java hello.class" so you become comfortable with cd.. until you get to your workspace and find the 'bin' folder. You try it, 'java can not be found or recognized'. Now you have to add the jdk to the path.

    3. Re:Problem-solving... by HolyCrapSCOsux · · Score: 1

      a thousand times this ^ I tried to write C code in eclipse. *shudder*. Went back to gedit and a command prompt.

      --
      0xB315AA8D852DCD3F3DCA578FD2E0BF88
    4. Re:Problem-solving... by coolmadsi · · Score: 1

      In Eclipse you can right click on a .java file and select "Run As->Java Application" to run the file as a Java application. You don't get a program file but you probably wouldn't want one for a first "Hello, World"

  5. Pure Data by pedestrian+crossing · · Score: 4, Informative

    I just started experimenting Pure Data, and it is an example of an environment that does this quite well. Although it can be very complex when you dig down into it, it's very easy to get started with and create useful objects without the "fuss" that TFA talks about.

    --
    A house divided against itself cannot stand.
    1. Re:Pure Data by mwvdlee · · Score: 1

      Although it can be very complex when you dig down into it.

      This is the problem with trying to simplify ("abstract") anything; you make the simple things easier and the slightly-less-than-simple things nearly impossible.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:Pure Data by Anonymous Coward · · Score: 0

      Although it can be very complex when you dig down into it.

      This is the problem with trying to simplify ("abstract") anything; you make the simple things easier and the slightly-less-than-simple things nearly impossible.

      Which is exactly what you want to do for people who just want to do some simple things.

    3. Re:Pure Data by gweihir · · Score: 3, Informative

      Although it can be very complex when you dig down into it.

      This is the problem with trying to simplify ("abstract") anything; you make the simple things easier and the slightly-less-than-simple things nearly impossible.

      Something Microsoft also excels at in their products. As soon as you leave the narrow area of what they expected you to do, configuring Windows gets more cryptic than Linux kernel programming. You should always make things as simple as possible, but not more than that. This is one example of where the limit was crossed. With that, people are tricked into thinking they understand the problem, when in reality they do not. This prevents learning, realistic self-assessment and will produce any amount of fundamentally broken software.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    4. Re:Pure Data by tulcod · · Score: 1

      I think this fails for exactly the reason pointed out in the exert: it only hides the actual code between point and click programming.

  6. "average" person? by LodCrappo · · Score: 0

    "Despite common stereotypes, programming is not out of reach for the average person"

    I think this just shows how little Wiggins knows about the average person.

    --
    -Lod
    1. Re:"average" person? by Anonymous Coward · · Score: 0

      He should spend more time looking at the crowd shots on TV wrestling. *There's* some average people.

    2. Re:"average" person? by Anonymous Coward · · Score: 0

      yeaaaaaaaaa bugger.

  7. This guy has it backwards by Anonymous Coward · · Score: 1

    He clearly doesn't knows even what he's proposing.

    This gentleman is asking for more programmable tools. I imagine that he's thinking of programming all them in a single, domain specific language that covers all domains of tools a user may want to program. But this is an oxymoron. A language can be domain specific or general purpose, but not both.

    1. Re:This guy has it backwards by Jmc23 · · Score: 2

      Seems you've never met Lisp have you?

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
  8. Missed a third problem... by Anonymous Coward · · Score: 0

    #3: "Why am I doing this?"

    Unless the "average person" has a hobby-like interest in computers, wanting to understand why they work or what one can or can't do with them, WTF do they care about programming them. They're merely interested in what the software and hardware does, not how it does it. What does it cost, does it scratch an itch, is it too annoying to use... These are the pertinent questions.

    Not "wonder how the lookup works so fast..."

  9. Well, there's Maya. by Anonymous Coward · · Score: 1

    The best fusion of programmable GUI and CLI shell ever invented. (That is /programmable (GU|CL)I shell/.)

    If only the rest of 3D modeling wasn't so hard to learn. If it would do video/audio/text/3D processing, via files/network/etc, that would be enough.

    I mean whatever you do in the GUI, it results in script code in the CLI, and vice versa. You can even select that script code, drag it to the shelf (icon bar), and voila, your new wizard is ready. Adding dialogs and such is just as easy. And it’s all either Python code or a variant of TCL (bash-like in style). Extremely easy to learn and get into. Without limiting you in any aspect, since there is even a C/C++ API if you want to go big.
    Someone *really* thought, when making Maya.

    How about a graphical shell like that. No compromises. Full power, still easy to use. Efficient, emergent, elegant. My company motto.

  10. GUI by Anonymous Coward · · Score: 0

    beginners would be able to fire it up instantly, and would be able to get useful things done right away.

  11. What is it with this idea nowadays by Shinmera · · Score: 5, Insightful

    It seems to me that a great deal of people have this idea in their heads that any and everyone is able to do any and everything. This is bollocks.
    Furthermore, blaming the inability to get interested in something or to cross a certain difficulty barrier on the tools is just laughable.

    If one can't take the first step in programming and get acquainted to the tools, he won't be able to make the later steps either. It takes commitment and interest. Reducing the first barrier won't bring a lot better programmers, it will bring in a lot more bad programmers that get stuck half way through and don't really help anyone.

    1. Re:What is it with this idea nowadays by HungryHobo · · Score: 3, Informative

      bullshit. some don't admit it but there's a hurdle to start programming, knowing where to start.

      it can be as simple as sitting down with someone for 30 minutes, showing them how to write a bash script, save it, make it executable and run it. 10 more minutes for the idea of looping and a few more giving them a list of good sites to read when they're trying to figure something out.

      6 months later I get an email from the guy asking esoteric questions about specific frameworks and has become his offices translator for when the needed to ask for software.

      You are everything that's shitty about the industry. I'm glad I don't have to work with anyone as toxic as you.

    2. Re:What is it with this idea nowadays by Shinmera · · Score: 2

      It doesn't really take knowing where to start. I didn't know either when I began, I just picked a book that I found interesting and started reading it, following the examples in the book, etc.

      Sadly I've made the opposite experience. I've tried to get a couple of people into programming, but it just didn't work out, even giving them a very simple start wasn't helping their interest. Sure, there's definitely people around there that are just waiting to be shown something until they can flourish, but I'm quite convinced that they'd make the start themselves sooner or later anyway. The fact that the tools aren't easy enough has nothing to do with this.

      And you did prove my point quite nicely. This guy did have the commitment and interest to get acquainted with the tools and even pick up everything else himself to get further into programming. That's awesome! But just the same, this won't happen to everyone else and having easier tools doesn't make more people suddenly fall in love with programming.

    3. Re:What is it with this idea nowadays by jbolden · · Score: 2

      It will create people with basic computer literacy. A good deal of education is about creating people with exposure to a topic but far short of professional knowledge.

    4. Re:What is it with this idea nowadays by Shinmera · · Score: 1

      Hmm, yeah, I admit that that's certainly true.

      I'm not sure if creating special tools for that purpose is a good idea though, as it might just as well give a wrong idea about what people in the programming business do. But hey, I'm looking forward to be proven wrong.

    5. Re:What is it with this idea nowadays by Hentes · · Score: 2

      I don't think he means more professional programmers, but more people who understand programming. Just like it's great that every person nowadays learns to read. They don't all become linguists, but having that skill is an advantage regardless. I just don't think that people have a chance to understand programming without understanding the mindset of math first, so in my opinion if you want to teach people to code you should first teach them logical thinking.
      But while all people could benefit from learning it, not all of them are committed enough to jump through all the barriers at the beginning. I know many who were, but even for them simple friendly advice where to start could have saved months of torture. And I know many who weren't interested until someone showed them Javascript or a Python interpreter. Having to learn how to use a complicated IDE and toolchain just to write "hello world!" is an overkill. In fact, I've met people who learned programming at university, and were totally lost without their IDE. Seems to me like knowing how to write code with just a text editor and compiler is a skill in itself, and too much reliance on the tools can just as well make you a bad programmer.

    6. Re:What is it with this idea nowadays by Sigg3.net · · Score: 1

      Not only is it not realistic, it isn't even desirable.

      Should IT professionals also learn to cut hair? Police men grow potatoes?

      I wrote a few hundred lines in VisualCE (I didn't choose the language) an Excel-macro like language with a lot of clicking property boxes. It was painful. Why not choose a real language and hire a programmer?

    7. Re:What is it with this idea nowadays by jbolden · · Score: 1

      Most people understand the difference between learning fire safety for a day and being a fireman. They understand that learning CPR doesn't make them emergency room doctor. A few basic tools isn't supposed to teach them what professional programmers do except in a vague sense.

    8. Re:What is it with this idea nowadays by HungryHobo · · Score: 1

      of course giving people easier to use tools gets more people in.

      How many top notch graphics designers and UI designers work in C or assembly?

      in theory they could but they'd waste thousands of hours by using tools which are pointlessly hard to use for their task.

      how many of them would have bothered even getting into the field if they had to spend a decade learning from the command line up?

      take one look at stats programming tools like R.

      the language is terrible and the tool unstable but it's insanely easy to get started and as such statisticians who are experts at stats, not programming can quickly and easily use the tool with no barrier to entry.

      there's massive value in that. easy to use programming tools which just work when you run them without having to arse around.

      it's very nice that you were able to man it out and push through but honestly people shouldn't have to have an abiding love of programming to use it as a tool.

      if you wanted to paint your house you don't get professional painters insisting that anyone who really loved painting would have learned to make their own paints, brushes and pigments independently because that's how they learned and anyone who can't should just leave it to them.

      You don't care about painting, you're just trying to get a job done and it's your problem if it isn't as well done as a professional painter would have done it.

    9. Re:What is it with this idea nowadays by Shinmera · · Score: 1

      I guess it's another case of "right tools for the right job"?
      I do admit that there seems to be a lack of tools to introduce people to do really simple stuff and nothing beyond. And if that's the goal for such simple tools as the article proposes, then I am fine with that.

      I guess the article gave me the impression that there's not easy enough tools to create fully fledged programmers, rather than people who can create a couple of simple scripts for simple tasks.

    10. Re:What is it with this idea nowadays by Shinmera · · Score: 1

      Yeah, I think I was just failing with my faith in humanity there.
      I've seen too many running heads on into programming through ludicrously simple drag and drop stuff and then coming at me pretending to know everything about programming, which caused me to be biased towards the worse...

      I should have more exposure to normal people.

    11. Re:What is it with this idea nowadays by sco08y · · Score: 1

      It seems to me that a great deal of people have this idea in their heads that any and everyone is able to do any and everything.

      The term "literacy" suggests that it's about developing a basic understanding, as opposed to expertise. Using written language as the example, we've got a 98% literacy rate, but fewer than 1% are qualified to be professional writers.

    12. Re:What is it with this idea nowadays by Shinmera · · Score: 1

      Yeah, another comment chain in this already helped me figure out that I misread the article's intention. I'm absolutely fine with people getting more acquainted with programming instead of it being this mystery science that makes you angry when it stops being magical and eats all your emails or something.

      I do agree, starting with an IDE is a bad idea. A simple text editor and command line compiler is the best way to start as it cuts out all the other stuff that is only distracting at first. I wonder if there's any courses out there that actually start like this as I have never seen or heard of any myself.

    13. Re:What is it with this idea nowadays by Anonymous Coward · · Score: 0

      Should IT professionals also learn to cut hair? Police men grow potatoes?

      Yes.

      Everyone I know has skills unrelated to their occupation.

      I can cut hair, grow potatoes, build furniture, hang drywall, mow grass, work on my car, do plumbing and electrical wiring, catch fish, paddle a kayak, play guitar, and do many other things completely unrelated to IT. The people who do these things for a living can (usually) do them better and faster than I can. But that doesn't mean my entertainment center isn't worthy of holding my plasma TV or that the new alternator in my car is going to fail in a month.

      It also doesn't mean I think everyone should learn to hang drywall, just that it should be an option for anyone faced with open stud bays.

    14. Re:What is it with this idea nowadays by gweihir · · Score: 1

      Well said. The more I know and the more skills I acquire, the more things I find that I know I do not have the required talent to do. Not the drive, motivation, time, but the raw basic foundation. One of the most important things in your own intellectual development is identifying your limits and most often they do not come in the form of scale, but of area. For example, even highly intelligent people cannot understand all areas of Mathematics. Even mathematicians on PhD level cannot. And it is not a matter of time and dedication, if you do not have the right type of intuition for a certain field, then nothing can help you. What you do is recognize your limits and select something to do that you are good at. Claiming that people do not have such limits just identifies a person that has never really tried understanding complicated things. And we are not talking about a day or a week spent trying.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    15. Re:What is it with this idea nowadays by IndustrialComplex · · Score: 1

      If one can't take the first step in programming and get acquainted to the tools, he won't be able to make the later steps either.

      I completely disagree. It doesn't make any sense to require that you start using the tools which the professionals use.

      If you wanted to become even an amateur race car driver, you don't learn to drive in an Ariel Atom. A second hand Honda Civic is probably a good start. You don't even need to start with a manual car, since the important things when starting off are learning the basic rules.

      Having access to tweak the compression ratio, fuel/air mixture, suspension or brake responsiveness can come later, after learning the basics.

      --
      Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
    16. Re:What is it with this idea nowadays by locofungus · · Score: 1

      What proportion of people make it to a "literacy" standard in a second language?

      Or in the ability to play music? Most people have done some music at school and have probably been taught the note names. What proportion could even sightread a single line melody on the piano where there's an easy many-1 mapping between the note on the page and the note on the keyboard.

      Those who need to be able to pick out a tune on the piano will learn it fairly quickly. There's no use teaching the rest because they'll have forgotten it all again by the time the actually need it.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    17. Re:What is it with this idea nowadays by Anonymous Coward · · Score: 0

      I never noticed a hurdle, I found it quite natural.

      To give some background. I grew up in a poor house hold. My mom told me stories about how she would sometimes make a single water-melon last a week for breakfast, lunch, and dinner for herself so I could eat semi-well. I went to bed with winter clothes on because we couldn't afford to heat the house in winter. Then to top it off, my teachers always told my mom how I needed tutoring and may get held back because I was getting Ds. Then I was told to not go to college because I was bad at school.

      The first time I saw someone use a computer, I was instantly interested. I read as much as I could about how CPUs executed instructions, accessed memory and harddrives, and could use a 300 baud modem to translate digital data into analog signals.

      After I learned how the computer worked, learning to program was almost perfectly natural, it was an obvious conclusion based on how computers worked.

      Why does my C# code run 10x-1000x faster and use 10x-100x less memory than other people's code? Well, I don't think "how can I program this", I think "how would a computer solve this". Once I figure out what a computer needs to do, I translate that into code that averts the creation of objects when possible, re-uses buffers, has good scaling, doesn't block waiting for IO, tries to keep associated data near each-other, uses structs when appropriate.

      I can see in my mind each step of a process, I can "watch" as something waits for IO, I can look at a shared resources and visualize a race condition, I can see SIMD instructions attempting to load unaligned data across cache-lines and having to shift the data to align it, I can "see" the network packet flowing through the different buffers and pipes to its destination and working its way up from the NIC's ring-buffer to the network stack alerting the user-thread that the data is ready and context switching.

      When I was 8, I already knew I wanted to design computer systems that communicated and worked together. There was no "hurdle".

      I used to assume people programmed because they loved to create systems. I've learned that there are lots of people who don't know what's going on and cannot understand why their code is bad enough though it "works".

    18. Re:What is it with this idea nowadays by thesandtiger · · Score: 1

      Your argument does not make sense.

      You say that in order to become a programmer one needs commitment and interest. How, unless there are readily accessible entrees into programming, will one find that interest in the first place, so that they may become committed to learning?

      You also seem to fail to grasp the larger idea here: Not everyone could, should, or would become a software engineer (or even an entry level code monkey, or even a hobbiest), but everyone can, should, and (hopefully) would get at least some basic concepts of programming because it can help them in little ways. Programmatic logic can help in a wide range of fields - it's a very useful thing with which to have at least a basic level of familiarity.

      You thinking that it being easier to start learning about programming would lead to more horrible programmers in the field is like a statistician freaking out that more people learning basic arithmetic will somehow lead to more shitty statisticians.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    19. Re:What is it with this idea nowadays by Jmc23 · · Score: 2

      Which is a little wierd when you think about it. If statisticians know so much about stats why'd they focus on a stats package that can give you incorrect results? Even the inventor says it was a mistake, but he couldn't grok Lisp at the time, so came up with R.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    20. Re:What is it with this idea nowadays by Jmc23 · · Score: 1
      Said by someone trapped in his limitations. You don't understand your body, that's fine. Stop foisting your misunderstandings on others though, you aren't helping humanity.

      Perhaps you should try understanding what limits understanding and stop using excuses like 'intuition' 'talent' etc...

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    21. Re:What is it with this idea nowadays by thesandtiger · · Score: 1

      Uh, basic understanding of any given useful domain is EXTREMELY desirable for people to have.

      Nobody is saying random person X should become a software engineer, just that random person X should have an easy entree into picking up some basic understanding of programming.

      An IT professional doesn't need to learn enough about hair care to become a professional stylist, but they certainly need to know enough to be able to groom themselves. A police officer may not need to become a professional farmer, but it certainly couldn't hurt for them to learn the basics of plant cultivation.

      As for your stupid example of "why not hire a real programer" - how much would a "real programmer" charge to come to my friend's office and write a simple "if...then" case for her Excel spreadsheet so that it color codes values based on how far they are from the median? How much would a real programmer charge to go to my dad's office and write a batch file to automate a few repetitive tasks he needs to go through every time he runs a certain legacy application? How much would a real programmer charge to go to my mom's house and make a couple of changes to a form on an Access database she's forced to use to track contacts she's had with her therapy clients?

      The reason people don't "choose a real language and hire a real programmer" is because most people don't need either of those things, but it sure would be useful for them to get some basic skills.

      You're suggesting that people should cultivate helplessness and dependence on other people, which seems to me to be a staggeringly shitty idea.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    22. Re:What is it with this idea nowadays by gweihir · · Score: 2

      How uneducated are you? "Talent", "intuition" are not excuses, they are very real. Maybe read up on the research before dismissing fundamental things that have been known for a long time indeed?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    23. Re:What is it with this idea nowadays by Jmc23 · · Score: 1
      Oh yes, they've been used as excuses for a very long time, there is absolutely NO proof for these unfounded beliefs except for everybodies apathy towards the real work needed for real change.

      Talent, is really just your body coming with the prepared patterns, doesn't mean you can't acquire the patterns.

      The problem is that most people don't understand that to get where you want to go you have to know where you are.

      For the first 30 years of my life, I had speech problems, couldn't pronounce certain sounds, th, t, s, r, couldn't understand syllables or accents, couldn't understand pronounciation or enunciation, spoke in a gravely monotonous barely comprehensible mumbling tone. Now, I can sing better than most people in multiple languages. It wasn't practice(I had never actually sung aloud until 2 years ago, too ashamed) or talent that accomplished this. It was a basic understanding of how the body produces sound and associating the correct subjective 'feelings' with the correct anatomic part to be able to start working the patterns that singers use.

      Most people can learn to juggle in one session, it took me over a month, a good year to get any consistency. Without much practice, I juggle 5 comfortably now. It's all about learning and implementing the pattern, if the pattern doesn't fit with your current posture, well, then you need to change your posture. That can be hard for some people. I used to wear glasses and the posture change required to be able to see without glasses took me a good 30 years to acquire.

      Yes, it's not easy, that's why people come up with stupid excuses like talent, being a natural, intuition, etc...

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    24. Re:What is it with this idea nowadays by Shinmera · · Score: 1

      You find interest and commitment by looking at the results of the labour. Just the same as with every other thing. You look at a product (a program, game, piece of art, music, whatever) and think "Hey, I could do that too, couldn't I?" and if you have that thought, you're interested in learning about it. And so you start learning.

      As I stated in other comment chains in this thread, I misread the article's intention. I thought the idea was to get more professional programmers out of it, rather than giving people who aren't really interested in it an idea of what it's about. I am totally fine with the latter.

      Well, it is true to an extent that easier tools leads people to believe that they know more than they do, so I wasn't entirely wrong to panic a bit about this. But in the whole, I admit that I misread it and over-exaggerated the issue.

    25. Re:What is it with this idea nowadays by Lodragandraoidh · · Score: 1

      I think the tool needs to be more than just a toy - it should allow them to get things done, but not require computer science level knowledge to use. This is why I think an interpreter would be a better choice for end users; they would get immediate feedback and not have to learn the compile/debug cycle with different tools.

      A good example from my early teen years is a basic interpreter. I could read and write files with it - and create programs to do useful things - but it generally did not allow me to shoot myself in the foot without some serious effort. It came loaded with the system (in fact at that time it WAS the operating system) - but a similar tool with a bit more sophistication could be developed for end users to accomplish the same thing in modern operating systems. It should be noted that complete BBS systems were built using this basic - so it is not only simple - but could have some powerful application if desired.

      Where are those simple tools for end users today?

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    26. Re:What is it with this idea nowadays by Shinmera · · Score: 1

      Well, I would guess that such a tool does already exist, if not multiple times... The biggest problem I think is that such a tool never really got introduced to the business, so it isn't widely distributed. End users themselves are probably not motivated enough by themselves to find such a tool and try it out and employers probably either don't know it exists or don't really care either. That's just a really vague guess on my behalf though.

    27. Re:What is it with this idea nowadays by Anonymous Coward · · Score: 0

      It does really take knowing where to start - he proved that point quite nicely.

      A one hour start up session from the GP was presumably much more productive than your 'just pick up a book, any book' advice, and I can see why.

    28. Re:What is it with this idea nowadays by sco08y · · Score: 1

      Those who need to be able to pick out a tune on the piano will learn it fairly quickly. There's no use teaching the rest because they'll have forgotten it all again by the time the actually need it.

      I'm not suggesting we go for a 90+% literacy rate, but most people in office jobs should be user-level expert in the software they use, and programming literate, because that's shaping up to be their job.

      And, really, I've seen plenty of non-engineers where I work who are what I'd call "programming literate," in that they can hammer together code. It's awful, but they can get stuff done.

    29. Re:What is it with this idea nowadays by chrismcb · · Score: 1

      There is a far cry between "basic computer literacy" and programming. One can (and MANY have) learn basic computer literacy, without ever even knowing programming exists. I'm also going to guess that for the most part, by the time a kid gets around to learning about programming, they already have that "basic computer literacy".

    30. Re:What is it with this idea nowadays by jbolden · · Score: 1

      I don't agree obviously. I'd say that basic computer literacy involves knowing how to communicate with computers.

    31. Re:What is it with this idea nowadays by HungryHobo · · Score: 1

      because it's good enough.

      I've done number crunching with java API's and I've done much more complex number crunching much faster with R.

      it doesn't have to always be totally correct to be useful. A day spent reading documentation before you can get hello world to work is a day wasted for many.

    32. Re:What is it with this idea nowadays by HungryHobo · · Score: 1

      yes.
      You love programming and you're probably a professional programmer.

      however you shouldn't be forced to be a professional programmer to write a quick script to create some files for a few thousand clients any more than you should be forced to understand all the details of being a structural engineer before building a dog house.

      the whole point is that the first hurdle is a small one, you could get most people over it in an hour then they get to be experts at something else who just happen to have enough knowledge to put it into code which can have significant value.

    33. Re:What is it with this idea nowadays by Jmc23 · · Score: 1
      I think the point is, anybody who has made a programming tool or language easy enough for non-programmers to use has foisted a monstrosity on the community. R was slower than the previous Lisp solutions, but then again we all know not many minds can grok Lisp. Even translating, which there are quite a few efforts, R into a Lisp is faster than R. Now the statisticians who recognize all these problems want to move back to a Lisp like solution.

      So R didn't replace a slower system in Java, it replaced a more elegant, faster, more accurate system in Lisp, and we've ended up with decades of copy-paste research/programming by noobs who can't even understand the limitations of their tool.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    34. Re:What is it with this idea nowadays by Sigg3.net · · Score: 1

      You are reading way too much into it. What people say isn't a binary:)

      I'm just saying that it isn't practical nor desirable for everyone to have the same skills. To have a basic understanding of e.g. history, is desirable. To be a historian I leave up to the historians. Same for programming. But a programmer should know the basics of history, it will only serve her/him in real life.

      See? It's as though we didn't even have a disagreement to begin with!

    35. Re:What is it with this idea nowadays by thesandtiger · · Score: 1

      Oh, I absolutely agree that it would be impossible (and not desirable) to have everyone attempt to master every field. I think I took your "should a policeman learn to grow a potato" types of examples as an argument in favor of hyperspecialization. On the other hand, I'm having a hard time understanding how anyone would take "we need to make the basic tools more approachable for the novice" to lead iany way to "we want to make everyone a software engineer" - it seems strange anyone would throw that out since nobody was suggesting that.

      And, to be honest, this is kind of a hot button for me - I love programming, I love the feeling I get when I've taken some problem, large or small, and developed a tool to address it. I want to share that feeling and that capability with other people (because of this I volunteer teaching computer skills - including programming - to largely undereducated adults) so it tweaks me when I see people seemingly down on the idea of making it easier for people to get started. I know that it is extremely unlikely any of my students will ever become professional developers, but that isn't really the point - the point is helping them get started when they didn't know how to.

      Not that you were down on it - just so many in this story have been, so I got into it with you.

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    36. Re:What is it with this idea nowadays by Sigg3.net · · Score: 1

      I think the discussion's _really_ about having a productive attitude towards understanding. As long as people have that, we learn new things about our selves and the world. But at some point understanding requires more time and effort than a hobby, and that's when people bring in "but this isn't in my job description". They may still have a productive attitude towards it.

      As an aside, I find it rather strange that we have completely missed the point about "basic programming", namely, that it is formal logic. So better tools of programming literacy (for novices) should perhaps start with logics and not their representatives in different languages..

      Btw, the local retirement home has advertised for a volunteer to teach people "the Internet", and I am looking into applying for it:)

    37. Re:What is it with this idea nowadays by thesandtiger · · Score: 1

      Very cool - you should definitely give it a shot!

      --
      Since I can't tell them apart, I treat all ACs as the same person.
    38. Re:What is it with this idea nowadays by HungryHobo · · Score: 1

      You're still not getting it.
      R lets them work in a simply environment and works in an intuitive manner for people who are not programmers by trade and has the built in tools.

      some statisticians decide it isn't good enough and dedicate the time to learning lisp. great for them. that no more proves your point than the fact that some game engine devs insist that assembly is the only true way to go. they can get some very good results but they spend more time getting them and don't have the ready made stuff to make their job easier.

  12. You mean like excel VBA, cmd prompt? by Anonymous Coward · · Score: 0

    All education is woefully inadequate and only suited to those who'll help themselves. How badly are language and math skills taught? I'd bet the vast majority of adults are baffled by what the heck calculus actually is or what it is used for. Heck I bet most don't even see practical applications for trig.

  13. Voice interface by MichaelSmith · · Score: 1

    Along the lines of Siri but self contained. It would understand stuff like controlling the TV and the home security system. My mother could really use something like that and it doesn't have to be dumb either. You should be able to give it complex instructions in English and yeah it would be helpful if it could read lips.

    1. Re:Voice interface by dcollins · · Score: 1

      Controlling computers by voice is only feasible for people who are in a building alone. It can't ever be acceptable in a classroom, cube-farm office, public transit, family home, etc., etc.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    2. Re:Voice interface by Jmc23 · · Score: 1
      False. You just aren't thinking properly. Stereo mics with an algo to pick out when a command is being directed to the tablet/computer/whatnot. Computationally expensive, but only needs to be activated when in the appropriate task.

      There's also these things called headsets, you might have seen them at some time?

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    3. Re:Voice interface by theArtificial · · Score: 1

      False. You just aren't thinking properly.

      The headset I have for example picks up everything including my voice. When someone uses Siri or Dragon Naturally Speaking, or the Windows voice software I can interrupt it by simply speaking. By all means, see for yourself. I'm curious about the products you're referring to, please list the consumer oriented commercial software package(s) which will pick your voice out of many, and is presently offered for dictation and automation. This is extremely interesting.

      Stereo mics with an algo to pick out when a command is being directed to the tablet/computer/whatnot.

      Stereo mics are not offered on any of the consumer devices I've seen. Do you have a list of manufacturers which tout such features with their consumer lines? I'm extremely curious.

      Computationally expensive, but only needs to be activated when in the appropriate task. There's also these things called headsets, you might have seen them at some time?

      How does it know when it needs to be activated? If you say button, why not speak directly into the machine? Headsets are not the panacea to this challenge.

      --
      Man blir trött av att gå och göra ingenting.
  14. Re:STOIC Platform by wonkey_monkey · · Score: 2

    Turn spreadsheets into mobile apps

    Not exactly a practical environment for most programming needs. Beside which, you should never trust anyone who scales their website images. Ew!

    --
    systemd is Roko's Basilisk.
  15. Pointless article by gigaherz · · Score: 4, Insightful

    He's saying programming is not as simple as Excel because programming doesn't have an equivalent of the SUM() function that does almost all the work for you when you are new to it.

    Yet, excel never tells you that you have to use the SUM function, or that A:A means the whole A column, or that $1$3 means it shouldn't change the row/column when spreading the formulas. But he wants the development environment to somhow not require knowledge of how a loop works, or what an array is?

    The problem isn't that programming is harder than Excel, at least not if you use a full-featured IDE with a decent language, like Visual Studio with C# 4.0. You can learn to drag a few controls to a new window, double-click on a button, and write something like "MesageBox.Show(textBox1.Text);" in seconds. No knowledge of arrays or functions necessary.

    Programming is NOT harder than excel, and there ARE tools that make it as easy as possible. Anything else requires "visual programming" which he states he doesn't want, either. But of course, excel doesn't "hide the logic" from you, right?

    The fact is, you need some basic knowledge to do any job. Excel requires knowing the syntax and function names, so does general-purpose programming, just like you need to know the parts of a car, and their use, if you ever want to build one from scratch.

    1. Re:Pointless article by Anonymous Coward · · Score: 0

      Visual programming doesn't hide logic anyway, it shows it differently (if you think it's a toy, look into DRAKON), nor does it need to be point and click. Just because none of the few experiments have added a keyboard interface doesn't mean it's somehow impossible, the graphical = mouse meme is an artefact of shitty UI design, no more no less.

    2. Re:Pointless article by Anonymous Coward · · Score: 0

      He's not saying that programming should be as easy as using excel -- though frankly, even somewhat advanced Excel use qualifies as programming -- he's saying it should be as easy to get the tools set up and start using them as it is with Excel. The whole concept of a 'toolchain' in programming is kind of fucked, and requires significant knowledge just to know enough to set it up. On the other hand, something like the Arduino IDE is basically this guy's cup of tea -- download it, make a single setting change which is completely obvious to any user (choose the board you're using,) and bam, you're ready to go. You type in your program and click 'upload'.

    3. Re:Pointless article by gigaherz · · Score: 1

      That's sortof the point I was making with VS and C#. Install, Launch, New Project -> Windows Forms (or WPF if you like that sort of thing), Build, Run. No need for anything else. That sequence of clicks gives you a fully functional executable with an empty window. Adding visual content is a matter of dragging controls into the window, and adding behaviour is a matter of writing some lines of code in the event handlers. The Visual Studio installer installs the .NET Framework for you, so you really don't need to worry about anything. It just works. Similarly, there's other environments for other languages and platforms. Eclipse comes to mind as one of the most notable. I don't know if it installs the JDK for you, though, but it's not too complicated either way.

      I do agree that setting up a toolchain is complicated, which is why I don't set up toolchains. I ignore them completely and I didn't learn of such a concept until many years after I learned to program. If you are learning to program, GCC with makefiles isn't the right starting point. You want an IDE that handles the compilation process for you, with a high-level language that handles strings and resource allocation for you. Specially if your area of expertise lies elsewhere, and you want to program as a tool to help you with your real job.

  16. It's not programming that's out of reach by Anonymous Coward · · Score: 1

    It's algorithmic thinking. Lots of people can't do it.

    1. Re:It's not programming that's out of reach by narcc · · Score: 1

      Nonsense. People do it all the time. At the office, it's more than just the development staff, everyone with a job that requires more than answering a phone, from the executives to the maintenance staff, employ "algorithmic thinking" to identify and correct problems as diverse as developing policies and procedures to why the furnace kicks out.

      The backyard mechanic, the hobbyist baker, and the new homeowner tackling their first DIY projects all employ the same set of thinking skills that the computer program uses.

      See, lots of people CAN do it, and do it every day.

  17. Today vs. Yesterday by CFBMoo1 · · Score: 1

    Today

    Setting up Java..
    1. Download the JDK, not JRE.
    2. Run the JDK installer.
    3. Setup the class path.
    4. Install an IDE and make sure it see's the JDK.
    5. Install ANT. (optional)
    6. Learn how to setup ANT build.xml files. (optional)
    and/or...
    5 or 7. Figure out how to compile with the command line.
    6 or 8. Start coding.

    Back in the day...
    1. Start up the computer.
    2. Type Basica at the command prompt.
    3. Start coding.

    Which is less scarier for a new person to get started in?

    --
    ~~ Behold the flying cow with a rail gun! ~~
    1. Re:Today vs. Yesterday by Anonymous Coward · · Score: 1

      Today

      Setting up Java..
      1. Download the JDK, not JRE.
      2. Run the JDK installer.
      3. Setup the class path.
      4. Install an IDE and make sure it see's the JDK.
      5. Install ANT. (optional)
      6. Learn how to setup ANT build.xml files. (optional)
      and/or...
      5 or 7. Figure out how to compile with the command line.
      6 or 8. Start coding.

      Back in the day...
      1. Start up the computer.
      2. Type Basica at the command prompt.
      3. Start coding.

      Which is less scarier for a new person to get started in?

      Today (assuming a sane OS):
      1. Start up Terminal
      2. Type python
      3. Start coding

    2. Re:Today vs. Yesterday by Anonymous Coward · · Score: 1

      Java is not today's BASIC. Shell scripts (batch files if you're on Windows) are what you program at first, if you can't be arsed to fire up a text editor and write Javascript code to be run in the ubiquitously preinstalled web browser. Don't get me started on what you had to do to program anything but BASIC back in the day...

      The one thing that was better was that the computer came with a programming manual, but nowadays there's much more information readily available on the web.

    3. Re:Today vs. Yesterday by narcc · · Score: 1

      Yeah, because everyone automatically understands why they can't just use Microsoft Word to type in that Javascript example.

      Hell, most people don't even know what a web browser is (even though they use one every day) or that they can use it to run programs written in Javascript.

      These are massive barriers to entry. Do you know how difficult it is to get people to understand why Microsoft Word is not well-suited for writing computer programs? It's not that they're too stupid to understand, it's that they lack the tons of background knowledge they need to have before they can even begin to comprehend your explanation.

      A simple tool for writing simple programs is a damn good idea. Microsoft's SmallBasic is a good start, but it's not quite ready for prime-time.

      Learning to program was MUCH easier back in the 80's when all you needed to do was turn on your micro. The interactive mode and simple commands not only made learning to program easy -- it made it fun.

      There was a BBC program called "Electric Dreams" that followed a family who experienced life (from a technology perspective) one day per year from 1970. When they got a micro in the 80's, one of the kids brought a friend home from school so that they could write computer programs together! (The reason that the family picked the BBC over the ZX Spectrum was because the "salesman" showed the kids a few BASIC commands, which they found facinating. During the filming, the boy didn't even stay in the row for the "decision" scene, he left went right back to programming as soon as he put in his vote for the "boring" BBC Micro over the clearly more fun Speccy!)

      Check it out here (about 20 minutes in): http://www.youtube.com/watch?v=SEsiPMcxbdw

  18. Turbo C / turbo Pascal by Anonymous Coward · · Score: 1

    Turbo C was perfect.
    It ran off a single floppy disk.
    It didn't need to be installed.
    It had built-in help files.

    Creating useful programs was possible.

    Clearly, this worked well before Microsoft introduced MS-Windows and huge amounts of bloat to programming.

    1. Re:Turbo C / turbo Pascal by Anonymous Coward · · Score: 0

      So, are you claiming that it is no longer possible to boot to Turbo C using a floppy disk? Or that Windows existing prevents others from making or using a bootable live programming environment? Or that compilers can no longer possibly be built to occupy under 1.4 MB or 800 MB or 5.7 GB of space? What does Microsoft or Windows have to do with this at all

    2. Re:Turbo C / Turbo Pascal by Anonymous Coward · · Score: 0

      Yes, I'm claiming that the smallest tool able to make a program capable of running on Windows will not fit on a single 1.44MB floppy.

      I'm also claiming that it needs to be installed. When was the last time you saw a "portable" version of a development environment?

      I'm also claiming that TurboC or TurboPascal will not run on Window7 or later OSes - though I have not tested this myself. 16-bit programs don't run on Windows7.

      I am not claiming that a small Windows7 program cannot be loaded onto a 1.44MB floppy and run, just that you cannot build it from the same floppy disk AND run it. Now I'm curious and will see if my old floppies still work. ...

      Before MS-Windows 3.x was released, it was common to have development environments AND code on a single floppy. I'd take a single floppy to the local community college for the C programming class. TurboC was on that floppy disk along with all the class code and compiled programs. It all fit. It didn't need to be "installed" - just typing "TC" at the prompt was enough (if the PATH was set).

      Microsoft did not force Borland to make larger development tools, but the market did, which makes it harder for small, useful, programs to be built by complete beginners to programming. I'd say that programming through a wizard interface is not programming at all. It is more like creating a presentation than programming.

      So I wasn't able to find a TurboC diskette, but I did find a few TurboC++ diskettes, I did backups. ;) Sadly, none neither could be read, so either I need to work some 'dd' foo or find some QIC-80 or QIC-250 backup tapes with the programs and hope that my parallel tape drive still works. ;)

      Regardless, a tiny development environment like what TurboC or Turbo Pascal provided is the perfect level of features and simplicity for someone who wants to learn to code. I stand behind that statement ... er ... 20 yrs later.

  19. Won't work by Anonymous Coward · · Score: 0

    In former Soviet they tried to make everybodys programmers. That didn't turn out very productive.

    1. Re:Won't work by hugetoon · · Score: 2

      Worked for me :D

  20. Re:Out of reach by Anonymous Coward · · Score: 0

    reply to self: of course I've strictly followed Skitt's law in my post...

  21. First get rid of flashing zeros. by Anonymous Coward · · Score: 0

    As long as we have no interfaces enabling an average human to set the time on the DVD recorder, let alone let it record material at a given time, talking about making programming easier is pretty pointless.

    "Programming" is teaching a system something new, cast into the system's concepts. Most people have significant problems thinking in terms of any concept. Conceptualizing does not come to them easily, and that is not a fault of the computer but of the person.

    Almost invariably when I discovered laypersons using a programmable system (like Emacs or Scheme or whatever) to good and progressed advantage, these laypersons were geeks in other areas: ancient or foreign (typically non-Indogermanic) linguistics, avantgarde composers, stuff like that.

    Now that were observations in the area of rather complex programming systems. You can dumb down programming to make is accessible to non-Ubergeeks. But you won't get by without thinking, planning and conceptualizing in an abstract manner.

  22. simple tools by FaytLeingod · · Score: 1

    simple tool : A Young Lady's Illustrated Primer

    --
    as it is eaten so it shall pass
    1. Re:simple tools by Anonymous Coward · · Score: 0

      Far from simple.
      Easy to use: yes. But look how differently the three first recipients used it. It was clearly implied that Nel's success with the book was greatly due to the ractor who narrated the book's responses and her chemistry with Nel. Was the overall success of the mice due to the mouse culture?

  23. But how about the problem by waitamin · · Score: 1

    It is not really about implementing a solution. The first step is recognizing that you have a problem that can be made easier by using a computer program. Anyone with a basic knowledge of computers (how they work; what they are good at; what they are not so good at) could make that first step. The next step however is not trivial (for a non-trivial problem): formally defining your problem. Once you have a proper formal definition of a problem, "programming" the solution can be straight-forward, given the correct tools. Many people just don't have the patience to think slowly and carefully enough so that they are able to translate a fuzzy understanding of a problem (which anyone with common sense sort of has) into a formal definition. This doesn't really have anything to do with the tool, although a solid knowledge of a variety of tools can help with thinking within a certain framework. And yes, hiding complexity... good for trivial problems, but always a hindrance if the problem you are trying to solve does not translate perfectly into a ready-made recipe.

  24. Programming/developing, or coding? by Stolpskott · · Score: 1

    My personal definition of the terms are that programming/developing are akin to seeing a problem and writing an application to solve that problem. Coding is taking a problem description and solution specification developed by someone else, and translating that specification into a computer program.
    The "coding" option only requires familiarity with the language and the coding tool being used, and seems to be closer to the process I think Adam and Bonnie are aiming for.
    However, the "programming/developing" option requires much more mental effort on the part of the programmer, which is completely unrelated to the tool or language used. It involves an understanding of the problem space and the ability to identify areas where the assumptions you make about how things should work will not always hold true (the "what if..." scenarios that several other comments refer to.

    As for the "fire it up instantly... get useful things done right away" approach, I am almost certain that a silent installer and a couple of select chapters of a "Dummies guide to " for just about any development tool will get you to the point where you can do something as "useful" as someone would be able to do when opening Excel for the first time - a basic arithmetic calculator.

  25. What were the old guys first languages. by jellomizer · · Score: 1

    For any of you professionals out there who has to deal with legacy code, you find that back in the 80's and 90's there were a lot of non-programmers who became programmers and most of them cut their teeth on Database Centered Languages. Like Fox Pro, Delphi, Access...
    For many of these non-developers the software they wrote got rather advanced, and often the business reason to replace these legacy systems isn't as much from a limitation of their coding (while looking at the code could make you cringe) but more to the limitation of the language architectural. Often relying on their home build file based Database that often has a problem scaling past a few dozen users, and having a problem couple times a year of a table messing up its indexing or just got deleted because the data had to be accessible via a network file share.

    By the late 90's early 2000's affordable and good Data,bases came out. MySql, PostGreSQL, Microsoft SQL... However most languages never really give us an easy interface to these systems.
    For example in Fox Pro you do something like this (It may be slightly off, I haven't done Fox Pro in a few years, but you should get the point)

    var x as string
    select lastname from person where id = "123" into x

    No crazy connection strings, no casting you query as a string and then executing it. The Database Calls were integrated into the language.
    Most new languages don't do this now. Thus we are going to a point where it is more difficult to learn how to program because people don't program to learn to program, they program to get something done. For most applications it is to have a spot to input data, store that data, and run calculations on that stored data and give an output. These early languages were great for non-programmers because they covered these criteria rather easily. Form Builders, Language integration into the Database, and decent reporting tools.

    No as these people continue on, they will often get their feet wet with having to do more, oh, now we need to export the data into a different format, and automatically FTP it to an off site location, Other people need restricted access.... There come a point where these tools become more of a hindrance and you need some heaver duty programming done. However to start out you should have a language that allows for sloppy coding
    When you teach someone to paint, Kids often start out with finger painting, often messy, and you get blobs of brown spots, as a picture, But later on you can teach them how to use the brush and clean it brush, then you can get to different styles....
    But you don't give a 3 year old a nice canvas and oil paints and expect them to start making something good from day one.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  26. Hard thing... by Anonymous Coward · · Score: 0

    is hard. Is there a thing that will, like, make it easy? I don't really want to spend a lot of time on this, but how do I make a game that looks like Crysis for the iPhone? I want to make it work with Google maps as well. I'm pretty good with Blender already - should I bother learning Java?

  27. Magic by Anonymous Coward · · Score: 0

    We've had this for decades: programming by filling out database tables with the Magic 4GL (www.magicsoftware.com).

  28. Programming by ledow · · Score: 4, Interesting

    I have to agree. I've always said that 50% of modern programming is having the right tools, and the right tools configured correctly.

    Introduce someone to C. Now explain that even though C is standardised, there's no "standard" way to compile a C program, to port a Makefile, to have a program compile the same everywhere without manual work ensuring so, or even to start debugging. And then show then a Visual C++ project file and tell them they have to manage it and make sure it works even if their primary platform isn't Visual C++.

    It can get horrendous. Sure, most Linux installs come with gcc set up and you can compile a basic C file and get a basic executable (called a.out with NO OUTPUT to tell you that, for stupid historical reasons, which still blows my mind), but anything beyond that and you're learning the tools more than the language.

    I personally have a deep-set hatred of Makefiles. I honestly can't stand them as a programmer and avoid them like the plague. I get the C preprocessor inside-out and can fancy macro tricks that amaze even me, but I can't be bothered with Makefiles and their separate, unrelated, horrendous syntax. But as a user, they are great when I just want to make a simple change and then recompile without fussing about where my compiler path is, etc. All their alternatives? I have the same problem, but at least plain Makefiles work the same everywhere if they are well-written.

    Even IDE's only mask those same details and thus cause more problems. Standard debugging of a problem for a beginner is to google the error messages from the compiler / linker because it really is that atrocious to try to understand what they actually mean.

    I have a large C project on the go at the moment. It's several dozen code and header files and the same again in associated resources, etc. It took me an hour to work out how to stop it uploading the resource files to the SVN repository and even now I can break it when I add a new resource file without meaning to. It's a nightmare that only compiles because the IDE generates a hidden makefile, runs it through MinGW's make tools and then runs MinGW's gcc to get it to compile / link. I gave up about the five-object-file mark of trying to compile it myself but in other projects with other people's code, I've literally deleted the Makefile and wrote a bash script to do the job instead, they were that horrendous to understand.

    Debugging is also a major bugbear. I know how to load a file into gdb, set a breakpoint, execute it and inspect variable values. Manually. And that's it. I don't even know what half the commands on the menus are supposed to be used for or the correct syntax to make them work and it's not like I haven't tried. Debugging is best done through an IDE that does it for you (still using gdb) and even then the tool doesn't get everything right (I often get out-of-sync line numbers when single-stepping through a program in Eclipse).

    I have taught beginners programming since I was a teenager, and it's only got harder. If I was to write a book on, say, C now, I would feel obliged to supply a disk and include a chapter on how to find the compiler setup program, how to install it, etc. so that I could be consistent throughout the book knowing they were using the same tools and the same versions so I could show them how to debug, etc. Just saying "compile this hello world" can be a book in itself, depending on their background, experience, and computer setup.

    I frequent a C programming board and most of the problems I see are people using obsolete tools (e.g. Turbo C presumably because it's "free" and their instructors were trained on it), or no tools at all (i.e. no capability to debug, manually typing in compile-lines, etc.).

    The next most common set of problems is not understanding how to use those tools or interpret their errors ("_main is undefined", etc.). The next set is not understanding how to write something that doesn't give a compile warning/error (usually because they've star

    1. Re:Programming by waitamin · · Score: 1

      Slow down a bit. C is a language that was designed to make system programming easier. As in programming the Unix operating system. You don't introduce to C anyone who is not deeply interested in how computers work on a level _below_ the operating system. It is also a bit unnecessary to use a compiled language, or care about installing a program (makefiles etc), unless you are writing tools that are then going to be used by others to do their work. On the other hand, Java's strengths are in server-side programming of big projects with many developers. Just as an example, take Python. Standard on Linux, *very* easy to setup on MacOS or Windows. Code runs everywhere. Can interact with the operating system quite nicely. Better that Basic in every sense. Waaay better. And ask yourself, if you are taught programming with Visual Basic, what will you know by the time you are done with the course?

    2. Re:Programming by Anonymous Coward · · Score: 0

      Why would you use C to introduce someone to programming?

      Much simpler to point them at http://eloquentjavascript.net/ for example, no installation required - everything runs in the browser, including the debugging part. Once you're familiar with the concepts of programming then sure, learn makefiles, compiled languages, and all that.

    3. Re:Programming by Anonymous Coward · · Score: 0

      I really think that you should take a long hard look at CMake. I have found that it can solve many of the problems you describe with makefiles (since they can be very hard to understand) and can dramatically simplify the packaging process, even in a cross platform way.

    4. Re:Programming by Anonymous Coward · · Score: 0

      +5, Long-winded

    5. Re:Programming by ledow · · Score: 2

      To answer both above questions, I'm using C as an example. Almost all modern languages (including anything in .NET, even the more modern Visual Basics, Java, etc.) suffer from the same problems.

      Python would also be included on my list. Hell, the programs I see written in python often bundle their own runtime copy of the entire Python interpreter when distributed because there's no way to guarantee what the end-user has and your program just might not work unless they have the right version. It's not as easy to setup a nice Python development environment as you make out.

      Google Python, end up on download page with about 30 downloads on it (all of which are python and the "official, latest, stable" one of which is half-way down the page), if you pick the "nice" MSI it installs into the root of C:\ (come on, this is looking like MinGW installation already! If I move it, do I get a ton of path issues like MinGW too?). That gives me IDLE (apparently the "Python GUI" according to the icon it creates, in preference to the "CLI" icon it also creates), which leaves me at a >>> prompt in the Python Shell and where even typing "help" has been programmed to be unhelpful (it ONLY tells you to type help() - nice waste of a few lines of code there!). How do I save the program, distribute it, etc.? Sure, you can work it out or follow a tutorial if you NEED to learn but if you just WANT to learn, there's no hint, nothing. Your shining example, Python, leaves me at a shell prompt. This is exactly the kind of thing I'm talking about. That was acceptable in the 80's when every byte counted and the instruction manuals were printed with every copy, but not any more.

      Imagine you want to load in a Python program you've been given, how do you go about it, what do you do, will it run (I guarantee you that it's not a definite yes, because I've had python programs in the past that crashed when another python interpreter of a different breed / version was present and stealing file associations - I've seen Python messes that rival Cygwin multi-installations for issues). And that's before we even get into things like, say, installing a third-party Python library to integrate with.

      And Java suffers similar problems. Hell, just the whole JDK/JRE and classpath installation issues are enough to blow a lot of beginner's minds.

      Some people really don't know what it's like to try to be a self-taught programmer these days. You will spend more time learning the tools than the language, and that's NOT how it used to be. I can't ever remember having to look up something back in the BASIC days that was due to how I'd installed the environment. Again, I don't use BASIC as a shining beacon of perfection, just a particular example to highlight things.

      Just because people want to be programmers doesn't mean we should forgo user-friendliness in their tools. And simple things, like decent GUI's that don't just run CLI tools with horrendously strict syntaxes and obscure errors, should be present.

      What the article is hinting at is that programming should be like office applications. Open the program, open a project or create a new one, get left at the point where you can just type in a program, then "save" or "compile" it and give the end result to either another programmer (if you saved) or a random end-user (if you compiled) and have things work. This isn't about dumbing down programming itself (which is dangerous) but making the programming IDE's as nice to use as Word or Excel. I don't claim to know a thing about advanced Excel functionality, but I can damn well open a spreadsheet someone else has made and not run into non-programming problems with it no matter how complex it is.

    6. Re:Programming by Anonymous Coward · · Score: 0

      Go download a C compiler and IDE. Get it to compile a hello-world example. Now find out how to compile a multi-file project. Now find out how to link to an external supplied library and do so. Now make it run on another C compiler on another platform that's not from the same compiler / IDE family. It will take you longer to do, as a beginner, than it would take to learn whole chunks of the C language off-by-heart.

      Dead on. I'm not a programmer, but a PhD mathematician/algorithm hacker. Learning C was a snap as I had already learned the lesson of read the book by the folks who developed the language (K&R) as it would explain the paradigm, not just give a list of stupid rules. A[i] being identical with i[A], and a[i,j] being a 1-D array all made perfect sense, completely obvious. When I later tried to use C with a "modern IDE" I was overwhelmed by endless stupid rules w/o a paradigm in sight. In my R&D environment there was a simple solution however, just hand the source code to some lowly-paid peon to compile/make. (I have tremendous respect for the guys who fight their way through an IDE's no-reason-just-policy barrier.)

      The reply re. C being a language designed for system programming should be footnoted by saying C is the ideal language for developing semi-numerical algorithms. I use Matlab a lot and love it, but there is a lot it can't do or does badly (e.g., deep recursion and bit diddling.) Matlab has a simple, usable IDE. I get that large-project IDEs need be much more complex, but there should be a simple version for small 1-man hacks.

    7. Re:Programming by Anonymous Coward · · Score: 0

      Excel has the same download/version problems as python. Some versions crash when trying to read other versions files and since it hasn't been ported to hardlynany OSes,you usually hsve to use substitutes, such as openoffice which also might not be able to read newer xls files. Sure, this isn't reaaly a problem within a given version of excel, but it's not in python either. Yet you flamed python for the same thing.

    8. Re:Programming by Anonymous Coward · · Score: 0

      A couple of months ago I figured I should get back to C development again, well, to cut it short I came to the same conclusions you've written here today. I was not going to subject myself to re-learning Makefiles, autoconf and all those tools I had used before, so I wrote my own make-replacement. Sure, it took me some time since I only have the opportunity to write a few lines on the weekends, but now it's working for anything I'd care to have it do. Such as, not requiring any configuration at all, just invoke the program and it will compile your application including any referenced libraries, of course in the right order, not doing anything more than needed, considering it does need to read every c/h-file it encounters to infer dependencies and to figure out if it is part of a executable, a static or dynamic library. But it was easy and there are many other tools, just as easy. Take a look at sourceforge....But I don't think I'd say CMake counts, I took a look at their documentation at first and gave up right there, it's a beast. What we want is a single name to write into the console, press enter, and it will take of everything for you.

    9. Re:Programming by Anonymous Coward · · Score: 0

      Make, and specially GNU Make, is a wonderful tool that can save you a lot of work and grief.
      FYI:
      How to create a program consisting in a single C file:
      1. create the program text (using _any_ text editor). Save as "program.c"
      2. invoke Make: "make program".
      3. There's no step 3.

      See, you don't even need a Makefile. It just works.

      If people are still using Make after 40 years, maybe it's because it's good at what it does.

    10. Re:Programming by ledow · · Score: 1

      "single C file".

      Yeah. Real-world example.

      Now make me one that compiles thirty+ files in subdirectories, links into something like GTK libraries, support multiple targets (one static and non-debug, say, and the other dynamic and debug), checks dependencies, compiles only unchanged objects, can be updated simply when a new file is added, etc.

      Sure, it can be done. But it's learning another language, not a simple, intuitive tool. I would posit that the C preprocessor is easy to learn than an everyday Makefile, and that's just the wrong way round. Just what precisely is in the way of just dropping a bunch of files in a folder, running make and having it compile them all to object, link those objects and run off to find dependencies properly? Because it doesn't happen, and it could. And if GNU Make was so good, CMake and SCons wouldn't exist. Both are, it has to be said, equally bad too.

      GNU Make is exactly the tool I'm referring to as horrendous and atrocious. Honestly, tab-stops that break files in the 21st century...

    11. Re:Programming by Anonymous Coward · · Score: 0

      I've made a tool which does exactly what you're asking for, although multiple targets is not supported without a compile hint in the form of a simple file. Checking dependencies, sub directories, libraries, compiling only unchanged objects, adding new files etc, wasn't really hard to program into the tool. Well, it needs to parse C, but from there it's just topological sorting, not very advance.
      Then I'm only using this tool for my own pleasure, knowing there are many other tools, just the same with free license (I make a living cranking out code so I'm not giving my work away, or letting you know exactly how I did it).

    12. Re:Programming by Anonymous Coward · · Score: 0

      But there are. Took me about 5 minutes to find a bunch of free alternatives that promises to compile all of your source code with zero input yourself.

    13. Re:Programming by slim · · Score: 1

      Now make me one that compiles thirty+ files in subdirectories, links into something like GTK libraries, support multiple targets (one static and non-debug, say, and the other dynamic and debug), checks dependencies, compiles only unchanged objects, can be updated simply when a new file is added, etc.

      Sure, it can be done. But it's learning another language, not a simple, intuitive tool.

      Make is very flexible, so yes, it is like learning another language. But it is not a complicated language, and all of the things you've mentioned are common things to do, which Make will achieve with aplomb. Read the Make documentation, look at an open source project's Makefile for examples, and you'll be fine.

      And if GNU Make was so good, CMake and SCons wouldn't exist. Both are, it has to be said, equally bad too.

      GNU Make is exactly the tool I'm referring to as horrendous and atrocious. Honestly, tab-stops that break files in the 21st century...

      I don't know anything about SCons, but CMake's raison d'etre is portability - that is, you want to build using Make on Unix, and MSVC on Windows, so CMake build Makefiles on Unix, and does whatever VC wants on Windows.

      The tab thing is irritating; but get over it.

      Nobody has managed to make a build tool that's a no-brainer to use. CMake, autoconf, Make, Ant -- all are complex enough to warrant a whole printed book each. If you wrote one that was as simple as you hope for, it would lack the power developers demand.

    14. Re:Programming by Lodragandraoidh · · Score: 1

      I would say there is one sense where interpreted basic is better than python - the fact that interpreted basic is a simple structural language - whereas there are some things in python that have to be done in an OO context.

      For end users - any programming language must limit the conceptual domain to structural language constructs, and furthermore should also be interpreted. This allows the end user who is not familiar with programming to immediately grasp the idea of a list of instructions that follow one after the other, and gives them immediate feedback during the critical early period when they are learning the basics(sic).

      We as programmers collectively have a tendency to find joy in ever more levels of complexity. We shouldn't forget who we are really working for - and do something to make their life easier. (And frankly - I'm tired of them calling me for things that they should be able to do for themselves...so my motivations aren't totally without self interest).

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  29. Stop whining by Mister+Liberty · · Score: 2

    I taught myself programming. Nerds will be.
    The rest just enjoy yourselves with twitter.

  30. It's not the tools by Anonymous Coward · · Score: 3, Insightful

    This has been tried so many times before. The simple fact is that most people can't program.

    Simpler tools, or better tools, can ease the incidental burden of having to work with a program.

    What they can't ease is the cognitive load of having to remember patterns, and abstract objects, and nested function calls. Most people can't deal with this.

    Mr Wiggins has probably forgotten, as I have, the difficulties one faced and overcame when one first learned to program, and so he's forgiven for thinking that if we just made the environment simpler anyone could do it.

    I'd argue that python at the shell is pretty simple, but most people can't or aren't motivated to do even that.

    This thinking is like saying "a full piano is too difficult, so if we give people a little toy piano they'll be able to learn to play".

    1. Re:It's not the tools by narcc · · Score: 1

      This has been tried so many times before. The simple fact is that most people can't program.

      Only because they never learned how, not because they're incapable of writing computer programs!

      Most people don't see any benefit to learning how to program, and so they don't bother to learn. The absurd, unnecessary, barriers that aspiring learning face today is enough to hold back all but the most dedicated. How many people's lives have been made more difficult because we've locked-out the home user with unnecessarily complex tools?

      We're a long way from the old days, where all you needed to get started was the manual that came with your micro -- Just turn on the computer and start typing at the prompt. Those old computers practically begged you to write your own computer programs -- and provided an unparalleled sense of power and control as the computer sprung to life, dutifully carrying out your wishes when you typed that first "print" command!

      You'd have to have some serious mental issues to delude yourself in to thinking that the ability to write computer programs somehow makes you special or important. Any idiot can learn to write computer programs -- and many idiots do.

      Remember VB6? It was brilliant. It was so simple to use that people could not only teach themselves the basics of computer programming, but write programs that were meaningful or useful to some area of their own life. All without years of training or other long-term learning commitment. That's a good thing.

      Sure, beginners will write bad code, but so does every beginner. Hell, most "professionals" produce absolute garbage. There's absolutely no harm (other than to the ego of the insecure developer) caused by home users writing software to meet their needs or just for fun.

      Not everyone will be a professional programmer, or even write programs as a hobby. That's fine. No one is saying that everyone should learn to write computer programs. There should be, however, simple easy-to-access tools for laypersons who want to solve a problem and for beginners to learn the basics. Why lock all that power behind needlessly complex tools? Because a beginner might write some low-quality code? Get over yourself.

    2. Re:It's not the tools by slim · · Score: 3, Interesting

      This thinking is like saying "a full piano is too difficult, so if we give people a little toy piano they'll be able to learn to play".

      When I was young I had a little Casio keyboard with auto-accompaniment. It allowed me to experiment with chord progressions using major, minor, major 7th and minor 7th chords, before learning to play those chords manually. It's not a bad thing. 30 years later, I'm able to transcribe chord progressions almost without thinking - something a number of my musical friends find astonishing.

      Perhaps I'd have developed that skill without the dumbed down learning tool - but it definitely lowered the barriers to entry.

    3. Re:It's not the tools by SoftwareArtist · · Score: 1

      I'd argue that python at the shell is pretty simple, but most people can't or aren't motivated to do even that.

      That's the essence of it. It's not that people can't learn to program. They just have no motivation to do it.

      Bring up a Python interpreter and you can teach someone the basics in a few minutes. "Look, it's a calculator." Type 1+1 and show that it prints 2. Nothing anyone will find confusing. "It lets you define variables". Type x=5, then type x+2, and show that it prints 7. Again, nothing very confusing. Show a few more examples, introduce them to some built in math functions, show how variables are useful for saving intermediate calculations. "But you aren't limited to the built in functions. You can define any new function you want." Show them how to do it. "Isn't that cool???"

      At which point they will smile politely and suggest doing something else instead, because really, what do they need a super powerful calculator for? They're completely capable of learning. They just don't see any reason to want to.

      --
      "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
  31. BASIC by flyingfsck · · Score: 1

    Well, BASIC still exists. There is nothing preventing anyone from using it.

    --
    Excuse me, but please get off my Pennisetum Clandestinum, eh!
  32. How about just getting to the subject matter... by 3seas · · Score: 1

    ... of which is what programing and language is all about?

    http://abstractionphysics.net/pmwiki/index.php

    This is gtoing to happen, it only a question of when and that includes the if an when you get to do so in your lifetime.

    It tooj 300 years for the Hindu-Arabic Decimal system to overcome the Roman Numeral system of mathematics...why? Politics o0f thoise who didn't want to lose their position inj society. But Abstraction Physics isn't about some subset of abstract, such as mathematics, but all abstraction, the tools of abstraction.

  33. focused on the technology by Errol+backfiring · · Score: 1

    2) they're focused on the technology rather than everyday tasks.

    Well, duh. Everyday tasks have already been programmed. The only way to teach people to solve new problems is to present the technology with some (over-simplified for clarity) examples.

    I still remember one of my first book about Lisp. One of the very first examples was how to analytically differentiate an expression. Now that is a good example. It shows that, even with very basic Lisp, you can do things that are unheard of in other programming languages. Only such examples teach you the mindset of a language.

    --
    Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
  34. Stored Procedures & bind variables by Anonymous Coward · · Score: 1

    ARE available in Access, Delphi, VB (C++ too) & have been since the late 1990's!

    * See - I'm actually "one of those 'old guys'" who started on tools like that, professionally, & have been @ it since 1995 as a pro...

    However - because I had GOOD co-workers? I was taught correctly & FAR better than I was while earning CSC degrees (MIS/CIS minor on a B.S. Business Admin, & later AAS CSC (to learn more & 'step up' my skills), respectively) on the job... by FAR!

    It's MOST important to do what I noted below when an app has "inbound/outbound" remote connectivity (not so much for departmental level apps used internally in companies in 'intranets' though, but... still important, just not as much, for security purposes).

    Personally?

    I always LOVED it when I saw folks *trying* (& yes, succeeding) in mastering their SQL (most universal business language tool that there is since it 'snaps-in' or rather, is part of, MANY languages for database access!) and actually getting the job done.

    They're often, from what I have found, BETTER & MORE PRODUCTIVE WORKERS that produce results... vs. those that don't (bullshitter marketing types).

    You've got to give them credit for it @ least. They get the job done, albeit, NOT as safely/securely or fast as possible in terms of overall performance.

    It's how ANYTHING starts, & then it's practice!

    IF I had to offer anything on this article's premise? It would be that: PRACTICE, & try new things, to learn. Any coder's done it anyhow & will tell you the same.

    IF you're a coder? You KNOW this anyhow - so, don't mean to "preach to the choir" or sound condescending, but it is, how it is. I try *not* to assume the person I am speaking to is 'expert' & go into details is all.

    APK

    P.S.=> Directly executed ExecSQL type calls are frowned upon, & were even then (for security purposes mostly, as well as performance - since it's making the local PC do the work, vs. a usually far, Far FAR faster & more powerful db server)!

    E.G. -> I've been using them since, oh, iirc 1997-1999 typically on information systems programming jobs (sometimes tinier departmental apps, but many times mostly LARGE "mission-critical"/"enterprise class" sized ones that span MILLIONS of lines of code, with more stored procs work DB side tossed in also). Before that, when I was 1st starting & learning on smaller departmental apps for reporting mostly, professionally? I was doing what you said for my 1st year. Nobody taught me different in academia is why... had to learn it "on the job" (best school in the WORLD).

    Point-Blank: It's better BY FAR, to send a bind/bound variable with the query string to a stored procedure for security purposes as well as performance too - double bonus. IF you don't do it that way? It's part of what opens the door for SQLInjection attacks & such!

    The most common & effective defense vs. that? Bind variables for query strings & send them off to a properly secured DB engine, in a properly secured DB server.

    (Compiled queries too on better databases like Oracle, or SQLServer, for performance)

    For security - that keeps it out of the "front-end" and secures you on the webbound front as well!

    Which was & probably still IS a big problem that gets companies broken into by hacker/cracker types because the webguys aren't doing that like they ought to - When I've done ASP.NET (hate it, but it's money & when you're told to do it a certain way, you do), even it has options for what I just said!

    (Which is what "boggles my mind" that people still build queries off URL strings & such in the page itself, rather than form variables concatenated + sent via a bind variable to a stored procedure on a PROPERLY secured server & database engine)...

    ... apk

  35. Better crutches by Anonymous Coward · · Score: 0

    Bah. I've met enough students that claimed they new binary yet stated it was impossible to represent fractions as a series of digits similar to "decimal representation." If they lack the insight on how to extend a logical method across the radix point, there's little hope for much ability to create new algorithms.

    It's like giving an elephant a paintbrush. Perhaps it's art, but it's not fine.

  36. Please take a look by MoserMichael · · Score: 0
    Please take a look at my side project - the Pooh programming language

    It is supposed to be a simple but modern language designed for teaching . Here is a list of the main features:

    • Does not force to introduce OO concepts from the start; variables like strings/lists/hashes are not objects; this is the non strict OO viewpoint.
    • Makes flow visible by tracing of the program flow; the -x command line option instructs the interpreter to trace each statement and evaluation results + intermediate values.
    • A focus on readability and clarity in syntax and semantics
      • no statement delimiters - no semicolons
      • all function parameters are passed as named parameters;
      • all variables declared in function are local;
    • Variable must be defined before use, similar to strict mode in Perl; variable is defined if value is assigned to a name.
    • The language has closures and can do objects by prototyping; has higher order functions like map/fold/filter .
    • If a non local variable is referenced, then it must have the prefix outer . ; references to global variables from a function must have prefix global . ; object member references must have prefix this .
    • the Pooh language has green threads / co-routines / generators like Lua; so there are nice for loops like in Python. The local variety of this idea is called Pooh routine.

    Thank you for your attention.

  37. sed and awk by antifoidulus · · Score: 1

    I never understood the obsession with introducing people to programming using a programming language. You basically cannot do anything "out of the box" without first covering a wide amount of topics(including storage, ie variables, types etc). This is enough to turn a large # of people off, so why not start with tools that allow you to write "programs" without having to worry about types, variables etc. we already have such tools, they are called sed and awk(and others) most of what your average Joe is going to want to "program" is some simple text parsing/ manipulation programs anyway, so why does he need to know what an "array" is or what an interpreter/compiler is. You can do some pretty amazing things with a couple of bash commands, why not start with them? Your average Joe can accomplish a lot more in 5 minutes of learning sed than he could by studying PERL, or worse, Python(shudder)

    1. Re:sed and awk by waitamin · · Score: 1

      I totally agree with you on how many useful things one can achieve by just using sed and awk. But there are problems: first, those are very Unix/Linux-centric programs, and not at all a default on the majority of personal computers (sadly). Second, from TFA it is clear that this guy's understanding of programming doesn't go much further than writing a formula for Excel or *using* AutoCad.... I even have a feeling he wouldn't know how to write a regular expression, or would have the patience to read through the awk manual (and yes, you need to know what an array is to use it properly). And no, average Joe doesn't really want to accomplish anything that could be accomplished with sed. Average Joe will do his work using Excel and Word, browse Facebook until it's time to go home, and if he then uses a "computer" at home, the chances are it's an Xbox.

    2. Re:sed and awk by chrismcb · · Score: 1

      Why do you think most of what the average Joe wants is some simple text parsing?
      And you are recommending sed, awk, and PERL to beginners? Do you want to scar them for life?

  38. Educational programming languages by jbolden · · Score: 1

    Quite a few languages for education exist that do have easy setup and IDEs. http://en.wikipedia.org/wiki/List_of_educational_programming_languages

    Computer literacy is decreasing though because as a society we aren't focusing on it. Computer literacy courses in school should teach basic programming. Having at least coded in Logo would make a huge difference in people's ability to understand computers.

  39. Monkey-Keyboard Problem is NP-hard by Anonymous Coward · · Score: 0

    WRONG. The monkey-keyboard problem is NP-hard (it is equivalent the halting problem)

    1. Re:Monkey-Keyboard Problem is NP-hard by joss · · Score: 1

      That's a fantastic troll, nice job.

      --
      http://rareformnewmedia.com/
  40. Automator and AppleScript by BonzaiThePenguin · · Score: 1

    No setup and handles everyday tasks? Sounds like Automator and AppleScript.

    1. Re:Automator and AppleScript by Waldeinburg · · Score: 1

      Ironically, AppleScript, which apparently tries to be "human friendly", is the first programming language I've tried where I gave up figuring out how to do some simple operation that looks alike in all other languages (some string operation, I think it was), even after searching the documentation. I now believe OSA really is an acronym for Obnoxious Syntax Abomination.

    2. Re:Automator and AppleScript by slim · · Score: 1

      You're not alone. I program for a living. I could not wrap my head around AppleScript.

  41. Writing is taught exactly the same way as coding by golrien · · Score: 1

    This post contains a fairly fundamental contradiction. We do teach reading and writing for the sake of reading and writing, initially -- children don't hold off learning to use a pen until they have a specific sentence in mind. It's taught from the basic principles (this is an "A") and taken for granted that in later life it'll be useful. Programming could probably be taught in the same way and at the same sort of stage of development in the mid future. It cannot be learned on the hoof the first time someone tries to make a computer do something that hasn't been done before, though, which seems to be what the article is suggesting.

  42. Re:Monkeys and typewriters by fizzer06 · · Score: 2
    Given enough time, a monkey banging at random on a keyboard will produce the complete works of Shakespeare.

    What about our deadline?

  43. What nonsense is this? by Anonymous Coward · · Score: 0

    They act like there is no intelligence involved in programming, which is obviously untrue.

    And let's face it, most people in the world are just not that intelligent.

    Posting anonymously, since I don't want to be accused of blowing smoke up my own arse.

  44. Visual Basic 6 by mumblestheclown · · Score: 1

    Still a wonderful language.

    - readable syntax
    - very approachable
    - compiles to actual .exe, unlike .net
    - superb UI

    there's a reason why MANY MANY places are still using it despite it being over a decade old and despite the fact that snobs throughout geekspace look down on it.

    it's just a pity there hasn't been a vb7 with commonsense upgrades like more modern controls, png support, and the like. even if all legacy ocx support were dropped, i guarantee you it would continue to be IMMENSELY popular.

  45. Shell by Anonymous Coward · · Score: 0

    >' as long as the tools are easy to set up and specialized on the programmer's task

    Launch the shell, Luke !

  46. Mind reading would indeed be handy... by Unknown1337 · · Score: 1

    Learn HTML. Zero setup, zero installs (on any current OS) and less than 10 basic lines accomplishes the "beginners would be able to fire it up instantly, and would be able to get useful things done right away" aspect. Then move on to JavaScript which supports functions, objects and all sort of more intricate programming concepts and again requiring zero setup. At least after learning these 2, you should have an idea whether you like programming or not and want to try something more involved. On a side note, it's never taken me more than an hour to setup a language targeted development environment (aside from a new web server install), how much more simple is this supposed to be? If it were possible to make software by answering a bunch of simple questions, writing out basic fundamentals and having the development environment fill in the gaps, most of us would be out of a job. ( Honestly I don't see how this is better than visual programming. ) But since mind reading software doesn't exist just yet, we will be safe for a while longer. Wanting to simplify the install of IDE/languages is desirable, but if you can't spend the time to understand how to install the software how are you /ever/ hoping to use it effectively?

  47. HyperCard by methano · · Score: 1

    HyperCard, from Apple back in the day, was a pretty good environment for knocking out simple little programs that almost looked professional. And it was free. It really was what you're describing, though the language was pretty limited. VB stole a lot of ideas from Hypercard and made it a bit more complex and platform limited and you had to pay for it. JavaScript could step in if the DOM wasn't so confusing. It's probably not ever gonna happen. Programming environments that aren't hard to use always get pissed on by the /. crowd.

  48. Better knifes won't make everyone surgeons. by Anonymous Coward · · Score: 0

    What most people lack is not memorization of terms or syntax but rather the ability to think logically.

    Praying your program to work won't fix it.

    Lucky rabbit's feet and star signs won't help you.

    The computer won't give you a gold star for participating.

    The computer won't agree with you to avoid hurting your feelings.

    That's the real culture shock of computers.

  49. literacy is good by znrt · · Score: 0

    as for #1 (fuzzy setup), if you fire up any text editor and a browser you have already a fully functional programming environment.

    as for #2 (task focused), this is interesting and a good point, and there's already examples of scripting enabled applications. users could benefit greatly from a common basic scripting syntax available across apps. yes, that would be the vision bill gates had with VBA or macro recording, but done right. VBA would actually have been a very good idea if they hadn't wanted to mess with "professional" programming too, the result was too complicated for the average user, a plain atrocity to any serious developer and ended up being a monster that filled the world with amateur crap. however, sticking to very elementary "standard" control structures and simple interfaces to operate on app specific elements to allow the user to program simple tasks would be neat, and if done right it should be easy to enable most apps to benefit from.

    as for #2 (not tech focused), that's a fantasy, probably because of having too much "technolgy" gurus around who simply can't stop writing nonsense and tossing the last buzzwords. ffs it's a market in itself. most developers don't really care that much about tech, they simply use it.

    of course, literacy is always good. the catch is there is no other way to become literate than learning: teach programming fundamentals in school. bingo!

    1. Re:literacy is good by Lumpy · · Score: 2

      Problem is most are a PITA to set up for the more interesting things. Compiler for a boring PC? easy. but writing code for embedded processors like a Microchip or TI MSP430 are 90X more fun and satisfying than writing yet another twitter client. Setting up those compiling environments are a royal huge PITA. In fact last night I blew 4 hours getting it all set up for the MSP430 on ubuntu, the only distro that has most of what I needed in a repo so I can just apt-get it all. and learned that Ubuntu 12.10 is a steaming pile of advertising riddled crap. so now I need to start again and try debian or slackware and do most of it by hand.

      The tools needed all rely on thousands of obscure libraries that are poorly documented as to what is needed. Hell to just compile the openchronos-ng example project for the TI Chronos dev platform I had to hun down 2 obscure Python libs to install.

      Why cant this stuff be rolled up in a statically linked blob that makes it easy for the casual guy to download and run?

      --
      Do not look at laser with remaining good eye.
    2. Re:literacy is good by Anonymous Coward · · Score: 0

      Yeah, i know you like your linux a lot, but really, when TI offers a complete and supported development environment for MSP why on earth do you insist on staying in linux? You just don't so it in linux unless you absolutely have to or you absolutely want to for the heck of it. Yes, you can cut down trees with a lawnmover blade, but it is not how it's supposed to be done.

      Takes like 10 minutes to get firts program running in windows.

  50. Again? by Anonymous Coward · · Score: 0

    "Broad programming literacy is crucial" is just like the old demand that everyone needs to learn a foreign language. Once learned, it is then never needed or used and subsequently lost. I am a programmer and love the stuff. But if I had gone into wildlife management like I originally wanted to, I would have absolutely no need or care for programming. A word processor and possibly spread sheet would have sufficed.

  51. Gifted students discouraged by bad tools by Antique+Geekmeister · · Score: 1

    I'm forced to agree with an underlying point: poor tools discourage students from striving further. Modern carpenters don't have to cut their own boards from trees in order to get planks, nor do they have to mine their own ore and make their own nails to learn carpentry. But in modern technology, too often we have to do just that sort of assembly of a complex toolchain to get our tols working. The result is a lengthy and often burdensome apprenticeship learning mechanical skills. Masterpieces are much easier to create when you don't hve to engage in so much drudgery and spend your most inspired, intellectually active youth learning rote mechanical skills that can be replaced by good tools.

    In fact, this is why Perl has done so well. Its tools are not perfect, but it is legible and tolerant and powerful enough to let you get some work done quickly and move on to the next project. And often, someone else has already built a similar version of the tool over at CPAN that you can find and work from.

    1. Re:Gifted students discouraged by bad tools by Morpf · · Score: 1

      If those gifted students are discouraged by downloading and installing java sdk + eclipse (just unpack), then how on earth are they supposed to be not discouraged by learning a language, (anti-)patterns, libraries and what legacy code does. If they are so mildly interested in the topic, that installing 2 things is too complicated / too much work, I don't see them finishing their journey either way.

    2. Re:Gifted students discouraged by bad tools by Anonymous Coward · · Score: 0

      Agree. That's why during my studies (years ago) I was so discouraged by the tools available to code in Java. Took us 2 hours to Install JDK, JRE, configuring Eclipse, download plugins and libraries. Then you could easily mess up anything by updating anything. We could spend another 2 hours to find that library x version x.y.z is not compatible with version x.y.z. So much time wasted on getting the whole thing to work than actually do some programming. When we actually got to execute something it was painfully slow.

      Why don't they take an example from Visual Studio (in my opinion the best and the easiest IDE ever created)? Installation: Next, Next, Next, Finish. Few lines of code, F5 and the thing is running.

  52. Python anywhere by WPIDalamar · · Score: 1

    I think he just described pythonanywhere?

    https://www.pythonanywhere.com/

    It's essentially "google docs for python"

  53. I used to be a "normal guy" by Anonymous Coward · · Score: 1

    IF I can do it? ANYONE can, pretty much! I did, since I wanted to change my LIFE for the better financially & yes, "mentally" too, & did -> http://developers.slashdot.org/comments.pl?sid=3368605&cid=42530471 Been professionally coding since 1995 (& yet 1989-1995 I was a loss prevention manager for a large nationwide superstore chain before that & led my chain in 'busts' & saving internal accounting losses)

    I changed to programming, because anyone could see it was going to change the world, especially with the advent of the personal computer. It was INTERESTING too.

    So far, I've had a hell of a decent career & trackrecord, professionally (enough to buy homes & sportscars etc./et al), & even did well on the side thru freeware-shareware, enough to have had my code go into VERY esteemed wares sold thru Microsoft Partners to this very day.

    (For performance increases on SQL Server, & it was reviewed GREAT in today's Windows IT Pro magazine (then Windows NT/2000 Magazine) & was a FINALIST @ MS Tech-Ed 2000-2002, 2 yrs. in a ROW, in its hardest category - SQLServer Performance Enhancement, & still sells well today!).

    * All that "said & aside" - I am here replying to you, since I *dislike* when I see folks who code *try* to play 'superior' over those that don't, because there's only 1 thing that separate "us" from "them" - a set of skills!

    (Not saying you're about that, but it came off that way to me/it's how I interpreted it is all... I can be as wrong as the next guy, as I can't hear your tone when you type & all that, lol!)

    Anyhow/anyways - Those skills?

    They ARE truly SKILLS ANYONE CAN LEARN when & IF they're willing to work at it (helps if it interests you).

    (Well, nearly almost anyone who isn't severely mentally handicapped, that is)

    You've also got to *try* to remember that perhaps those folks may NOT be experts in computing, but... are most likely quite expert in other areas (like the Doctor that delivers your first child or saves you from cancer, or the guy repairing your vehicle when you don't know HOW to etc., too).

    APK

    P.S.=> Around 1982 I coded BASIC (on DEC PDP-11 timesharing mainframes) - didn't REALLY "get into it" (I was just a kid, getting girls, working a minimum wage job, & doing well @ sports for scholarship with keeping up grades in std. subjects mattered more)!

    Later though, I did (moreso @ least) - in college on my 1st degree of 2 around computing circa 1984-1988 (B.S. Business Administration with MIS concentration)

    Yes, believe it or not? Yes - ot helped A LOT in coding for business systems later, because I knew the topics @ least @ a cursory level in finance, accounting, sales & marketing, economics etc!

    HOWEVER:

    The MIS minor/concentration part was way, Way, WAY too 'cursory'/10,000 ft. view & I knew it, especially once I started hanging around more with SERIOUS 'geeks' who I liked (because they were intelligent & didn't talk about STUPID stuff, I mean really stupid pointless stuff you don't learn & grow by...)

    Thus... so I went back for an AAS in CSC in 1992-1994, & bettered myself enough on that front to start out in a Fortune 100-500 level company right outta the gate...

    (When @ the end? Only myself & 1 russian fellow were recommended for the job, & we started out with 150 CSC students, only 10 of us left @ the end).

    However - IF I can do it? Anyone can... that's my overall point & conclusion here based on experience!

    (It's ALL how bad do you want it, and how hard are you willing to 'focus' on it (this changes you in ways though, lol, sometimes... I think NOT 'good ways', makes you a nerd, lol, but overall it's better than being a marketing droid type huckster imo))...

    Anyhow/anyways - my rant for the a.m., time for coffee (the SUPREME "consciousness fuel" (spice from DUNE, lol))...

    ... apk

  54. What about tools fixing trendyness? by Lumpy · · Score: 1

    Recently trying to deal with an open source project. all the C code is a mess of structs within structs. Defining a struct for frisking A and B throwaway variables is insane. readability of code has turned into a nightmare with all this misuse of the languages. yet it's the current "trend".

    how about tools on how to teach programmers that being "clever" or what your professors taught you is not always right?

    --
    Do not look at laser with remaining good eye.
  55. elisp by elgaard · · Score: 1

    https://en.wikipedia.org/wiki/Elisp

    No setup, you can use it right away.

  56. why most programmers suck by anyaristow · · Score: 2

    You've hit on why most programmers suck. They think programming is about syntax and logic. Kinda like a carpenter who thinks his job is about hammers and saws.

    1. Re:why most programmers suck by Anonymous Coward · · Score: 0

      I agree in terms of syntax. Syntax is really just that and, so long as it's not exceedingly obtuse, it's really just about memorizing the "rules" of your language of choice.

      That said, if you think that you can eschew the concept of logic and still program successfully then you've actually illustrated the point entirely. Programming is almost entirely about logic and problem-solving. That's like saying that anyone can build a bridge and a civil engineer that thinks in terms of the relative load-bearing capabilities of various materials must "suck" because building bridges isn't all about bearing load under various stresses and situations...

  57. What happens when everyone is a programmer. by Flammon · · Score: 1

    This is unedited code that I discovered yesterday while reviewing a client's app. This little gem was written in 2012.

    function myfunction(order_date)
    { //Find here Lunch days.......
    var launch_day = new Date(order_date*1000);

    var dd = launch_day.getDate();

    var mm = launch_day.getMonth()+1; //January is 0!

    var yyyy = launch_day.getFullYear(); // will display time in 10:30:23 format
    var lunchdate = yyyy+'-'+mm+'-'+dd;

    var weekday=new Array(7);
    weekday[0]="Sunday";
    weekday[1]="Monday";
    weekday[2]="Tuesday";
    weekday[3]="Wednesday";
    weekday[4]="Thursday";
    weekday[5]="Friday";
    weekday[6]="Saturday";
    var compare_lunchdate = weekday[launch_day.getDay()]; //this is lunch days // Find here Current day..............
    var current_day = new Date();

    var current_weekday=new Array(7);
    current_weekday[0]="Sunday";
    current_weekday[1]="Monday";
    current_weekday[2]="Tuesday";
    current_weekday[3]="Wednesday";
    current_weekday[4]="Thursday";
    current_weekday[5]="Friday";
    current_weekday[6]="Saturday";
    var compare_current_day = current_weekday[current_day.getDay()]; //this is Current days //alert(compare_current_day=="Saturday")
    if(compare_current_day=="Saturday")
    {
                var today = new Date();
                var adddays=Date.parse(today.setDate(today.getDate()+ 2));
                var dd = adddays.getDate();

    var mm = adddays.getMonth()+1; //January is 0!

    var yyyy = adddays.getFullYear(); // will display time in 10:30:23 format
    var checkdays = yyyy+'-'+mm+'-'+dd;

                if((Date.parse(checkdays))

    1. Re:What happens when everyone is a programmer. by Flammon · · Score: 1
    2. Re:What happens when everyone is a programmer. by Anonymous Coward · · Score: 1

      I've seen worse, but I can see how that might make you feel like you need to "launch" your "lunch".

    3. Re:What happens when everyone is a programmer. by Greyfox · · Score: 1
      Makes you want to invent a time machine just so you can go back in time and punch the original author in the forehead, doesn't it?

      It's even worse when you stumble across a function like that and then when you go back in time to punch them in the forehead, you remember that YOU were the original programmer! Everyone's bad at some point!

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    4. Re:What happens when everyone is a programmer. by geekoid · · Score: 1

      How would YOU have written it?

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    5. Re:What happens when everyone is a programmer. by Flammon · · Score: 1

      Damn. I was hoping no one would make me go through that code. I'll make you deal. If you get voted up a couple of points, I'll re-implement it and show you how it's done.

  58. Bullshit by Anonymous Coward · · Score: 0

    Have you read the manual for a VCR? Tata's exactly the point of the author; literacy. For reference, I finished up my masters in mathematics while deployed. Given government computers were the only things connected to the internet, I did all of the programming in VBA in excel because it was the tool available.

    We've screwed up; How many lines is "hello world" in your favorite programming language? In BASIC it was one line. COBOL was short. Java? Shit. C++? Even worse, try writing "hello world" for an iphone or android phone.

    1. Re:Bullshit by slim · · Score: 2

      `Hello World` in Java is one line, excluding stuff that the IDE does for me. While I do hate it when IDEs generate screeds of boilerplate code, I think Java keeps it to a minimum, and I like what Java makes explicit. I wouldn't say it was an ideal beginner's language though.

      Hello World is one line in Groovy, Python, Ruby, Perl. Ruby and Python are languages I might recommend to an absolute beginner.

    2. Re:Bullshit by Anonymous Coward · · Score: 0

      ... one line, excluding the other lines. Where, exactly, does it display "hello, world"?

      How the hell do you start Ruby and Python? Think of it from the high school teacher perspective. Given Macbook, masters degree in education, and a small budget, how do you do that? Those of us who are artifacts of the time before windows understand the DOS prompt and xterms. We're now pretty close to cretaceous.

    3. Re:Bullshit by slim · · Score: 1

      ... one line, excluding the other lines. Where, exactly, does it display "hello, world"?

      In the Eclipse console, which is "a special place where the output of your program goes", as far as the beginner needs to be concerned. However, as I said I wouldn't start anyone off with Java, nor with Eclipse (unless someone came up with a radically simplified Eclipse perspective).

      How the hell do you start Ruby and Python? Think of it from the high school teacher perspective. Given Macbook, masters degree in education, and a small budget, how do you do that? Those of us who are artifacts of the time before windows understand the DOS prompt and xterms. We're now pretty close to cretaceous.

      Even if you've never seen a CLI in your life before, I don't think it's all that challenging to double-click the Terminal icon, then type "python helloworld.py" or "ruby helloworld.rb". Budget, zero.

      I think that various efforts by the Raspberry Pi community are creating a Python IDE aimed at children, though.

    4. Re:Bullshit by slim · · Score: 1

      ... or, http://www.learnpython.org/

      Type 'print "Hello World" ' into a textbox in a browser window, and click "run".

    5. Re:Bullshit by Jmc23 · · Score: 1
      If you want simple, Lisp is it.

      "Hello World"

      No boiler plate needed.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    6. Re:Bullshit by Lodragandraoidh · · Score: 1

      You are absolutely right. As much as I like to tinker with my linux box and write code - computers are really only valuable to the extent they can be useful to the average user. None of us in IT would have jobs if it wasn't for the network and all the computers in hands of the end users that makes that network useful.

      The problem today goes beyond just the unnecessary complexity of programming languages (and I agree that is entirely rediculous and also contributes to bugs and security problems even in the hands of professionals) to the issues of end users effectively managing their computers (configurations/security) and extending its capabilities; you have to practically be a computer scientist. That isn't reasonable from my perspective.

      We (IT) could solve this - but there is no pressure to make it happen.

      Let's fix this.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    7. Re:Bullshit by Anonymous Coward · · Score: 0

      #include

      int main( )
      {
              std::cout "Hello world";
              return 0;
      }

      I don't think the Hello World program's length is a good metric.

    8. Re:Bullshit by darkfeline · · Score: 1

      Um, the linux kernel is one line, too. Just sed away all the newlines. Your argument is invalid.

      Hello World in Java (one line):

      public class Test { public static void main(Strings[] args) { System.out.println("Hello World"); } }

      Hello World in Python (one line):

      print("Hello World")

      I think Java keeps it to a minimum

      Interesting definition of minimum you've got there. Are you using the same dictionary our politicians are using?

    9. Re:Bullshit by slim · · Score: 1

      It *is* the minimum, unless the language takes the step of making class and method declarations implicit.

    10. Re:Bullshit by darkfeline · · Score: 1

      No, it isn't. There's no reason why a Hello Word program NEEDS to declare classes, methods, or functions. That's obviously overhead forced by the particular language.

    11. Re:Bullshit by slim · · Score: 1

      I'm not sure what core point we're debating here.

      Java chooses to be pure and consistent - all executable statements reside in a method, in a class, and you don't get implicit class and method declarations. So you must have explicit declarations of these. And I'd say, when you're ready for Java, that this is quite a good thing, because the fact that you're writing a class with a main() method isn't hidden.

      I think it's good that Java is consistent; I think it's good that it's explicit - it's not right for all purposes; use a different language when you want to. But given those design choices, it would be wrong for Java to allow a true one-line Hello World.

      But, you only have to *write* one line, because all the rest is boilerplate, in a sensible IDE. That is: new class; fill in dialog box, type 'System.out.println "Hello World\n";', run-as-Java-application.

      Similarly in C all executable statements reside in a function, so it's immediately clear to the learner that they're writing a main() function.

      Now, in something like Groovy, for example, everything is still in a method, in a class, and when you run it it still constructs a new object then calls its main() method, because under the covers, it's still Java. If you write a Groovy one-liner - 'println "Hello World"', it behoves you to know that it's shorthand for declaring a class and putting that code into main().

      I wouldn't recommend Java as a first language precisely because it shoehorns you into OO. I wouldn't recommend Groovy as a first language because it's a language that only really makes sense if you already have a grounding in Java.

  59. Better Tools For Chemistry Literacy by Anonymous Coward · · Score: 0

    'Broad chemistry literacy is crucial in a world increasingly made of chemicals,' Woggins says. 'Despite common stereotypes, chemistry is not out of reach for the average person,' as long as the tools are easy to set up and specialized on the chemist's task.

    Not everyone is made to program, nor are they made to be chemists or plumbers or any other trade.

  60. QUESTION - COBOL was short? apk by Anonymous Coward · · Score: 0

    "How many lines is "hello world" in your favorite programming language? In BASIC it was one line. COBOL was short. Java? Shit. C++? Even worse, try writing "hello world" for an iphone or android phone." - by Anonymous Coward on Wednesday January 09, @08:42AM (#42531095)

    Were you allowed to skip the identification & environment divisions, or what? They "bulked up" the SIZE of even simple COBOL stuff pretty massively!

    (I hated it, PIC (X) statements & all... readable? Yes... short though?? I found it was NEVER 'short' due to the above!).

    Yes, sure - C/C++ for example, Pascal &/or Object Pascal (Delphi), & even JAVA have their 'bulk' too, but NOT like COBOL!

    BASIC though, you're correct about as far as I am concerned... a lot less typing, Begin/End (C/C++ bracework) ala Pascal, does bulk them up too, along with header &/or unit declarations up front/@ the top, & preprocessor directives + declarations, along with (when doing GUI work that is) controls & objects declarations too...

    APK

    P.S.=> Just curious, because I've never EVER heard anyone say "COBOL IS SHORT", lol - you're my 1st in a professional career in coding since 1995 in fact... I found COBOL's wordier than hell - again, very READABLE, but wordy & imo? Compared to tools today?? Unwieldy!

    ... apk

    1. Re:QUESTION - COBOL was short? apk by budgenator · · Score: 1

      It's been a couple decades but even with COBOL 77 you had the DISPLAY command that would print a line on the console without too much programming; I guess short is relative, but most of the repetitive things like the environments were just yanking out the punched cards from the front last program. When I took COBOL, modular programming was an ugly hack, now I probably wouldn't recognize the language.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
  61. Danger! Keep out of the reach of children! by erroneus · · Score: 2

    Putting programming within the reach of every-day people is to harm [further] things in two ways:

    1. Adds to the complexity of knowledge of users and thus creates additional potential for things not working.
    2. Reduces further the power and flexibility of most programming which results from the need to reduce the risks of #1.

    The kind of high-level programming we are doing today is more "black box" dependant than ever before. When I learned to code, it was BASIC first but then quickly into assembly language for some popular motorola processors. In that realm, I learned to write pretty much everything about how to get input to how to send output. Admittedly there were stll black boxes, but the black boxes were essentially "interacting with the OS" which is one black box we need.

    But when the very language we write in is a black box I begin to worry more and more about the mentality of programmers who don't understand the underlying details of what really goes on. I recall someone saying "why do checks this way? use REGEX!" I was like "uhm... what do you think regex routines are doing???" Once again, black box dependency obscures people's understanding of what computers are actually doing.

    I'll get off my soap box now, but I will close with this: The problems with today's software is programmers who don't understand computers. This division of "hardware guys and software guys" is ridiculous... every bit as ridiculous as the idea of separating the head from the body (mental and physical) in the practice of medicine.

    1. Re:Danger! Keep out of the reach of children! by HeckRuler · · Score: 1
      Standard interfaces.

      I recall someone saying "why do checks this way? use REGEX!" I was like "uhm... what do you think regex routines are doing???"

      Yeah, but he knows how to use regex, and he doesn't know what sort of crazy home-brew implementation you cooked up. When it comes time for him to fix your code, or extend it, he's going to have to dive into it's guts rather than tweak some regex. A lot of effort has been put into debugging the libraries that everyone uses. How long did you test and debug your implementation?

      If he was arguing for speed or size issues, sure, you have a perfectly valid point. But compatibility, useability, and hell, even conformity are more important than how fast your code runs. Usually.

      Also, it wasn't quite clear what you're getting at with the first two bullet points. Are you REALLY suggesting that educating the users is a bad thing?

    2. Re:Danger! Keep out of the reach of children! by erroneus · · Score: 1

      Yes I am.

      People in the workplace usually perform 'tasks.' Everything they do and know should be relevant to performing that task. If, to accomplish that task, they have to write code, it increases the details which need to be known for other people and for them to remember. When I see people every day asking me [again] "how do I change my password" I have to doubt their ability to do certain things with complexity.

      Users need developers. Developers need power and flexibility. I see no need to change this arrangement.

    3. Re:Danger! Keep out of the reach of children! by HeckRuler · · Score: 1

      Oh, well in that case you're a bad and evil person and I detest everything about you. Your outlook on life, and probably your actions are detremental to society. You want to keep the masses ignorant and stupid simply because it would be easier to write some programs for them and makes you more "powerful" than they. And at the same time you despise the average user because they don't have the same capabilites as you do. The is a positive feedback loop, a vicious cycle. I imagine if you were the sole IT sysadmin somewhere there would be a horrible rift between IT and the users with a very antagonistic and posionous relationship. Posionous in that they would hate all IT workers (ie, me) via association with their association with you.

      So, please fuck off into a fire, and die.

  62. what a load of shit by Velex · · Score: 1

    Despite common stereotypes, programming is not out of reach for the average person

    Hahaha, no.

    Shit like this is the reason I need to get my ass back to college already and change careers away from computers, as fucking far away from them as I can get.

    Everybody I work with who has not tried thinks that programming is just so fucking simple.

    Guess what?

    It's not that fucking simple.

    You have to be willing to ask "what if?" You have to be willing to admit you've made a mistake when you find a contradiction in your algorithm. You have to be able to admit you've made a mistake when your algorithm doesn't produce the correct answer. You have to be able to admit you weren't thorough enough when there's a corner case that you hadn't planned for.

    You know what? You have to be able to admit you went wrong when the computer goes wrong if you want to program..

    The average person is completely incapable of that. There is no fucking tool in the entire god-damned world that is going to make somebody comfortable with approaching a subject matter where they can be wrong.

    --
    Join the Slashcott! Stay away entirely Feb 10 thru Feb 17! Close all tabs to prevent autorefresh!
  63. I agree that the tools are a problem by vawwyakr · · Score: 1

    I recently decided to try my hand at some mobile app development after 15+ years of programming experience with mostly other non-related tools. The setup was just painful, it took me an entire weekend of tinkering around trying to figure out (ie google search) why various things weren't working/not compiling etc. Once I figured out the methods of getting things setup that works, its fine now and I have been working away with few issues and could start over again in no time. The problem though is that until I learned the the various tool's failure points it was a huge pain.

    I've seen things like this happen in classes and new people at work. Once you know a tool you can get going without issue but until then its this painful thing you have to deal with that is problem that is largely not interesting or fun to deal with.

  64. Re:Writing is taught exactly the same way as code by gweihir · · Score: 1

    Look up "functional illiteracy". It affects about 15% of all adults even in the US. Now, programming is much harder. Having functional illiteracy here even after intensive training at 85%-99% of all adults would not surprise me in the least. And I would expect to see > 10% of this even among people claiming to be programmers.

    Nice link: http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html
    Read it. It is straight out of reality.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  65. Why Can't Programmers.. Program? by gweihir · · Score: 4, Interesting

    Jeff Atwood has some very nice observations about this from the real world. Also highly entertaining:

    - http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html
    - http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html

    One claim is that 199 out of 200 people applying for a coding job cannot code at all. The examples given are hilarious (or deeply depressing) and there is every reason to believe the observations described. Some of the links are also eminently worthwhile.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  66. I Remember CS... by Greyfox · · Score: 1
    A significant portion of people in my early classes had a lot of trouble just getting the tools set up. Does anyone else have "fond" memories of encountering vi for the first time? Or having to figure out a make system (like... make...) laying out a project directory, the whole "compiling versus linking" discussion and exactly what object files are? My first computer classes in high school managed to gloss that over; we were using Apple II machines with BASIC, which really didn't take much more than how to get your program to a file on disk and back. Once we moved to the Apple Pascal environment, though, it was more unfamiliar territory and we started having to worry about fiddly things like that. UNIX for the first time? Much, much worse!

    I'm all for introductory environments not having to worry about things like that as you learn fundamental concepts, but there are plenty that require minimal set-up. As has been pointed out, you can use your browser to start programming. Programming's more about crapping code onto a page, though. If you're going to be "literate" in it, you damn well have to learn about the fiddly things at some point. Otherwise you're just going to be another cut-and-paste coder with unmaintainable code and files strewn everywhere, and we already have more than enough of those.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  67. public libraries by Anonymous Coward · · Score: 0

    Book publishers didn't want the library. A very similar monopoly prevents the unwashed masses from reading source code today. You fail as a nerd if you think that was a coincidence. I feel insulted talking about literacy in a world where reading is forbidden. Say I was to post an encycrypted message here. Slasdot would chose to not publish it or remove it shortly after. Why would it be acceptable in any other context?

    Dont take it as off topic, if people are to learn to write then the least we can do is make it legal for them to read things.

  68. Programming as a liberal art by dkleinsc · · Score: 2

    I know, that sounds like a contradiction in terms, but one of my college profs made a good case for the concept.

    The value of learning programming for non-programmers is not "I have to get that *@$% computer to do what I want". It's "I have to learn how to break down a large problem into simpler smaller problems, until I know how to solve it." and "I have to recognize the adjustments and adaptations that humans naturally make when solving problems." And as a side effect, it also teaches the important lesson that some problems cannot be solved by convincing people around you to believe in nonsense.

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
    1. Re:Programming as a liberal art by Anonymous Coward · · Score: 0

      I really like your post.

      I'm a graduate student that's doing research in this field, and am on a project to help teach science to 5th/6th graders through programming and modelling. I have also been a TA for multiple introductory courses in CS and eventually plan to be a college level instructor.

      What academic proponents of teaching computing to a general audience focus on is not programming per say, but computational thinking/CT (to use the term coined by Jeannette Wing from CMU). We need to help students identify the processes that they use in their life and its parallel to the way computers follow instructions. It's about abstraction and representation, not tool use. For a simple example, think of the classic peanut butter and jelly instruction assignment.

      The TFA misses part of the point when he badmouths visual languages. Many of them have added a lot of knowledge to how we can teach literacy and CT without teaching programming. Most of them are SUPER easy to install (as easy as Excel and no license code to worry about) and many of them are also very much application based. Some of the big ones:
      * Alice: create stories/movies in a 3D environment.
      * Scratch: make sprite-based games or animations
      * PureData: make music/sound/visuals.

      As others have said, there are a lot of people out there that have very little concept of what makes a "file" or a "program" or even what their web browser is. Also, you have very little guarantee that they can handle traditional CS strictures of abstract thinking (we all think at very complex abstraction levels) and more importantly, have serviceable typing skills. This all leads to very high barriers of entry when it comes to using the computer as a tool for teaching and using CT. Good visual languages can simplify input, show users exactly where issues exist in their programs, show users what actions they can use where (e.g. can't put a loop in a conditional space), and help shape the thought process required. Last year I sat through 3 kids using a modified NetLogo and they all discovered looping when asked to draw a circle.

      This post is starting to get long...
      I'll just finish by saying that there are people working on this problem and our biggest enemy is prioritization of media consumption over thinking and production.

  69. Start with the command line by Anonymous Coward · · Score: 0

    http://lifehacker.com/5974087/i-raised-my-kids-on-the-command-lineand-they-love-it explains how to teach your kids about computers - no point-n-click. Take them through computer history by starting with DOS 3.x or Linux CLI.

    Complex interfaces are overwhelming when we are learning.

    Us "old guys" rememeber how great it was to learn the complexities of larger, more capable interfaces. We didn't get introduced them them on day 1. We started with a simple:

    A:\

    and we had to learn DIR, CD, B:. This happened slowly, over time.
    I remember getting a mouse! What a cool thing. It had 2 buttons and was over $100! It came with a TSR program that provided a menu ... of sorts. The menu would call existing DOS programs. Of course, I had to learn to make the text file that the menu read to determine which programs to list. It was bonehead simple, but it taught me something. Basically, that was the XML file of the day.

    Showing someone completely new to computers an XML file would probably scare them. Start small and build knowledge over time. Isn't that how learning happens?

  70. Use J or something like it by DavidHumus · · Score: 1

    1) Download J from jsoftware.com and install it.
    2) Open the interactive command line and start programming.
    3) Profit.

  71. Tool Builder Tool User by Anonymous Coward · · Score: 0

    There is a broad spectrum of knowledge and experience to be comprehended in this discussion. The terms that are being bandied about suffer from name space pollution and the topic itself is not well defined.

    What the heck does "Programming Literacy" even mean?

    Equating Programming Literacy to Language Literacy is Logical Lunacy(TM). I may be fully literate in one language and helpless in another. There may be, at the root, an interesting discussion to be had, but I don't think this topic is it.

    Food for thought. Until it is running on Silicone, the programming job is not complete. If you don't understand the machine, you don't understand programing. -Anon.

  72. He's right by hackertourist · · Score: 1

    I can see where this guy is coming from. I'm an electronics engineer, I've had a few programming courses in school but I haven't done much programming since.
    Over the past few years, I've made a couple of attempts to get started with some simple programming again. Tasks I came across that needed automating.

    So I did some digging, and found a language that seemed suitable: Python. Found some good tutorials, and soon I was on my way creating basic programs.
    Then I needed to run one of my programs on another machine, so I thought I'd create an executable. Turns out that's not possible with the standard IDE. There is a way, apparently (using a third-party package), but the documentation is so bad I haven't gotten it to work at all, even with a trivial sample program.
    Then I thought I'd add a GUI to my program. Again, not possible with the standard IDE, and to my horror I found that the GUI needed to be in another language. Hello! I don't have all day to figure this out, I've no inclination to learn two languages when one should do.
    Did I choose the wrong language? Maybe. But this is the sort of roadblock TFA talks about. I spent way too much time wrestling with the tooling; time I should have been able to spend on the actual program.

  73. Totally... by Anonymous Coward · · Score: 0

    I've been bitching about this for ages. So I can say, you probably won't convince anyone, but it isn't because you're not right.

    Microsoft QuickBASIC is a good example of how it should be done. You start the program and you're in a text editor. You can type code. You can place the cursor on any keyword and press F1 to reach the help page for it. It will do syntax checking on every line you type, as you type it, so you don't get too far into something before realizing the computer has no idea what you're trying to tell it. You can press F5 to run it. You can control-break at any time (except in DOSBOX where control-break doesn't work) and inspect variables. You can then continue the program where you stopped it. Pressing F2 brings up a list of all functions in the program, so you don't even have to use multiple files if you don't want to since each function ends up on its own page. Were it not for its lack of mouse/network/sound support, it'd probably be an ideal tool for beginners -- that is, if they didn't have to deal with trying to figure out how to set up and use DOSBOX first, and find the work-around for control-break not being implemented.

    Another major problem I see is that most languages just aren't all that capable for anything a beginner might want to do. People who are interested in learning to program probably don't have any experience with command lines or working with a lot of text files, and so the fact that you can't do much else with most languages without including a lot of libraries makes learning to program seem entirely pointless. After they learn to code "hello, world" they're going to ask "how do I create a pop-up window that says something" and "how do I create buttons people can click on" and "how do I create graphics and sound" and "how do I access things on the internet" and none of those things have easy answers in most languages. So after people have gone through the nightmare of figuring out how to use a bunch of command-line tools with worthless error messages, their reward is that they can write programs in a language that doesn't appear to be capable of doing anything interesting at all.

    Another issue is that programming languages themselves are too difficult for beginners. There are too many obscure symbols they've never had to type in their lives (except for smilies) which all now have very precise meaning. I'm reminded of my first programming experience, on a friend's TRS-80 Color Computer 2, where after we spent an hour typing in a game from the manual, I was like "hey, we could just change some of this stuff and make it do different things." The next day I was trying to write something from scratch, and repeatedly typed something like "10 PRINT (HELLO, WORLD)" only to be repeatedly told "SN ERROR" which left me confused for about 15 minutes as I tried to understand why it no longer liked the PRINT statements that I had typed into it countless times before. Having just learned programming the day before, the difference between "" and () hadn't yet registered in my mind. It wasn't that I didn't realize the computer would care about the difference, but that I just hadn't done this enough to realize I had used the wrong symbols. This is where languages like C and especially Perl suffer. There are so many symbols involved that are difficult to learn. Keywords are easy, as people have been using words all their lives, but all these symbols are just random junk that has to be there to most people. It's even worse when you consider that some of it is semicolons and curly brackets, which the compiler will pay attention to as it ignores your indentation and newlines, things which non-programmers are already quite skilled at paying attention to but which language designers feel the need to make every compiler ignore simply so that you can break that rare long line up into several lines, screw up your indentation whenever you like, and put multiple statements on a single line. You know, until you've done so enough that you realize it's generally always

  74. Selective logic by dcooper_db9 · · Score: 1

    The author is focusing on the obstacles that exist in certain tools, but those tools were designed for established programmers rather than students. The first comment on the linked article gave a list of appropriate learning platforms: Scratch, Alice, Greenfoot and AppInventor. I used MIT's Scratch to teach my then 8 year old niece the basics. By the end of the first afternoon she'd created a short animated and interactive movie that she was able to share with her family. In the process she learned about simple logic, loops and responding to events.

    --
    I do not block ads. I do block third party scripts.
  75. Programming games? by HeckRuler · · Score: 1

    No mention yet of programming games? Most of them are all self-contained, so you just have to run the program, type some things in, and hit run. C++ Robots on the other hand is simply a C API, so you get to use all the tools that real programmers use. (And all the joy that comes with that). These give a task to perform, maybe not a super-useful task, but it's at least a goal. Usually it's open-ended though, so there really isn't a sense of accomplishment. Most of them need better documentation. And most of them are old, so getting them running is a bit of a task.

    A nice list.
    AT-Robots What introduced me to programming.

    (Good to know Logo/turtle was mentioned prior)

  76. If only Linux was the popular OS... by RedHackTea · · Score: 1
    I know I'll get a flamebot -1 for this...

    Wiggins argues that there are two major gaps preventing programming tools from being accessible to beginners:

    For the below, I'll assume Fedora and that your user is added to the "wheel" group.

    1) they're too fussy, requiring extensive setup

    sudo yum install ant eclipse emacs geany java python ruby vim

    2) they're focused on the technology rather than everyday tasks. A good tool for learning programming, Wiggins argues, would emulate an Excel or Google Docs spreadsheet – beginners would be able to fire it up instantly, and would be able to get useful things done right away.

    I'll avoid emacs/vim since new...
    geany Test.java &
    Copy & paste example shit...
    javac Test.java
    java Test

    Even easier...
    irb
    "this string needs to be capitalized".upcase
    exit
    This is "useful" because they probably never figured out how to make Microsoft Word change their text to upper case.

    These beginners are lazy; they don't need easier tools. Help the people that do want to learn. If I want to learn how to carve statues, I buy a book, get tools, and try it.
    End of story.

    --
    The G
  77. Assembly languages? by meburke · · Score: 1

    To teach good programming, SIMPLIFY!

    80% of the programmers I've associated with in the last 10 years rely on "cut and paste" operations. They look up how to do a task (on the internet) cut the code, modify the code for their environment, and think they're done. The most common languages where I see this is .Net and PHP, but there are lots of other examples.

    Weinberg made a statement in one of his books that once a programming problem has been solved, it need never be solved again. (Just translated from one language implementation to another?) The idea of re-usable code and standard objects and patterns has led to code full of crap that nobody understands, yet they depend on it on a daily basis. (Some of the algorithms that Excel used for years were incorrect. For years competent programmers new that the floating point algorithms on 286, 386 and 486 math processors were not right, yet the everyday programmer would be ignorant of that fact.) The "reusable code", the "standard objects", the "libraries", the API's and almost everything else has made developers dependent on a multitude of code segments for which they have no understanding. Furthermore, the environment is so complex, that just finding the right code segment is enough to drive us crazy.

    So, if you want to teach people to develop systems, teach them how to find and use the tools, but if you want to teach them to be competent programmers, go back to basics; work from the machine level up to higher-level tools.

    A program is a set of instructions that work on data. Once you identify the data, it can be processed using only three methods; sequence, alternation and repetition. Teaching beginners how to transform data using these structures using logic gates and/or assembly language will build programming skills. Using decision tables, Warnier-Orr diagrams, or pseudocode to abstract the instructions from the language teaches them how to solve the problems, assembly language teaches them to implement the solution. After they can solve those problems, then they can build "objects" by writing code that contains it's own data.

    After assembly I would have them advance to C or Pascal, and after they learn imperative programming languages they should go to something like LISP and Haskell.

    Incidentally, sequence, alternation and repetition have thier own counterpart in Mathematical Logic, so, theoretically, it should be possible to prove the code correct (logically) and build correct code from provably correct components. And then, theoretically, it should be possible to generate provably correct programs from Hier level descriptions of the type of tasks that have to be performed on the data.

    You get to decide at which point a "beginner" is no longer a beginner.

    --
    "The mind works quicker than you think!"
  78. khan academy programming by entropiccanuck · · Score: 1

    I introduced computer programming in my geometry class this semester with Khan Academy. It's a great interface, with clear tutorials, minimal setup (an account helps, but it ties into our school's Google Education domain automatically) and instant feedback for both results and errors. Khan's programming interface is in javascript using processing.
    At the start of the unit I polled my students, and of the 63 I have in geometry, only 3 had prior exposure to programming. Those 3 had parents in tech and had done some science/engineering summer camp activities, and were looking into it on their own. I was a little surprised, because when I was a kid, my elementary school all got some programming exposure on Logo on C64s back in the 80s.

  79. It will never be about the learning tools by demo9orgon · · Score: 1

    Scratch.mit.edu Scratch isn't bad for learning all of the "primitives" necessary for anyone to learn programming. Like 90% of anything involving learning, it's mostly up to individuals--their motivations and their goals. And if you would like your kids to learn programming remove any/all computer games from the house except for "Scratch" and see what happens. From my experience Scratch can teach: Encapsulation, variable scoping, event-handling, boolean logic, and almost any concept someone would like to pursue ( science, math, physics, chemistry, and the basics of computer science too) if they're really interested in doing so. Scratch can also use real-world inputs via a Pico board (which contains a variety of analog-to-digital inputs) and that presents an incredible opportunity for a student to connect programming to physical inputs. For most programmers our interaction with A2D is keyboards, joysticks and mice. Scratch opens that up constructively by supporting something like the PICO boards. Most of the time it's not the unsuitability of programs we want people to learn with--we have amazing operating systems and computer hardware to support anything. There are things out there like Scratch, (ALICE for example) which offer different things. I would say the real barrier to people learning programming (or anything) is people-based. Whether that is a lack of inspiring teachers, or students distracted by very polished software or overly complex "learning environments", or someone realizing that they will never, ever be able to remake their favorite video game so they don't bother learning how to program; ultimately it's up to people to learn how to learn and to motivate themselves. I say this as a parent who provided their kids with video games along with every possible opportunity to learn anything (programming/administration/development with any and all available programming languages and environments). If you want someone to learn programming you will need to sabotage every other digital joymaker and provide them with an opportunity to entertain themselves by making things digitally. It's no different than leaving a crying baby in the crib with a bunch of toys instead of rushing in to pick them up--they will either learn to entertain themselves or cry themselves to sleep until they learn.

    --
    Every new form of media has it's own Requirimento
  80. List of relevant tools by Anonymous Coward · · Score: 0

    Programming is definitely becoming easier and sexier in my opinion. There are a lot of new tools coming out:

    http://scriptk.it/
    http://moonbase.com/
    With Ketai for Processing you can get apps running on our android tablet ridiculously easy.

    Not to mention the tools Bret Victor has been building:
    http://vimeo.com/36579366

    There is only one thing without a learning curve: nipples. Most other things, including Excel, are learnt, even if we don't realize to what extent.

  81. He misses the pojnt of visual by geekoid · · Score: 1

    programming tools.
    The are a way to present commonly done routine things, not logic to the core need of the application.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  82. Sounds like he wants Forms/3 by the+stapler · · Score: 1

    http://web.engr.oregonstate.edu/~burnett/Forms3/forms3.html I went to OSU and Dr. Burnett was one of my professors. It was great and easy to understand. There ya go, problem solved. :)

  83. Adam Wiggins? by sbditto85 · · Score: 1

    Perhaps a close relative to Ender?

  84. Fair enough: It IS relative & ur "older school by Anonymous Coward · · Score: 0

    Fair enough - since it IS relative as you say as to 'long'/'short' etc.

    I did all the PIC (X) stuff too, for formatting outputs & did use DISPLAY iirc.

    * I just HAD to comment on the size of the 2 divisions I noted is all - they 'bulked it up' & sometimes, I feel needlessly (especially in a "Hello World" type case as you mentioned, the 'classic').

    They took up a lot of space (good for documentations though).

    Nice to meet an "old schooler"!

    (One that's older-school than I am even, since you're talking punched cards... that's JUST in front of "me & mine" actually, the interactive display had already JUST come into play for me in 1982, when I learned BASIC on timesharing terminals (phone hookups & bootjacks like in the film "War Games") on DEC PDP-11's my school rented time from in highschool!

    * Lastly - Per my subject-line above: You're "older school" than I am (& around here? We're "ancient", lol...).

    One thing I admired MOST about folks that programmed on REALLY old stuff like Burroughs equipment? You had to SQUEEZE EVERY LAST DROP OUT & fit code into MINISCULE SPACES by today's (& for decades) standards... couldn't have been easy!

    (I never went thru that - most I struggled with was performance, & I'd use inline asm for that - lol, by often cheating & using CPU watch Windows to get CLOSE to the code I needed... lol!)

    APK

    P.S.=> I took both the 77 std. & the 85 std. (iirc) later (first on VMS with 77, & then on AS/400's by IBM for 85)... I honestly didn't SEE much difference (in academia)...

    ... apk

  85. Linux ftw by Dynetrekk · · Score: 1

    ...again. Or, heck, Mac OS X for that matter. Give people the command line - it's the most powerful programming environment out there. Teach people simple automation tasks that will save you lotsa time later - change file names of all your holiday photos, convert movies with ffmpeg, copy files over the network, whatever. Simple conditionals, loops, and variables come along for the ride. It's right there when you open your mac/linux box and it's super useful right out of the box. When people see the amazing power of shell script automation, the route to programming should be short enough...

    1. Re:Linux ftw by chrismcb · · Score: 1

      Someone writes an article claiming our tools are lacking, and your first impression is to give them something complicated?
      I'm not sure why you are singling out Linux or MacOs, but CLIs have been around for a long time... and they are DIFFICULT to use, its why not many people use them. Is it powerful? Sure. But that doesn't mean it is easy. And that was the point of the article. simplicity.

  86. spec was not saying independent marking ... by Hognoxious · · Score: 1

    I'll bet you $10,000 that you can't take a part-time position at a community college, teach one section of basic programming (less than 50 hours of instruction), and get everyone to pass a test in it.

    I bet you ten million I could.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  87. No, it is not out of reach by firewood · · Score: 2

    Programming at a professional competancy might be out of reach. But programming badly isn't that hard. As in:

    10 print "my sister is ugly" : goto 10

    Back in the days of the TRS-80, Commodore Pet, Apple II and BBC personal computers (et.al.), millions of kids could turn on their personal computer and start typing in Basic right away, usually using stuff copied off of a magazine article... at first. But then they could modify their programs and crash them in a million different ways. That caused learning, and very likely ending up producing a generation of people with much higher basic computer literacy than in the general population than today (not including professional techies).

    Don't confuse a professional level of understanding with computer literacy. No one confuses the kid who could (back in the day) (mis)use their chemistry sets to blow things up in their backyard and singe their eyebrows off, with National Medal of Technology prize winners. (Or could you?).

  88. Designed for kids, easy enough for parents by prof_braino · · Score: 1

    Here's something designed for kids. It supposed to be easy enough so parents can figure it out. Don't know how close it comes. http://code.google.com/p/propforth/ multicore micro controllers for robots (embedded systems) using FORTH on the parallax propeller

  89. Re:STOIC Platform by not+flu · · Score: 1

    You'll stop saying that the instant you get a Retina-style high-res display. I expect those to be everywhere in a year.

  90. Programming your Dog by romons · · Score: 1

    Most people can program a dog to do their business outside. Some people can program dogs to do complex tasks like herd sheep. It doesn't take special tools. It only takes patience and a bit of knowledge.

    The problem with programming computers is that they are far too general. There are TOO MANY things you can do with C++ and a linux box. Dogs, on the other hand, have a fairly simple user interface, respond to voice commands, and only do certain things (which they do amazingly well).

    So, I submit that the problem isn't making tools to enable people to be smarter about programming computers. It is making computers dumb enough and specific enough so they are like dogs. A particular species of computer should do one or two things, have a simple interface, and do the things it does very well. It should be obvious what can and can't be done with it. It should be able to learn from you, mistakes and all, and average over all the attempts to teach it. Once we have systems like that, then almost anybody will be able to 'program' their computers.

    --
    Go to Heaven for the climate, Hell for the company -- Mark Twain