Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

Let Joe Average Help You Code

Posted by Zonk on Tue Feb 28, 2006 03:10 PM
from the that's-a-lot-of-monkeys-and-a-lot-of-typewriters dept.
ploose writes "Apache co-founder and CollabNet CTO Brian Behlendorf says that programming should be opened out to non-developers. Bring them into a development community with proper feedback forums and bad code will get flamed anyway, so it doesn't matter what they write. From the interview: 'Mashups are really Excel macros 2.0 - with the rise of Web services, the more vehicles that are out there that expose data through programmable APIs, with Office 12.0 and Firefox with AJAX, the more people you'll see create applications. The line between hardcore developers and the average Joe will start to get very fuzzy.'"
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • Welcome to 1982 (Score:5, Interesting)

    by AKAImBatman (238306) * <akaimbatman.gmail@com> on Tuesday February 28 2006, @03:12PM (#14820025) Homepage Journal
    Anyone remember back when every PC owner was expected to know at least a little BASIC? Back then computers were used for custom programs just about as much as they were used for shrink-wrapped applications. And if you didn't have the skills to write your processing program in BASIC, you could always hire someone to do it quickly and cheaply. (Program requirements weren't exactly high back then, so finishing a program in a day or two was quite common.) The question is, what happened to those days?

    I suppose part of it was that shrink wrapped software got better. Where as you originally might have had trouble finding the software you needed, today you can get software for just about anything! The other part of the problem was that programming became far more complex of a task. Instead of just taking data in and spitting out a report, it now has to provide a cool GOOEY interface (MMmmm... chocolate), and real-time interactivity. These types of features are not so easily grasped by the average person, and require training to master. Thus programming has been squarly placed in the hands of experts.

    If Brian Behlendorf wants non-developers to write code, he's better have another BASIC up his sleeve. (AJAX BASIC? Hmmm... I might have code like that lying around...) Because I don't think I could possibly take another round of Fourth Generation Languages [wikipedia.org].

    P.S. Excel VBA was a lousy attempt at getting non-coders to program. Don't do that to us again. Please. Make it truly home and SOHO focused like BASIC was.
    • Exactly, as first I was thinking, well MS Access is a good example of a very user friendly IDE where just about anyone can create a reasonable front end for a simple database. But then I remembered that I've tried to show several non programmers how to make a simple form or even a query, and most just don't get it.
    • Man, I would kill to get a simlple BASIC interpreter that has I/O functions that could handle NTFS. I deal with lots of data sometimes, and I don't want to write a VBasic program with a GUI so that I can run the program, then click a button to execute the code. Command line works fine for me, but I want it to be simple and fast to code. No, I don't want to fuss with declarations most of the time, and no, I dont' have time to learn a whole new langauge and mess with a compiler. I just want to write (essenti
      • I don't think I'd ever worry about speed now - I learned to count on 700ops/sec (550/sec on the PC), and that was fast enough for my needs in 1982.

        Remember when we used to insert pauses or slow down programs with a loop like this:

        10 FOR I = 1 to 10000 STEP 1
        20 NEXT I

        For really fast computers:

        10 FOR I = 1 to 10000 STEP 1
        20 LET TEMP = SQR(5000)
        30 NEXT I

        These days we'd hang any programmer we found pulling that stunt. ;-)

      • what about vbscript? vbscript is pretty straightforward and can do those things..
      • I dont' have time to learn a whole new langauge and mess with a compiler. I just want to write (essentially) a script and have it run. Why does everything have to be so @$%%ing complicated.

        It's only complicated because you seem to insist on using a language which fell out of general favor about 20 years ago.

        I think something like Python would meet your needs quite nicely. The drawback is, you'll have to learn its syntax. It's honestly not that big a drawback, if you already understand basic principles of
      • Perl or python will work just fine as a basic replacement for those types of projects. If you don't like Python or Perl you also have Ruby and PHP to choose from. Under Linux I believe there is even a handy dandy version of basic that works just fine.
        Yes you would have to learn a new language but that isn't all that hard. Once you learn one language learning a new one is pretty simple. Depending on how long it was since you used basic last it might not be much harder to learn Python than to remember Basic.

        I

    • I thought that was already the idea behind OSS, GNU, sourceforge, etc.

      Its open source, anybody can help, its just that much of the code of interest already has a group of developers and the codebase is so large and many times the bugs are so numerous, that even a decent coder is uninterested in fixing them.

      But, in theory Joe Average is welcome already...

  • Many of the eager and excited hacks are by beginners, I think (^_^)

    I'm still a beginner in python and I always intend to be a beginner
    in one subject or the other. Maybe someday I'll be a beginner in the
    apache project.

    But alas, if he wants to collect patches from my mom, he better get ready
    for a logic bomb.
  • by bratboy (649043) on Tuesday February 28 2006, @03:17PM (#14820086) Homepage
    This is a fantastic way to achieve negative productivity. I know, let's put a thousand monkeys in a room with a thousand IDEs - that ought to get us some code! Most non-programmers are simply not trained to think in a rigorous way. Hell, most programmers aren't trained to think rigorously. That's why it's so hard to find good ones.
    • Doesn't anyone respect the field of software engineering? I would like to see a bunch of dummies come in off the street and put chemical processing equipment together.
      • Maybe the idea is that some parts of coding in a project don't need the super-brains of software engineers. Just like putting together chemical processing equipment.

        I would imagine that most of the physical labor of building a chemical processing facility is probably done by people who are not chemical engineers. The guy who welds a pipe to a vat does not have to be a ChemE - he just has to know how to weld to the standard specified by the project definition. (in fact, I wonder how many ChemEs COULD do a
    • Whassa matter? All you "citizen journalists" who relish tearing down the walls between 'old' and 'new' media, 'fan' and non-copyright-infringement fiction, and who enjoy 'empowering' 'musicians' and 'artists' with [your] software get kinda touchy when the job security seachange is on the other foot, eh?

      "Art" is easy, of course, if you have the right software. But programming is "rigorous" and non-programmers need not apply. But... but... wait! I thought "code is poetry?"

      This is all quite amusing; thanks
  • In the Web 2.0 world, it's appropriate of course for Johnny not only to program, but to do it collaboratively, too.

    ...none of us is as dumb as all of us!

    Joe or Josie Average can barely walk and talk on a mobile phone at the same time. If you want to make toys for them to play with and create "neato thingys" great, but keep them out of programming before it dilutes the talent pool even more. I can just see these "average" programmers being duped into creating the next generation of malware.

  • by MobyDisk (75490) on Tuesday February 28 2006, @03:19PM (#14820108) Homepage
    The article links to another article, Why Johnny can't program [bricklin.com], which is really good. That article has a good concept: That what we call "programming" is actually a hierarchy with shades of gray. C++ is programming. But is writing an Excel macro programming? How about programming a VCR? What if I write requirements and then code-gen a class hierarchy or a database schema? Programming is more than just writing code.

    But the ZDNet article has the highest hype per paragraph ratio of anything I've read for a while. Web 2.0? Is that the buzzword replace Internet2? "Programming collaboratively?" And of course, AJAX & web services will make everyone a programmer. Some editor just linked a bunch of articles on similar subjects, threw in enough buzzwords, and jumped to a conclusion. Yes, everyone is now a programmer. "Sure grandma, I can set the clock on your microwave for you. I'll be right over."

    • But the ZDNet article has the highest hype per paragraph ratio of anything I've read for a while. Web 2.0? Is that the buzzword replace Internet2?

      The Internet2 [internet2.edu] is a real network. Perhaps you're thinking of DHTML?
    • But is writing an Excel macro programming?

      It depends. Simply recording a set of steps and attaching that to a button hardly counts as programming.

      But, I, for example, created an Excel "macro" that spawns a Powerpoint application/presentation, copies in a template slide, then changes some text on the slide. It then populates the slide with a bunch of squares made up of 2 triangles, where this is a main number in the square (representing "current value"), and each triangle of the square is colored red, yell
  • Just out of curiosity...any developers want to comment on the efficiency of the proposed method? I mean...wouldn't that eat up a LOT of time to sort through the code and see what is useable and what isn't? And in that timeframe...wouldn't it have been quicker just to have the developer write the code himself?

  • Already fuzzy (Score:3, Interesting)

    by XMilkProject (935232) on Tuesday February 28 2006, @03:20PM (#14820117) Homepage
    Most of the developers I work with in contracting positions know less than the average Joe, even an excel macro would be stretching their abilities. Yet they all have Senior Programmer II titles or some such thing.

    It started with VB, and will continue... More and more of these non-programmers start thinking they are developers, and getting hired into positions they don't belong in.... and America's corporations are paying for it in cold hard cash and wasted time.

    Hopefully there will be a new paradigm in developer evaluation sometime in the near future, so that there will be a clear metric to determine a persons ability, and thus hire-ability.
  • ...it is with 'joe average' using only the tool he knows. For example, companies that use spreadsheets where they should be using databases. Heck, using spreadsheets with macros for 'code' even. You want joe average involved? Make him work with a DBA for the storage, but let him work on the 'interface' to that data using whatever tools he is comfortable with. That would be great because mr. average is definitely the expert in making an interface that makes his own job more efficient, but having the rig
  • by LetterRip (30937) on Tuesday February 28 2006, @03:21PM (#14820134)
    [QUOTE]The line between hardcore developers and the average Joe will start to get very fuzzy[/QUOTE]

    Not really - the hardore devs will be far more productive and be able to implement complex programs requiring algorithmic insight, the joes will be able to to implement stuff that requires simple logic and interfaces. Of course there will be lots of useful stuff that a joe could do, it just won't be the same kinds of stuff that the hardcore dev will be doing.

    LetterRip
  • So, with 1000 open source programmes working at 1000 dummy stations, they should be able to produce Duke Nukem 3D?
  • I'm sure we all remember the Simpsons episode where his brother thinks that an "average guy" can design a better car then the "eggheads" he has working for him?

    I don't expect the results from this venture to be as good as that.

    Nuff said,

    =tkk
  • Fantasy. (Score:3, Funny)

    by torokun (148213) on Tuesday February 28 2006, @03:23PM (#14820157) Homepage
    99% of users don't even want to open the help. This guy's smoking some collaborative utopia crack.
  • by cdrguru (88047) on Tuesday February 28 2006, @03:25PM (#14820193) Homepage
    It is announced that the role of the "programmer" has ended. Either the new stuff is just so simple that anyone can do it without any training at all, or the machine will program itself as it learns what you want to do.

    This has been going on since the beginning of 4th generation langauges, which came about in the late 1970's. There were actually some reasonable achievements which have been utterly lost now. But nothing that would replace programming completely.

    While there is lots of benefits to including users into a project to make sure it remains useful and usable, this doesn't mean trying to help non-programmers join in the programming effort. It isn't the programming training they lack, it is the programming orientation towards thinking about the problem they lack.
    • I seem to remember in the early hype about OOP that OOP would end the role of the programmer. OOP was supposed to lead to a utopia where the end user would be grabbing and assembling objects to customize their environment and that the distinction between programmer and Joe Public would blur.

      It seems to me that the actual effect of OOP was to raise the bar. Joe Public seemed to have a much better inuitive idea of procedural programs.

      BTW, I've always seen the distinction between programmer and public as b
      • I seem to remember in the early hype about OOP that OOP would end the role of the programmer. OOP was supposed to lead to a utopia where the end user would be grabbing and assembling objects to customize their environment and that the distinction between programmer and Joe Public would blur.

        No, that was 4GL. OOP was supposed to make programming more structured, easier to manage, and quicker to code. While many programmers will swear up and down that it has achieved these goals, researchers were never able t
  • The line between hardcore developers and the average Joe will start to get very fuzzy.'"

    No, it most certainly will not get fuzzy.

    Billy G has tried for years to get the average office worker capable of making their own macros, then blobs of VB script, now inline .NET snippets - Much to the dismay of those of us who need to make everything magically better when an "average Joe" actually tries using some of these features and blows away the entire 2005 regional accounts receivable ledger.

    Like it or not,
  • Anyone who has done serious development knows that this is nonsense. Large software projects depend critically on skilled developers to provide a sound overall design - you can't just throw more people at the problem. The book "The mythical man month" argues this point quite convincingly.
  • by PIPBoy3000 (619296) on Tuesday February 28 2006, @03:27PM (#14820218)
    Our organization currently has a headache when non-developers make an Access database, get their department relying on it, and then leaving the organization. When things break, the developers get sucked into having to maintain this monstrosity.

    We're trying hard to disavow them completely, but it's hard to say no when the customer insists its part of a vital healthcare function. For those, we've sometimes rewritten them using a real SQL back-end, web browser client, and code we can support and maintain.

    Making tools to let non-developers do things isn't necessarily bad, it's just that there has to be clear expectations as to support. Writing web applications isn't the same as typing up a Word document or making an Excel spreadsheet with a couple macros. It's easy for non-developers to quickly get in over their heads.
    • I've dealt a lot with this sort of circumstance. The best approach is to begin implementing a facade pattern, function by function, until the whole amorphous mess is inside it. At this point, some stuff is pointed at Sql, some is pointed at Access, or what have you.

      Next, you get everything pointed at Sql. Once that is done, take some time and get unit tests around the functions; this will help you in the next step. Document the functions while you write the tests. Finally, break the facade back into multi
  • Maybe we should let Joe Average try his hand at other things, too, like air traffic control or surgery. Hell, we already let him pretend to be president.

  • There is no fuzzy line between programmers and people that can put together some basic Excel macros. Or more specifically, there's no fuzzy line between Application developers and people that can write macros. Writing a macro, for a real programmer, is trivial. Writing an application, for someone who only knows how to write excel macros, on the other hand, is an impossible feat, for the most part.

    Application development isn't just understanding some basic logic and a few commands. It involves understanding
  • There's a HUGE community of visual basic developers. All they do is pass around their ignorance. The community doesn't weed out the weak when the whole community is filled with the weak. I should know. I was a member of that VB community for 10 years. In my spare time I learned much more and moved on. But I'm not going back and helping out that poor community. The best learn more and move on. Darwin doesn't apply.
  • I can put on a bandaid and apply antibiotic ointment, but I don't claim I'm a doctor. I know what hearsay is, but don't claim I'm a lawyer. I framed my basement over the last few weeks, but I won't be building houses any time soon.
  • The line between hardcore developers and the average Joe will start to get very fuzzy.
    And thanks to Mathematica, the line between mathematicians and the average Joe is starting to get very fuzzy.
  • I say the coding by the common man wouln't be any worse then engineers codeing. Wich in my opinion is only worse then my spelling and grammer. ...
    DUCK
  • Although there will always be a need (or at least a desire for easy top level tools that user-persons can control, edit, and use), I don't think critical systems should have engineering input from inexperienced individuals of any job function. These individuals should spend their time better defining and documenting what they need to be done for them, not how something should be done.

    It seems to be a cyclical thing - where some particular language/technology/idea is going to revolutionize business process
  • I know an accountant. This guy is not a programmer by any manner or means.

    Yet his spreadhseet are filled to bursting with simple summation formulae, and more advanced results. He even has a few if statements sprinkled in for good measure. He also records macros, carefully and with thought applied.

    He also codes a lot in Access databases, regularly dipping in and out of the raw SQL. On occassion, he will even dip out to the command line, to what he refers to as "DOS".

    After several years, he tried to get into
  • programming should be opened out to non-developers.

    Isn't that what PERL is all about?

    /me ducks.

  • Joe Average can suggest ideas for a program, but there's no way in hell that I'm letting him work on it himself. I have a hard enough time helping those who are supposed to be CS/CE majors understand basic Java programming at my college.

    Even at my internship I see terrible programmers, I'm updating a simple calendar program used internally. The code is done so horribly, with super redundancies and back assward logic, that I'm not sure how it got put into production in the first place. I've wound up just rew
  • I think the idea is NOT to make so-called "average joes" into programmers like today's programmers by giving them a copy of intelli-j or whatever.

    The thing to do is to have really good tools that allow domain experts to "program" for their needs, and thus take out the middle man-- you, the grumpy "rigorously-thinking" programmer.

    Honestly, I can't believe the arrogance of some of the comments I read on here. Some of you asshats think you are god's gift of logic to the world.

  • line between hardcore developers and the average Joe will start to get very fuzzy.

    no, its still there. plain and clear. hardcore programmers write the API, and the script kiddies still write lame little "hacking" utils that really dont do much of anything useful.
  • by br00tus (528477) on Tuesday February 28 2006, @04:51PM (#14821211)
    I have worked at Fortune 100 IT departments before, and it's obvious that the dream of the senior managers is to see if they can dumb down everything to where anyone off the street could do the job just as easily as they could carry boxes or push a mop. They have been trying to do this for a long time, and for the most part it does not work. There are some tasks which are simple and repetitive that can be pushed down to a lower level, and that would be the realm being talked of - mashing, macros and all of that. But most work you need someone who knows what they're doing. It is easy to write 200 lines of spaghetti code that perform an application, but once you get to 2000 lines, never mind 20,000 lines, you need to know what you are doing. You need, at the very least, the kind of programming practices mentioned in Code Complete.

    Behlendorf is a smart guy, and who knows what spin the reporter put on his comments. I'm sure Behlendorf is happy to see mashups and people getting into programming with a more simple programming language then, say, assembly. But this concept in the mind of a pointy-headed boss can lead to unpleasantness. I worked as a sysadmin once in a level 2 environment where they were trying to or thought they had made an idiot-proof wrapper around everything for us, but the idiot-proof wrapper itself had problems, so we not only had to deal with broken systems, but with the broken idiot-proofing they had tried to wrap around the systems.

    SQL was designed originally so that even non-technical managers could use it. I have worked with SQL for many years, and still have to look for examples on Google whenever I need to do a LEFT JOIN or something like that. The concept of "anyone can program" can be dangerous in the wrong hands.

  • by Kjella (173770) on Wednesday March 01 2006, @06:47AM (#14825380) Homepage
    What I would really like is another layer That would take fuzzy specs, let me take an example quote:

    "Give the salesmen the opportunity to plan their visits and handling of their district/area of responsibility."

    To beat that into a real detailed spec of WHICH inputs should the salesmen give, WHAT views should they see and HOW they should be able to plan. I don't mean as actual code, but I mean down to the level of layout, fields, options, formats, formulas, filtering options (browsing, drop-down, freetext, radio-buttons, checkboxes), default filters, grouping, flags, stoplights, escalation, reports and so on.

    Project managers don't seem up to that job, a lot of that is minute detail and not really manager-level anyway. But if someone could do that job and give me a proper spec, the actual coding would go a lot quicker. In my experience half the time is either spent a) beating it out of the customer or b) the customer coming back saying "that's not how we want it to work".

    That should be exactly what these types of programmers are good for - they understand basic UI concepts but don't know how to build a proper back-end. If they could work that out in detail (if you have some good UI tools perhaps design the UI itself, but not one line of code), then you'd free up lots of programmer time that actually know how to program.
    • #1. Either someone re-writes your code for you (unlikely)
      or
      #2. Every time you make a mistake ("mistake" being defined as doing it a different way than the person flaming you), you'd be informed of your ignorance via insults and told to RTFM.

      WTF? That sounds more like a reality TV show than writing code. Only a masochist would spend time learning code that way (and being "taught" by sadists and people with ego issues).
    • Some evil voice inside me says that if you increase the number
      of monkeys, random code generation still won't scale,
      the number of possible codes increases exponentially with
      code length.


      That evll voice wouldn't be named Gene Ahmdal [vub.ac.be] would it?

      (Yes, yes, I know. Ahmdal's law was about computer programs. But you have to admit that it applies this situation amazingly well.)