Slashdot Mirror


Let Joe Average Help You Code

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.'"

319 comments

  1. Welcome to 1982 by AKAImBatman · · Score: 4, Interesting

    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.

    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.

    1. Re:Welcome to 1982 by LuisAnaya · · Score: 1
      I couldn't said it better myself. We already went through this before in many incatations:
      1. AmigaVision: Programming with boxes.
      2. HyperCard: Programming with cards.
      3. Basic (gw basic, Atari 2600 basic, ad nauseum basic, VBA)
      4. Other scripting high level languages (Gambas comes to mind) for application
      5. LOGO - Move thy turtle
      There are already other implementations of "easy programming" like Flowdesigner and the box programming for the Scribblerbot.

      Bottom line. If you're a non programmer, there are ways to "create" code nowadays. But the truth of the matter is that, people without technical inclinations, they're happy of not writing code and complaint when the dumb computer does not do what they told it to do.

      --
      Vi havas e-poston.
    2. Re:Welcome to 1982 by MindStalker · · Score: 1

      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.

    3. Re:Welcome to 1982 by Overzeetop · · Score: 1

      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 (essentially) a script and have it run. Why does everything have to be so @$%%ing complicated.

      Yes, I grew up on apple basic, and even used qbasic until the mid-90s to do simple data sorting and transformations. Slow? maybe, but an extra minute of runtime on a script I might run twice a week never seemed to add up to a good reason to kill several days learning to program in C, or pull my hair out trying to get quick output in FORTRAN. 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. I suspect that a 2.8GHz processor can go a smidge faster than my old 6502, and that should keep up with my current datasets. ;-)

      --
      Is it just my observation, or are there way too many stupid people in the world?
    4. Re:Welcome to 1982 by AKAImBatman · · Score: 1
      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. ;-)
    5. Re:Welcome to 1982 by JeffSh · · Score: 1

      what about vbscript? vbscript is pretty straightforward and can do those things..

    6. Re:Welcome to 1982 by Musc · · Score: 1

      How about something like python or perl?
      Load up the python interpreter, type in a couple lines of code, and away you go!

      --
      Hamsters are at least as feathery as penguins. HamLix
    7. Re:Welcome to 1982 by hackstraw · · Score: 2, Insightful


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

    8. Re:Welcome to 1982 by dotgain · · Score: 1

      *choke* *ghack*

    9. Re:Welcome to 1982 by Anonymous Coward · · Score: 0

      That's why Python was invented! Easy to learn. Easy to code. No declarations. Subroutines are denoted by whitespace (which you insert anyway.) Easy to read six months later. The perfect average mensch programming language.

    10. Re:Welcome to 1982 by LuisAnaya · · Score: 1
      I think these are all fairly easy to learn and might fit your needs. My personal preferences are:
      1. Python
      2. Gawk
      3. Rexx
      4. Lua
      Some people might suggest some other languages, but I think that these scripting languages are straight forward enough to learn and use by "Joe Average"

      As always YMMV.

      --
      Vi havas e-poston.
    11. Re:Welcome to 1982 by poot_rootbeer · · Score: 1

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

    12. Re:Welcome to 1982 by Anonymous Coward · · Score: 0

      "Anyone remember back when every PC owner was expected to know at least a little BASIC?"

      Not in my universe. How is it in yours?

    13. Re:Welcome to 1982 by LWATCDR · · Score: 1

      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.

      If you must have good old basic this might work for you. https://sourceforge.net/project/showfiles.php?grou p_id=49546

      I found more links to basic stuff here http://www.thefreecountry.com/compilers/basic.shtm l

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    14. Re:Welcome to 1982 by ciole · · Score: 1

      If Brian Behlendorf wants non-developers to write code, he's better have another BASIC up his sleeve.

      Couldn't Lisp be the answer? For simple spreadsheet expressions the syntax would be at least as simple and easy-to-learn as Excel macros.

    15. Re:Welcome to 1982 by kyofunikushimi · · Score: 1

      Hmmm, yes. And FrontPage comes to mind.

      *sigh*

      --
      oo
    16. Re:Welcome to 1982 by JFrizzle · · Score: 1

      Winbatch would EASILY handle exactly what you are looking for. http://www.winbatch.com/

    17. Re:Welcome to 1982 by Overzeetop · · Score: 1

      Depending on how long it was since you used basic last it might not be much harder to learn Python than to remember Basic.

      That's very true. I just went over to the Python page and it look slike what I need. See, make a foolish state ment on /., and the masses will quickly point you to the answer! I suspect that most versions of BASIC that are out there and useful now would have syntax different enough from what I learned 25 years ago that it would be just as easy to learn the new syntax and command strucutre of a more modern language. The first few manual pages of Python look very promising.

      Any good books you would recommend for reference? Commands, syntax, and examples are key - starting at "hello world" and learning the concept behind the bubble sort (no I am dating myself) isn't going to help me much. Also, since most of my "study" time is compressed into the last hous of the evening before I go to sleep, so online/digital sources lose out to dead trees for me.

      TIA

      --
      Is it just my observation, or are there way too many stupid people in the world?
    18. Re:Welcome to 1982 by SkipRosebaugh · · Score: 1

      I would recommend How to Think Like a Computer Scientist: Learning with Python.

      It's a textbook that until last year was used for the Intro to Comp Sci class at my university. They switched to a different textbook because this one didn't come with enough prewritten homework assignments for them, but I'm sure it'll be perfectly fine for you. You can probably skip Chapter 1, it's mostly terminology.

    19. Re:Welcome to 1982 by robgamble · · Score: 1

      Since you said you like Basic:

      http://www.freebasic.net/

      Think QuickBasic with true Win32 binaries. The binaries are super small and super fast. Oh, and it runs on Linux too, if you are into that.

      --
      No sig for you!
    20. Re:Welcome to 1982 by Jason+Earl · · Score: 1

      If you have some prior programming experience the Python Tutorial included with Python is pretty good. There is also Dive Into Python and How to Think Like A Computer Scientist: Learning With Python available on the web and in print. In fact the Dive Into Python site has a whole list of freely available books about Python. For whatever reason Python seems to have attracted more than its share of Free documentation.

      Once you understand the basic syntax the Python Library that is available with Python generally does a good job of covering the various parts of the built-in Python library. I refer to the Python Library all the time. The info version makes it easy to use as part of Emacs :).

      One of the things that are you are likely to find about Python is that studying it away from the computer is likely to be less effective than learning at the computer. Python is highly dynamic, and it is often useful to type code snippets into the command interpreter to see what happens.

      It's also important to note that you are aren't likely to rewrite the bubble sort in Python. Python's high level structures mean that someone else has already done this for you :).

      Good luck.

    21. Re:Welcome to 1982 by pthisis · · Score: 1

      (Program requirements weren't exactly high back then, so finishing a program in a day or two was quite common.)

      I'd phrase that as "programming tools were miserable back then, so taking as long as a day or two for simple processing programs was common".

      A day is a ton of programming time with (vaguely) modern languages and libraries. Really a lot of the "advanced document processing" that people need is one-liners in awk, and much of the more sophisticated stuff (that might need to operate on CSV and do DB-style joins, etc) is 5 minutes of Python code.

      A couple days is forever for the simple data in, data out processing programs you're talking about. It's long enough to build some semi-sophisticated GUI projects with today's dev environments. Heck, it took me about 14 hours to write my window manager (mostly in Python, though much of the time was embedded C dealing with stupid low-level ICCCM details and integrating the raw X Event queue with the gtk event loop). And it's not like I'm the world's fastest programmer or anything, a lot of smart people have made it far easier to write code these days.

      Relating back to the initial subject, Python is sort of the hallmark for this, one of the main initial python thrusts was the "Computer programming for everyone" project. The idea is that with very high-level easy-to-use languages, you can dramatically increase the useful developer base (and enable people to write some of their own code without having to come running to the learned wizards for help).

      --
      rage, rage against the dying of the light
    22. Re:Welcome to 1982 by pushf+popf · · Score: 0

      It will never happen. The average user has absolutely no clue about the underpinnings of the digital universe, and at this point, it's way too complex to hide.

      As a professional developer, I need in-depth knowlege of at least a eleven (off the top of my head) different technologies and languages just to crank out a small app for a medium sized business.

      For example, a small web-based app would require knowlege of:

      HTML
      CSS
      Javascript
      Browser Incompatibilities
      Database Connectivity
      The Database Schema
      SQL for the DB Flavor of the Day
      Network Authentication
      DB Authentication
      Web Server Security and Configuration
      ASP/JSP

      Although end users have been cranking out apps since computers have existed, they've also been painting themselves into corners for that long.

      Making software design "easy" just gives the users better tools to eaily write the wrong software that doesn't do what they want.

    23. Re:Welcome to 1982 by Evil+Pete · · Score: 1

      Program requirements weren't exactly high back then, so finishing a program in a day or two was quite common.

      Yeah I remember. Many of the programs were relatively simple, the kind of things we today would do in Python. But the major factor that complicated coding was the GUI and event based programming (they go together). No GUI back then, if you programmed something and you actually had visual fields etc you thought you were so cutting edge. Programming was challenge / response with no looking for events etc. People entering programming today shouldn't start with anything GUI. If they succeed with something in VB they get a false idea of the complexities and think: I wrote a GUI app in a day why can't those programmers write a new enterprise app in a month?

      --
      Bitter and proud of it.
    24. Re:Welcome to 1982 by pthisis · · Score: 1
      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 (essentially) a script and have it run. Why does everything have to be so @$%%ing complicated.

      Sounds like you want Python. Very simple language for beginners to use, interpreted so no compilation step, and yet very powerful so you can grow into full-blown software engineering in it if you want. But if not, it gets out of your way and lets you easily express what's in your mind. e.g. a minimal full program showing how to read a file, loop, do conditionals, and print:
      for line in file("myfile.txt"):
          if line.startswith("Mr."):
              line = line + " male"
          else:
              line = line + " female"
          print line
      Or code to run through a list:
      mylist = [ "apples", "oranges", "bananas" ]
      for line in mylist:
          print line + " is a fruit starting with the letter " + line[0]
      Really it's an ideal language for simple scripting because it is so easy to get right--and I don't consider anything a good language for simple scripting unless it also scales gracefully to large projects, which Python does.
      --
      rage, rage against the dying of the light
    25. Re:Welcome to 1982 by AKAImBatman · · Score: 1

      Does writing a Visual Basic App require a knowledge of the following technologies?

      SuperVGA Modes
      Assembler Language
      Mouse Interfacing
      Graphics Drawing
      Text Rendering

      I'm guessing the answer is, "no". It's perfectly possible to provide a simpler interface to future programmers than the technology you list. It's just that no one has yet abstracted away from that level. (Well, at least not publicly, anyway.) Eventually the JavaScript level will be superceded by something else, and sanity will return to Web App programming.

    26. Re:Welcome to 1982 by Mikkeles · · Score: 1
      'The line between hardcore developers and the average Joe will start to get very fuzzy.'

      I guess in the same way that the line has blurred between your typical house builder and the engineers who construct 30 storey buildings.

      --
      Great minds think alike; fools seldom differ.
    27. Re:Welcome to 1982 by Millenniumman · · Score: 1

      Python? Gawk? Rexx? Lua?
      Those are animals, right?

      -Joe Average

      --
      Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
    28. Re:Welcome to 1982 by david.given · · Score: 1
      I suppose part of it was that shrink wrapped software got better.

      The other part is that entry requirements have gotten much, much tougher. For example, here's a complete and useful program in Basic:

      10 input a, b, c
      20 print (-b + sqr(b*b - 4*a*c)) / (2*a)
      30 print (-b - sqr(b*b - 4*a*c)) / (2*a)
      40 goto 10
      This is readily understandable by anyone who knows a little maths, and more to the point, is gets the job done.

      Now try and do the same thing today. Write it in Python? Lua? Perl? Visual Basic? Not only do they all require enough computer literacy to understand what a scripting language is and that you need to save documents before you can run them, but it also requires expertise in starting the system, navigating the GUI to find Notepad, figuring out where (and how) to save the result, figuring out how to run the result, figuring out how to relate any error messages back to the source... and if you give them an IDE instead, it doesn't get much better, because you end up having to arse around with projects and modules and such before you can get anything done.

      Try it in Javascript and HTML, which after all all modern computers support, and life gets even worse --- not only do the standard tools suck, but you have to write in two radically different languages, at the same time, just to make anything happen.

      Basic sucked, truly and utterly, but it was also simple enough to let people get started. There isn't anything like that today.

    29. Re:Welcome to 1982 by kimgkimg · · Score: 1

      Actually this reminds me of a funny story (and eerily enough it was from the 1980's). I was in a book store in the computer section looking for some software book, and a guy next to me says, "Hey are you a programmer?" I reply, "Yes I'm a software engineer, so yes I have been known to do some programming." (yes I make a distinction between 'programmer' and 'engineer'.) He says, "What languages do you use?" I reply, "Well I'm currently using Pascal, but I also use C on occasion." He says, "Oh well I like Lotus 1-2-3." [Sound of eyes slowly rolling back into head...]

    30. Re:Welcome to 1982 by Josh+teh+Jenius · · Score: 1

      My hero, Batman, asks: "what happened to those days?"

      And those were indeed great days, friend. If only a secret cabal of senile Republicans...wait a sec!! Happy days are here again!

      PHP (yes, yes, groan away) is a GREAT language, with FANTASTIC support, and has turned many an HTML-"pimpin'" MySpacer into a RAC PHP-part-timer.

      This is a POWERFUL language, friends, and being that there is no "payroll", at worst, I'm a fanatic for saying so. I think time will prove me right. YES- the majority of "Web 2.0" (like EVERYTHING) is total bullshit; but there ARE "diamonds in the rough".

      And at the end of the day, isn't that what the Internet is all about?

      --
      Math is math. Regular expression is regular expression. The tools are there. The future is now.
    31. Re:Welcome to 1982 by Anonymous Coward · · Score: 0

      I hope to god english isn't your first language. Your ability to transmit your thoughts is horrendous.

      If you're at, or have ever been to college, get your money back.

    32. Re:Welcome to 1982 by Anonymous Coward · · Score: 0

      Easy! Just Google up "abandonware" and you'll find VB for DOS.. There's your rabid app development! Er, rapid.

      --Weasel

    33. Re:Welcome to 1982 by LWATCDR · · Score: 1

      When you find one let me know :) I haven't learned Python yet because I know Perl and PHP so I have some tools for that kind of task already handy. Python looks like a better language to learn than Perl since it seems to have a cleaner syntax. I will be learning Python after I finish my current project using C++. It is always a good thing to learn new stuff the problem is finding the time.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    34. Re:Welcome to 1982 by Chapter80 · · Score: 1
      Now try and do the same thing today. Write it in Python?

      Python doesn't look much different to me. Get rid of the line numbers and type into the interpreter. Why is this hard? (Probably because Python doesn't "come with" the system, I guess.) Note, I choose to import sqrt rather than raise to the .5 power. Python is the answer for all former Basic hacks.


      >>> from math import sqrt
      >>> a,b,c=1,5,6
      >>> print (-b + sqrt(b*b-4*a*c))/(2*a)
      -2.0
      >>> print (-b - sqrt(b*b-4*a*c))/(2*a)
      -3.0
      >>>

      And this was straight into the interpreter (IDLE), but I could have easily selected "file / new" from the menu, and put it into a program and saved it, put an input statement at the beginning, and duplicated EXACTLY what you had (only with all the benefits of Python that Basic never had, like scalability, object orientation, real scripting, database access, dictionaries, and libraries of pre-written code).


      from math import sqrt
      a,b,c=input()
      print (-b + sqrt(b*b-4*a*c))/(2*a)
      print (-b - sqrt(b*b-4*a*c))/(2*a)
      [f5] runs it... same result (only the user is prompted). Is that so hard?

    35. Re:Welcome to 1982 by hesiod · · Score: 1

      Not to sound like a jerk, but write me a word processor (with even the most basic features of Word '97) in BASIC in a day and I'll give you $200 (I ain't rich). Even without a GUI.

      > what happened to those days?

      I think you answered your own question. Ignoring the OS (APIs have certainly made extremely complex tasks easier), the least-yet-acceptable solution is many times more complicated than the least-acceptable-solution of years gone by. People expect more. I have had recent experiences with this. A few days ago, I found a game that I wrote 8 years ago. It was pretty damned complicated and took me months (of work-time, not "real" time) to make. Today, it would be a joke.

    36. Re:Welcome to 1982 by hesiod · · Score: 1

      > Remember when we used to insert pauses or slow down programs with a loop

      Oh, twist the dagger, why don't you. A few days ago I found a program that I wrote in C (when I was slightly-past beginner) 8 years ago and saw one of these in the middle. For shame...

    37. Re:Welcome to 1982 by hesiod · · Score: 1

      Rexx??? Does anything even support it any more? I'm amazed to even hear it mentioned. ARexx on the Amiga was the first language (besides BASIC) that I learned. I'd be interested in relearning it, if it's useful.

    38. Re:Welcome to 1982 by hesiod · · Score: 1

      > Any good books you would recommend for reference?

      Hmm, I'm poor. Any websites that anyone would recommend for the same?

    39. Re:Welcome to 1982 by LuisAnaya · · Score: 1
      Regina Rexx: http://regina-rexx.sourceforge.net/

      Have fun :).

      --
      Vi havas e-poston.
    40. Re:Welcome to 1982 by hesiod · · Score: 1

      Abso-freakin-lutely. That is TOTALLY the point (besides "freedom") of Open Source. Just because something has become complicated does not mean that people are necessarily excluded from it. It's possible that there are numerous "simple" bugs in some OSS software, albeit unlikely, given the number of "professional" coders working on it.

    41. Re:Welcome to 1982 by hesiod · · Score: 1

      > Couldn't Lisp be the answer? For simple spreadsheet expressions [it's] as simple and easy-to-learn as Excel macros.

      Can LISP make modifications to an Excel document?

    42. Re:Welcome to 1982 by hesiod · · Score: 1

      The only reason it would take more code in another language is the sqrt function, which has already been written, and can be easily imported, in most other languages.

    43. Re:Welcome to 1982 by hesiod · · Score: 1

      Holy moly, that has some serious potential for multi-OS businesses. Thanks!

    44. Re:Welcome to 1982 by Anonymous Coward · · Score: 0

      I'm am teh l337. Am I welcom3 too????

    45. Re:Welcome to 1982 by cperciva · · Score: 1
      For example, here's a complete and useful program in Basic:
      10 input a, b, c
      20 print (-b + sqr(b*b - 4*a*c)) / (2*a)
      30 print (-b - sqr(b*b - 4*a*c)) / (2*a)
      40 goto 10
      This is readily understandable by anyone who knows a little maths, and more to the point, is gets the job done.

      And that, of course, is exactly the problem. While that program is readily understandable by anyone who knows a little mathematics, it in fact doesn't work -- it is horribly numerically unstable. Unfortunately, computer languages haven't evolved to the point of having a "do what I mean, not what I say" option; until that point, programming (and especially numerical analysis) is best left to those people who are able to say what they mean.
    46. Re:Welcome to 1982 by praetorfenix69 · · Score: 1

      Damn, I did the same thing, but you beat me to posting it. Honestly, the Python solution isn't any more difficult for J. Random User to learn than the BASIC solution is, and even if from math import sqrt is too over their head it's still possible to do x ** 0.5. I don't know why the grandparent bitches about "figuring out how to save a file and run it" and then listing a command-line interpreted language as an example... Besides, the "usefulness" of the quadratic formula program generally doesn't extend far past people taking high school/college algebra and people who actually use complex math in their computer use. Anyone doing work requiring them to use complex math is probably smart enough to learn Python. Python is a much more powerful language than BASIC for doing complex math, and the amount of the language you have to learn to do that isn't all that difficult. I use Python as a desktop calculator all the time, even when I'm programming in other languages I'll bust out Python in another terminal to double-check my algorithms.

    47. Re:Welcome to 1982 by david.given · · Score: 1
      And this was straight into the interpreter (IDLE), but I could have easily selected "file / new" from the menu...

      Sorry, what menu? What interpreter? What's an IDE? Why do I need to save this as a file before I can run it? What's a file? And you say my computer doesn't have this anyway? How do I get it? Oh, that sounds hard. Well, my computer says it's done something. What are all these little pictures on the screen? When I type nothing happens. Oh, I have to click on one. With a mouse. What's a mouse? Oh, right. Um, how do I work this? Which picture do I want? Okay, clicked. It's changed colour. Double-click, right. It's changed colour again. Faster? Uh... this is pretty hard... gah! What's all this stuff on my screen! Oh, this is an IDE? It looks really complicated. There are all these little boxes and more pictures and... tell you what, I'll use a calculator.

      Contrast with your classic 8-bitter: *click* *beep* and it's ready.

      I will agree that Python is a better language in pretty much every respect than Basic. But what Basic had a very low initial access cost, which Python doesn't have --- it let you do what little it would do very easily. The number of concepts you need to get your head around before you can do anything was minimal.

      I think we've forgotten what a stroke of genius the original concept of Basic was. I mean, it provided a full development environment using four statements --- LIST, RUN, SAVE, LOAD. The distinction between a statement to be executed immediately and a statement that was to be stored for execution later was minimal, yet also clear and simple to understand --- you simply numbered them, and the computer would remember them in numerical order. The syntax that used a very small number of plain English words. You could just read an average line of Basic and figure out what it meant. Even the very spare user interface consisting of a blank screen and a prompt was an advantage; it's simple, it's clean, it's not shoving ideas and concepts into the user's face that the user doesn't care about, and above all, it encourages open-ended exploration. That prompt is saying to the user, "What do you want me to do?" Your average GUI is saying to the user, "These are all the things I will let you do." There's a key distinction there, that I'm afraid we're losing sight of.

      Take a look at your screen. Count the number of concepts on it. If you're using a GUI like mine, there are a hell of a lot of them. Windows, files, applications, icons, the web, the net, buttons, text areas, focus management, scrollable areas, menus, the list is endless. We don't see them because we're used to them, but how can we really be surprised that people who aren't used to computers are confused and scared by them because they think they're so complicated?

    48. Re:Welcome to 1982 by oliderid · · Score: 1

      here is two lines that will confuse a lot of them:
      from math import sqrt
      a,b,c=input()

      What is sqrt? what should I import it? How could I know that I should import it? What is input()?

      Input() is a function or a method or a new object
      What is an object? What is a method? What do you mean by object oriented language...Errr. I don't want to make objects, I want to make a program.

      A variable...Well I know what is a variable at least.
      But why should I declare a variable?

      I was able to code my first little program at 10 on a sinclair ZX81 (BASIC). A little program drawing dots after dots from pixel A to pixel B.

      The manual was in English, I'm a native Frenchspeaker. I looked at the examples and copied some codes...And then, after weeks, I tried my first program:

      (something like)
      1 point_A_X=1
      2 point_A_Y=1
      3 point_B_X=125
      4 point_B_Y=80
      5 CLEAR
      10 point_A_X=point_A_X+1
      20 PLOT (point_A_X,point_A_Y)
      30 IF (point_A_X point_B_X) GOTO 10
      40 point_A_Y=point_A_Y+1
      50 PLOT (point_A_X,point_A_Y)
      60 IF (point_A_Y point_B_y) GOTO 40
      70 PRINT "that was my first program"

      RUN

      Python, Ruby, C# or Java that are impossible for a 10 years old boy (genius excepted). I would have to learn first what import system.whatever or use system.whatever or import whatever means...Objects, reading a manual, or worst trying to find the information in the online documentation.

      Let's face it, there is a large room for easy/limited scripting languages out there. I really hope other young boys will have the joy I had the first time I saw these little points appearing magically on my black&white screen. I discovered my passion.

    49. Re:Welcome to 1982 by petermgreen · · Score: 1

      sometimes busy waits are nessacery especially in low level code where timing is critical or where there is simply no other way to wait availible.

      although its better if your compiler has built in functions for delaying a fixed number of clock ticks. less chance of a compiler change screwing up your code that way.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    50. Re:Welcome to 1982 by Nurgled · · Score: 1

      Most open source projects I contribute to -- particularly the webapps -- have simple enough bugs crop up from time to time. I often attack them if I've got an hour or so to spare and want something easy to busy myself with. Of course, in most cases these things aren't "easy" unless you really know the system, so it's difficult to just jump into some random open source project and fix their little bugs in your first few hours, particularly if you are an unskilled programmer.

    51. Re:Welcome to 1982 by Chapter80 · · Score: 1
      I could make the same ridiculous argument to you! Geez. Let's see:

      Quoting your first message:

      The other part is that entry requirements have gotten much, much tougher. For example, here's a complete and useful program in Basic:


      10 input a, b, c
      20 print (-b + sqr(b*b - 4*a*c)) / (2*a)
      30 print (-b - sqr(b*b - 4*a*c)) / (2*a)
      40 goto 10

      This is readily understandable by anyone who knows a little maths, and more to the point, is gets the job done.

      What's a keyboard? How do I get this into my computer? what's a computer? Why 10-20-30-40? Where's step 1? Why input? What's in, and where do I put it? Print? I don't even have a printer hooked up. What's goto? Got-Milk yes, Got-O, no. Why are there stars everywhere? What's sqr? Why do I need parentheses? why not just that little square root symbol (radical...) What's the slash?

      How do I get this into the computer? TYPE IT? Into WHAT? OH into an INTERPRETER? WHAT'S AN INTERPRETER? What does BASIC stand for? (about as meaningful of a question as what is an IDE or IDLE - insignificant to the problem at hand.)

      Your argument is that people don't know what a menu or a mouse or an icon is? Give me a break. My 98 year old grandfather and my 2 year old neice both understand these concepts, but could NEVER program in BASIC.

      My point is that Python is as accessible as Basic, with the sole exception that it doesn't come pre-installed. Other than that, it's approximately as easy for a novice to learn, and as easy for someone who doesn't know programming to get a general idea about what something does.

      If you were trying to make the point that someone could easily program in Basic but not in Python, you failed to support that argument. Your points equally invalidate Basic as a programming language, because a novice wouldn't understand variables (which appear in both languages), functions by name (sqr vs. sqrt), syntax (why a line number? why separate them by 10? why print and not write? why input and not "get from user"? why * meaning multiply and / meaning divide? Why parens around function parameters? Why one instruction per line (yet you allow multiple pieces of information to be input)?), and other general programming concepts.

      Further, to argue that TYPING (from memory) "LIST", "RUN", "LOAD", "SAVE" is somehow better than selecting choices from a drop down menu (File / Open, File / Save, etc.) is ludicrous. Maybe you didn't notice the command line interface get decimated by grapical user interfaces. Welcome to 1984. You're perhaps the only person on earth who believes that command line is EASIER for the novice than a GUI. Because the people have spoken, and voted with their pocketbooks. Memorizing commands is NOT easier for the novice, than selecting from choices.

      Sorry dude. Can't have it both ways.

    52. Re:Welcome to 1982 by Chapter80 · · Score: 1
      I disagree. And having my 10 year old program - and he's no genius - was simple, with the right resources. You just need to find the right book (or website) that will excite your youngster.

      One could argue that there are a lot of abstract concepts in your programming example. variables, bit-mapped Memory (or not), branching, top down coding, spaghetti code, etc. I bet you didn't concern yourself with them.

      I'm an old Basic hacker who learned in the mini-computer era, right up through the TRS-80 etc. And I missed those days. And I see them back with Python. Granted, I only have been playing around with it for a couple months, but the joy is back! And yes, I don't know all the tricks about objects and the complete library that's available. But I do know the basics. And they're so simple to master, it's fun again!

      I've written about 10 Python programs and I bet I can write that same plotter program in no time, and toss pixels on the screen. One google search will lead me to one or two libraries that I import, and the rest will be pixel painting fun. And I bet my Python program to approximate your basic program will be about the same length and complexity.

      The difference is, now you can paint pixels, but you can also mash up web sites, or retrieve your email, or access databases, or perform built-in searches, or any number of things. The possibilities are way more now than then!

    53. Re:Welcome to 1982 by Chapter80 · · Score: 1
      P.S. If you want me to show you how easy it is, just let me know.

      As I have said before, I was amazed at Python, having used it for a couple of months. I'm an old Basic hack from the TRS-80 days, and missed those days, when you could just tap out a program, and off it went.

      Honest, that same fun is back. If you haven't yet devoted 2 hours of your time to downloading Python, installing it, and working through the tutorial, you are really missing something.

      Because it is like the old days. Only better. (because of all the possibilities). Day 1 with Python, I wanted to see if I could write a "word find" program (which was one of my first BASIC programs as a kid). Wow... it was cool. And yes, you can just type in a program and have it execute (real time) - or you can put it in a separate window (saved file) and run it multiple times (same load / save / run -type deal as Basic).

      Second challenge, a smart Sudoku solver. Way cool. Nothing major. Just wanted to see if I could do it. Third challenge - rubik cue solver. Wow. I like this simple math stuff. Not going to win any awards, but it's nice to be able to "just code".

      Some of the little things, like built-in dictionaries and built-in sorting make it sooooo much nicer than the old days (how many times did I use that old Shell sort from the 1976 Creative Computing magazine?)

      Trust me on this one. From one old Basic hack to another... you have to try it.

    54. Re:Welcome to 1982 by david.given · · Score: 1
      If you were trying to make the point that someone could easily program in Basic but not in Python, you failed to support that argument.

      I'm sorry, you've missed my point completely.

      I'm not trying to say that Basic is in any way superior to Python. Basic is one of the suckiest languages known to mankind.

      I am trying to say that the modern computer experience is so overwhelming with new concepts and new ideas and incredibly busy, incomprehensible user interfaces that it won't occur to them that they can understand this stuff.

      You can't get away from having to learn new concepts, true. What you can get away from is having to learn irrelevant new concepts before trying to learn the relevant ones. And if you're starting right from the very beginning, there are simply too many irrelevant ones to get in the way.

      You say that everyone now knows what menus and such are? That's simply incorrect. There are lots of people who don't. They do, however, know what a typewriter is. Keyboards have an intrinsically shallower learning curve than a mouse does. Have you ever watched a novice, a total novice, trying to figure out a mouse? Those things are not intuitive.

      You say that typing is a poor way of interacting with the computer, when instead you can simply pick menu items without having to remember them? Well, I know how to type. I know what I want the machine to do. Why should I spend ages staring at the screen trying to figure out how to get the machine to do what I want, when I can simply tell it? GUIs are not simple; GUIs are complex. That's the point of them. They are infinitely reconfigurable devices that allow a user interface specifically tailored for a particular task --- but that also means that every particular task has a different user interface.

      You say that GUIs are obsolete? Well, obviously. That's why no Unix programmer will ever touch the command line...

      Remember, these people are not stupid. They are willing to learn, if they feel motivated to. They will read manuals. But GUIs do not encourage learning behaviour. Instead, they encourage rote behaviour. You don't learn any underlying concepts but instead learn magic incantations where if they manipulate the pretty pictures in the right way stuff happens.

      The old fashioned 8-bit micro experience was incredibly spare and unsophisticated and, frankly, very limited. But what it did do, which is the point you're not getting, and what computers these days don't do, was to strip the entire experience of dealing with a computer down to its absolute fundamentals. There were no extraneous features. There were no toys, or distractions, or anything to get between you and the machine. You were always in control. Above all, they were open-ended; they were patient vacuums waiting for you to fill them. They never tried to tell you what to do.

      How old are you? Have you ever actually used one of these machines? If not, you should. It's a radically different experience from using a modern computer. If you don't like Basic, and I wouldn't blame you for it, take a look at the Jupiter Ace, which runs Forth. Because of this, I wouldn't recommend it to any novice, but just try and write a non-trivial program on it and marvel at the feeling of power that this crappy 3kB device will give you...

    55. Re:Welcome to 1982 by david.given · · Score: 1
      Trust me on this one. From one old Basic hack to another... you have to try it.

      I have... wrote a big app in it (SQmail, find it on Sourceforge). Gave up and switched to Lua because it was much smaller, much faster, and much more consistant...

    56. Re:Welcome to 1982 by mdwh2 · · Score: 1

      Sorry, what menu? What interpreter? What's an IDE? Why do I need to save this as a file before I can run it? What's a file? And you say my computer doesn't have this anyway? How do I get it? Oh, that sounds hard. Well, my computer says it's done something. What are all these little pictures on the screen? When I type nothing happens. Oh, I have to click on one. With a mouse. What's a mouse? Oh, right. Um, how do I work this? Which picture do I want? Okay, clicked. It's changed colour. Double-click, right. It's changed colour again. Faster? Uh... this is pretty hard... gah! What's all this stuff on my screen! Oh, this is an IDE? It looks really complicated. There are all these little boxes and more pictures and... tell you what, I'll use a calculator.

      Let's be realistic though - the sort of person who can barely operate a modern computer at all isn't going to have been the sort of person who was writing programs in BASIC on the 8 bits.

      A person who struggles to understand a mouse or be able to select the interpreter from the Start menu isn't going to have a clue about things like variables and remembering which commands to type.

      The main advantages old computers had was that the BASIC came as standard, and there wasn't much you could do with a computer apart from program and play (not exactly brilliant) games. So people might be more likely to have a look at it. But it was not easier.

      That prompt is saying to the user, "What do you want me to do?" Your average GUI is saying to the user, "These are all the things I will let you do." There's a key distinction there, that I'm afraid we're losing sight of.

      Except we never had computers equipped with the AI to be able to understand what a user might want to do. What that prompt actually meant was "There are only some things I can let you do, but I'm not even going to tell you what those are; instead you have to know the commands".

    57. Re:Welcome to 1982 by StonedYoda47 · · Score: 1

      You might be surprised at just how many older business people have a very good grasp of older programs that required less GUI interface and more code writing - whether that be BASIC, COBOL, or anything through a command prompt (even DOS based). These people have no idea what to do in a Windows environment and all of the buttons just bother them. Most of them have poor eyesight (due to age), and seeing 15 buttons lined up that are too small to differentiate their purpose, with ambiguous graphics that change on every program (I'm referring to business apps, not things like the "open" button with a file folder) does not help them.

    58. Re:Welcome to 1982 by Anonymous Coward · · Score: 0

      > here is two lines that will confuse a lot of them:
      > from math import sqrt
      > a,b,c=input()
      >
      > What is sqrt? what should I import it? How could I know that I should import it? What is input()?

      Hear, hear!

      I, for one, am very tired of compilers that will come across a function they don't recognize and are too dumb to go looking for it in the libraries! That is SO 1970s.

    59. Re:Welcome to 1982 by stanmann · · Score: 1

      If LISP is the answer, you completely misunderstood the question.

      --
      Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
    60. Re:Welcome to 1982 by ciole · · Score: 1

      No no, Lisp was the question. And I doubt that Excel macros or VB script was the answer.

    61. Re:Welcome to 1982 by NumerusSpy · · Score: 1

      I definitely think that Joe R. User is being credited with a hell of a lot more ability than he has or is prepared to want to have.

      --
      There they are a conga line of suck holes. On the conservative side of Australian politics. - Mark Latham
  2. Open Source , flame based development? by HeavyMS · · Score: 1, Funny

    "bad code will get flamed anyway"

    Everyone is welcome to join in hand help but if you do not live upp to our standards we will flame you forever! and call you a turd.

  3. Isn't that the open source community? by exa · · Score: 2, Insightful

    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.

    --
    --exa--
  4. darwin prize for project managers by bratboy · · Score: 4, Insightful

    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.

    1. Re:darwin prize for project managers by Anonymous Coward · · Score: 0

      "It was the best of times, it was the ... blurst of times? Stupid monkey!"

    2. Re:darwin prize for project managers by P3NIS_CLEAVER · · Score: 2, Insightful

      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.

      --
      Please sign petition to restore sanity to our banking system!!!

      http://financialpetition.org/
    3. Re:darwin prize for project managers by The+Thinnest+Tie · · Score: 1

      I'm not sure rigorous thinking is any more common among programmers than among other analytical professions (medicine, law, academia, auto mechanics, businessmen). I think the point is to tap these alternative sources for new ideas. It probably won't work, just because there will be too much badness to sort through in order to find the goodness. At any rate, it does less damage to humanity than "Let Joe Average Perform Your Next Surgery".

      --
      There are 10 kinds of people in the world: That's approximately 11000100101100100000000100000000 of each kind.
    4. Re:darwin prize for project managers by hazem · · Score: 1

      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 proper weld job). The ChemE does the inspections afterwards to make sure the job was done correctly and to standard.

      Likewise, if the standards for a software project are properly designed (the job of the software engineer), I would imagine that skilled Joes could contribute code to the project that could be successful. Again, the SoftE would check that code to make sure it was done correctly and to standard.

      In fact, I think it would be highly inefficient to have an entire software project done by only software engineers. It would be an inefficient use of resources to do so. That would be like hiring mechanical engineers to build cars.

    5. Re:darwin prize for project managers by biobogonics · · Score: 1

      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!

      Where do you think Usenet postings come from?

      Some of it is really good and the rest of it is what Spafford called "a herd of elephants with diarrhea".

    6. Re:darwin prize for project managers by Reality+Master+101 · · Score: 1
      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 also called "Open Source Software". Honestly, I have yet to see any OSS source code that wasn't a rats nest of crappy code with very little to no documentation. Maybe the Linux kernel source is better; I dunno, I've never looked at it. I specifically remember looking at the source code to ssh and was absolutely shocked at what a steaming turd it was, and that was presumably something you WANT well written!

      Hell, I remember a Perl library (still might be there, for all I know) that used repeated subtraction to do some date calculations. I almost heaved my lunch when I saw it.

      I suppose my point is that even the "thousand monkey" method can produce useful stuff with enough poking and prodding, even if you have to hold your nose to look under the hood.

      --
      Sometimes it's best to just let stupid people be stupid.
    7. Re:darwin prize for project managers by setagllib · · Score: 1

      http://www.netbsd.org/

      Linux kernel is one of the worst examples of open source code. NetBSD is one of the best. Enjoy.

      DragonFly BSD is turning out some really great progress too, but there's still a lot of FreeBSDism left.

      --
      Sam ty sig.
    8. Re:darwin prize for project managers by PrescriptionWarning · · Score: 0

      i myself am a replacement for a truly uncapable programmer (two of them at one point in time) who spent the better part of 3 years creating a program which only performed one of its intended functions, and did it poorly at that... pinging another machine I, however, have done in 5 months everything that program was intended to do, and then some. booya. In essence my true response is that a complex program requires complex(rigorous) thinking. Less complex programs require less complex thinking.

    9. Re:darwin prize for project managers by P3NIS_CLEAVER · · Score: 2, Insightful

      A millwright (the guy that puts the stuff together) is also a skilled trade. Once again, getting any joe to put a chemical plant together other than carrying stuff would be a disaster.

      --
      Please sign petition to restore sanity to our banking system!!!

      http://financialpetition.org/
    10. Re:darwin prize for project managers by DeafByBeheading · · Score: 1

      The thing is, (good) programmers are trained to catch (or at least are familiar with) certain kinds of errors that are specific to software engineering, such as off-by-one errors and buffer overflows. They know that they're expected to deal with bad input gracefully. They also know not to leave magic numbers lying around, and are familiar with at least basic design patterns. It's not that programmers think more rigorously, it's that their rigorous thinking is already well-adapted to the problems that come up often in software engineering. Furthermore, they're familiar with the language they're working in and know how to use it effectively. Maybe we can have Joe Average write some pseudocode--introduce design ideas without having to get caught up in the minutiae--but I don't think having him write actual code will do anyone any good...

      --
      Telltale Games: Bone, Sam and Max
    11. Re:darwin prize for project managers by Anonymous Coward · · Score: 0

      Maybe the idea is that some parts of coding in a project don't need the super-brains of software engineers.

      Yeah. Those are the parts that we automate.

    12. Re:darwin prize for project managers by OldAndSlow · · Score: 1
      in fact, I think it would be highly inefficient to have an entire software project done by only software engineers. It would be an inefficient use of resources to do so. That would be like hiring mechanical engineers to build cars.

      No, that would be like hiring mechanical engineers to design the cars. The construction of software is done by tools like make, ant, and compilers.

      I think that programmers should start calling for management to be opened up to people who don't understand how to manage.
      oh, wait...

    13. Re:darwin prize for project managers by Anonymous Coward · · Score: 0

      "Most non-programmers are simply not trained to think in a rigorous way"

      I'm a programmer and have absolutley no clue what you mean by thinking rigorously. Maybe get off your horse and realize that programmers aren't smarter than the average person.

    14. Re:darwin prize for project managers by jschottm · · Score: 1

      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.

      As someone else noted, that guy doing the weld isn't an amateur either, he just doesn't happen to be a chemical engineer. At least in .us, he would have achieved legally licensed status in the state in which he's working after demonstrating a level of skill the field. Further, a good welder's likely to be making about as much as a junior Chem. Engineer does - when things are really, really important, you pay money to make sure someone who really knows what they're doing is taking charge for it.

      I would imagine that skilled Joes could contribute code to the project that could be successful. Again, the SoftE would check that code to make sure it was done correctly and to standard.

      There's many wrong ways to write code and it's not immediately obvious from a casual glance if something's going to leak memory, expose confidential data, or pose a security risk to the system. Writing code is easy. Writing good code, debugging code, finding special cases, and writing secure code are all hard. Your average businessperson does not know about source control, regression testing, SQL injection, buffer overflows, etc.

      If you look at many of the online tutorials/advice boards on how to program, you'll see many, many bad security flaws being presented as "the way to do things." Sure, turn on PHP globals, it makes programming soooo much easier.

      In fact, I think it would be highly inefficient to have an entire software project done by only software engineers. It would be an inefficient use of resources to do so. That would be like hiring mechanical engineers to build cars.

      Cars are cookie cutter. They make a slew of them exactly the same. Each bit of code has to be just a little different. Those differences are what lead to problems. To quote you in another thread: ... software needs to be tested to make sure it behaves with all the other pieces of software - and that it isn't loaded with spyware or other security-breaking issues.

      Reading other people's code can be hard. Reading an unskilled person's code can be a nightmare. Remember, before the time of auto-syncing to a master clock, most VCRs blinked 12:00 because programming them was too hard.

    15. Re:darwin prize for project managers by Millenniumman · · Score: 1

      let's put a thousand monkeys in a room with a thousand IDEs

      How do you think Windows was written?

      --
      Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
    16. Re:darwin prize for project managers by Millenniumman · · Score: 1

      Unfortunately, the former programmer is now your manager and he doesn't appreciate you doing a better job than him.

      --
      Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
    17. Re:darwin prize for project managers by kimgkimg · · Score: 1
      Likewise, if the standards for a software project are properly designed (the job of the software engineer), I would imagine that skilled Joes could contribute code to the project that could be successful. Again, the SoftE would check that code to make sure it was done correctly and to standard.
      Well this is pretty much the thinking to this whole outsourcing deal. But in the few outsourcing projects that I have seen firsthand there's been nothing but problems with the outsourced code. This stems mainly from the lack of foresight in what the underlying business process need is for the code and a failure to properly analyze the possible failure modes of the code. You kinda have to know what it is that you are building and what's it's overall function should be outside of knowing that it has two input parameters and returns an output value.
    18. Re:darwin prize for project managers by hazem · · Score: 1

      I appeciate your response and your poinst of view.

      It seems to me, though, that in any project, there is probably room for people who are good hobbiest programmers who aren't professionals. It doesn't even have to be programming tasks, but stuff that requires someone to understand programming.

      For example, I might not be very good at programming the database aspects of a program. But I could certainly help in setting up help-context-ids on forms and creating the text for those IDs.

      Reading an unskilled person's code can be a nightmare.
      AMEN! I used to tutor Fortran classes back in the day. I remember a student who came to me with 9 pages of code for a project to print a circle made out of x's on a page. Yikes!

      So, yes, not every unskilled Joe on the street can help with a project. But I don't think every project requires professionals either. Depending on the project, there is probably a good place for amateur/hobbyist programmers to make a good contribution.

    19. Re:darwin prize for project managers by bratboy · · Score: 1

      By "thinking rigorously", I do not mean that programmers are more intelligent than the average person. As it happens, good programmers are MUCH smarter than the average person in a particular set of disciplines (in the same way that children with Aspergers are much smarter in their disciplines), but that's an entirely different issue. What I meant is rather that programmers are trained to think in a very specific, structured way about control and data. Different programmers may attack problems in different ways, but they generally have the same tools when it comes to data structures, control structures, algorithms, etc. They will think about complexity, and edge cases, and modularization, and patterns. They will have a deep understanding of the logical rules inherent in programming, and how and why to break them. If you are a programmer, then this should sound very familiar. If it doesn't, then I would recommend that you pick up a copy of Design Patterns and Code Complete.

    20. Re:darwin prize for project managers by swordgeek · · Score: 1

      You've got it backwards. This is how Linux was written.

      Windows was written by a team of intelligent, dedicated, focused programmers subject to rigorous peer review. The only downside is that the corporation has some very clear and explicit goals which don't include code quality.

      --

      "People who do stupid things with hazardous materials often die." -- Jim Davidson on alt.folklore.urban
    21. Re:darwin prize for project managers by DerekLyons · · Score: 1
      Doesn't anyone respect the field of software engineering?
      No - and for damm good reason.
      I would like to see a bunch of dummies come in off the street and put chemical processing equipment together.
      When I hire a chemical engineer - he can do his job without a bunch of buzzwords and handwaving that obscures the reality of what he is doing. That is not true of software engineers. When I hire a chemical engineer - he is more interested in delivering an operable product rather than insisting that [his favorite|the 'latest'] technology be used. That is not true of software engineers. When I hire a chemical engineer, he can provide a spec, and a budget, and a time frame - and have a reasonable chance of hitting those targets. That is not true of software engineers.

      In fact, the same is true of virtually every field of engineering except software engineers.

      When software 'engineers' can behave like professionals - they'll get respect. Not one minute before.

    22. Re:darwin prize for project managers by ooze · · Score: 1

      Hehee. You seem to mistake the softeware sales person for the software enginieer. That software sales person has as much to do with a software engineer as someone who's selling snake oil has with an apothecary or chemical engineer.

      The software engineer just wants to deliver a working product and be left alone with useless and stupd customer and management requirements. No chemical enigineer gets the request that his new clean and powerful fuel needs to configurable to taste like twinkies or beef or any taste the customer likes, and also that it shouldn't be possible to burn things with it. Yet, those are the sort of requirement every software engineer has to deal every day with.

      --
      Just because I can imagine doing a hippopotamus, doesn't mean I'd like to do it.
    23. Re:darwin prize for project managers by viperblades · · Score: 1

      a welder and a chem engineer are 2 totally different fields. in software this would be a software engineer and a graphics designer. a software engineers spec is not going to be implemented by someone outside his skill-set, thats what makes it so different than other fields. and i think you'd spend just as much time checking joes code as it would take you to write it yourself.

    24. Re:darwin prize for project managers by Shaper_pmp · · Score: 1

      Nobody said programmers are smarter than the average person, only that (good) programmers are trained to think more clearly and rigorously.

      They generally do better at task decomposition, follow trains of thought to their conclusion (instead of subconsciously going "well, that looks like it'll work" and stopping) and recognise assumptions as liabilities (unlike many people, who often view "assumptions" as equivalent to "facts").

      I've mixed with programmers and non-programmers for many years, and (without wanting to make a value judgement) have noticed that while there isn't necessarily a difference in intelligence or creativity, people with a history of writing code often just think more clearly.

      They can often decompose a task more quickly and completely[1], they make fewer irreversible mistakes when making plans (or producing initial designs), and they can lay out solutions more clearly.

      This could be caused by one of two things (or, I suppose, a combination thereof):

      1) They say if you want to be sure you know a subject try to explain it to someone else. The stupider or more naive the target of the explanation, the better you have to know the subject, and you won't find a student a lot more stupid (or with fewer built-in assumptions) than a computer. Thus, programmers are forced to analyse problems down to the very lowest level, and to ensure they've considered all the edge-cases and "what ifs".

      Non-programmers generally interact with other people, who (already full of assumptions and prior knowledge) simply never force them to analyse things to that degree.

      If I want you to make a cup of tea, I say "Make a cup of tea?". If I want a computer to make me a cup of tea I have to consider everything from the hardware design of the system's effectors to how to encapsulate the concept of "cup" in the computer's processing. Don't tell me one doesn't require clearer thinking than the other, and don't tell me practice doesn't make perfect.

      2) Alternatively, maybe people who are good at task-decomposition and clear-thinking are naturally attracted to programming.

      Either way, though, you've got a class of people who are statistically likely to be better than average at these skills.

      Thus, encouraging people who lack these skills is going to bring the average quality of code down, and from the viewpoint of a programmer is going to result in the existence of a lot of ugly code.

      I have to say, I'm not against the idea of opening up the shallow end of the development process to less-technical users, and other analytical professions may teach the same skills (almost?) just as well. However, if you're claiming Joe Average Sixpack can write code or design systems as well as a good, experienced programmer then I'd guess you've either never seen a really good programmer at work or you've bought into the trendy modern War on Expertise that Western culture has been waging in the background[2].

      Sure, make the tools available so even Joe Q. Public can write code. Just accept that he's going to write an awful lot of inefficient, bug-ridden shit and accept that he's going to have even less respect for an often-difficult profession because "he's a programmer now too, and it's easy"[3].

      Footnotes:

      [1] Give a non-programmer and a programmer a sheet of paper each, and ask them to write out the instructions for making a cup of tea in as much detail as possible - five gets you ten the programmer's list of instructions is at least three times longer than the Average Joe's. Any one of those assumed steps could stuff up the whole process (who says there's water in the kettle? Who says there's even a kettle in the kitchen?), and programmers have been trained by experience to assume nothing (well, to know which assumptions are reasonable, and how to handle ones which aren't met).

      [2] Also known as "everyone has an opinion, so any opinion is as good as any other".

      [3] I think this is where most of

      --
      Everything in moderation, including moderation itself
    25. Re:darwin prize for project managers by PrescriptionWarning · · Score: 0

      no, actually he was "let go". or fired.

  5. Because remember... by Billosaur · · Score: 1
    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.

    --
    GetOuttaMySpace - The Anti-Social Network
  6. Inspiration by sdirrim · · Score: 1

    Many times peer review (or just review by someone else) can lend a lot of ideas and improve performance. Better performance --> Better Product -->(hopefully) Better Sales. Sounds like a good incentive for a company to put ideas out there. It is kind of the same thing as beta testing, but beta reviewing instead.

    --
    Not only "land of the free" but "land of the lawyers" who love a good old 1st amendment smackdown. Shihar 153932
  7. Great! Programming no longer requires thinking! by MobyDisk · · Score: 2, Insightful

    The article links to another article, Why Johnny can't program, 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."

    1. Re:Great! Programming no longer requires thinking! by mmkkbb · · Score: 1

      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 is a real network. Perhaps you're thinking of DHTML?

      --
      -mkb
    2. Re:Great! Programming no longer requires thinking! by LiquidCoooled · · Score: 1

      programming a VCR is equivilent to passing one single set of parameters to a single well defined function with lots of help documents around the first time you do it.

      videoPlus(char *code)

      TimerEvent(start,Finish,Channel,optional RecordQuality)

      I realise development is built up from lots of simple stages and perhaps someone can walk through acode generating wizard, but maintaining that code afterwards and expanding uponnn it and trying not to break the existing data created is where developers earn their keep.

      I've seen people restart entire complex macro processes time after time because it doesn't do a specific step - if they knew how to code they could splice it up themselves from the pieces they have.

      Actors act and directors direct for a reason.

      --
      liqbase :: faster than paper
    3. Re:Great! Programming no longer requires thinking! by hazem · · Score: 1

      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, yellow, or green based on comparisons of the current-value to the target-value, and last-year-value. Oh yeah, and it reads positions for each object off the template by looking for lines of a certain color. Since the lines may not be arrange in index-order, I then sort the locations, and once everything's in place, I delete the guide-lines.

      I built it with several subroutines, functions, declared variables, and control statements like if..then, select case (switch), do..while, and for..next.

      Given all that, I would say I was programming. I looked at the input data and the desired output, and came up with a method/algorithm to have the computer do that work. I then coded that method, tested, debugged, and deployed.

      Not to bad for an MBA...

    4. Re:Great! Programming no longer requires thinking! by P3NIS_CLEAVER · · Score: 1

      Its a goddam trade! Yeah I can do some of the things a plumber can do but not all of them, and I certainly wouldn't charge for my plumbing work.

      --
      Please sign petition to restore sanity to our banking system!!!

      http://financialpetition.org/
    5. Re:Great! Programming no longer requires thinking! by dlZ · · Score: 1
      The article links to another article, Why Johnny can't program, 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.
      I have clients that talk about programming their computers with Microsoft Office or programming their Windows (which has meant anything from defragging the hd to reinstalling the entire OS.) It drives me a bit batty, but I have to remember that a large portion of them can't stop getting spyware no matter what kind of antivirus/anti-malware software they run. I've seen them tell Spysweeper to let spyware run and to never bother them again instead of just running the scan it recommends.
      --
      rm -rf ./evidence @ punkcomp
    6. Re:Great! Programming no longer requires thinking! by tiefight · · Score: 1

      Web 2.0 - About a hundred different definitions, but it basically refers to the paradigm shift (if any) that occured or is occuring after or since the dot com bubble burst. AJAX - Basically just javascript that reads/writes small pieces of data back and forth from the server without reloading the entire webpage. Web Services - You didn't ask, so I'll skip it. Programming collaboratively - God knows. Probably either talking about eXtreme programming, or simultaneously developing over the web from disperate geographic locations.

    7. Re:Great! Programming no longer requires thinking! by Anonymous Coward · · Score: 0

      Woopee, now MBAs are 'programming.' I pity your employees who had to sit through your bloody boring powerpoint presentation.

      This truly is the winter of my discontent.

    8. Re:Great! Programming no longer requires thinking! by hazem · · Score: 1

      I was a programmer and systems administrator long before I was an MBA, actually.

      And nobody sits through my presentations, because I don't do them. And I hate using powerpoint on the rare occasion when I do. But, when the boss wants a report in a powerpoint slide, that's what you make it in - until you can make a case for doing it somewhere else.

    9. Re:Great! Programming no longer requires thinking! by Hrothgar+The+Great · · Score: 1

      I'm late to this party, but Internet 2 and Web 2.0 are COMPLETELY different things. Internet 2 is a new, faster network deployed to large numbers of universities nationwide (it's more than that, too, read their page). Web 2.0 is a new buzzword among reporter types that describes a category of internet applications - lately, AJAX has been the big thing with that category.

      Trust me, it all confuses me sometimes, too.

    10. Re:Great! Programming no longer requires thinking! by CodeBuster · · Score: 1

      It should be possible then to design a program that scans the web looking for articles which contain certain buzzwords and then, by selecting sentances which maximize the total number of buzzword hits and joining them into paragraphs an entirely new trade magazine article can be generated automatically on the fly. The program could even select from a pre-arranged set of marketing driven conclusions, sort of like a jump to conclusions function...you see it would be a program that "jumps" to conclusions...yeah.

    11. Re:Great! Programming no longer requires thinking! by Anonymous+Brave+Guy · · Score: 1
      But the ZDNet article has the highest hype per paragraph ratio of anything I've read for a while.

      Amen. I nearly always RTFA before commenting, and in this case since I find the premise that anyone can program effectively rather dubious, I was interested to see what arguments might be made to challenge my assumption. All I saw was two paragraphs of unadulterated bullshit technobabble. (I think there was more, but I actually gave up at that point, having concluded that if there was, it probably wasn't worth the time to read it.)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  8. Efficient? by Lord_Dweomer · · Score: 1
    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?

    --
    Buy Steampunk Clothing Online!
    1. Re:Efficient? by mongus · · Score: 1
      Exactly!

      I've spent way too much time fixing stupid mistakes that other people made. Technical Lead means every time someone compiles you get to explain why they need the pointer to reference something before they use it.

      I had one lady that would come to me a couple of times a week with that exact problem. The sad part was that she was making nearly twice what I was at the time.

      Even with training and experience in programming there are still people who have no business writing code.

    2. Re:Efficient? by kerry-buckley · · Score: 1
      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?

      I'd have thought so, yes. I've spent longer reviewing code from allegedly-qualified subcontractors to get it even close to production quality than it would have taken to write in the first place, so trying to do the same with well-meaning beginners would be a nightmare.

      Not to say non-programmers shouldn't give it a go, of course – I expect that's how most of us got started.

    3. Re:Efficient? by Lodragandraoidh · · Score: 1

      In the context of a proprietary project, it might be the case that having neophytes mess about in production projects might be beyond the ability of a development shop to manage - provided they are not willing to share the responsiblity of reviewing code with the community surrounding the project.

      We are, however, talking about FOSS projects - where the price of admission is free and very community oriented. If such a project is big enough to attract a large audience - it will invariably have a good size subset of eyeballs that have the skills necessary to find the bugs easily (while you may scoff at 'The Cathedral and the Bazaar', the truths contained are borne out time and again). As the person in the article says, the would-be developer would have his halfbaked idea flamed off of the release list if it did not fly.

      On the other hand, small projects will implode if there are not enough eyeballs --- they will be the Frankenstein monstrocities that no one will use. Good riddance - and I can't see accelleration of this process as a bad thing because it makes it easier to seperate the chaff from the wheat - so to speak - for potential users of the applications produced.

      As a result, the cream will rise to the top - for no other reason than it works best for a given problem domain.
      There are plenty of examples that prove this out (Firefox, Linux kernel, Apache, Python, Debian, etc...) - and the marginalized misanthropic and micro-niche projects are too many to count - neutral really (as I have found niche software that was perfectly suitable for my own purposes, that would not stand the test of the masses - right and good as far as I am concerned).

      Nevertheless most development shops must justify their own existence, and thus can not tollerate the potential of having the project direction and development subjugated (even though that might be best for the community surrounding the application). So, I don't expect to see this evolve in any significant way in the proprietary software arena. Once again, FOSS will lead where others fear to tread.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    4. Re:Efficient? by Fjornir · · Score: 1, Troll

      I spent about a year doing something very similiar to this. I was one of three on the team -- the other two were very junior programmers -- and thankfully half a world away so I was never able to give into my frustration and punch them in the face. About a third of my 40 hours a week were spent on answering n00b questions and "code review". We called it a "code review" anyways -- mostly it was correcting the code and telling them to re-write it because it was wrong / hideous / whatever. From a pure coding standpoint it would have probably worked out to have taken me less time to write it all myself, but all three of us had some other non-programming responsibilities so it worked out well enough for us, I guess.

      --
      I want a new world. I think this one is broken.
    5. Re:Efficient? by drinkypoo · · Score: 1

      While I agree, I have also noticed that the best way to get a feature you want properly coded in a program and in a timely fashion is to submit a patch that does what you want - poorly. Then someone with an inferiority complex will say "That's not how you do that!" and do it right - but they wouldn't have done it at all without a chance to show you up. So maybe more people SHOULD be trying to develop, if only to needle the competent types into action.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  9. Already fuzzy by XMilkProject · · Score: 2, Interesting

    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.

    --
    Big ones, small ones, some as big as yer 'ead!
    Give 'em a twist, a flick o' the wrist...
    1. Re:Already fuzzy by bhsurfer · · Score: 1
      I've spent a lot of my career "un-fucking-up" applications that were written by the very same type of non-developers you're talking about. I wouldn't necessarily blame it all on VB though; the people I'm referring to don't use it, don't know it, and STILL can't design or code an application. Not that VB hasn't contributed it's share of problems, but I propose that lack of a grasp of the fundamentals of program design is the main problem.

      The empahsis, once the easy to use tools are there, should be on logic and flow rather than syntax. People who are unable to clearly state both their business problem and their proposed solution are never going to be able to programmatically fix it regardless of the ease of use their tool provides. I have seen dastardly data models hiding behind lovely Access forms, for example, because the front end tools were there but the underlying knowledge wasn't.

      Hell, bring 'em on! The more clueless development that there is going on out there the more work I'll have fixing these messes. Allowing unqualified people to perform important business tasks is of questionable wisdom.

      --
      Those are my principles, and if you don't like them... well, I have others.
      Groucho Marx
    2. Re:Already fuzzy by Anonymous Coward · · Score: 0

      If you want fucked up code take a look at X++ code in Microsoft Axapta its a total peice of SHITE emitted from a room of 1000 monkeys with Dell typewriters.

    3. Re:Already fuzzy by biobogonics · · Score: 1

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


      What's wrong with VB or other high level languages? At one time assembly was the only way I could get programs to run at reasonable speed on limited hardware. But those days are long past. There is no reason not to be able to do "rapid application development". There is no reason that you have to program on "bare metal" to access the Windows GUI API. Abstracting a lot of that away can be a good thing. You still end up having to know some principles in the end.

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

      No the real program is with management that does not want to understand the technology or that makes deals with big name consulting firms. These hire fresh graduates, work them to death, bill up the wazoo and end up producing product that is behind schedule and over budget.

      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.

      Thank you Dr. Buzzword for your insight. This will only happen when magement gets a clue or HR gets a clue. Meanwhile I'm chilling a pair of skiis for a slalom run through Hades.

    4. Re:Already fuzzy by NialScorva · · Score: 1

      VB is a high level programming language in the same way that "a/s/l u want 2 cyber" is high level romantic language. Both express the necessary concepts in a quick form that doesn't require a lot of subtlety, but you're only successful by lowered expectations in both cases.

    5. Re:Already fuzzy by Infernal+Device · · Score: 1

      Unfortunately, with those Senior Programmer II titles comes management responsibility (shoes, ties, underwear, telling Joe Haxxor he can't put Quake on his workstation, etc.). It's not worth it - hide, little programmers, don't let them know you can code, cos' pretty soon they won't let you.

      --
      "My God...it's full of trolls!"
  10. The problem isn't with writing bad code... by SCHecklerX · · Score: 1

    ...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 right back end ensures that all groups can effectively share their information (or not share as security dictates).

    1. Re:The problem isn't with writing bad code... by mrjb · · Score: 1

      Well, any tool can be abused but not all abuse is bad. Gotta love this one :)

      --
      Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
  11. Couldn't Disagree More! by Anonymous Coward · · Score: 1, Insightful

    It takes a long time to become a good programmer, and even good programmers can produce some pretty sloppy code. I fail to see how encouraging the unwashed masses to pick up a copy of Visual Studio 9.0 and the latest "Learn To Program in 3 Minutes" book will actually result is less-buggy code. It would certainly create lots of crappy code.

    Programming has changed since the days of assembler, but for anything more complex than a macro to calculate your GPA from an Excel document, it's still a mighty tough job. 25 years ago, you'd write something in assembler or C, it would take you 3 months, and it would do the same thing you can do today in a week in Java. Nowadays, you just spend 3 months doing it in Java because the applications are far more complex.

  12. Tis True! I can help anyone in MS Excel VBA by Average_Joe_Sixpack · · Score: 1

    I can code data entry macros faster than anyone south of the Mason-Dixon.

  13. big line between hardcore devs and joes by LetterRip · · Score: 3, Insightful

    [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

    1. Re:big line between hardcore devs and joes by shirai · · Score: 1

      The difference is this:

      The hardcore developers write the sofware that the joes use to build their software.

      --
      Sunny

      Be my Friend

    2. Re:big line between hardcore devs and joes by stunt_penguin · · Score: 1

      Also, hardcore coders will still fail to get a girlfriend, whereas average Joe still has a shot.

      *hides*

      --
      When the posters fear their moderators, there is tyranny; when the moderators fears the posters, there is liberty.
    3. Re:big line between hardcore devs and joes by Anonymous+Brave+Guy · · Score: 1

      Exactly. The line between hardcore developers and the average Joe will get fuzzy around the same time that we can no longer tell the difference between a joint-the-dots puzzle and a Picasso...

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  14. Easy Answer by Politburo · · Score: 1

    No.

  15. Duke Nukem? by nmccart · · Score: 2, Funny

    So, with 1000 open source programmes working at 1000 dummy stations, they should be able to produce Duke Nukem 3D?

    --
    Funny sigs make your Karma go down.
    1. Re:Duke Nukem? by Anonymous Coward · · Score: 0

      You lack a brain sir, quit with your damn "Will it run linux", "soviet russia you", and other such things, it does NOT make you look smart you dumb fucking bastard

  16. Homer Simpson writes software.... by HiredMan · · Score: 1

    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

    1. Re:Homer Simpson writes software.... by djdavetrouble · · Score: 1

      An old timer like you should know better than to make a Simpsons reference without a proper citation.

      --
      music lover since 1969
  17. Fantasy. by torokun · · Score: 2, Funny

    99% of users don't even want to open the help. This guy's smoking some collaborative utopia crack.

  18. Too early. by Telastyn · · Score: 1

    Sure, Average Joe would benefit greatly from even using marcos or knowing regular expressions, but the fact of the matter is that He would've 10 years ago too. What has changed in 10 years to somehow make scripting more accessable? Data accessability? Web apps? I don't think so.

    1. Re:Too early. by Anonymous Coward · · Score: 0

      Polos!

  19. Billions and billions of monkeys by exa · · Score: 1

    I think I'm getting it. This is like turning every project
    to Gnome, right?

    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.

    What's worse, you need to increase the number of critics as fast,
    so reproducing Shakespeare with a million monkeys strapped
    to the keyboard isn't possible with that sort of "flaming
    away". If you don't believe me, just browse the WWW.

    Now, there is the hypothesis that the average joe will do
    better than random code generation. I like that idea, but
    in the end that just mean that learning how to code is a no-brainer.
    I don't quite buy that.

    --
    --exa--
    1. Re:Billions and billions of monkeys by AKAImBatman · · Score: 1

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

    2. Re:Billions and billions of monkeys by AKAImBatman · · Score: 1

      s/Ahmdal/Amdahl/g

      Stupid Internet.

  20. Every five years or so by cdrguru · · Score: 3, Insightful

    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.

    1. Re:Every five years or so by VAXcat · · Score: 1

      Heck, COBOL, with its friendly verbose english like keywords, was at one time (before most of you were born, when COBOL was a new thing) touted as a tool that would allow end users to create their own applications....

      --
      There is no God, and Dirac is his prophet.
    2. Re:Every five years or so by micrometer2003 · · Score: 1

      I remember much of the "Ditch the mainframe/COBOL/CICS/VSAM" mindset was supported by the need for faster and simpler IT solutions. These never materialized. It was marketing brilliance of Microsoft and other major vendors that got us to the point where the security guards have $2500 desktop appliances that have color displays and Word. An engineer seeking to write a Newton-Raphson method won't find anything that came included with a similar workstation because there is no money to be made on licenses and training. The little BASIC package that used to be there made these guys a little too independent for the vendors and the top management they lobbied. Another useful freebee that disappeared was SORT. That was also a little too powerful and too "mainframish".

  21. Increased Workload for Code Reviewers? by deeLo57 · · Score: 0

    What a horible idea,
    wouldn't this just overwhelm the reviewers who now have to filter though all the noise?
    nothing like bringing productivity to a grinding hault

  22. ...and you'll just find bigger fools by pla · · Score: 1

    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, the average Joe can't do DIVISION. He can't add up a line of numbers without a calculator. Fractions hurt his poor widdle head. While we debate about whether or not to allow version numbers to go 1.8 1.9 1.10, the Average Joe doesn't even grasp why that poses a problem in the first place.

    The average Joe likes the Imperial system of measurements. I rest my case.


    So no, the line between coders and users will NOT blur anythime soon, or ever. Coders understand what those code snippets do. Users can barely manage the hotkeys to activate those code sequences.


    Now... If you ask, "Will making it easier to write code snippets in common apps draw out a few more people with undiscovered coding skills - Yes. And Albert Einstein worked as a patent clerk. Don't make too much out of the connection.

    1. Re:...and you'll just find bigger fools by Anonymous Coward · · Score: 0

      god you're an insufferable dork. "fractions hurt his poor widdle head" ? the average joe knows how to divide and use fractions you elitist snob.

    2. Re:...and you'll just find bigger fools by Anonymous Coward · · Score: 0
      god you're an insufferable dork. "fractions hurt his poor widdle head" ? the average joe knows how to divide and use fractions you elitist snob.

      Ever role-played with non-geeks?

      Most people need a calculator to take the average of two numbers. It isn't much of a stretch to say that most people can't hack fractions or division in general.

      Though, that doesn't mean the GP isn't an elitist snob... But stating the truth doesn't (automatically) make someone an insufferable dork.
    3. Re:...and you'll just find bigger fools by Anonymous Coward · · Score: 0

      What does doing an average without a calculator have to do with programming?

    4. Re:...and you'll just find bigger fools by Anonymous Coward · · Score: 0
      What does doing an average without a calculator have to do with programming?

      1) You won't find many simpler algorithms.
      2) It requires the use of division (and only by two at that, in the situation given).

      Now, you might still wonder what that has to do with programming. I think the GGP's point is that programming, at heart, requires fluency in math. Most people are not only not fluent in math, but they don't want to be. When I tell my friends about a cool new coding problem I solved at work, they look at me like I have the plague for finding "math" (simple geometry, in most cases) even tolerable, never mind fun.


      I think it's similar to golf... You look at Tiger Woods and think "Wow, that boy has skill!". And your very next thought, if you don't play golf yourself, is unavoidably "too bad he didn't take up a real sport". Same with programmers. Most people respect our skills, but are outright averse to doing what we do as the core of our jobs - "There but for the grace of God...".


      Math is hard.
    5. Re:...and you'll just find bigger fools by drinkypoo · · Score: 1

      I think the GGP's point is that programming, at heart, requires fluency in math.

      I call what I do programming, but I wouldn't call it engineering. Mostly what I do is steal other people's algorithms (well, not steal, borrow, but I wanted emphasis) and implement them myself. About as challenging as that gets is porting a sort algorithm from C to Crystal Reports/VB.

      I'm horrible with math. I can average two numbers, or maybe three, but after that it can get hard enough to manage all the numbers (unless they're single-digit) that I need a calculator or a spreadsheet or something, because numbers just run away from me.

      But on the other hand, I can write useful software. So am I a programmer, or not? I'm more than willing to accept that I'm not an engineer...

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  23. Too many cooks by DoctorSVD · · Score: 2, Insightful

    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.

    1. Re:Too many cooks by Anonymous Coward · · Score: 0

      Yep, and if you do throw people at a project, then expect to be throwing a lot of managers after them to do 'code reviews' to try and postpone the inevitable crash of broken software.

  24. Just like Microsoft Access! by PIPBoy3000 · · Score: 4, Insightful

    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.

    1. Re:Just like Microsoft Access! by CommieLib · · Score: 1

      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 multiple layers and objects, and refactor like mad until you've got good, testable, documented code.

      Vital healthcare software running on Access...that's scary.

      --
      If your bitterest enemies are people who hack the heads off civilians, then I would say you're doing something right.
    2. Re:Just like Microsoft Access! by Anonymous Coward · · Score: 0

      That is exactly the reason why, nobody but nobody gets access installed where I work for any reason. This one little policy has literally saved us thousands of wasted man hours trying to upgrade somebodies hacked little access application that has outgrown itself.

    3. Re:Just like Microsoft Access! by guitaristx · · Score: 1

      The real software developers are the architects and the engineers. Are you going to see a skyscraper designed and built by amateurs? Probably not. Are you going to base your shipping company's transportation infrastructure on automobiles that were designed, built, and maintained by amateurs? Definitely not. However, that shouldn't keep amateurs from believing that they can (and should) take part in some DIY home remodeling and automobile maintenance.

      The same thing applies to code. I know that the state agency I work for requires a maintenance log (maintained by professional mechanics) for all its vehicles. Furthermore, these vehicles have to be purchased in a particular way, they need certain types of warranties, etc. I believe that code that is depended upon in a business environment should follow the same guidelines. It needs to be professionally built and maintained. There needs to be a professional software developer accountable for the code. You can't hold a secretary responsible for the quality of code (s)he writes. However, there's nothing wrong (IMHO) with that secretary keeping her daily duties in order with some average-Joe-oriented DIY databases, spreadsheets, and forms. The only conditions to doing so are that she needs to understand that she's not an expert (e.g. can't be relied on to build multi-user business systems), and she needs to understand how to make sure that her data is backed up. Amateur is fine, as long as the amateur (and those who might rely on their work) realizes that they're creating amateur work.

      The parent referred to the Access database problem. Should the department rely on the home-grown Access database solution? Probably not. Does the department have the budget to purchase development time to develop an alternative system? Again, probably not. I don't think there's a technology solution that solves the home-grown Access database problem; it's a matter of business processes.

      --
      I pity the foo that isn't metasyntactic
    4. Re:Just like Microsoft Access! by ziani · · Score: 1

      I confess, I was one of these "let's make in Access and it's just like a true Windows app" persons. Then, I learned the IT corrilary of "you broke it you bought it", which is "you wrote it you support it." Suddenly I was no longer doing my (non-IT) job, but was constantly dealing with "the database is broken" and "can you make it sort this way rather than that way." Oh, and there there's the ninth circle of hell known as "report writing."

      I owe a large debt of gratitude to my company's DB guru, who cleaned it up, got rid of all my "very cool" .vbx controls ("hey, that's a neat spinner thingy"), and made it functional (complete with a simple interface and an SQL Server back end). Through it all he was very patient and non-critical, but left me with the valuable lesson of remembering that I didn't have a monopoly on good ideas.

    5. Re:Just like Microsoft Access! by TekGoNos · · Score: 1

      Exactly!

      When I was still in high-school, I had done some programming and as my mother needed to port an old dBase address database to Windows, I did it for her using Access.

      Well, this thing still works and is in use. However, when I look at it ... ::shudder:: ... there are some very stupid rookie mistakes in there, that will make maintenance difficult.

      Example : Children, ages & name (the database was for an organisation of parents) .. As people have different amounts of children, I just put in four columns for ages and for the name. Today, I know the proper way to do such stuff, but back then, I didnt.

      And the "average joe" will do such things and worse ...
      Bottom line : NEVER let the average joe help on a big project, the unmaintanable code will hunt you when you try to integrate things. However, the average joe might do some simple programming in isolated projects.

      --
      I have discovered a truly remarkable proof for my post which this sig is too small to contain.
    6. Re:Just like Microsoft Access! by LuisAnaya · · Score: 1

      That's why when I write an Access Database, I make sure that I keep it to myself and deny that I had anything to do with it if anybody elses gets their hands on it.

      --
      Vi havas e-poston.
    7. Re:Just like Microsoft Access! by geekoid · · Score: 1

      don't disavow, take ownership.

      Thats how I decided to handle the very issue this time. I have fought it many times.

      This way, you can have a plan of action on upgrading them and bringing them under the wing of IT. With a plan, you can budget more effectivly, as well as go to whoever does budget approval with a list of databases that take time from your scheduled work.

      Also, creating a central data repository and training people on a method to use data from it may lesson your headaches. This also requires thinking and a plan, but it can be done.
      Of course removing access is wors, becasue people will use excell as there database which is even more painfull to support. The exception being if they draw the data from a central place for there spreadsheet.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    8. Re:Just like Microsoft Access! by JahToasted · · Score: 1
      I think everyone has to use Access to learn that lesson. Yeah, you can make up a simple database and some good data entry forms really quickly, but then it quickly gets out of control.

      You'd really think MS would put a little more work into Access to make it easier to scale. They could make an "Access Professional" that could actually scale and they'd make huge money off it.

      But right this very week I'm going in to talk to some people who have the same common problem: out of control Access. And what solution can I offer them? Basically just scrap it and build something that doesn't suck. Why doesn't MS offer anything for this?

    9. Re:Just like Microsoft Access! by ameoba · · Score: 1

      ...at least they're not using Excel.

      --
      my sig's at the bottom of the page.
    10. Re:Just like Microsoft Access! by jyx · · Score: 1

      Mate your not alone. We recently did a search for mdbs over our state-wide departments fileservers and found over 2000 access databases. OVER 2000 FRICKEN DATABASES! we don't have half that number of employees. Even if only a third of those things where actually still in use, that's a lot of corporate data scattered around in impossible to get locations.

      This one dude who no longer works for the organisation seems to be responsible for a lot of them, and they are all called 'TRAKKA'. Vehicle Trakka's, Correspondence Trakka's, File Trakka's, Travel Trakka. [JOKE]We had to build out own Trakka Trakka![/JOKE] Its unbelievable. Each and every one of is a terrible insight into how 'Joe Average' does his coding. Take for example the ultimate way to save the data on a form: Move forward one record, move backwards one record. The built in form logic does the save. Oh.. My.. God..

      We are slowly getting back into control. We have removed access proper from peoples desktops and deployed the runtime files only. If someone wants access they have to ask for it and we try to make sure they know what they are doing.

      The saddest thing is that we could fix it all. We have a small team of competent developers that could make the hurt go away. But because of 'cross billing' no section is prepared to spend money on fixing something that they perceive as not a problem. Not a problem until the data is needed and by then its to late. So we end up putting emergency band aids on these things (have to shower afterwards, feel so dirty) instead of taking the time to 'Do It Right'.

      Back on topic, Joel got it 100% right: Users Just See Pixels. Just like Ive got no understanding of the complexities of my car, they have no understanding of the complexities of business applications. I don't pop the bonnet and force in another engine to make my car go twice as fast, but users think that they can do the programming equivalent to their systems. Yikes!

    11. Re:Just like Microsoft Access! by the_womble · · Score: 1
      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.


      yes, but remember people do this because they need the database.


      Better ways to solve the problem would be:

      1. Have a developer develop it in the first place
      2. Offer people who want to develop applications themselves tools and training so they can do something reasonably maintainable: if you only give them MS office you will end up with messy VB apps.
      3. Offer people help from the start so you know what is going on and can move an app over to a developer when it starts looking as though it will get complex
    12. Re:Just like Microsoft Access! by DerekLyons · · Score: 1
      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.
      Never mind the fact that the developers *job* is to support the rest of the organization.
      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.
      In other words - you can't be bothered to learn to use the tools your clients use. You insist on your way or they highway (or would like to be able to).

      A few posts up someone asked why software engineers don't get any respect.

      Your attitude is a clear indication of why.

    13. Re:Just like Microsoft Access! by Shaper_pmp · · Score: 1

      Amen to that, on every single point.

      --
      Everything in moderation, including moderation itself
    14. Re:Just like Microsoft Access! by Shaper_pmp · · Score: 1

      Indeed. However, in my personal experience I often end up spending longer patching up, bug-fixing and extending somebody's lame two-hour lashed-up "my first database" or "my first VB app" than it would take me to re-write it from scratch, to more reliably make available the current functionality and allow for quicker modifications in the future.

      By way of illustration, by all means bring in a plumber to sort out your pipework - it's his job to ensure you the user get the water you need. Just don't expect him to be happy or complimentary when you get him in to fix up some ham-fisted uneducated idiot's attempt to rig up your pipework using cardboard tubes and Krazy Glue.

      Again, what the GPP said: I don't try to fix my car with elastic bands and wood-glue, and if I'm uneducated enough to do so I don't blame the mechanic for getting irritated with me for making his job harder than if he'd done the whole thing.

      --
      Everything in moderation, including moderation itself
    15. Re:Just like Microsoft Access! by Anonymous Coward · · Score: 0

      "Never mind the fact that the developers *job* is to support the rest of the organization."

      You're mixing up two meanings of "support". Let's make this absolutely crystal clear:

      Your definition of support: Crazy Steve smashes his company Thinkpad X61 every morning with a brick. So IT buys a stock of Thinkpads, replaces it during coffee once per day and asks for an increase in central purchasing budget. Steve receives a commendation for his innovative use of IT in business.

      My definition of support: Crazy Steve smashes his company Thinkpad X61 one morning with a brick. IT refuses to replace the Thinkpad, reports it to Personnel and asks that Crazy Steve be dismissed for destroying company property.

      "you can't be bothered to learn to use the tools your clients use."

      Everyone knows how to use Access, the central support staff know that it's disproportionately expensive to manage and so they discourage its use. If you can't understand how "easy for me" can translate into "too expensive for the business", try choosing a corner of your office and using it instead of wasting time with toilets. Just call reception and explain that in future you need a specialist cleaner to remove the urine and faeces from the office twice per day, and that it's easier for you this way so it will make the company money.

    16. Re:Just like Microsoft Access! by musicmaster · · Score: 1

      I actually liked it when people developed something. The coding may need some reworking, but getting a good requirement report is a lot of work too.

      What I did not like was that Access is such a horrible "tool". I spend lots of time learning how I can find the different parts of the Access application.

    17. Re:Just like Microsoft Access! by petermgreen · · Score: 1

      You'd really think MS would put a little more work into Access to make it easier to scale. They could make an "Access Professional" that could actually scale and they'd make huge money off it.

      iirc they offer an "upsizing wizard" which takes a MDB, transfers the data to SQL server and turns the MDB into a (still access based) client interface to the data on SQL server.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    18. Re:Just like Microsoft Access! by Anonymous Coward · · Score: 0

      Thank you for your pointing this out! I worked at a uni. department where the exact same had occured. A db had been designed by a someone without knowledge of the field. All very fine and dandy except

      1) Some parts of the data were stored multiple places.
      2) He had not used meaningfull types. For instance the danish SSN (called CPR), that takes the form - was stored in a text field. To make matters worse the input form had no constraints on the data inserted (so there were rows containing -,,- and . Now I was asked to do some processing on age, and instead of doing it with a simple ORDER BY birthday, I had to hack a function that would do it properly.

      Moral of the story: Don't let non-programmers program.

    19. Re:Just like Microsoft Access! by Anonymous Coward · · Score: 0

      > Moral of the story: Don't let non-programmers program.

      Well I tried learning to program! But the programmers wouldn't let a non-programmer program. :-P

  25. Second rate science by Anonymous Coward · · Score: 1, Insightful

    Why is it that nobody, including, apparently, slashdot editors, respects software development as a proper scientific or engineering discipline.

    Do you think it is even possible for someone to suggest that a mass of "average Joes" (you know, those people that hardly passed SAT's) would provide useful feedback to mathematicians or physicists to improve their research? And yet it appears perfectly normal that they suggest to "programmers" how to make things better:)

    Personally it appears to me that the value of user (that is what average Joe is) input is high when we discuss WHAT the software is going to do and how it will interact with the user. That is where his input ends and software design begins.

    In fact I beleive that it is precisely this "utilitarian everyone-can-do-it" approach to programming that breeds scores of iterative solution (i.e. those solutions that are found by iterating over the entire set of possible results, for those "average Joes" that did not know).

    Call this a flamebait if you will, but make sure the damn average Joe keeps his sweaty little brain out of my work!!!!!

    1. Re:Second rate science by A+beautiful+mind · · Score: 1

      You've found the reason why PHP exists.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    2. Re:Second rate science by Anonymous Coward · · Score: 0

      Why is it that nobody, including, apparently, slashdot editors, respects software development as a proper scientific or engineering discipline.

      Because software development is not in the same league as other scientific or engineering disciplines. Computer science is, but not software development.

  26. Write code... yes but how? by zubinjdalal · · Score: 1

    I've always liked to think that good programming is 50% skill and 50% art. Why? Because sure you can get the final results (which mostly depend on skill) but what also matters is how you get those results.

    Take a look at code written by well-know code shops, CS graduate students, etc. I'm sure that even though the code works, one wouldn't find a good percentage of that code acceptable by "good" programming standards.

    Getting back to leaving the fate of the world to Joe Blow, assuming you can get past the "I can't understand programming logic" barrier, and you assume the availability and use of excellent programming apps (then you're just giving them something that enables them to generate code automatically while designing in a word processor) to make up for lack of skill, you will get code that is badly written, very inflexible and extremely unoptimized.

    Hardly what I would call "programming".

  27. An excellent idea! by GungaDan · · Score: 2, Funny

    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.

    --
    Eloi are stupid, throw morlocks at them!
  28. Yep. Think about how that would work. by khasim · · Score: 1

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

    1. Re:Yep. Think about how that would work. by DarkIye · · Score: 1

      Exactly. I have some vague notion that the people who came up with this idea were trying to stimulate interest amongst the curious, and perhaps draw up future recruits, but all I can see this doing is exposing them to the more brusque qualities of the coding community. Not a watertight idea, I think.

    2. Re:Yep. Think about how that would work. by hyc · · Score: 1

      I used to do a lot of (2) but nowadays I try not to do so in public. On the OpenLDAP project we pretty much have to do (1) for all contributions; it's rare to get something contributed that conforms to the documented coding style.

      --
      -- *My* journal is more interesting than *yours*...
  29. The line will remain! by Pedrito · · Score: 1

    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 a complex process, having an understanding of algorithms and patterns. It's understanding complex interactions between parts of the system. These are not things you learn when you write a few Excel macros now and then. Anyone who thinks otherwise is fooling themselves.

    There's a reason colleges and universities offer B.S., M.S. and PhD degrees in Computer Science. Because it takes a long time to learn this stuff and it can't be learned without spending a great deal of time studying it.

    Hell, there's not even a fuzzy line between someone who can write little C utility apps and an application developer.

    The day when Joe Average can build real applications isn't coming anytime soon. That day won't arrive until computers can actually think for Joe Average and fill in for the huge gap in understanding.

    1. Re:The line will remain! by Zephiris · · Score: 0

      They also seem to forget that a lot of "so-called programmers", particularly in the open source community, have no idea what they're doing. It's just common sense, if you don't know what you're doing in general, are you a programmer/developer? No. It's not exactly rocket science (oh, actually, it has a big part in that too), but just because you can knock two things together and make loud screeching noises doesn't make you a programmer, nor do fancy degrees. I've met people who have this and that degrees, expensive certification, and still don't know what they're doing, can't competently write or modify a program in any language.
      It's not an elitest thing, either. Would you, for instance, be called a Medical Doctor if you didn't know basic anatomy? Hopefully not. I'm sure that "average joe" wouldn't be any more comfortable with an incompetent person who arbitrarily decides to call themselves a doctor (usually not too long before being arrested) than they would be trying to go to an incompetent person who decides to call themselves a programmer. It doesn't take that necessarily that much to learn and develop as a good programmer (let alone as an adaquete programmer), but people often don't want to put in any effort. I know of several developers who don't do any actual work, just convince others to do the work for them, then take all of the credit, without so much as a thank you. It's also funny when a C++ teacher doesn't know things that are in the first half of "the book", and can be found on any reference material online, and have to get others to do assignments to -give to his class- to do. Funny that he's a teacher (not teaching me, of course), and has all sorts of degrees, and I took the time to teach myself, and I know more than him, and have a sparkling track record.

      --

      "A Goddess rarely smiles for she is forced by others to be an island unto herself." - Zephiris
  30. VB by truthsearch · · Score: 1

    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.

  31. Mr. Show provides answers by nodnarb1978 · · Score: 1

    Yeah, lower-level programming will continue to get easier. But by then the really slick programmers will all be working on....SPACE PLANS.

    Seriously, imagine the problems yet to be hurdled in computer and software engineering, and consider the layman's ability to tackle those problems.

    The sky is not falling because Joe Average is getting more computer-savvy. It's the other way around.

  32. Right... by Eccles · · Score: 1

    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.

    --
    Ooh, a sarcasm detector. Oh, that's a real useful invention.
  33. 2+2 = Differential Calculus by The+Wookie · · Score: 1
    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.
  34. Couldn't be worse then Engineers Code. by jellomizer · · Score: 1

    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

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:Couldn't be worse then Engineers Code. by middlemen · · Score: 1

      By experience of knowing some, there exist engineers who are better at coding than at engineering and vice versa.

  35. Not sure all the parts of TFA will come true by ursabear · · Score: 1

    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 processes and eliminate the need for most software developers... I have yet to see such a tool/technology/language/idea work on a long-term basis.

    The bottom line is that there is no substitute for trained/experienced minds wrapped around a software development effort - even basic things like development patterns (formal or intuitive) are not generally within the grasp of Joe/Jane non-developer.

    In summary, I applaud folks for continually trying to improve development processes... but I think that users should deal with user "scripty" stuff, and leave the critical/long-term/important software development to folks who understand the task best. Similarly, if there is someone who "blurs the line" between developer and user, and does a good job of building maintainable solutions - I think they are really heading towards software development anyway.

  36. If You Make It Accessable, They Will Come by ObsessiveMathsFreak · · Score: 1

    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 VB programing, probably to try some VBA programming. It didn't work out so well, but the key point here is that this guy was a BS student. Not an honors BS student mind. The classic, "booze through college", BS student. Yet, to be frank, in a very real sense, he is a type of computer programmer.

    He creates programs for computers.

    He's able to do this because the languages he used are accessable to him. VBA through macros, spreadsheet commands, SQL through Access GUIs. If you asked him, he never realise he was actually "programming" anything.

    Other people do it all the time. People create filters for their email. Shortcuts on their keyboard. Macros for their games and office apps. Change settings on their microwave or video or cellphone. Use TiVo. They are all creating, or more usually modifing, programs for computers. They just do it in a more restricted, but more accessable way than "real programmers".

    End users need to be able to create programs if they are to really unlock the potential of the computer. They need to be able to easily create the most simple of programs, in a "language" that is so simple they don't even realise it's programming. They're not going to learn BASIC or Ruby. But they just might learn a little "Digital Radio Tuning++" or "TiVo on Rails".

    Fisher Price Programming? Maybe. But it's better than nothing at all.

    --
    May the Maths Be with you!
    1. Re:If You Make It Accessable, They Will Come by Anonymous Coward · · Score: 0

      I know a guy who owns a cabinet shop. I worked there in high school, when his dad ran the place. Then, it was a small-time low-volume shop. Now, he runs the place, and he's turned it into an automated wonderland. Lumber comes in and is barcoded. Software takes in design specs, picks out the pieces of lumber in stock, and optimizes the cuts on it for minimum waste. Automated saws cut everything out, tag it, and track it from cutting to final assembly.

      A lot of this automation was purchased in the form of new machinery, but the "glue" that holds the place together (supply room inventory control, retrofitted automation on old equipment, speech synths that talk to workers, etc.) was all designed and coded, by him, in VB. He's not a developer, and I'm sure the code he wrote is something a L337 hAx0r might scoff at. But the end result is totally kick ass, and far more impressive to me (a C++/Java developer for 15 years) than some gay-ass chat application.

  37. OOP and Non Programmers by yintercept · · Score: 1

    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 blurry. Every company I've worked with has had people engaged at different levels in the process.

    1. Re:OOP and Non Programmers by AKAImBatman · · Score: 1

      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 to quantify any performance boosts in OOP development.

    2. Re:OOP and Non Programmers by kimgkimg · · Score: 1
      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 to quantify any performance boosts in OOP development.
      OOP has definitely achieved the structuring goal. We are now capable of designing and visualizing larger and more complex systems with more reliability then we've ever had in the past. This is due to the level and quality of the tools available and also to the engineering concepts like OOP, UDM, etc.
    3. Re:OOP and Non Programmers by Anonymous+Brave+Guy · · Score: 1

      That's one way of looking at it. Another is that OOP brings a load of new tools to the table that are abused far more often than they're used correctly, which creates a whole world of bug-ridden, unmaintainable spaghetti code.

      You might make a reasonable case that in the hands of a skilled and knowledgable developer, OOP provides some useful extra tools for structuring code, and I wouldn't necessarily disagree. However, my experience is that the vast majority of developers working on OOP projects do not fall into that category. One could argue that that is a management failing -- these developers often haven't been given even basic training in how OOP was intended to work, so they keep hitting nails with screwdrivers because they don't know there's a hammer -- but this is the situation all the same.

      Similarly, you might make a reasonable case that with good OOP designs, it should be possible to develop tools to support the developers better. In practice, while there are a few neat refactoring gizmos appearing in some editors, we also have abominations like Rational Rose, and I doubt I'm the only one who finds the phrase "round-trip engineering" nauseating these days. Again, the balance is heavily towards the bad side so far, IME.

      As for designing and visualising larger systems with more reliability than ever, I'm not sure that's realistic. OOP systems often have absurdly large code bases, but what counts isn't how big your code base is, it's what that code base achieves. Other styles of coding -- look at languages as varied as Erlang, LISP and Haskell -- have demonstrated far more potential for developing robust, large-scale (in terms of functionality, not code size) applications than OOP has so far.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  38. PERL by turgid · · Score: 1

    programming should be opened out to non-developers.

    Isn't that what PERL is all about?

    /me ducks.

    1. Re:PERL by jonaskoelker · · Score: 1

      Isn't that what PERL is all about?

      No, that's what python is all about: http://www.python.org/doc/essays/cp4e.html and http://technetcast.ddj.com/tnc_play_stream.html?st ream_id=240

      Guido (the creator of python) mentions a story about a taxi driver not much unlike what has been already mentioned about an accountant: a non-programmer fits together a small script that glues together high-level components. I call that programming.

      Also, RMS says in one of his talks: "anyone of reasonable of intelligence can learn how to program. They may not be able to do hard jobs, but they can learn enough to do easy jobs"

      And back in the day, (not too long) before I'd call myself a real programmer, I could still use .bat gotos and javascript document.backgroundColor = chartreuse. Not "real" programming, but in some sense programming none the less.

      Let's not underestimate the programming abilities of "non-programmers" (ignoring the contradiction of terms). But let's certainly not overestimate it either!

    2. Re:PERL by turgid · · Score: 1

      I was being sarcastic.

      PERL is a baroque monstrosity of a language. I've spent years avoiding it, but recently I've been forced to learn it and to "enhance" a previously-written PERL program...

      PERL is incredibly powerful if used correctly, however there is a lot of truth in the old joke that it's a write-only language.

      There are a lot of people writing PERL who call themselves programmers who otherwise wouldn't.

      PERL incorporates all the bad points of scripting languages, FORTRAN, COBOL, BASIC, C and everything else and churns it up into an ungodly mess.

      PERL is useful as glue, in small doses (up to 10 lines_, for text processing, by people who already know how to program.

      If I had my way, everyone would be forced to learn MODULA-2.

  39. No thank you sir by RyoShin · · Score: 1

    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 rewriting entire portions, instead of just adding the features requested (partly because I couldn't do the latter without some of the former.) Granted, I'm no highly-trained expert, but this stuff was just plain bad.

    And this was made by a supposedly "real" programmer in the corporate world (in Coldfusion, no less).

    I say we work on getting people who are already programming, but doing a lousy job, up to snuff before we start letting everyday people into the process.

  40. Because average human is stupid by Dark_MadMax666 · · Score: 1

    Heck even an average code monkey is stupid. He can remember how to follow templates , use crystal reports, use select_ from_where, do for loop and drag widgets in MSVC . But they do not understand anything which goes beyond repeating a few proven formulae's. Good engineering or design? -forget about it . Many of them cant even properly use the tools they supposedly were trained on (you know how to effectively use debuggers, profilers ).I knew quite a few ppl doing databases whose designs were absolutely atrocious - they never could grasp such concepts as normalization ,consistence and good data modeling . About 90% programmers I met have no clue about object oriented design and architecture, yet they think they mastered it because they can grab an event from button press. Granted not all coders are that stupid , but many of them are, and those are professionals ,who supposedly learnt CS in college , and has years of coding experience .

    p.s. Same can be said about other IT ppl .Like network administrators. Many of them have no clue about operating systems , networks ,software - they just know how to properly react to buzzwords . They are pavlov-trained how to use mmc applets, a few web interfaces , ping command and that's it . I met some who couldn't configure firewall even if their life depended on it - Anything which requires even slightest bit of knowledge they contract out - . And that's relatively good ones .Bad ones just ignore problems they are resistant to any new deployment /upgrade/maintenance for the fear of change till the network falls apart completely and/or stops fulfilling business needs.

    Some smart ppl can do some macro coding ,yet majority of them do incredibly stupid things (like pretending excel sheet is database and putting many thousands of rows in it , with lookups replacing select ,resulting in macros which runs for hours and crashes every other time ,while 2 dozen lines statement in SQL on a normal database does same job in 45 seconds )

    And this article talks about average Joe programming ,lol. They are completely lost when recycle bin is moved to different place on their desktop , or a menu item moved a few lines away. Jeez ppl need be realistic.

  41. Heh. When Does "Open Source" Become 'Too' Open? by RobotRunAmok · · Score: 1

    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 for the chuckle.

  42. Actually, its a good idea by helix_r · · Score: 1

    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.

  43. what line? by darkain · · Score: 1

    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.

  44. Fuzzy math by digitaldc · · Score: 1

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

    But if your job or your life depended on it, I think the logical choice would be to go with a hardcore developer.

    --
    He who knows best knows how little he knows. - Thomas Jefferson
  45. It's happening already... by Anonymous Coward · · Score: 0

    Using http://javascript.internet.com/ makes you a DHTML *programmer*? Or do we need more fodder for http://www.thedailywtf.com/?

    Somehow, this scares me...

  46. Obligatory Simpsons Quote... by DFisherman · · Score: 1
    First meeting between Joe Average and programmer:

    Programmer: "So what features should we put in this accounting program?"

    Joe Average: "I want a horn here, here, and here. You can never find a horn when you're mad. And they should all play 'La Cucaracha'"

  47. The line might change, but will not become fuzzy. by Idaho · · Score: 1

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

    Says who?

    The line might change into one between software engineers and 'casual' programmers. The last group are people who previously would not write computer programs, but are now also able to create quick solutions to practical everyday problems. Which is definitely a good thing IMO.

    On the other hand there are what I would call software engineers: people who know how to design and construct software in a well-structured manner, who know what they're doing because they are experienced and know the tools of the trade: the capability to choose the right level of abstraction in their designs, and to select the right programming languages/frameworks etc. for the job at hand.

    I think it is possible to draw a very clear line between people who have these capabilities, and those who don't.

    You could compare it with normal, mechanical engineering: I know the general laws of physics, gravity, some basic things about properties of concrete, wood and steel. Using this knowledge, I could probably build a bridge across the 6-feet wide creek in my backyard (except for the fact that my house doesn't even have a backyard :( ). However, I am utterly unqualified to design, and even less construct any worthwile artifact of mechanical engineering (like, a well-designed bridge crossing a normal river).

    I would say the line between those two is pretty clear-cut, right?

    --
    Every expression is true, for a given value of 'true'
  48. Yeah right by nate+nice · · Score: 1

    I never understood this backwards idea that as time goes on everyone will be a programmer! (when really, there was a time all computer users could program...)

    Has everyone become a mechanic? Has everyone become an electronics repairman?

    The point is most people can hardly turn their computer on. It's getting *harder* for them to use computers as they become more complex. Computer programs have also become much more complex. Therefore computer programming is becoming more and more specialized. Now you have programmers who only program certain types of things and it's going to move this way more and more.

    Until you invent that magical compiler for that magical programming language which "just knows" what to make, this is never going to happen.

    --
    "If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer ..."
  49. MOD PARENT UP by LeonGeeste · · Score: 0

    I totally agree. It's so easy to say, "why aren't more people helping out on open source?" Many people want to, but the programs don't lend themselves to easy modification. So what if I get the GIMP source code? Does that tell me how to find where to modify transformation X and then recompile the whole thing? Honestly -- how many people *who know C++* are capable of actually making sense of the source code for an F/OSS program written in that language? As a fraction, wise guy. If we just made the program code more accessible and easy to understand, torrents of new people would assist on any and every project.

    --
    Rank my idea: http://www.sinceslicedbread.com/node/531
  50. What Shortage? by Nom+du+Keyboard · · Score: 1
    that programming should be opened out to non-developers.

    Gee, are we suffering a programmer shortage? Is anyone being paid big bucks and stock options to jump companies this year? Were recruiters lined up at your door and ringing your phone off the hook with job offers last time you were looking for programming work?

    I don't think we need more programmers yet.

    But this would be great fodder for Dilbert -- Scott Adams are you listening?

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
  51. Linus/Dijkstra by hopeless+case · · Score: 1

    Man, if Linus thought Dijkstra hated him, imagine what Dijkstra would have thought of Mr. Behlendorf.

  52. He's out of touch. by rdmiller3 · · Score: 1
    I think it's good that this pontif of Mozilla code has deigned to allow mere mortals to contribute. The author of the article is likewise to be lauded for his gracious treatment of the average user. Unfortunately, both of them are so far up in their ivory tower that they've lost touch with "the average Joe".

    Joe User doesn't even know how to make an Excel Macro.

    Joe User thinks computers are "magic".

    Joe User and all his buddies laugh beer out their noses after one of them gives the local nerd a wedgie.

    Even if you teach Joe User to write code, he will never care whether the code is Good.

  53. If You Make it Accessible, They Will *** The Pooch by harborpirate · · Score: 1

    What you say is true, but there are two fundamental problems:

    1) These types of users sometimes attempt to create a fully realized system. Then when it gets beyond 40 users, and it starts tanking (recent real world example), then what happens? Either they're just hosed, or they have to call in the big guns - real Application Developers. We usually find its easier to start from scratch than attempt to work through the code to figure out what exactly it does. I can't tell you how many of these I've seen in a production environment.

    2) More importantly, in many cases, management thinks these guys know what they're doing. They manage to create some little access process that stores a few thousand rows of data, with an Access Report frontend, and suddenly these guys are "Programmers". Then they give them an assignment that ramps up beyond a few hundred thousand rows, the "app" blows up in their face, and now there is a great big emergency and my team suddenly gets a priority shift to replace the stupid Access process in an unrealistic amount of time.

    Access, excel; they're great as long as you stay under a certain level of complexity. Most users/corporations don't know where that line lies, and when they step over it, the consequences are often disasterous.

    --
    // harborpirate
    // Slashbots off the starboard bow!
  54. Allow any idiot to write code... by ptomblin · · Score: 1

    ...and you'll get a lot of idiotic code. Hell, it's hard enough finding trained programmers who don't write idiotic code, I can't imagine untrained "Joe Users" using consistent design patterns and not reinventing a lot of square wheels.

    In order for bad code to get "feedbacked" into good code, it will have to be read and understood and commented on by people who have the skills to have written it in the first place. Who is going to do that to "Joe Users" code when they could be more productive writing fresh code in the first place?

    --
    The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
  55. Dumbass by Mundrid · · Score: 0

    Did he ever actually ask himself if the average Joe WANTS to do this?

  56. Whoa? by j0e_average · · Score: 1

    How about asking me first?!?!

  57. I agree. And disagree =) by Weaselmancer · · Score: 1

    Joe or Josie Average can barely walk and talk on a mobile phone at the same time.

    I agree 100%. This is why they make "hang up and drive" laws.

    but keep them out of programming before it dilutes the talent pool even more.

    And I kind of disagree here. I think having a lot of crappy programmers out there will dilute the talent pool - but that's a good thing for us.

    Let's say ABC Corp. wants to hire a new programmer, but back in 1990. Odds are (because the pool isn't so diluted yet) they can find a decent one fairly quickly. Now fast forward to today with the diluted talent pool.

    XYZ Corp. wants a programmer. So they hire one at $X, which is the going rate. And odds are, he sucks. If you've ever hired a few paper MSCE guys, you'll know what I mean. So XYZ is going to have a much harder time finding someone who can actually get the job done. After wading through a few lousy programmers, if they have even a half a clue they'll up the salary once they find someone who actually can do the job. After a few bad experiences XYZ will learn that paying a good salary is far preferable to hire-fire-get nowhere.

    And as far as I can see, this will be the trend. To illustrate the point, I have a BSEE and write software drivers for a living. Not too long ago I was thinking about going back to school and getting a Comp Sci degree, since that was what I was basically doing anyways. And found out my university had changed their core programming language from C to Java. I bailed. My first thought was "who the hell is going to do the next generation of drivers and low level code?" Not this lot, I can guarantee that.

    The next generation of programmers are screwed. Before long, a prerequisite to a decent programming job will be grey hair. You watch.

    --
    Weaselmancer
    rediculous.
  58. Superb idea! :) Send the gold-plated BMW's to: by Ancient_Hacker · · Score: 1
    Yes! YEs! YEs!

    Everytime somebody writes some VBA or Excel macro code, another consultant gets a BMW.

    All you GOOD programmers out there-- think back to the first year of programs you wrote back when you were not much more than an average Joe. >

    For all the Joe's out there: Anybody can carve a steak, but that doesnt make you a brain surgeon. Anybody can write one or two lines of code. But somewhere around 4 lines, things start to break or act funny if you don't know exactly what you're doing.

  59. Not that difficult... by randyjg2 · · Score: 1

    Try taking a look at the current crop of SEDA style ESB's like Mule. Programming a sophisticated, scalable, application is nothing more than wiring components together.

    Its been 20 years since the idea of "Software IC's" was proposed, but I think we are getting close.

    Of course, if non programmers wanted to program, they would be programmers.

  60. programming should be opened out to non-developers by melted · · Score: 1

    >> programming should be opened out to non-developers

    Anyone who worked in a large software company (such as Microsoft, for example) knows this is already so. There are tons of people who can't write good code to save their life and have only one skill - they excel at brown-nosing. And they do pretty well. They do drain life out of those who can code, so if their percentage increases beyond certain threshold those who can code leave for greener pastures and projects fold.

  61. Hypercard ? by DichotomicAnalogist · · Score: 1
    I seem to recall a tool called Hypercard. Programs were mostly written in natural language, user interfaces drawn rather than coded, the environment was written in Hypercard, you could develop components and share them without difficulty, script most of your applications, deploy, add features, etc. And all of this was targetted at non-programmers. If I recall correctly, it was a huge success until Apple tried to remarket it.

    So, is it time for a new Hypercard ? I'd say yes. Do we want to make it Ajax ? Probably not, or at least non-visibly. JavaScript and XML have terrible syntaxes for non-programmers and way too many pitfalls for everybody's good. But yes, I'd say now would be a good time to reintroduce L4Gs, preferably open-source. Heck, if anyone is willing to start a project on this, please contact me, I'd be interested in joining.

    Oh, and just for the sake of design, I'd say that this language/ide would need

    • an environment easily customizable with itself
    • dynamic typing, with clear error messages
    • optional strong static typing, with clear error messages, too, presented as an automatical "check this program" tool
    • a nearly natural language syntax, both for programs and for data
    • perhaps several applied syntaxes, with non-lossy conversion from one to the other, say for programming in your native language even if it's not US English -- that's actually much easier to do than it sounds
    • an extendable syntax -- I don't really know how, perhaps with a beginner-targetted variant of Lisp-style static introspection
    • optional data structures
    • no visible compilation process
    • saving projects under a form which would both contain the executable (if the user "double-clicks" on the package, the program should be executed), the source and resources (if the user opens the package from the ide), and optionally the dependencies
    • Ajax, yes, but hidden behind a nice beginner-oriented language -- no beginner wants to mess with asynchrony, especially in JavaScript, much less with improperly implemented closures, and no beginner should have to know any of the actual xml details, that's for the computer to handle
    • a nice semantic model of the language would probably make it easier to develop the "check this program" options, but that might not be a priority
    • a number of Joe Averages taking part in the design process
    • verbosity is not a problem
    • speed and memory-consumption are no issues.

    Anything else ? Anybody interested ?

    --
    This troll is over. You can now resume a normal activity.
    1. Re:Hypercard ? by rivercityrandom · · Score: 1

      IIRC, there were a number of IDEs that mimicked or emulated HyperCard's model of programming, most notably Revolution and SuperCard, but the sticker price and the extra complexity built into them for writing "modern" software kept them out of Joe Average's reach. I would definitely support any project that wanted to put programming back into the hands of the "masses." I believe that programming is an essential skill to learn and a great way to teach people that computers are not mystery boxes that break if you push the wrong button, but tools you can use to design tools to get jobs done. And something like HyperCard or Visual Basic, designed for the "average user" in mind, might be just the thing.

    2. Re:Hypercard ? by Anonymous Coward · · Score: 0

      Apple seems to have forgotten the lessons of yesteryear. What I would like to see is a programming environment that combines the best features of:

      o HyperCard
      o OpenDoc
      o ResEdit (yes, ResEdit!)
      o Filemaker
      o HTML/JavaScript
      o Java/Swing
      o MS Access/VBA

      In other words, an integrated document object, multimedia and database model with a GUI IDE, event-triggered code, simple scripting language syntax, good on-line help, and portability.

      Anybody have an idea what code base it should be built on?

  62. That's what Visual Basic is for. by Animats · · Score: 1
    Visual Basic was supposed to do exactly that. And, to some extent, it did. Many little but important business applications were written in Visual Basic.

    Microsoft managed to extend it into a monster, but that's Microsoft. (Visual Basic, like FrontPage did not come from Microsoft; those were acquisitions.)

    It's amusing that the Wikipedia article for "Mashup" begins with "To meet Wikipedia's quality standards, this article or section may require cleanup."

    1. Re:That's what Visual Basic is for. by tomq123 · · Score: 1

      Microsoft didn't actually buy Visual Basic, the bought the concept and a prototype but not a fully functioning language. Microsoft already had complete Basic Compiler that the merge with the prototype to create VB DOS. From there, they created VB 1.0, VB 2.0....

  63. Explain it like I'm a 5 year old by xoip · · Score: 1

    Ok...The average Joe can't program a VCR perhaps thats why we now have DVD's.
    As development gets dumbed down, it lets guys like me kludge together stuff but, for the average person, they have no interest in programming anything.

  64. im gonna go watch tv by bxbaser · · Score: 1

    and let my cat finish my code

  65. 4GL by yintercept · · Score: 1

    Joe Public was able to create some rather complex database applications with the Paint Feature in Advanced Revelation. It seems to me that many of the DOS based 4GLs were starting to live up to their promise. The hype of 4GL was only a little bit beyond its reach.

    The advent of OOP was accompanied with a large number of business articles about how OOP would re-engineer the whole world. There were quite a few books like Taylor's Business Engineering with Object Technology that were promising a complete transformation of the business world. I had attended several presentations that suggested business leaders would learn to speak UML and out would pop full robust applications.

    While the techology itself was not overpromising. There was a substantial amount of pie in the sky hype in the business community.

  66. Re:Heh. When Does "Open Source" Become 'Too' Open? by Anonymous Coward · · Score: 0

    Actually, job security would probably be assured in the situation he describes. Anything "Joe Average" writes, beyond a certain level of complexity, would be so bug ridden and inefficient as to be unusable. So complex code would either require a trained (or talented self-taught) programmer to write in the first place, or require the same programmer to debug (usually rewrite) the crap churned out in the first place.

    Worst case scenario, slightly less overhead is involved in the process (less managerial and "process" jobs) if Joe Average can code well enough to give the skilled programmer an interface model for the program.

  67. The illusion of productivity by wcrowe · · Score: 1

    Back when computers were new to the desktop people would spend all day long f**king around with them trying to get something to work to produce results that could have been done by hand in a shorter period of time.

    Managers would spend all their time dinking around with their computers instead of managing. It gave the illusion that they were busy, busy, busy, but in reality the amount of work that was actually getting done was dismal. I saw more than one perplexed manager get dumped this way.

    I don't think people are as deluded today. Of course the software is better, and people are smarter with it, but when something special comes up, people are more willing to delegate it to those who can deal with it, and content to wait for the results. That's the way it should be.

    --
    Proverbs 21:19
  68. I'm the Average Joe by hanksims · · Score: 1

    There could be something to this. Until this year, my only experience as a programmer had been in high school. As in, I wrote BASIC scripts on my Atari 800. It was a big part of my identity at the time, but it hasn't been for about 20 years. Now, all of a sudden I'm finding myself doing all sorts of things for the small company I work for. I'm just finishing up a medium-scale system that will track our fairly complex accounting systems. I took it upon myself to do this: A) because I saw how inefficiently it was being done previously, B) we can't afford a real programmer and C) I saw that I could do it, even though I haven't been in the programming game for ages, because I had started toying around with Rails just out of curiousity. I'll admit out front that any of you could probably write the application I'm building more quickly than I could, and in the language/platform of your choice, and it would likely look a lot better and more flashy than my version of it will. But my version functions perfectly so far, and it'll still have some advantages. I know our needs first-hand, so I know going in what we need done -- we don't have to explain things to an outsider. Down the road, if we need to tweak or extend it, I'll be able to do it myself. How much of this is due to Rails and how much is due to the fact that there was a buried little programmer inside me itching to get out -- that I don't know.

    1. Re:I'm the Average Joe by Anonymous Coward · · Score: 0

      when i do rails i find it hard to program

  69. Darn right! Mod up by Anonymous Coward · · Score: 0

    This is absolutely right! I personally had to deal with a monstrosity of a user-developed Access database that was "unofficial" at one of my previous clients. The time wasted on support was unbelievable - tens of thousands of dollars. Some of the neat things we had to deal with, were things like a person's name being stored in one field instead of first, middle, last. You know...database 101 crap. And the reason we had to deal with that is because that's how the database started. When users are involved in development, you have to deal with BS like this. With experts, you don't. That's why we call them experts. They know most of the "gotchas" (or at least they try to know).

    The company? A fortune 500 power utility company. The application? Their entire bill-generation system. Scary. But 100% true.

  70. Using Frontpage made you a HTML *programmer* so. by HornWumpus · · Score: 1
    Javascript _would_ make you a DHTML programmer.

    Though, to be fair, you'd need an understanding of DOM as well.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  71. As An Average Joe, Just Let Me Say by Anonymous Coward · · Score: 0

    . . . Access is teh bomb!

  72. Why would Average Joe want to code? by Gibbon · · Score: 1

    I have a degree in Computer Science and worked for about 5 years as a software developer for an aerospace company. I then went back to school and did my MBA. I am now a business manager at a college. Yes, I have now become Average Joe.

    In my new Average Joe life I find that have almost no reason to program what-so-ever. Sure I can write C++ code but since I went back to school I have only had the need to write the occassional Excel macro (and only about one a year at that).

    The point is, that while it may be possible to build tools that allow Average Joe to program, he has no need to. Yes it might make software development easier - but don't tout it as a means to bring the non-developer into the fold.

  73. Mashups? by BoRictor · · Score: 1

    Whoever decided that calling these things Mashups should be taken out back and shot. Whenever I read that word my brain does a little fart and I think that I'm a little bit stupider for it.

  74. Average Joe approach == lame "solutions" by EraserMouseMan · · Score: 1

    The thing that makes a programmer valuable to a company is that they design their solution. They don't just hack something together real quick for the boss to make themselves look like a genious.

    I work as a software developer at a very large company. It just sickens me when a manager contacts our team and asks something like this, "Hey, I was going to have one of my employees throw something together real quick in Excel but I'd like it to be more dynamic and on the web. Can you make a quick web version for us?" First of all the "quick" version is just that - a Band-Aid. If it is to be done right a few days of thought and design is required before any code is even written.

    MS Office solutions (Excel/Access) amount to only poor working prototypes. They rarely support more than 1 user and security, performance and maintainability is aweful. It also gives the illusion that software development is quick and easy.

    A good software developer will develop a proper solution to the problem not just a simle spreadsheet macro or MS Access program.

  75. Can't you just do it for me? by xee · · Score: 1

    No matter how "easy" you make something, people will inevitably figure out a way to not have to do it. As has been pointed out by other posters, there's a certain capacity for programming that the "great programmers" seem to have but the wannabes don't. So what if more people begin to use application scripting or visual markup languages? Who cares?

    There's some special characteristic of natural languages that make them more expressive than the artificial formal languages used in science. Although the natural language is more expressive, it also allows for ambiguity, which programming languages do not. I believe that in order to be a competant programmer one must be able to think and reason formally in one's own natural language. Many speakers of English I have met who claim to be "hackers" can not even write a program in English. The idea that, in a dialogue between two people, one can beg for understanding with a phrase like "oh, you know what I mean," does not fly when your interlocutor is a machine. This simple fact alone is enough to frustrate all but the most determined computer programmer, regardless of the task at hand.

    Anyone can learn to program, but it takes a lot of hard work, and it helps to start when you're young. You don't even need to know a "programming language" to be a programmer, you just need to know how to write a program, especially in your natural language. Learning the syntactic translation from your natural language into programming-language-X is like learning how to set the microwave timer. Learning how to cook food is a lifetime pursuit for most people, but it can be done in a matter of months or years with a little bit of talent or effort. Once you know how to cook food, learning how to set the stupid little timer on your microwave is a piece of cake.

    And another thing, also already mentioned in other posts... What the hell is up with the buzzword bonanza in that article? Some of the more buzzword heavy sentences don't even make sense to me. Could that be a bit of irony? As if to say "yeah, even the author of this horribly written article could be a programmer".

    --
    Oh shit! I forgot to click "Post Anonymously"...
  76. Joe Sixpack Agrees by Anonymous Coward · · Score: 0

    "the average joe knows how to divide and use fractions you elitist snob."

    Know doubt. The GP underestimates the average Joe. In fact, I recently read that 5/4 of all middle-school students have mastered fractions!

  77. Re:Superb idea! :) Send the gold-plated BMW's to: by Happy+Lemming · · Score: 1

    Seem to recall that only 3% of college freshmen have the mindset to code anything non-trivial. That means there are at least six billion ape descendants out there who should never, ever be allowed to write a program.

  78. That's the Problem Now! by Prototerm · · Score: 1

    The problem is there are too many "Average Joes" *now* who either think they can write programs, or who think they can manage programmers. Many of these people are so totally clueless it's pathetic. Part of the problem is Microsoft who leads the way by its terrible example:
    * Ship a program with known bugs, and act surprised when the customer finds it. Gives them more time to figure out a fix, you see.
    * Deadlines and ship dates are made by the Marketing Department, or Customer Service, not Engineering.
    * The first thing to be eliminated when facing an impossible deadline is testing.
    * No functional or technical specs: tell new programmers to "just read the source code: everything you need to know is in there". Also known as "I'm sorry, EU, but we can't share any documentation for our protocols, because all we've got is the source code"

    The worst Average Joe programmer problem I've seen (and it's common):
    * Bad Visual Basic programmers who think they can write good, working OO code ("What do you mean I'm not supposed to use GOTO?")

    Now, if you'll excuse me, I gotta take a core dump...er...I mean I gotta take *care* of a core dump...

    --
    "My country, right or wrong; if right, to be kept right; and if wrong, to be set right." --Senator Carl Schurz (1872)
  79. Sounds like another argumet for off-shoring by Anonymous Coward · · Score: 0

    Let Joa Average Code. Let underpaid indians code (or run your call centre, or maintain your systems). At least the indians are trained, even if they show no initiative and act like computers themselves (do only what is asked, or perform exactly to the documented process, and nothing more).

    Any day now, actual talented programmers will be relegated to being hermits, perhaps writing open-source systems for the hack value, and a very lucky few may be able to feed their families from it. The rest will be making a living as high-rise window cleaners, staring at all the Joe Average coders in their former offices, who in turn are staring at Windows displays of Minefield 2007 and not actually coding at all.

  80. Idiocy by roman_mir · · Score: 1

    Why would any good developer want to waste his/her time rereading/fixing/suffering from the same garbage over and over and over and over and over again. Because that is what you are going to get when you let a bunch of non-developers 'help' you with a project.

  81. More != better by EmbeddedJanitor · · Score: 1
    I don't think that opening up is always a good idea. The top programmers get diverted from writing good code into marshalling a bunch of monkeys. Then when you trash somebody's crappy contribution you start a flame war and that sucks up even more time and top programmers' efforts. Not only does code quality go down, but quality of the mail lists etc goes down too.

    A small amount of good code is worth a lot more than volumes of crap.

    --
    Engineering is the art of compromise.
  82. Deceptive headline by yoinkityboinkity · · Score: 1

    I think the headline of this article is simply deceptive in order to bring in the sort of publicity that the article has already received (say, from slashdot?) because he is not saying normal people should program, he is saying normal people are now able to get results similar to programming from things that programmers are making. Including users in the "development process" is vague enough that it doesn't mean anything. That could just mean that your salesman has to talk to the users and tell you what they want. Hey, they've been included. The practice of having a headline that says something only somewhat related to the actual content of the article is starting to become more commonplace. These kinds of articles get more buzz, because they say that the article contains content that is more interesting than it actually does. The content of the article itself is simply too vague to be saying anything of real value.

  83. Every managers dream by br00tus · · Score: 2, Insightful
    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.

    1. Re:Every managers dream by bbehlen · · Score: 1

      I don't think the writer took my words out of context or added too much spin - I think he basically got it. My only regret was that the term "Average Joe" was probably read by everyone well beyond the context we spoke in. I can't remember if I used it first or if the reporter did, but we weren't talking about the people who can't program a VCR. I would include in that category, though, Joes and Janes who in 1994 were using Mosiac's "view source" function to learn HTML and write their own pages. Or Joes and Janes who create animations in Flash. Or Joes and Janes who are creating more than mere wiki pages on WikiCalc or JotSpot.

      Most of these people have never heard of compilers or CMM levels (bless 'em!). But they are programmers. I'll hesitate to call them engineers, only because that word should be saved for people with both formal training and certification; though I would wager that most people reading this comment with "engineer" in their employment title have neither of those.

      The point I made to Phil, and that I think came out in the article, is that these Average Joe "programmers" are starting to work with each other, and with the "expert professionals", to create some very interesting things, both publicly and privately. If you're against that notion - that programming is a monastic science that requires years of experience before you're allowed to subject others to your work - then you're not only against the concept of Open Source, you're against what made the web successful ("view source", anyone can write HTML).

      Brian

  84. Worst idea, ever. by jferris · · Score: 1
    We already have to put up with people who don't know about code telling us how to code - they're called "Project Management", "Quality Assurance", and "Marketing". Being a software developer is becoming more and more a position that diplomacy skills are required because of the techno-jargin that the aforementioned groups latch on to.

    I remember when the Marketing team would tell the Project Management team what they wanted, analysts would spec it out, and developers would write to the specs. Then Quality Assurance would test it. There is a growing trend that Marketing believes that any change in the specs go directly to a developer, Project Management believes that you really aren't coding as much time as you are logging and thinks that throwing the coolest new programming concept is the way to go, and Quality Assurance no longer wants to just find out what doesn't work, but wants to see the code to help you find problems.

    Everyone wants a hand in the development at one point or another so that they can get credit when it goes right, but crap on a developer the second something goes wrong.

    --
    You are in a maze of little twisting passages, all different.
  85. Welcome to 1962 by Duhavid · · Score: 1

    When they said that Cobol was so like English that
    just anyone would be able to code in it.

    --
    emt 377 emt 4
    1. Re:Welcome to 1962 by Tim+Browse · · Score: 1
      When they said that Cobol was so like English that just anyone would be able to code in it.

      ADD TROLLING TO DUPES GIVING SLASHDOT

    2. Re:Welcome to 1962 by Duhavid · · Score: 1

      PERFORM RefreshSlashdotReadTopArticleAndPost UNTIL FirstPost

      --
      emt 377 emt 4
    3. Re:Welcome to 1962 by hesiod · · Score: 1

      OH, SNAP!!! You make an excellent point. Just because we (as experienced programmers) think something is simple (even if it is, sort of) doesn't mean it's actually simple to use for the end-user.

  86. I've made a living re-factoring idiots code by HornWumpus · · Score: 1
    Of course the idiots were Phd mathamaticians who actually did have some value to add (generally not as coders). On the plus side it was easy to develope a reputation as a miracle worker (e.g. 20th person thru a block of code looking for speed, got about a 15x speed improvement. They had been looking for speed but none of them knew how to read a query plan, though one particularly dim bulb wrote his masters thesis on query optimization. Ack!)

    You just had to keep them well away from compilers (other then FORTRAN), any sort of project management software and most especially Access.

    I'm sure I will smoke many turds in purgatory for teaching them how to OLE automate their crusty old Access apps. Thereby allowing them to kid themselves into thinking of them as Objects they are reusing. Which is in a sense correct. They're amazing brittle, high overhead objects from hell's annex (Redmond). They continue to run them today though I've long sense run away. Nothing that gets installed on a customers computer will ever just go away, you need to hunt them down and kill them or someone will be supporting them forever (the herps forever, not marriage forever).

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  87. Imperial Measurements by Anonymous Coward · · Score: 0

    Hey! Don't make fun of Imperial Measurements! They actually are functional, in that they require the "Average Joe" to do less thinking.

    Ever wonder why 12 and 60 were "magic" measurement numbers? It's because they've got lots of factors, so you don't have to deal with lots of fractional values. For example, 12 can be evenly divided by 2, 3, 4 and 6 (yeah, I realize that 2x3=6). 60 can be even divided by 2, 3, 4, 5, 6, 10, 12 ... and so on.

    All this helps people like carpenters avoid evil rounding errors - something all geeks should be more than familiar with.

    Imperial Measurements are a good thing, with very pragmatic reasoning behind them.

  88. Or you can think the opposite by El+Cabri · · Score: 1

    I think that many people who are programming today, and even leaving code long term deep into production systems, should be kicked out of the field, when they don't really know what they're doing and have had a two years training of "programming-is-a-bit-like-spelling-out-a-cooking- recipe" style Java drill.

    Programming requires an intellectual discipline, and an understanding of abstract mathematical concepts that is just not anybody's. Then we'll see systems working much better.

  89. ..and from the same think-tank: by JustNiz · · Score: 1

    >> programming should be opened out to non-developers. ..and from the same think-tank: Brain Surgery kits could be sold at Home Depot

    1. Re:..and from the same think-tank: by Cyno · · Score: 1

      Programming is a lot easier than brain surgery. For example, I program. I can write Perl, C, Java, whatever. I can do it after I've smoked two joints. But I'd probably kill any patient if I attempted brain surgery.

      I programmed when I was a kid. I see no reason why kids can't program. They don't need to go to school to do it, all they need is access to the code.

      But being an American I can see how you think the average Joe can't program. They can barely read and write. I'd be surprised if they could type or use a mouse.

      But why do we let them drive cars? Why do we let them outside? Shouldn't they be locked up in a padded room for their own protection? They are a danger to themselves, let alone the rest of us.

      We should force them to go back to school and learn something while they're there, then encourage programming once they're capable of comprehension. And once they can program we can give them back their driver's license and diploma.

  90. Developing a solution is more than programming. by kimgkimg · · Score: 1

    Sure any monkey can program, but there's a world of difference between hacking out code and architecting a solution. Just as in the real physical world, anyone can put together a bridge, but when you really engineer something you take into account other things that contribute to the lifetime and integrity of the solution. For making physical bridges this might include materials science, physical design modeling, stress analysis, usage modeling, etc. For software development this includes data modeling, business workflow analysis, network/load simulation, data performance analysis, etc.

  91. Re:I agree. And disagree =) by dubious9 · · Score: 1

    Not too long ago I was thinking about going back to school and getting a Comp Sci degree, since that was what I was basically doing anyways. And found out my university had changed their core programming language from C to Java. I bailed.

    Computer Science doesn't teach you how to program. CS teaches you how to think like a computer scientist. The core language taught is immaterial. For example: Big O notation is the same in C or in Java. Data structures don't conceptually vary. Doubly linked lists are doubly linked lists. You would fault the CS program for abstracting away from implementation (i.e. a higher level language)? Getting a CS degree will make you a better programmer no matter what language it uses

    Disclamer: I majored in Computer Engineering and hand optimized token ring networks and constructed CPUs in VHDL on FPGAs before I learned Swing. Now I am a Java programmer. College teaches you *how* to learn, not what. University!=trade school.

    --
    Why, o why must the sky fall when I've learned to fly?
  92. Hiring developper by El+Cabri · · Score: 1

    If I had to interview people for a developper position, here's what I would do : I would ask them to write a "sort" function, preferably in whatever language they would be assigned to work in. And then I would review their code with them, not really paying any attention to whether the thing actually works or compiles or not. What I would ask them is "tell me why your code works". From there:

    - VERY BAD ANSWER : "It works because look, I wrote a quicksort"
    - QUITE BAD ANSWER ": "It works because it compiles and look, I give it this particular list and lo! I get a sorted list back."
    - SOMEWHAT REASSURING ANSWER : "It works because I wrote this test unit and I analyzed the range of possible inputs and generated this stimulation set that covers all the border situations".
    - WHEN ARE YOU AVAILABLE TO START ? : "It works because what I want is for the resulting list to contain all the entries in the input list, and only these, and that I want each element of the resulting list to be less or equal to its successor. When I call function qsort, as you can see here this particular line in my code means that the result will have its pivot in the right position, so by applying this invariant recursively, etc..."

    1. Re:Hiring developper by Musc · · Score: 2, Insightful

      I don't understand your reasoning at all.
      If I were asked 'how does my program work', and in fact I had implemented quicksort, why would I first
      tell you the definition of a sorted list, then start going through the details of my algorithm?
      After a while you might realize that I had implemented quicksort, but wouldn't it have been much
      easier for me just to say "I used quicksort"?

      Now, if you indeed want to probe my knowledge of sorting algorithms, to make sure that I didn't
      just memorize some code and parrot it back, you could ask me "ok, great, quicksort, now why did you
      choose quicksort, and how does THAT work"?

      And your other possible answers about "it works because I tested it", are also reasonable first responses,
      it is just a matter of how exactly you phrased your question and how the question was interpreted.
      Maybe "why does it work" sounds like it means "how do you know it worked"? In that case,
      "because I tested it" would be the logical answer.

      --
      Hamsters are at least as feathery as penguins. HamLix
    2. Re:Hiring developper by Senzei · · Score: 1
      So for you job qualification is being able to answer simple questions in excruciating detail? :)

      I would argue that saying "It compiles, (syntactically correct) handles expected input correctly, (performs desired function correctly) and correctly discards invalid input." (good error handling, etc) is a perfectly good answer. Demonstrating that the code meets these three requirements should be sufficient to say: "Yes, it works".

      Now if you wanted to get into optimization methods or something then yes, bring on the details, but in my opinion being able to give a succint but still correct answer is better than everything but the kitchen sink explanations.

      Note: didn't mean to go off on you about this, just pointing out what I think hiring criteria should be.

      --
      Slashdot: Where anecdotes and generalizations can be freely substituted for facts, logic, or intelligence
    3. Re:Hiring developper by larry+bagina · · Score: 1

      I think his point is that being able to formally, mathematically, prove your code works is the best way to show it works. Which is nice for your 2-line recursive factorial function, but useless in the real world. Quoth the Knuth: ``Beware of bugs in the above code; I have only proved it correct, not tried it.''

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    4. Re:Hiring developper by cperciva · · Score: 1
      If I had to interview people for a developper position, here's what I would do : I would ask them to write a "sort" function, preferably in whatever language they would be assigned to work in.

      If that's all the instructions you give them, I wouldn't hire anyone who even wrote a single line of code. If you were interviewing me, I'd want at very least the following questions answered before I'd touch a keyboard:
      • How many elements would typically need to be sorted? Three, three thousand, or three million?
      • Can I expect the inputs to be randomly distributed?
      • How fast does the code need to be?
      • ... On average, or in the worst case?

      If you're only going to sort three elements, a bubblesort is all you need. If you need good performance when handling worst-case inputs, you should only use quicksort if you're picking pivots randomly. If you need to sort three million elements and performance is critical, you'd better pay attention to cache effects.

      Writing working code which solves a problem is easy. Writing working code which solves the right problem is much harder, and starts with obtaining a good definition of what the problem is.
    5. Re:Hiring developper by El+Cabri · · Score: 1

      I don't think it's useless in the real world : first, complete formal validation of software is used in the real world for critical systems, even though it's considered anti-economical to use it for general programming. However it's more a matter of attitudes than of fundamental methodologies. And attitudes are shifting. I work at a semi-conductor company in the domain of formal hardware validation, and researchers here have noticed a significant academic brain drain from h/w validation towards formal software validation since Microsoft put its chips in it.

      The Microsoft example is significant when I speak of "attitudes". The point is not to have every programmer mathematicaly prove properties on each and every function they write in an application (although core libs and OSs could be subject to that). The point is to have people with a _perspective_ of understanding what they write rather than an attitude of cutting-and-pasting "patterns" or algorithms from textbooks. What MS has stated is that they were doing this attitude shift.

  93. Been there, done that. Access apps are a symptom. by HornWumpus · · Score: 1
    But you miss an important point.

    Access does'nt just blow up 'one day'.

    It blows up more and more regularly untill one day it won't run at all.

    So for it to get really bad, they have to ignore the fact that they have been working around bugs often for years, for example, falling back to a nightly online backup of their key Access database about once a week. Competent managment sees this as a problem and has a replacement in place before the Access/Excel process fails completely.

    Sometimes just importing all the objects in their app into a fresh 'database' will buy you the time to build a replacement. Just don't let them think 'With this new workaround we'll be able to continue running billing in Access for years more!' If they've let it go to the emergency stage they'll likely try. Watch carefully, find the weasel, corner the weasel with his/her boss in a private meeting, be carefull.

    Back to my main point. Access apps in key places are only one symptom of a chickenshit organization. Scratch a little further and you will find many more. Never be employed by such places, contracting for them is another question.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  94. Re:Average Joe approach == lame "solutions" by LuisAnaya · · Score: 1

    But yes, my college professor once told me that there is a "Software Misunderstanding" in which the software development process is underestimated. That's why you have Mr. Pointy Hair coming in and asking Mr. Tech to cook up something quick just for him to have something to write in the performance review. Or when you have a bachelor's in CS and compete against 2 year programming school technical programmers for the same jobs. Or when you see listing in your favorite job hunter website asking for somebody with a MSCS, know how to code device drivers, create programs in Open GL, known system administration in S-390, Unix, Windows, MacOS and BeOS; known 4 different RDBMS and get paid 20K a year. Regrettfully a lot of managers do not understand what it entails to provide good quality software other what they learned in school or while managing a pig farm.

    I also think that everything has its place. Full blown commercial grade software must go through software implementation methodology, being this Traditional, Extreme Programming or any other new programming paradigm that some MBA clown comes up with.

    But, there are times that you need something simple that you want to use to solve an immediate need. I think that when Average Joe could concentrate into realistically learning how to solve his/her computing problems using easy RAD tools. Nowadays basic computer understading is taught through schools, I do not see this as far fetched and RAD tools have been available since time inmemorial. I think that at this end, this might be a realistic goal for Average Joe if they do not want to become computer scientists themselves.

    My 2 cents...

    --
    Vi havas e-poston.
  95. RTFA by Anonymous Coward · · Score: 0

    You've missed out on top-spot anyway, so why not go read the article before you post?

    First, this is in no way "novel" or "new". It already works (sometimes it's called Open Source, although that's not what the article is about), and in my mind works a whole lot better than programming what you think the users need and then getting complaints because you was dead wrong (as you always are since there is no "avarage user" and even if it where chances are that the "avarage user" is not you).

    Second, nowhere in the article can I find the part where he suggest that you just let Joe Avarage hack away at what he likes to "make better" ( =screw up). There are parts of a program that will be easier to program and stuff that probably require a team of hardcore devlopers to do properly. Let the hardcore developers concentrate on the stuff they're needed for, and chances are they will do this better than if they had to do all the boring stuff they've done a hundred times before.

    Third, you might have missed it, but there's actually a whole lot more to software development than just hacking code. Designing user interaction and interfaces comes readily to mind, since most programmers outright *sucks* at this, but why not help those willing to do boring stuff like testing or documenting program? I know I would be glad to have someone do this stuff, but what do I know, you might think that's the best part of a project.

    Fourth, people are usually more content with what they've helped create, so this is in fact a great way to keep the end-users happy (assuming this is in-house development, but that's what I think the article was about).

    Now go and be elitist someplace else!

  96. Um no? by Drakin030 · · Score: 0

    "Let Joe Average Help You Code" No cause I want to keep my job.

  97. The Wikipedia model applied to programming? by DiamondGeezer · · Score: 1

    Not even Wikipedia is that stupid as to apply it to MediaWiki. We should try it with Slashdot:

    Slashdot: News for Nerds. Stuff that badger badger badger

    [This website is a stub. You can help Slashdot by adding to it]

    --
    Tubby or not tubby. Fat is the question
  98. Let Joe Average Help You Debug... by mattypants · · Score: 1

    ...then we'll see who should write software.

  99. Will this by Millenniumman · · Score: 1

    Will this be before or after Joe Average learns what an application is?

    --
    Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
  100. Lowest common denominator effect by mattgreen · · Score: 1

    I'm sure this will take off. Let's think of a time when someone decided to market a language on the basis that anyone could understand it...oh yes, Java! It is the paragon of expressiveness and power! And super simple to boot!

  101. Programming will not be a programmers job by PietjeJantje · · Score: 1

    Eventually, programming will not be a programmers job. Like in Star Trek (bear with me...) in the end it will only be about concept and getting the point across to the computer. I think when Joe comes in with non typed higher level languages, this is just a step towards that. It's just evolution. However, there is not much new in it. 1982 BASIC as mentioned above is less complex than Joe's tools today the guy is talking about. Also, remember that Joe's stupid brother Bill could be a web developer in 1998, but today it actually grew more complex (scripting, XML, AJAX, etc.) and shuts all Bills out. The original HTML was for Bill. (Although there are some nice tools for Bill now.) I'd argue we took a step backwards as I'd not underestimate the complexity of the explosion of interlinked technologies an average web developer must cope with. I've programmed in assembler when it was frowned upon to use C (for the lame and stupid) back in the 80ties, I've done C/C++, LAMP and now LAMP/AJAX, and let me tell you, there is no such thing as a lack of complexity in web development, it mostly exists in the heads of hardcore C/C++ programmers who like to think of themselves as higher on the evolutionary scale. So, hey, I managed to (dis)agree with both guys at the same time. No I don't think it should be a programmers job. But, yes, unfortunately it is and has become more so.

  102. There is a need for Professionals by sscottsci · · Score: 1

    I am sure that everyone that programs for a living has encountered code written by the 'Average Joe'. There usually is little, if any, documentation, nothing planned, and bad structure etc. Shortly after the program becomes useful to the company, 'Average Joe' is no longer around to maintain the code, or he can not get it done in a timely fashion.

    This program is now a requirement in the company, and it needs a major overhaul to get it working with the new Ordering system, or what ever application. Professional programmers are now required since no one else but the 'Average Joe' can understand what was happening. Also the code is so inner mixed with other processes, that the maintenance is now almost impossible.

    Professional developers bring a level of sophistication to the program, and maintainability, re-use, that today's software environments require.

    Get a good professional programmer, and then 5 'Average Joes', and give them a current project that is more than a complex macro in a spreadsheet, and you will see why this idea will not work. You pay good money for good programmers, and there is a reason. There are still bad professional programmers, but they are hopefully the exception, instead of the norm.

  103. More == better by Millenniumman · · Score: 1

    More == better, if you're getting paid per line.

    "Yes boss, those new lines after ever word are necessary. And those comments containing the entire text of the Lord of the Rings series, well... I hear our customer is a Tolkien fan"

    --
    Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
  104. "I is a programmer" by gklue · · Score: 1
    (I rarely post here, but lurk every day.)

    This kind of attitude has caused the largest problem with the public's perception of software development.

    "I got it to work, so I must be a programmer. See it isn't that hard."

    I have worked at a company that used one of those 4GLs and actually had subject matter experts writing code rather than driving requirements. Some of the constructions that got put into the core product were very hard to maintain and caused certain customer driven customizations and enhancements to be either impossible or extremely difficult (one of the selling points was that you could customize the software somewhat to fit your business model).

    This attitude was also a big cause of the dot bomb. If you could spell computer you could get a "software engineering" job.

    These people don't know the history of computing and so end up re-writing things that have already been produced and are well known.

    Of course I've also seen this kind of thing work well for Microsoft as they actually brag about SMP (Symmetric Multi-Processing http://en.wikipedia.org/wiki/Symmetric_multiproces sing) and CLR (Common Language Runtime http://msdn.microsoft.com/netframework/programming /clr/default.aspx).

    DEC had asymetric processing with their VAX 782 processor in the early 80's. If you insist on Intel hardware, we had multiple 80186 and 80286 processors sharing memory in one enclosure running our business in 1985 (80186 and 80286 processors are 8086 processors with extended instruction sets) running a multi-processor predecessor to MS-DOS called MP/M (CP/M, the single processor version is what MS-DOS was based on).

    Common Runtime Libraries (RTL) were the way everyone else has always done it as far as I can tell. You called the run-time library or operating system the same way from each language (the syntax was different, but the resulting signature was the same). The compiler took care of making the linkages correct. Microsoft finally normalizes their languages to use a common RTL and pretends it's a totally new concept.

  105. C++ by idlake · · Score: 1

    C++ is programming.

    No, C++ is self-flagellation.

  106. Re:I agree. And disagree =) by Weaselmancer · · Score: 1

    College teaches you *how* to learn, not what.

    I realize that. Hence, my success in software development when my degree is a BS in Electrical Engineering. =)

    University!=trade school.

    True enough. But learning Java first, and C later on as an add-on IMHO will leave people unprepared. To me, learning Java first makes the university seem more like a trade school. Seems like if you learned how to program having, say...a garbage collector behind the scenes doing its magic, you might not write good C code having to meticulously pair up your malloc and free calls. You have to learn to do that first, then having a garbage collector seems magic and liberating. As it should be.

    And while it's true that college isn't a trade school, after you get out of school you're going to want a job. Best to be prepared, and all that.

    --
    Weaselmancer
    rediculous.
  107. The people that think this... by pcgabe · · Score: 1

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

    The people that think this are not hardcore developers.

    It is akin to believing that because modern dietary supplements are so good, the line between hardcore Olympic athletes and the average Joe will start to blur.

    Nonsense.

    --
    Don't put advice in your sig.
  108. Wrong side of the line! by Anonymous Coward · · Score: 0

    ... and judging from the sheer volume of garbage software out there, most programmers are ALREADY on the wrong side of the line!

  109. Oh yeah? by Kanasta · · Score: 1

    He's obviously never tutored an info-sys subject at uni. Marking programs submitted by CS degrees vs commerce degrees in the same subject clearly shows you need training to write proper programs.

  110. How many monkeys? by slashname3 · · Score: 1

    Are they trying to test the theory of having a thousand monkeys produce Word?

  111. What could possibly go wrong? by Anonymous Coward · · Score: 0

    Sure, and while we're at it, let's let any dude off the street design bridges, perform medicine on people or pilot aircrafts. It's not like you really need this people to be professional engineers, doctors or pilots, right? What could possibli go wrong? Errr... Possibly go wrong.

    On the other hand, I, for one, am looking forward to the torrent of new content on The Daily WTF.

  112. 10000 monkeys.... by pottymouth · · Score: 1

    Sounds like 10000 monkeys typing for 10000 years will turn out another MacBeth. So we just need a little bigger IT staff and a little more time..... Or maybe go back to letting the pro's do it. You remember us, the ones that write the code the whole world runs. Why does anyone become a developer these days. You get all the respect of a janitor. People bow down before engineers that usually couldn't write anything beyond "Hello World" without screwing it up but still the idea that anybody can write software persists. Anyone can write a novel too guys but how many Steven Kings are there?

  113. Doable != Efficient by Tablizer · · Score: 1

    My experience with spreadsheet macro developers (MS and Lotus) who grow bold is that newbies have horrible "prediction" skills and factoring skills. Prediction skills is the ability to guess where future changes are fairly likely and make the code able to handle those without needing total overhauls or lots of rework and digging. That ability generally requires experience in maintenance.

    Second is factoring. Newbies are just plain terrible at factoring commonalities into subroutines and other sharable/resusable code techniques. They use mass copy-and-paste even more so than a trained-but-green programmer.

    Yes, people can probably repair their own car, but doing such may not be economical when you factor in total labor and cost. Doing X and doing X economically are two different issues.

    1. Re:Doable != Efficient by Anonymous Coward · · Score: 0
      My experience with spreadsheet macro developers (MS and Lotus) who grow bold is that newbies have horrible "prediction" skills and factoring skills. Prediction skills is the ability to guess where future changes are fairly likely and make the code able to handle those without needing total overhauls or lots of rework and digging. That ability generally requires experience in maintenance.
      You might find Chuck Moore's views on 'prediction' interesting (or absurd):
      Do not put code in your program that might be used. Do not leave hooks on which you can hang extensions. The things you might want to do are infinite; that means that each has 0 probability of realization. If you need an extension later, you can code it later and probably do a better job than if you did it now. And if someone else adds the extension, will he notice the hooks you left? Will you document this aspect of your program?
      (from The Evolution of Forth)
    2. Re:Doable != Efficient by Tablizer · · Score: 1

      That second part sounds like XP or "agile" philosophy. I somewhat disagree. Experience with both software and the domain will give one a feel for the likelyhood of certain changes. One should weigh the cost against benefit costs times the estimated probability minus some depending on your guessing accuracy. That is the most logical. Doing or not doing something out of mantra alone is not using your head but following zealots and sound-byte experts.

  114. Re:Average Joe approach == lame "solutions" by jrockway · · Score: 1

    > MS Office solutions (Excel/Access) amount to only poor working prototypes. They rarely support more than 1 user and security, performance and maintainability is aweful. It also gives the illusion that software development is quick and easy.

    What about the 90% of cases that only need to be working prototypes? They rarely need more than 1 user, and security, performance, and maintainability don't matter. MS Office gives the user the ability to develop simple programs quickly and easily.

    Sure, it means less work for us programmers, but I mean... if they can do it, and it's good enough... then let them. Save your skills for the problems that they can't solve... there's enough of them for you to make a career of.

    --
    My other car is first.
  115. Question. . . by NetRAVEN5000 · · Score: 1

    . . . if these "average Joes" want to learn to program, why don't they just get a book on Java or C++ or something?

  116. WRONG! Average Joes don't want to code!!!! by Anonymous Coward · · Score: 0

    My girlfriend was looking into changing careers, so I suggested looking into programming. She knew nothing about programming, so I picked up a Visual Basic starter book, and she read the first chapter. She actually got something working and even played around with it after the first few hours, but after that she said, "Screw it! This is boring!"

    Even though she probably could do programming, she doesn't have the personality type that wants to program. At best, it's a chore for 99% of the population... but more honestly, they would probably despise programming. Most people hate programming VCRs.

    Making programming more accessible to regular Joe's is not the right solution. Leave it for the experts. I would say 80% of current programmers out there right now suck as it is, and these people even enjoy programming.

  117. Re:Average Joe approach == lame "solutions" by hesiod · · Score: 1

    > They rarely need more than 1 user, and security, performance, and maintainability don't matter

    NO DOUBT! If I had to create every Crystal Report that someone wants at work, I'd shoot myself.

    While CR isn't a language, it's not much less complex than VB.

  118. Reality check by Glonoinha · · Score: 1

    Apache co-founder and CollabNet CTO Brian Behlendorf says that programming should be opened out to non-developers.

    Dude - if you want code that sucks major dick, just do what every other major corporation does and farm it out to India.

    --
    Glonoinha the MebiByte Slayer
  119. I hate the term "business logic" by typical · · Score: 1

    state both their business problem

    When did "application logic" transmute into "business logic"? Not all the code I write is to solve a problem relating to business.

    --
    Any program relying on (nontrivial) preemptive multithreading will be buggy.
    1. Re:I hate the term "business logic" by bhsurfer · · Score: 1
      Well, we can hack the sematics of the thing to death, but when I'm being paid to solve a problem programmatically, which is what I was talking about, I'd call it a "business" problem. The parent poster was also talking about a business setting, so I was following the lead. I'd imagine that everyone who codes does it recreationally at least sometimes, but that's nitpicking.

      If it's more comfortable to deal with generalizations I could reframe the statement to include hobbyists or other folks who aren't coding for a living, but it doesn't change my point which was that understanding your desired outcome and how exactly you're going to get there is more important than what language you're doing it in and no tool is going to do that for an end user.

      I personally couldn't care less about how well nonprofessionals in a non-business setting code because I likely will never run into their software or have to fix it, so I guess I was excluding them from my statement...sorry.

      --
      Those are my principles, and if you don't like them... well, I have others.
      Groucho Marx
  120. What happened to "ship the dev tools to all"? by typical · · Score: 1

    What happened to the golden days of shipping the development tools to all? Apple IIs came with a debugger and a BASIC implementation in ROMs. Early Macs had HyperCard. There was a lull, and then AppleScript started floating around. (Apple seems to have recently figured out that improving application support for their platform was a Good Thing and shipped Xcode, and has had Cocoa out for a while.) When QuickBasic was a little more up-to-date (DOS days) it was pretty useful.

    Now, sure, I can go use gcc on a Linux box. But there aren't really currently any useful development tools on a stock Windows box. If you use QuickBasic, you have a very crummy little IDE to use. Microsoft really should ship some kind of remotely decent and up-to-date development environment *with* Windows that the average Joe can learn to use to some degree. It doesn't have to be high-end, but it should be something that people can whip up quick little apps with to solve small problems.

    Charging for your development environments never made sense to me. It's like charging people to make a mod for your game. It only improves the value of your platform -- why would you ever discourage them from doing so? What about DEVELOPERS DEVELOPERS DEVELOPERS?

    Unix is the king of this. The command shell itself has a (useful for very limited tasks) programming environment, and most Unix folk have a collection of perl one-liners. Perl probably isn't the greatest choice for a beginner to learn -- the huge array of syntax makes it difficult to learn, IMHO -- but the idea of having a handly little language that lets you accomplish useful scripting and programming for free and bundled with the OS is, I think, quite valuable.

    --
    Any program relying on (nontrivial) preemptive multithreading will be buggy.
    1. Re:What happened to "ship the dev tools to all"? by Anonymous Coward · · Score: 0

      The .NET Framework ships with all the .NET command line compilers. Fire up notepad and compile away.

  121. Excel Programmers != Developer by dfwebbot · · Score: 1

    Just because you wrote something in VBA does not make you a developer. Most VBA code in Excel is just plain crap. Those who wrote it are the same folks who use access as a backend for there database app. Again pure crap.

    Why not just program via a BOT.. let it write the crap for you. it's cheaper..

    Like my AIM bot DFWEBBOT... just add him to your contacts and program away.

  122. That was the world of Notes version 3 by CFD339 · · Score: 1

    Back in the days of Lotus Notes version 3, it was very possible for Joe Salesguy to write a viable business application in formula language on the plane ride home. Many of those guys ended up in IT development writing Notes applications. A small percentage of them survived when object oriented programming languages started to show up with Notes 4.x and became real programmers later, learning Java and other languages.

    My point here (and please, lets avoid a "Notes Rules/Notes Sucks" thread) is that with that tool, enough of the business value was present in environment, that a little formula based scripting could create secure, useful applications.

    That's missing in most of today's tools. Some of the Portal projects had lofty goals of bringing it back -- take a bunch of corporate web service based widgets and stitch them together to build business logic. So far as I know, none have really succeeded.

    --
    The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
  123. Roman Numeral math or something simpler.... by 3seas · · Score: 1

    ... an analogy as to how programming is done today and how much easier it can be and why it needs to be.

    http://wiki.ffii.org/IstTamaiEn

    AS a matter of dealing with software patents and the scope of non-novel...

    some additional relative reading on teh patent issue:

    http://lists.osdl.org/pipermail/priorart-discuss/

    Which is a mailing list trying to address how to make existing open source software available to teh USPTO in their searching for prior art.

    But if Programming is made easier, even automated, then it becomes common place like using the hindu-arabic decimal system today, instead of the Roman Numeral system for math,.

    Software will never be genuinely free until it is easy enough to create that the typical end user can do so by directing the computer to do most of the work (like the fictional Star-Trek holo-deck is programmable by a child).

  124. Already Have This - It's Called "India" by Anonymous Coward · · Score: 0

    the subject says it all.

  125. Bill Gates called... by Anonymous Coward · · Score: 0

    "I know, let's put a thousand monkeys in a room with a thousand IDEs - that ought to get us some code!"

    Bill Gates called, he wants his half-baked idea back.

    Please note that no monkeys were harmed by flying chairs during the writing of this joke.

  126. Re:Average Joe approach == lame "solutions" by EraserMouseMan · · Score: 1

    Good point. I'd say a large percentage of what corporate end users need are 2 things. 1) Reports and 2) Workflow solutions.

    The sticky point about reports is that the reporting is easy it's the data input interface/program that requires expertise (GIGO). And there is really no simple workflow solution out there. That almost always requires a programmer of at least medium skill.

  127. Have we forgotten about language? by chthonicdaemon · · Score: 1

    Humans are well-equipped to accept visual input. We have good pattern recognition and high bandwidth for visual processing. So it is no surprise that people are happy in a graphical environment that shows them much of what they want to know using rich graphics. What is surprising is the eagerness with which they discard language as a medium for outputting information.

    Most people are bad at expressing themselves exactly using pictures or gestures. It is only using formalised systems like language (or sign language) that we gain the abstraction necessary to express ourselves about things we cannot see or that have not happened yet. Common problems can be solved using nice interfaces that allow you to do only 'the right thing'. Once you reach Turing completeness, however, it is provably impossible to stop someone from screwing up in ways that are undetectable by the system.

    This is the core of the problem. Most people want to give vague directions to an expert and have him use judgement to deliver an acceptable solution to the problem. These people are not heavy computer users or see the computer as a means to an end . They are probably best served by custom apps that do the things they want to do very well with low risk of error. Other people need computers on a daily basis to complete complex tasks that are unique to their situations. Analysts, accountants, engineers all need computers to do exactly the thing they need done in exactly the way they want. For these people, a system of choosing the 'correct' options soon turns into an extreme challenge in itself. Excel is Turing complete, but it is damn near impossible to imagine elegant ways of handling some of the problems I have solved with a few lines of Python or Matlab code.

    What I am trying to say is that this idea of people being reluctant to program is only valid because we have actively discouraged the use of precise language to describe problems. We have encouraged people who lack the means to express themselves by saying that they should be allowed to use a more 'forgiving' interface. There will always be a trade-off between power and ease of use. Somehow, we have come to believe that it is ok to spend 15-20 years mastering a native language, but mastering an environment that allows you to communicate with a computer should take no less than a few days. What kind of expressive power can we expect then?

    --
    Languages aren't inherently fast -- implementations are efficient
  128. Average Joe? by Anonymous Coward · · Score: 0

    Hi everybody,

    I don't know if I am an average Joe but I am decidedly a non programmer.

    I certainly hope you wouldn't hold this against me.

    I vaguely worked with basic and logo turtle and didn't get very far then.

    I am now working in the medical field.

    I always had the inclination to do some programming.

    I always have ideas that say if only....

    I fully support the notion of having non programmers for programming.

    I think those people(non programmers) certainly need the inclination and the technical mind to translate basic human daily problems into programming logic and then code.

    For example, I want to program a rota for a hospital. I want members of the team on the rota to change it and for other users to view it. The best way to do this is on the web.

    I have a plan of my design. Then I am stuck in what software to use. How much I have to pay(any good open source software?) and what effort I have to go to.

    I think these are the main issues surrounding getting non programmers to code.

    By the way do any of you would care to help in directing me?

    -jan

    1. Re:Average Joe? by Chapter80 · · Score: 1
      If you have an idea, and can describe it well on paper, consider using one of these sites, which will allow you to post the project and have people bid on it.

      Prepare to pay twice the minimum bid to get the desired result (allowing for re-work):

      www.rentacoder.com www.scriptlance.com www.elance.com www.getafreelancer.com www.guru.com www.topcoder.com www.website-content-writer.com www.phpcareer.com www.moonlighter.com www.workasafreelancer.com

  129. Re:Fantasy. You too :) by SolitaryMan · · Score: 1
    99% of users don't even want to open the help.
    100% of users don't want to open the help. 99% of them never do it.
    --
    May Peace Prevail On Earth
  130. It's already too easy... by uweg · · Score: 1
    ...to write bad programs.

    When I see the amount of horrendous Notes/Domino databases, Excel macros, SAP reports and weird Intranet web sites, I think it would be time to have some tools that allow people to write good programs (whatever that means...), not more to write bad programs.

  131. /. writers & moderators = Elitistic geeks? by Anonymous Coward · · Score: 0
    Skimming through the highest rated comments I find:

    "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!"

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

    "It takes a long time to become a good programmer, and even good programmers can produce some pretty sloppy code. I fail to see how encouraging the unwashed masses to pick up a copy of Visual Studio 9.0 and the latest "Learn To Program in 3 Minutes" book will actually result is less-buggy code. It would certainly create lots of crappy code."

    "Anyone who has done serious development knows that this is nonsense."

    "Why is it that nobody, including, apparently, slashdot editors, respects software development as a proper scientific or engineering discipline."

    I could write a long rebuttal to all this crap, trying to explain why it is so important that "non professionals" are involved in programming, but it will probably be a waste of time since it will get a -1 flamebait rating. And here on /. that is probably and adequate rating.

    Let me quote Einstein instead:

    If engeneers were to make all inventions, we would have perfect oil lamps, but no electricity. - Albert Einstein

    Regards /Patrix (5 yrs of Computer Science studies, 8 yrs working as a system developer. Still listening and learning *every* day)
  132. Oh no, not again by cruachan · · Score: 1

    So, the old Chestnut comes around again.

    One of the aims of COBOL was so managers could read, understand and amend programs. That's why it has such a verbose pseudo-english syntax.

    Anyone remember ADABAS's NATURAL language? Guess what that was claimed to do :-)

    Back in the late 80's when I first started out as a coder a company took a lot of ad space in the computer press to advertise 'the last one', which was a 'programming system' that was so powerful but easy to use that managers would develop there own systems and programmers would all be out of a job in a couple of years. Needless to say it sunk without trace.

    SQL itself was originally marketed as being something managers could use. Heck I even went on an introductory course in the late 80's where there were managers and programmers present. Utter disaster of course.

    Anyone who's been any form of computer consultant must have come across the user-developed Access database application. Usually a codeword for an unmaintainable nightmare waiting for a rewrite.

    None of the above is not to say that users can't extend systems. If I'm putting a Access/SQL system into an office I usually like to put in a 'Expert User' Access system so a technically minded clerk can play around with (read only) sql and generate their own reports - a day or two's basic Access course can really boost productivity and keep simple maintenance requests out of my hair. However one has to be *very* careful to set up the sandbox correctly. I suppose this is what the article could mean by user programming, but if so it's (a) nothing new and (b) more akin to changing your own oil on a car - useful but hardly qualifies you as a car mechanic.

  133. Seriously, leave programming to programmers by Kjella · · Score: 2, Insightful

    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.

    --
    Live today, because you never know what tomorrow brings
  134. Re:Darn right! Mod up by dodobh · · Score: 1

    Some people have much longer names. And I mean really, really long names.

    http://www.answers.com/main/ntquery;jsessionid=2bf dscxhgb7kc?method=4&dsid=2222&dekey=P.+V.+Narasimh a+Rao&gwp=8&curtab=2222_1&sbid=lc06b

    That is a fairly short name.

    --
    I can throw myself at the ground, and miss.
  135. 70's/80's BASIC coding revisted -- experiences. by tarpitcod · · Score: 1

    A few years ago I tried writing some code in a modified version of ATARI BASIC known as Turbo BASIC XL. Turbo BASIC is much nicer than regular ATARI BASIC, it allows rudimentary named subroutines and multiline IF's and runs a fair amount quicker than regular Atari BASIC.

    I've been programming in *real* languages now since about 89 and here's my experiences with it.

    1) The Linenumbers were a *horrible* mental stumbling block. I ended up saving the file in ATASCII and loading it in VI so I could arbitrarily move about. The loss of mental clarity is rough when typing LIST 1000,1200 - oh missed end of that subroutine, try again LIST 1000,1250, OH DAMN top scrolled off screen. (The atari equivalents of CTRL-S and CTRL-Q become your friends). Finally now I see it - Now what was that bug I was looking for Hmmmmm...?

    2) Perhaps the *worst* problem with it is the fact that it supports undeclared variables. One typo and your not going to get the response you expected. E.g.

    1000 ATTACK=DIFFLEVEL * TIMEELAPSED
    1010 IF ATTACK 1 THEN
    1020 'Continue updating universe state
    1030 ATTACKTYPE = INT ( RND ( 1 ) * 5 )
    1040 NUMATTACK = INT ( RND ( 1 ) * 10 * SKILL )+QUADRANTCHAOS
    1050 GLOBALSTATE=CSTATATTACK
    1060 ELSE
    1070...
    1080 ENDIF
    1090 EXEC UPDATEMODEL

    So let's pretend we actually can have NICE LONG DESCRIPTIVE variable names... Anyway, so you screw up one variable name, say you type QUARANTCHAOS, and suddently you've got a nasty bug. This is *really* painful and hard to find!

    3) You don't have anything other than global variables. So you end up trying to fudge parameters like:

    PROC ALIENATTACK
        ATTACKTYPE=PARAM1
        ATTACKLOCA=PARAM2
    ENDPROC

    Your almost always gonna screw something up. Or you decide that it makes NO SENSE to copy variables into PARAM. So you just make sure before you call the proc that you set the right variables it uses. Your gonna screw up one and your outta luck.

    This is with a pretty NICE BASIC from the 80's that gives you named subroutines, multiline IF THEN ELSE.

    It's really *tough*. You end up writing all your code in another language and passing it thru a preprocessor you hacked together in say PERL to produce the actual stuff that's interpreted. But that just shows that as a real programmer - you realize that programming in a language like BASIC from the 70's / 80's is incredibly time consuming and painful.

    Throwing newbies into this kind of world is just plain cruel.

    I *would* make the argument that many un-sullied minds may very well make better PROLOG programmers than those of us with tons of Imperative scar tissue.

    --Tarp

  136. Scientists could use this by Anonymous Coward · · Score: 0

    I think that this sort of program could have some usefulness to scientists and engineers, but their programs would only be useful to other scientists doing the exact same thing. There is somewhat of a precedent in MATLAB which is similar to "true" coding. Something that could have math functions programmed in similar to MATLAB without being as outrageously expensive would be nice.

  137. basic4gl by JurgenThor · · Score: 0

    You might want to look at http://www.basic4gl.net/ , written by a Colleague of mine at my last job, looked like it would be a fun way of starting to program, without having to worry about functions, and objects etc.

    --
    GENERAL PUBLIC SIGNATURE (GPS) Any replies (derivatives) of this post must also use the GPS
  138. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  139. Didn't COBOL solve this problem? by Ratbert42 · · Score: 1

    Like 100 years ago when men were men and computers were buildings.

  140. I wish I was still charging by the hour... by tcdk · · Score: 1

    Back in the day when I was in database application development, half the time, what we did was clean up after some intern who, though he know how to program and then did a database with a bit of functionality in Access or Excel. Then the department would get hooked on that database. Then the intern would leave. Then the database would break. Or get horrible slow. Or need some new functionlity.

    Then we would step in. And laugh all the way to the bank.

    Speaking as somebody with more than 15 years of (professionel) development experience, the most important lesson here is:

    Programming!=Development

    Programming is a (small-) subset of the process of developing software. That's why I just laugh when somebody tells me about 4, 5 or 6 (or what ever) generation languages, where you don't need to know anything and can basically just look at the computer and it will do your bidding. Yeah, right. The problem is not coding. With modern RAD tools like Delphi and similar, that's fairly easy (for most /business/ needs), what's hard is knowing what you want and design your system to actually support that in a useful way.

    I feel like making a snide remark about a couple of OSS program here (The GIMP ), but that would be childish...

    --
    TC - My Photos..
  141. Re:Average Joe approach == lame "solutions" by drinkypoo · · Score: 1

    I have to create every Crystal Report that someone wants at my job. That's what they hired me for (but I'm the webmaster as of this week, too.) Crystal sure sucks. Also, the scripting language in it is pretty much vb. They even have a vb syntax mode, which seems to be the most-used, but I always use Crystal syntax. It's still vb, just without the lame syntax.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"