Slashdot Mirror


'The Problem With Programming and How To Fix It' (alarmingdevelopment.org)

Jonathan Edwards has been programming since 1969 (starting on a PDP-11/20). "Programming today," he writes, "is exactly what you'd expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. You get a cross between Dungeons & Dragons and Rubik's Cube, elaborated a thousand-fold."

theodp summarizes the rest: To be a 'full stack' developer, Edwards laments, one must master the content of something like a hundred thousand pages of documentation. "Isn't the solution to design technology that doesn't require a PhD...?" he asks. "What of the #CSForAll movement? I have mixed feelings. The name itself betrays confusion -- what we really want is #ProgrammingForAll. Computer science is not a prerequisite for most programming, and may in fact be more of a barrier to many. The confusion of computer science with programming is actually part of the problem, which seems invisible to this movement."

It wasn't always this way, Edwards notes, citing spreadsheets, HyperCard, and the many incarnations of Basic as examples of how programming technology can be vastly easier and more accessible. "Unfortunately application programming got trampled in the internet gold rush," Edwards explains. "Suddenly all that mattered was building large-scale systems as fast as possible, and money was no object, so the focus shifted to 'rock star' programmers and the sophisticated high-powered tools they preferred. As a result the internet age has seen an exponential increase in the complexity of programming, as well as its exclusivity."

"It is long past time to return to designing tools not just for rock stars at Google but the vast majority of programmers and laypeople with simple small-scale problems," the essay concludes, arguing we need new institutions to fund changes in both the technology and culture of programming.

"We've done it before so we can do it again, even better this time."

360 of 560 comments (clear)

  1. Idiocracy by overlook77 · · Score: 1, Troll

    Maybe I misread/misunderstood this article but I read this as, 'let's dumb down computer programming".

    1. Re:Idiocracy by tezbobobo · · Score: 2

      Not at all. You can pretty much use any modern language for any problem, but some are better at some tasks than others. Some are also more intuitive, easier to read and elegant, and often those things are sacrificed for the sake of flexibility. I think the person is trying to say that we can have both. For example (from the article) spreadsheets written in BASIC that were both easy to program with low barriers to entry, and powerful as well.

    2. Re:Idiocracy by jareth-0205 · · Score: 4, Interesting

      Maybe I misread/misunderstood this article but I read this as, 'let's dumb down computer programming".

      Yes! Good! We need to get over this god-complex if we're ever going to sort out our profession. Programming *needs* to be easier, you can't just continually hire super-intelligent people because there just aren't enough of them. And even when you do, they still produce poor bug-ridden code, because the task is just too hard.

      The level of complexity in computing is all but impossible for any reasonable human to handle. A really big portion of my days is spent finding things in other people's code (ie mainstream libraries) that don't work as they should, and god knows what mistakes I am personally putting out into the world. If big players (eg this week I found horrible problems with Google & Dropbox code) can't provide consistently working libraries what hope do the rest of us have, with tight deadlines and limited intelligence.

      Every other profession, medicine, law, accountancy, engineering, have to deal with the fact that not everyone is a genius, and have systems and checks in-place that means people don't have to be flawless to work in them. Until computing is the same, it will remain a wild-west hobby. Programmers need to get over their pride.

    3. Re:Idiocracy by JMJimmy · · Score: 3, Insightful

      Sounds like a middle manager who doesn't really understand anything but wants it to be cheaper/easier so he doesn't have to pay PhD wages

    4. Re:Idiocracy by 110010001000 · · Score: 2

      Just another guy who wants to make another programming language environment. Visual programming has always failed. But it doesn't stop the next idiot from suggesting it again.

    5. Re: Idiocracy by alvinrod · · Score: 2

      I feel as though I am missing part of his argument as well. Python is perfectly good for banging out small programs and frameworks like Django make it much easier to build a functional website once you bother to learn how it works. Contrast this with cobbling something together in PHP as often was the case a decade or so ago and I fail to see what the problem is.

      This can all be done without tools as nothing stops a person from writing their code in a simple text editor and testing it by running the program live and troubleshooting and bug fixing as they go along. However, this is not efficient and in the long run it pays to learn to use an IDE, debugger, SCM system, persistence framework, automated build and regression test setup, and all the other tools that make developers much more efficient in the long run.

      If a person just needs small programs on an infrequent basis, they probably would not take the time to learn a programming language to start with. Instead they can probably use something like Excel to solve their problem. Hell, there are plenty of things I use spreadsheets for as they are a perfectly good solution and if I need interoperability it is easy to have most programs read or spit out CSV. It seems as though the author thinks that everyone should learn to write their own programs to solve problems that are better solved with existing tools in which they may be more competent. Then he laments that programming is too complicated to use when he has already made things over-complicated by suggesting that programming be used at all.

    6. Re:Idiocracy by 110010001000 · · Score: 3, Interesting

      You don't need to be super-intelligent to program effectively. You just need to be able to think logically and break down tasks. It doesn't need to be made easier, because if you can't do those two things you shouldn't be programming.

    7. Re:Idiocracy by vtcodger · · Score: 5, Interesting

      "'let's dumb down computer programming".

      What's wrong with that? The trick would be HOW to dumb down computer programming without ending up with an intractable shambles like the last 50000 attempts to do so.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    8. Re:Idiocracy by Sigma+7 · · Score: 2

      'let's dumb down computer programming".

      Actually, there's some bits that require dumbing down.

      QBasic was as simple as "Screen 13", followed by "Pset (1,1),43", plus there's other quick graphics functions available. This is as simple as it gets.

      In C for MS-DOS, you could do simple graphics rather quickly. Maybe you needed a library for C in order to quickly produce graphics, but you're still only one step away from drawing whatever picture is desired. You may need a library, but any proper compiler would have allowed directly calling the appropriate BIOS procedure. Still on the simple side.

      In C/C++ for Windows, creating a drawing space is much more complex, requiring a few screens of code just to setup the drawing region, Read here to see how it's bulky. Similar reasoning applies to XWindows.

      Most of this bulk is expected, since one has to create a window and make sure it doesn't interfere with others. However, it's still something that could take a lot of simplification in the future.

    9. Re:Idiocracy by jareth-0205 · · Score: 2

      You don't need to be super-intelligent to program effectively. You just need to be able to think logically and break down tasks. It doesn't need to be made easier, because if you can't do those two things you shouldn't be programming.

      If it were that easy then we wouldn't be in the horrendous situation we are in now. Just go read the issues lists of major software - you don't have to believe me, the state of the profession is plain to see.

    10. Re: Idiocracy by Anonymous Coward · · Score: 1

      Well, I like that it's wild west because, at the end of the day, merit still counts. You sound like some phb who thinks engineering is factory work. It's not.

    11. Re: Idiocracy by jareth-0205 · · Score: 5, Insightful

      Well, I like that it's wild west because, at the end of the day, merit still counts. You sound like some phb who thinks engineering is factory work. It's not.

      I mean - I enjoy the wild-west nature. I just know it can't continue.

      Until we have worked out how to build software in the same way an architect designs a building, where it can be proven to be strong enough to withstand the forces against it, we'll be in trouble.

    12. Re:Idiocracy by AHuxley · · Score: 1

      So we get another "educational" Basic generation reading direct from a computer book rather than people with the skills to learn Assembly?
      Time to get more of the super-intelligent.

      --
      Domestic spying is now "Benign Information Gathering"
    13. Re:Idiocracy by 110010001000 · · Score: 4, Insightful

      It is that easy. The problem is that many people can't think logically or break down problems into manageable parts. By the way, I can show you "issues lists" of automobiles, or buildings, or airplanes, anything moderately complex. Every system that has complexity has issues. You software guys think that software is the only thing that have bugs.

    14. Re: Idiocracy by king+neckbeard · · Score: 3, Interesting

      I think what you're talking about has already happened. The best example would likely be Ada SPARK, but that's in the very opposite direction of the "Java is too hard" mindset that TFA advocates.

      --
      This is my signature. There are many like it, but this one is mine.
    15. Re: Idiocracy by 110010001000 · · Score: 2

      Architecture is an excellent example. You probably think an architect designs a building and it just happens and there are no issues. The reality is that building have TONS of issues. Some of the "greatest" architects have produced buildings that have leaky roofs and cost millions just to maintain. And we have been making buildings a lot longer than we have been building software.

    16. Re:Idiocracy by K.+S.+Kyosuke · · Score: 1

      Maybe you did. To me it sounds more like one of the many calls for removal of accidental complexity from programming. That's not "dumbing down".

      --
      Ezekiel 23:20
    17. Re:Idiocracy by Darinbob · · Score: 1

      It's already dumbed down. "Rockstars" such a ridiculous ego driven word, usually program only by gluing together preexisting components. So their primary skill is memorizing the every changing APIs which seems to impress some people, rather than knowing how to program something from scratch. These rockstars more often than not don't have a solid foundation in data structures or algorithms and they don't care as those things don't matter for what they're doing.

    18. Re:Idiocracy by ChrisMaple · · Score: 1

      Humorously: Compilers need to take an easy language, optimize the code and correct the errors.

      --
      Contribute to civilization: ari.aynrand.org/donate
    19. Re: Idiocracy by layabout · · Score: 1

      what, like Frank Loyd Wright and the Johnson Wax corporate headquarters?

    20. Re:Idiocracy by shess · · Score: 1

      Every other profession, medicine, law, accountancy, engineering, have to deal with the fact that not everyone is a genius, and have systems and checks in-place that means people don't have to be flawless to work in them. Until computing is the same, it will remain a wild-west hobby. Programmers need to get over their pride.

      I have no idea about accountancy and engineering, but in terms of medicine and law, they deal with the issue by requiring 10x as much training as everyone else, and it's brutal stuff. You don't have to be a genius, but you do have to clear some fairly high thresholds on being able to retain and apply knowledge. I'm not even really comfortable classing those with software engineering in these areas.

    21. Re: Idiocracy by Ken_g6 · · Score: 1

      Actually, that's not a bad idea. For example, when a C compiler reports a missing ;, it could make a guess about where the ; should be and suggest that to the programmer. I wonder if AI could be used to optimize suggestions like this?

      --
      (T>t && O(n)--) == sqrt(666)
    22. Re:Idiocracy by vtcodger · · Score: 3, Informative

      "To wit, they will not use pre-existing code, because it couldn't POSSIBLY compare with their own brilliant code."

      Right road, but wrong driveway I think. It's often easier to solve a complex problem yourself than to understand how to use someone else's solution even when their solution is perfectly valid. Throw in the number of times when their solution is flawed or is the solution to some other similar, but not identical problem (now you have two problems) and there is often some justification for being leary of at least some pre-existing code.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    23. Re:Idiocracy by Anonymous Coward · · Score: 2, Insightful

      There is SERIOUS money behind "making programming easier." The economic incentives to do this are overwhelming, and all of the tech giants have been trying to do precisely this since before they were tech giants.

      The article makes it sound like the current state is a cultural problem. As if the only reason programming is hard is because a bunch of geeks like it that way. Absolutely ridiculous! Programming is hard because the best minds in the world still haven't figured out how to make it easy.

      Remember Cobol? Remember what it's goal was? It was the language that was going to eliminate the programmer. It was designed to be so simple that someone didn't need any computer science background nor any technical knowledge at all to implement code. A fortune in research and development was spent to make cobol into that holy grail of software development that would mean no business would ever have to pay a programmer's salary again.

      It failed, miserably, and today Cobol programmers rake it in. Have we learned from our history?

      Sheesh, if BASIC was the answer, then the industry would be using it already. Why hasn't BASIC already revolutionized the software development world, making it easier for everyone? Because BASIC is not powerful enough to solve the real-world problems that people are willing to pay to be solved.

      And yes, Visual Basic .net might be powerful enough to shoulder that load, and guess what? You have to be a smart geek in order to actually use it to solve real world problems.

      The problem here is not that people have just not bothered trying to make programming easier. The problem is that the problems that need solving are HARD.

      And that's why software developers need to be of above-average intelligence to succeed. Which, in turn, is why there aren't enough of them on the market to meet the demand.

      That is how it is. All else is bullshit.

    24. Re:Idiocracy by xonen · · Score: 1

      Programmers need to get over their pride.

      Non-programmers should learn some patience, persistence, more eye for details and most important: learn that even the most basic stuff is not done auto-magically.

      Analytic skill set only comes last. In my experience it boils down to the first skill: patience.

      Pride has nothing to do with all that shit.

      --
      A glitch a day keeps the bugs away.
    25. Re:Idiocracy by Z80a · · Score: 2

      Freebasic is quite darn quick, sometimes even beating stuff like java, but mostly because it is a C compiler in disguise.

    26. Re:Idiocracy by MightyMartian · · Score: 1

      The chief issue, apart from any language, is discipline. When you have someone with little experience or training in coding standards, in basic understanding of good programming practices, an easy-to-language like BASIC is a recipe for spaghetti code. What modern languages do is impose a certain degree of discipline. You can still get write terrible code in these languages, but for the most part they set the bar high enough that it requires some understanding of good programming to even begin to use a language like Java, Python or C#.

      You can certainly make easy languages, and there are no lack of then, but I've seen (and had to repair) the messes that lack of discipline, understanding and experience that languages like VBA and PHP can facilitate. Worse, I've seen these messes running as mission critical applications, with the original writer long gone or no longer able to remember what they hell they did, let alone maintain.

      If it's one offs meant to solve a single problem, there's justification for this kind of programming, but these macro and scripting language solutions all too often end up performing mission critical functions, and they're like snowballs rolling down hill, becoming bigger and more chaotic until they literally are unmanageable, and then they break or some data structure changes or it has to be installed on a new server, and it all goes to Hell.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    27. Re:Idiocracy by jrumney · · Score: 1

      Maybe I misread/misunderstood this article but I read this as, 'let's dumb down computer programming".

      You say that as if it is not a noble goal. Computer programming does not need to be an exclusive club open only to l33t geeks that can master the obscure syntax of the half dozen languages needed to qualify as a "full stack developer" today.

    28. Re: Idiocracy by Dutch+Gun · · Score: 1

      I seem to recall a recent article about a videogame company (Ubisoft maybe?) that was using AI (well, pattern-recognition is a better term) to train on previously introduced-and-fixed errors and keep an eye out for similar bugs in new submissions. No word on how successful that's been so far for them.

      Ah, here it is: https://games.slashdot.org/sto...

      --
      Irony: Agile development has too much intertia to be abandoned now.
    29. Re:Idiocracy by tepples · · Score: 2

      Say you have a BASIC compiler that uses the same back end as a C# compiler. What would make BASIC code any slower than C# code?

      (In fact, we do. It's called VB.NET.)

    30. Re:Idiocracy by jellomizer · · Score: 1

      I always hate the term "Dumb Down" especially for processes that are sometimes needlessly complex.
      I have been doing software development for over 20 years, I can take on nearly any task without worry, I am often considered one of these Rock Star Developers who can solve the "impossible" problem, and I will do it with whatever Language or methodology I have available. I say this not to brag, but to point out that some stuff we do in computer programming is needlessly complex and it isn't because I don't know how it works or never worked with it.
      Sometimes the issue is from the software trying to isolate us from what is actually happening, I see this often in say ASP.NET where the HTML code which is rather easily readable is hidden behind .NET Objects making often a medium complex job much more difficult, just because of the overhead and all the work I need to do to override the default settings.
      Sometimes we have the opposite problem where we keep on having to reprogram a common task for every project. Such as I find many XML parsing libraries and tools.
      Often we get so impressed with our handy work and we fail to see our faults in our design.
      Also Many Software tools are designed for these big projects while a lot of what is needed just a small program to scratch a particular itch.

      Dumb Down Development would mean limiting what you can and cant do because it would be deemed too hard. However we can always rethink and reevaluate what is being done and try to make the rough edges easier and better focused for the actual use cases.

       

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    31. Re:Idiocracy by 110010001000 · · Score: 1

      Assembly is the easiest language to learn actually, because it forces you to break everything down into tiny components.

    32. Re: Idiocracy by 110010001000 · · Score: 1

      Exactly. Or go visit Fallingwater. There is literally cardboard crammed in the walls because the water is leaking through.

    33. Re:Idiocracy by jellomizer · · Score: 1

      For many computing problems that need to be coded, the Slow Language if meant for quicker and easier development is worth it.
      I find I tend to use python now for what I use to use BASIC for.
      Not because of any Speed or performance issues, but because the time it takes me to write the code and get the answer is faster then me doing it manually or programming it in an other language.

      For example I often have Extremely Large Text files that are too large for most tools and the ones that do may not have the right functionality. So I write a python script to do the function I need to do on the file. It may takes 10x or 1000x slower then if I did in in C or even if I spent more time optimizing the code. But that is often the difference between one second execution vs 15 minute execution. However if this slow program took me 5 minutes to code, vs 21 minutes to make it run faster. Then I am overall still better off with the slow language and code especially for a throw away program. Which I only need to do it once and will not need it again.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    34. Re:Idiocracy by Cederic · · Score: 3, Insightful

      Medics have it easy. Sure, the human body is a complex system, but
      - it's A complex system, not many
      - outcomes are pretty straightforward : Alive, healed
      - no innovation required (if illness A, issue medication B)
      - limited scope

      That last one is massive. Lets take security. Medics don't have to protect their systems against intrusion attempts, malicious attacks, user ignorance, data loss or unsafe use.

      A full stack engineer is like a medic that has to diagnose, dispense the right medicines, assure they're taken correctly, hire bodyguards for the patient, wrap them in cotton wool, prevent them from burning themselves while cooking and actively preventing them from climbing up steep mountains. They also have to do all their cooking, change their nappies, take the blame if they get pregnant, raise the child, and issue comprehensive documentation on how to dress each day.

      You're absolutely right, other professions get by with a good memory. Lucky sods.

    35. Re:Idiocracy by Bengie · · Score: 1

      The problem with programming is when the reasoning of the typical person is virtually non-existent. Programming isn't hard and the "complexity" is only a result of one's inability to understand the fundamentals.

      Every other profession deals with everyone not being a genius by forcing them to memorize and repeat. That's fine for professions where the rules are written by nature and immutable. In computing, the rules are written by the coder. The problem is when the coder writes spaghetti rules. A simple example is when someone makes a service that has ambiguous results and you can't tell the difference between functioning and failing. This is incredibly common. Ambiguity is only one symptom.

      There is a reason why they say programming requires strong abstract reasoning. The one skill that can't be taught, peaks in the teens of the typical person, and inversely related to knowledge. Some people get better at abstract reasoning over time, but most people get worse. Why? Because focusing on memorizing everything decimates reasoning skills.

      Look into twice exceptionalism. It is quite common for people with mental disabilities in one area to compensate by having increased abilities in other areas. It's not because they're a genius, it's because they're forced to use their brain in a different way. Anyone can be good at reasoning, but why use reasoning when you can just memorize the answers? That's the issue with programming. People use knowledge and experience as a crutch. It's natural because it's easier than actually thinking for most people.

      I see it all the time. Programmers start off fast, writing lots of code but are not consistent in every minute detail. These inconsistencies slowly snowball into a ball of mud. Being able to remember the code is fine for small projects, but doesn't scale well. Then you get people talking about how hard programming is, because they don't use reasoning to create well factored code that looks like a fractal. Instead they create a mess that requires you to have specific knowledge. Well designed systems can be reasoned about without knowledge, because seeing a small part of a fractal can tell you much about the overall macro-shape.

      A common factor among people with strong abstract reasoning is the ability to forget. Most people with strong reasoning have taught themselves how to forget, I have no choice in the matter. You to can teach yourself to forget. Psychology has been increasingly researching abstract reasoning in the past decade and the more they look into it, the more it seems like a very small portion of the population seems to be very good at it, and not because they're special, but because of what boils down to the unscientific term "personality". They tend to have "strange" quirks that are part of their daily lives that exercises their reasoning.

    36. Re:Idiocracy by djinn6 · · Score: 4, Informative

      The problem is that it's impossible. The complexity of software comes from the complexity of the underlying problem. No matter where you move the complexity, whether it's from the frontend to the backend, or from an application to a library or to the OS, it still exists. Someone needs to understand that complexity to create working software for it.

      Lay people, especially managers, like to think "if we just used library X" that could take care of all the hard stuff. The reality is, using library X now becomes the hard part. It could be bugs, performance problems, bad behavior for certain edge cases, incompatible API changes or security problems. In many cases it could be worse to work across an abstraction layer like that, since the business-destroying bug you're running into is just one of thousands that the upstream developer has to deal with.

    37. Re: Idiocracy by datavirtue · · Score: 1

      Answer to the headline question: Get humans away from it.

      There is definitely a disease that has fully spread and it results in complexity. Even the simplest things are made complex by bored or ignorant developers trying to entertain themselves.

      Who here hasn't seen an enterprise multi tier application with dependency injection and all the things that it requires smashed together so the projects can be tested...where no one ever writes or properly maintains a test suite. People do all that shit and they don't even know how to test!!

      --
      I object to power without constructive purpose. --Spock
    38. Re:Idiocracy by CanadianMacFan · · Score: 1

      The problem isn't so much with the programming but with the lack of QA and Testing. All too often they are seen as a bad thing and only as an expense. Development makes the products but QA just holds back the releases and doesn't add anything of value.

      The attitude towards QA and Testing needs to change. They save the company money and embarrassment from downtime and errors.

      The practice of large companies of using the public as their testers needs to stop too.

      I say this as a developer.

    39. Re:Idiocracy by Hognoxious · · Score: 3, Insightful

      You missed the most important difference - they don't bring out a new version every five months.

      Doc: Shit, he's got a 3.1.05 heart!

      Paramedic: Don't you know it?

      Doc: No, we only covered the 1 series at med school. I did a refresher a while back, but that was only up to 2.6.

      Nurse: [handing him a laptop] I already opened Google for you.
      (Under her breath) I hope your typing's better than your handwriting.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    40. Re: Idiocracy by guruevi · · Score: 1

      Yes:
      AppleScript (a direct descendant of HyperCard) and LiveCode
      Dell Boomi
      HTML w/ JavaScript
      Old versions of VisualBasic (not the modern VisualStudio)

      I see similar applications for very specific purposes. And there is the problem with HyperCard and derivatives: going "beyond" what is natively provided (and thus however much you can possibly fit in the GUI) gets you down a rabbit hole so deep you might as well just learn proper programming.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    41. Re:Idiocracy by Cederic · · Score: 1

      It's a fair point. Not to mention the request to get this 30 year old running on carbon dioxide and helium, as the legacy nitrogen/oxygen mix is too expensive to continue to support.

    42. Re:Idiocracy by Kohath · · Score: 1

      Sounds like a middle manager who doesn't really understand anything but wants it to be cheaper/easier so he doesn't have to pay PhD wages

      To be fair, everyone besides PhDs wants this. We would all have a lot better software and gadgets a lot sooner.

    43. Re:Idiocracy by serviscope_minor · · Score: 1

      Similar reasoning applies to XWindows.

      It's actually not that bad in X if you are prepared to not properly support vastly obsolete display tech (i.e. paletted displays), or indeed anything other than 24 bit.

      One problem is that the sample code is generally hyper-correct which is fine and all, but not a good tutorial. Here's about the minimal code to draw a red line on the screen:


      #include <X11/Xlib.h>
      #include <unistd.h>

      int main() {
              Display *d = XOpenDisplay(nullptr);
              Window w = XCreateSimpleWindow(d, XRootWindow(d, 0), 0, 0, 640, 480, 0, 0, 00);

              XMapWindow(d, w);
              XFlush(d);
              usleep(100000);

              GC gc = XCreateGC(d, w, 0, nullptr);

              unsigned long color = (255<<16);
              XSetForeground(d, gc, color);

              XDrawLine(d, w, gc, 10, 10, 500, 300);
              XFlush(d);
              sleep(10);
      }

      It's not guaranteed to work literally everywhere, but it will work on what's now the vast majority of hardware. It's certainly not as good as BASIC, with 1 line to enter graphics mode and a second to draw. There are only 8 lines of boilerplate though.

      --
      SJW n. One who posts facts.
    44. Re:Idiocracy by gweihir · · Score: 1

      Well, about half a century of research and experiments into making programming easier has yielded nearly nothing. You still need to understand what you are doing and how the machine (and the network, these days) works. Maybe this complexity is inherent in the task and any calls to make programming easier are just utterly disconnected from reality?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    45. Re:Idiocracy by angel'o'sphere · · Score: 1

      It is not that easy, but it is that simple.
      Many programmers simply can not do that. You won't believe how bad programmers program, they basically always have an overcomplex solution to a simple straight forward approach.
      Issues have many reasons, bad testing, bad requirements, can not be bothered to fix anything, because the new features seem more important ... or old programmers get replaced by newbies ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    46. Re:Idiocracy by angel'o'sphere · · Score: 1

      Learning assembler is not harder than learning C or Lisp ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    47. Re:Idiocracy by jareth-0205 · · Score: 1

      Well, about half a century of research and experiments into making programming easier has yielded nearly nothing. You still need to understand what you are doing and how the machine (and the network, these days) works. Maybe this complexity is inherent in the task and any calls to make programming easier are just utterly disconnected from reality?

      I don't know if that's true - we've made a whole bunch of progress in memory management, encapsulation, process separation etc. I would say that accepting that it's complex and leaving it at that, is really scary. The systems only get bigger and more complex, and... what then? What's the next bigger and more serious security breach?

      I wish I had some answers though...

    48. Re:Idiocracy by angel'o'sphere · · Score: 1

      Another problem is that programmers tend to consider themselves knowing everything already, is there a new trend, like Agile or DevOps or a new language they think it is not worth reading the simplest stuff about it. I guess somehow many programmers are scared their Weltbild will break down by learning something new.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    49. Re: Idiocracy by Bengie · · Score: 1

      some people just don't get it (e.g. bugfixing involves shuffling code around untiil it inexplicably works again)

      I like to say "throwing code at the wall until it seems to work". Lots of emphasis on "seems". I swear, most programmers can't even define how their code is designed to work, yet alone what situations cause it to not work. Really? fk'n A. If you can't tell me how your program is supposed to work, how to do you know if it is working?

      Just yesterday, I was working on a 15 year old internal service for the first time. This service was used by nearly everyone in the company. Hundreds of programmers using it over the past many years. I was looking at some example code on how to use it, and the code struck me as "strange". The logical inconsistencies of how the data was being treated gave me the feeling of logically incompatible semantics. Within 20 minutes of using the service for the first time, I found a bug that has been corrupting data for the past 15 years. I could see records in an undefined state that were inserted back in 2002. The reason why the code seemed logically inconsistent was because it was. How do hundreds of people look at this kind of stuff and not notice?

      These personal anecdotes happen to me all the time. It's becoming a running joke that I can cause mature code to break just by reading it. Don't get me wrong, I love the people who I work with. I've learned to look at this in a more positive light. I can provide a unique skill to the company. It takes all kinds. As positive as I try to be, I can still get frustrated and need to vent.

    50. Re:Idiocracy by Dutch+Gun · · Score: 1

      Yep, I hear you.

      I consider git to be a perfect example of a tool that's absolutely brilliant in what it does, but is needlessly over-complex in many ways. The software forces users to care about many things which I'd posit shouldn't be necessary except for advanced scenarios. I'm a long-time C++ programmer (considered one of the more difficult languages to use), and am also well-regarded in my field. I actually find git tricky to use, and often have to search on the web for whatever arcane syntax is required to perform the tasks I wish to accomplish. The man pages contain a lot of self-referential techo-jargon which really only makes sense to those who are already experts. Ease-of-use really didn't seem to be much of a concern all all during development - nor even consistency of commands. Sure, I could spend the effort to memorize it all if I wished... but I'm plenty busy straining my brain with my actual work.

      I don't mean to bag on git. Obviously, it's an awesome tool, but I think it's also typical of many developer-focused tools, languages, and libraries. It makes an assumption about the intelligence and expertise of the users, and as such, often tends to require MORE intelligence or expertise than is strictly necessary to use it at a basic or introductory level. It's especially frustrating when you can point out simple changes, sometimes very minor or even cosmetic in nature, that would drastically have improved the user experience, but it's often far too late once a product has gained critical mass to make changes like that.

      Generally speaking, I don't really buy the ridiculousness of the "everyone can code" mantra - not at a professional level at least, but my concern is the trend of making things more difficult on professional programmers who are clearly competent enough to use the tools if enough brainpower is expended... but why make things more difficult than they need to be? All that does is distract the programmer from more productive work. No matter how smart you are, your brainpower reserve is ultimately limited.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    51. Re:Idiocracy by The+Cynical+Critic · · Score: 2

      After the "intractable shambles" the last 50000 attempts have produced it should be more than clear enough that dumbing down programming just doesn't work and the solution really does need to be making those with the knack for the job more productive rather than just maximising the number of bodies.

      Not everyone is suited for every job out there and there's genuinely no shame in admitting a particular job just isn't for you.

      --
      "Why should I want to make anything up? Life's bad enough as it is without wanting to invent any more of it."
    52. Re:Idiocracy by Bengie · · Score: 1

      I love learning new trends not because I want to be trendy, but because the trend is being done for typically a good reason. Learning the ideals of the latest buzzword helps me look at the problem from a new vantage point. There is no one cure, there is only many different views of the same problem and each view has its strengths and weakness.

      Understanding ideals is more important than following them. I highly enjoyed my TDD book. I don't do TDD at all, but the mindset the book has given me and allowed me to make better code that is more well factored and easier to unit test.

    53. Re:Idiocracy by mcswell · · Score: 1

      I do a fair amount of programming in Python. My most recent program was extracting certain fields from TSV files (dumped from spreadsheets) and outputting them if they met certain conditions. If the data had been clean, it would have been a simple program.

      The problem was that the data was not clean. I needed to collapse records that contained the same text data, but there were misspellings, use of quote marks in some records and not in others, etc. etc. By the time I got done, I had to convert lat/long to distance (to know whether two similar names might refer to the same place), decide on a cutoff on how far apart two places could be to be considered the same, do spelling normalization of names in both Roman and Arabic scripts (in Arabic, this involved collapsing certain Unicode code points that are often not correctly distinguished by typists), and use Levenshtein distance to further collapse place names. Some of this can be done with library calls, and some requires special coding.

      The resulting code was several times longer than it would have been if the problem had been as simple as I thought it was when I started. Which brings up another point: a lot of coding requires domain-specific knowledge (e.g. what Arabic characters should be collapsed--I had to consult with Arabic speakers for that), and it requires knowing when the answer you're getting could be improved (again, I had to pass some questionable results by Arabic speakers, who found mistakes I had made).

      You might think that this was an unusual case, that most programming problems are simpler. I can't say whether most problems are, I can only say that virtually all the problems I've worked on have suffered from dirty data, so that most of the work lies in testing for data that breaks assumptions, and deciding how to deal with it (output a warning, silently ignore it, silently fix it where the fix is obvious, edit the data, go back to the drawing board...) Seldom is the problem one of logic (although I found one of those kinds of errors in my program yesterday: 'if A and B then c else d' should have been 'if A then if B then c else e else d', sorry for the lack of indents...).

      Oh, and there's the problem of making the program human-understandable, so that it can be modified by someone in the future (including the future me, http://www.catb.org/esr/writin...).

      So no, I don't think programming can be easy, at least not for the average problem that can be solved by writing a program.

    54. Re:Idiocracy by admin7087 · · Score: 1

      Most day-to-day programming tasks are fairly simple, if not a bit monotonous. Moreover (and independently of the first point), almost any team of programmers can be trained and/or forced to write highly secure, highly reliable software, e.g. using Ada/Spark or Rust or C++ with extensive code analysis tools and testing, extensive code reviewing, rule books, and so on. That software will cost many times more than normal software, though, and the development will take way longer.

      The bad state of some consumer software is because of lack of liability and many other political, legal, and economic issues, not because of a lack of skilled programmers. If a company is not liable for bugs and their customers prefer fast release cycles with new features over stability, then the company has no incentive to spend more money on software quality. It all depends on how many resources you spend on company practices, code reviews, auditing, etc., up to formal verification of program correctness. You can even build a high integrity system by combining three redundant independent systems that are developed by several completely independent programming teams, maybe even using different compilers. But who is going to pay for that?

    55. Re:Idiocracy by Anonymous Coward · · Score: 1

      It's not "many people can't think logically". Nobody can. Ther eare only some that, through a lot of training, can force themselves to do it in a reasonable approximation. To this end, because nobody can think logically anyway for any useful stretch of time, it is much more important to learn how to find mistakes than to try not to make any.

      I am a theoretical physicist and my own observation is that I do not arrive at logically consistent results by thinking logically but by exhasutively making and finding fixing every conceivable mistake until there is nothing left but the correct solution

    56. Re:Idiocracy by johanw · · Score: 1

      We need more H1B's with fake diploma's to do the work!

    57. Re: Idiocracy by MightyMartian · · Score: 1

      And I'm sure with you're amiable demeanor, you prove your adequacy to your managers all the time.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    58. Re:Idiocracy by MightyMartian · · Score: 1

      A fad language? It's one of the most widely used languages in the world. It's like calling COBOL a fad language

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    59. Re:Idiocracy by Jerry · · Score: 1

      You don't need to be super-intelligent to program effectively. You just need to be able to think logically and break down tasks. It doesn't need to be made easier, because if you can't do those two things you shouldn't be programming.

      You can't program what you do not know or cannot learn.

      However, a lot of my programming students, when introduced to the idea of sorting a list of words or numbers, immediately "invent" the bubble sort. Unless they've been studying ahead or reading on the side, and the good students do, they'll never "invent" the shell or quick sort. Today, most would simple do a search of their coding API for "sorting" and subclass the sort object, making sure to choose the right algorithm out of the choices: bubble, shell, linked list, double linked list, head-tail list, etc.... Ditto for the 3D graphic object they've embedded into their stock market GUI app. When a bug appears in the API and breaks their app they have to attempt a work-around, if that is possible, or wait until a fix comes down the pipe after they file a support ticket.

      --

      Running with Linux for over 20 years!

    60. Re: Idiocracy by johanw · · Score: 1

      > . Wheels are reinvented thousands of times over,

      That is where Stackoverflow comes to the rescue.

    61. Re:Idiocracy by Tough+Love · · Score: 1

      Maybe the internet needs grades like the education system so there can be a safe place for elementary school programmers to play, socialize with peers, and not hurt themselves.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    62. Re:Idiocracy by Tough+Love · · Score: 1

      You can pretty much use any modern language for any problem

      You can leave out the "pretty much" because of Turing equivalence. Reality is a bit different. Little irritations like limited resources and the need for stability and maintainability come into it.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    63. Re: Idiocracy by Zero__Kelvin · · Score: 1

      Well, to start with, the BASIC code will be written by an amateur, not a highly skilled developer.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    64. Re:Idiocracy by Tough+Love · · Score: 1

      I am with you on that. Effective programming skills can be taught and learned just like Jazz can. The common wisdom once was, Jazz can't be learned, it is something you were born with. Well, maybe in the case of Benny Goodman, sure, but there are plenty of Jazz players who can who were taught to lay down a sweet line that may fall a bit short of genius. Perfectly fine for a wedding.

      The situation is even more relaxed in the programming world because here we are after utility, not art. Objectively easier to break it down than music.

      That said, everybody knows that some are much better at it than others, maybe because of being better at learning, and quite probably they did inherit bigger, stronger mental tools. These may end up as famous superstars and change the world, but for every one of those we need 1,000 others whose craft rises only to the level of mastership. Unfortunately, that's not what we see today, instead we see 10 serious craftsmen per 990 romper room toddlers playing programmer with management none the wiser and unable to distinguish between them.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    65. Re:Idiocracy by LinuxIsGarbage · · Score: 1

      You don't need to be super-intelligent to program effectively. You just need to be able to think logically and break down tasks. It doesn't need to be made easier, because if you can't do those two things you shouldn't be programming.

      That almost is the definition of intelligence. There's a lot of people that struggle to take a problem, think logically, and break it down into tasks. A computer will only do exactly what you tell it to. At the highest level, almost all programming is just "IF-THEN". You have to make a logical comparison, then execute something based on the decision.

      I do a lot of work with PLCs and ladder logic, more than traditional programming languages. I've met a lot of capable electricians (to whom ladder logic is targeted), that are familiar with the tools, familiar with the environment, have had the training, and have had more experience than me, yet really struggle to understand the logical comparisons the program is making, and how it's going to execute.

      Incidentally I've seen the same people struggle trying to understand a hardwire relay diagram. The very thing ladder logic was designed around. They are generally poor troubleshooters and problem-solvers. No amount of training will rectify this.

      Likewise I've seen a lot of people struggle to use formulas in Excel. While Excel is terrible to understand for super-nested formulas, it is a very accessible environment that a lot of people use (if nothing else as a table maker). To either make some basic computations, or basic string formatting formulas, a lot of people really struggle with it.

      If people don't understand logic, it won't matter how easy or accessible the language is. People who intuitively grasp logic will excel in programming, particularly if presented with formal training and CS principles.

    66. Re:Idiocracy by Tough+Love · · Score: 1

      It's not "many people can't think logically". Nobody can.

      You delude yourself with wishful thinking. There are logical prodigies just like there are mathematical prodigies. Alan Turing is an archetypal example. You not being one does not change the fact. Not calling you stupid, but you don't need to be a genius to be a theoretical physicist, just diligent at building your skills. The vast majority of the Higgs discovery team were practitioners, not prodigies. But study the life of Schroedinger or Einstein (again) if you still believe there is no such thing as a logical prodigy.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    67. Re:Idiocracy by Hognoxious · · Score: 1

      ... by tomorrow morning.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    68. Re:Idiocracy by Tough+Love · · Score: 1

      Try to understand the Android Studio for the first time. I'm an experienced coder, but I didn't understand about half the terminology.

      And that doesn't even rise to the level of computer science, it's just a bog standard engineering mess. If you want to get a taste of genuine complexity then try on something at the bleeding edge of computer science like distributed consistency or language translation. As distinct from invented complexity due to crap design and no culture of iterative improvement.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    69. Re: Idiocracy by DNS-and-BIND · · Score: 1

      Oh, we can do that already. It's just that it would cost 5x more and take 5x longer. People don't want good software, they want fast software that's cheap.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    70. Re:Idiocracy by Tough+Love · · Score: 1

      Easy to learn, fantastically difficult to master. But today it is mostly used for drivers and the tiny amount of glue an operating system needs that can't be expressed in any sane way in a high level language. Mostly tiny little bits with well defined requirements, readily accessible to the average programmer willing to read the specs closely.

      Today, the assembly masters are the guys who specialize in back end code generation or JIT, a highly exclusive club. There is just no room for anything less than mastership in that space.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    71. Re:Idiocracy by Tough+Love · · Score: 1

      Learning assembler is not harder than learning C or Lisp

      Learning assembler superficially, maybe. The syntax is simple. But learning to deal with the bizarre additional boundary conditions and extreme lack of modularization support is very weird.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    72. Re:Idiocracy by Hognoxious · · Score: 1

      Effective programming skills can be taught and learned just like Jazz can.

      Jazz is pretty difficult. You have to know everything about music theory so you don't accidentally obey any of it.

      DrrrTISH.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    73. Re:Idiocracy by Anonymous Coward · · Score: 3, Insightful

      I am *amazed* at how many words you used to say basically nothing.

      One thing you certainly didn't accomplish in your post was the formulation of a cogent counter-argument to the statement "The problem is that the problems that need solving are HARD." You opened by stating you disagreed, which suggests that you were going to demonstrate how the statement was wrong. But instead you just rambled aimlessly, making a heaping mass of independent statements that did not connect to one another in any meaningful way.

      Consider:

      Many businesses spend a lot of money on programmer salaries.
      These businesses would do better if they did not have programmer salaries as a cost center.
      These businesses would, therefore, happily buy tools that enable non-programmers, or significantly fewer programmers, to get the job done.
      Therefore, there is a HUGE market for such tools, and any business that can provide them will make empire-level profits from them.
      Therefore, every tech giant is doing everything it can to produce such tools already, because they all want that money.
      And yet, the industry still needs programmers to use the best and easiest tools that are available today.
      Therefore: the problem can't be that the industry just hasn't tried. The problem must be that the problems being solved are hard.

      There, a cogent and succinct argument that demonstrates the original point.

    74. Re:Idiocracy by Tough+Love · · Score: 1

      Oh, you mean like no melody, no harmony, no rhythm, no structure. Gotcha.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    75. Re:Idiocracy by Tough+Love · · Score: 1

      You write a lot of tidy text and it superficially makes sense but is actually chock full of fallacies. For example, there is no fundamental rule dictating that a more abstract computer language must generate more machine code. For example, Haskell compared to Javascript is sufficient to falsify your claim. Haskell generates much less machine code than Javascript + V8. Why? Because the compiler and code generator are written in Haskell, a tool admirably suited to the kinds of abstractions required to express a really good code generator. And because some of the particular abstractions of Haskell (provable limitations of side effects!) help a lot. And because Haskell can work on the problem as long as it wants, it doesn't need to worry about real time latency of the compiler.

      I'm not calling your post junk, I'm just saying it needs to be debugged.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    76. Re:Idiocracy by Tough+Love · · Score: 1

      That was sweet.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    77. Re:Idiocracy by Aighearach · · Score: 1

      It sounded that way to me too.

      I say, stop trying to memorize so many manual pages and just read them, and try to remember where they're stored and how to look things up in it later.

      There are details for real reasons.

      And the modern hypercard, isn't that the same as an html editor built into a web browser? Isn't this long-solved?

    78. Re:Idiocracy by Tough+Love · · Score: 1

      Pride is not the same as narcissism. Pride in craft is an essential attribute of a competent programmer.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    79. Re:Idiocracy by Tough+Love · · Score: 1

      they're like snowballs rolling down hill, becoming bigger and more chaotic until they literally are unmanageable

      Shitballs actually, and when they hit the wall it gets everywhere and everything really stinks.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    80. Re:Idiocracy by Tough+Love · · Score: 1

      A really common issue is when you have a simple bit of algorithm wrapped in maniacally complex layers of crappy interface. Then it may be better to just ignore that and roll your own.

      Unfortunately, the more typical approach of the beta dev is to wrap the crap in yet another layer of crap.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    81. Re: Idiocracy by MightyMartian · · Score: 1, Flamebait

      So I'm thinking you're probably the very efficient and brilliant coder type that, put off in a room by yourself, probably does pretty good, but in reality, everyone hates your guts, hates interacting with you, you have no chance of moving up in the organization, because you have such an abrasive and corrosive personality coupled with extraordinary arrogance that the thought of you ever having any authority over anyone sends chills through both your managers' and your peers' spines. Eventually, because, you know, you don't get or even like women (the feeling is mutual of course), you'll write some long diatribe on the superiority of male coders and why women should be happy to just answer the phones in between squeezing out babies, and you'll be fired, become a hero on Breitbarts, probably get hired by a right wing think tank, and do fairly well because you'll be working with all the other spectrum disorder malcontents whose parents didn't have the good sense to send them to cognitive therapy for long enough for you to learn how move through life as a functioning and tolerable adult.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    82. Re:Idiocracy by Cederic · · Score: 1

      Shrug. Multiple installations are hardly something to fear.

    83. Re:Idiocracy by angel'o'sphere · · Score: 1

      Assembler is "modularized" just like C.
      You have *.asm files, assemble them to *.o files, but them into *.a files if you need, and link them.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    84. Re:Idiocracy by Tough+Love · · Score: 1

      Assembler is "modularized" just like C.

      No it isn't. Write a swtich statement in assember then get back to us.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    85. Re:Idiocracy by JMJimmy · · Score: 1

      No we wouldn't because computing is as complex as the technology and business needs make it. The APIs we create simplify it as much as possible but more often than not they create too much overhead in "simplifying" things.

    86. Re:Idiocracy by Tough+Love · · Score: 1

      > No it isn't. Write a swtich statement in assembler then get back to us.

      A switch statement is just a series of gotos. Any macro assembler can handle it.

      You said "Assembler is "modularized" just like C." You just convincingly answered the question "why should anybody ever let you anywhere near their code?"

      If you can pull your head out of your ass for a minute, then write a structure assignment in assembly. How about a function call with expression parameters and structure return. Oh sorry, you have never written a line of assembly in your life so don't bother.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    87. Re:Idiocracy by djinn6 · · Score: 1

      Yes, garbage collection allows people to write less code, but they still need to understand memory management. Otherwise you'll have people who try to load GB-sized files into an array or use hash tables to store everything because "it's fast".

      The actual reason people think less about memory nowadays is because computers have so much memory. You can implement "cat" by loading all of the input files into arrays, calling "strcat" N times, then writing the result. And 99% of the time it will work just fine.

    88. Re: Idiocracy by phantomfive · · Score: 1

      That's arguably true of C# too. It's nothing about the language, but the community around it makes ignorance a virtue: they celebrate that they don't have to know things, to the point that they mock people who do. Not a community that promotes skill.

      --
      "First they came for the slanderers and i said nothing."
    89. Re: Idiocracy by phantomfive · · Score: 1

      Note that processing a large file will probably be bottlenecked by disk access, so the slow language and the fast language will have the same running time within a rounding error.

      --
      "First they came for the slanderers and i said nothing."
    90. Re: Idiocracy by phantomfive · · Score: 1

      You have too much respect for Google and Dropbox. They are both stale companies by now, with employees who are there for the perks (although Google is admittedly big enough to have some departments with good people)

      --
      "First they came for the slanderers and i said nothing."
    91. Re: Idiocracy by phantomfive · · Score: 1

      How do you teach them to do it right?

      --
      "First they came for the slanderers and i said nothing."
    92. Re: Idiocracy by phantomfive · · Score: 1

      Not to mention anyone who writes a large project in assembly uses a decent macro system.

      --
      "First they came for the slanderers and i said nothing."
    93. Re: Idiocracy by phantomfive · · Score: 1

      It's not THAT hard. Spend a few months learning obscure opcodes and using a profiler on your programs and you will easily figure out how to run circles around compilers.

      --
      "First they came for the slanderers and i said nothing."
    94. Re:Idiocracy by synaptik · · Score: 1

      Wow, you completely neutered his joke before he could get any laughs! Good job.

      --
      HSJ$$*&#^!#+++ATH0
      NO CARRIER
    95. Re: Idiocracy by phantomfive · · Score: 1

      The way I heard it: "the solution will never be simpler than the problem it is trying to solve."

      --
      "First they came for the slanderers and i said nothing."
    96. Re: Idiocracy by phantomfive · · Score: 1

      Why are you flushing and sleeping so much?

      --
      "First they came for the slanderers and i said nothing."
    97. Re:Idiocracy by fafalone · · Score: 1

      Visual Basic .NET was a giant step backwards from VB6 in both power and ease of use for the kind of apps VB6 was designed to make, which is why despite really showings its age, it *still* hasn't dropped out of the top 20 on the TIOBE Index 20 years after the last update. I've tried to switch, but the roadblocks they've put up to dropping down to lower level things are just too infuriating, while at the same time simple GUI and the simplest things are much more complicated with zero added benefit. The only upside is your apps natively look 'modern' without having to fuss with the manifests, WinAPI calls, and shell interfaces it takes to make VB6 apps visually indistinguishable from any other modern app (especially at different DPIs). Though again, actually using those things is far easier in 6.

      If Microsoft had made a true successor, instead of entirely different product similar in name only, taking the path they did with updates they gave VBA, we would still have a tool that was equally useful to newbies and pros.

    98. Re:Idiocracy by angel'o'sphere · · Score: 1

      What has a switch statement to do with a "module system"?

      A switch statement is a 3 or 4 liner, plus the "cases" you want to handle, depending if you use a table with target addresses or a binary search for the target addresses ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    99. Re:Idiocracy by angel'o'sphere · · Score: 1

      You said "Assembler is "modularized" just like C." You just convincingly answered the question "why should anybody ever let you anywhere near their code?"

      No he did not say that, I did .... and you seem to be a complete idiot.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    100. Re:Idiocracy by Tough+Love · · Score: 1

      You said "Assembler is "modularized" just like C." You just convincingly answered the question "why should anybody ever let you anywhere near their code?"

      No he did not say that, I did

      You said that? Go to your room.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    101. Re:Idiocracy by Tough+Love · · Score: 1

      That joke was self-neutering. Got anything to say about posting a joke to a serious thread, thus hijacking it? Didn't think so.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    102. Re: Idiocracy by serviscope_minor · · Score: 1

      X is a command potocol over sockets. You only do things now if you send them to the server (i.e. flush the command queue).

      The first flush and sleep is to get the window on the screen. The sleep is to wait for it to happen. The more conventional method is to wait for an appropriate even, but that has a lot more boilerplate.

      The second flush is to get the draw line to appear before the final sleep. The final sleep is so that program stays running, otherwise the window would close.

      --
      SJW n. One who posts facts.
    103. Re:Idiocracy by gweihir · · Score: 1

      Systems are definitely getting more complex and that is a problem. I agree on that. But the complexity is there and hiding it only makes it even harder to handle.

      Example: Some time ago I implemented a custom lookup table, and it turned out that for good performance I needed to request maximum memory at the start and then manage it myself. Sure, for simpler uses the memory management system was just fine, but have something a bit more demanding and it stands in your way and you need to go back to do something even more complex yourself. The difference between me and most "coders" is probably that I can do this competently, as I have done this several times before, for example when I needed to deal with a really huge data-set during my PhD.

      That is what I mean by "hiding" complexity. It will still be there, and you wills till need to understand it, even if you deal with it less often. It cannot be made to go away or at least nobody has found a way to do that. And since computers are not really getting faster anymore, the solution of just sacrificing performance to actually get rid of some complexity will not work either.

      The answer I have for the security angle is simple: Stop increasing complexity. Do solid, KISS-respecting, software engineering that only implements what is really needed and the complexity becomes manageable if you have good, experienced, competent people. Put in more and more badly designed or not really needed features, make things more complex (like the insanity to push megabytes of JavaScript to a client to just render a table, for example) and the whole house of cards will eventually come crashing down.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    104. Re: Idiocracy by phantomfive · · Score: 1

      Cool, thx

      --
      "First they came for the slanderers and i said nothing."
    105. Re: Idiocracy by serviscope_minor · · Score: 1

      No worries. I just realised I could write the correct event loop in a much more ters, but straightforward way:


              Window w = XCreateSimpleWindow(d, XRootWindow(d, 0), 0, 0, 640, 480, 0, 0, 00);

              XSelectInput(d, w, ExposureMask);
              XMapWindow(d, w);
              for(XEvent e; XNextEvent(d, &e), e.type != Expose; )
              {}

      You don't need the first flush and sleep then. It's the same length if you don't count the {}. I blame lack of coffee for not using that obvious solution first. In fairness, I don't often try to write absolute minimal boilerplate code using the raw API :)

      --
      SJW n. One who posts facts.
    106. Re: Idiocracy by phantomfive · · Score: 1

      What do you normally use?

      --
      "First they came for the slanderers and i said nothing."
    107. Re: Idiocracy by Zero__Kelvin · · Score: 1

      I agree 100%. My point was that at least there is a chance that the C# guy will be a skilled professional, while zero skilled professionals would ever choose BASIC. For bonus points to the readers, what does the first letter of BASIC? (Note: BASIC was the first language I learned and it is useful for that purpose but in 2018 there is no reason to learn it as we have Python now.)

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    108. Re: Idiocracy by hackwrench · · Score: 1

      Are you his mummy?

    109. Re: Idiocracy by serviscope_minor · · Score: 1

      Depends what I'm doing. Usually, if I need to knock together a GUI, the FLTK serves well. If I'm doing something by hand, normally the event loop features as a major part so I don't think of it as small.

      I also rather like X, but having done a fair bit of it, I'm used to seeing the boilerplate. I don't usually stop and reexamine things like I just did.

      --
      SJW n. One who posts facts.
    110. Re: Idiocracy by hackwrench · · Score: 1

      Fine Learn ASIC then.

    111. Re: Idiocracy by hackwrench · · Score: 1

      You do think logically to a certain degree, but you do not do so consistently.

    112. Re: Idiocracy by hackwrench · · Score: 1

      Making errors should be easy. Detecting them should be easy too.

    113. Re: Idiocracy by djnewman · · Score: 1

      Not always true. I for one use Basic daily (VBA), there is nothing wrong with the language when a competent developer writes clean, tested, documented code.

    114. Re: Idiocracy by Zero__Kelvin · · Score: 1

      Sorry to burst your bubble but, yes, it is always true. Nice clean well tested code in BASIC has all the problems inherent to BASIC, including but not limited to code reuse and maintanence nightmares. If you really were a competent developer you would know this already.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    115. Re: Idiocracy by djnewman · · Score: 1

      Bubble time: .net Basic is as fully capable as .net C# and uses the same runtime. Non .net BASIC supports reuse with classes. I have many functions and subroutines that have worked for years with no changes in hundreds of programs. Basic is not good for all things, but for general business use it does 99% of the job. And, if you need to write an Excel or Word macro there is no other option. Maintenance of any program is dependent on program documentation and training as well as knowledge of the language. So far, no one has had to wake up at 2 am to fix my code. I wish that were true of some Cobol, Java and C# I have to support.

    116. Re: Idiocracy by Zero__Kelvin · · Score: 1

      We are discussing BASIC. You are trying to change the subject. You are not talking about BASIC. Off you go now ....

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    117. Re: Idiocracy by djnewman · · Score: 1

      Not off topic, still discussing Basic. Prior comments discussed Excel. That version of Basic is VBA. You suggested it would be written by an amateur. I an not an amateur having been developing in multiple languages since the 1970's. Basic is a good solid language and will be around for many more years. I am sorry you don't care for it.

    118. Re:Idiocracy by Cederic · · Score: 1

      While the body is a mass of complex systems, so is an IT system.

      Show me the medical professional that understands fully the workings of the body, right down to how each organ functions, the ways in which it can go wrong and the appropriate ways to fix it.

      May as well ask me to show you the IT professional that can start with a mountain, mine it, process the ore, design a chip, fabricate it, build the rest of the computer around it, write the OS and then start on the application tier.

      Neither professional exists. Meanwhile "xray shows a lump here, we'd best go chemo" is fundamentally the same as "log files show latency here, we'd best go CDN". Neither of them are engaged in the detail behind those solutions.

      The difference is that an IT professional did design and build the CDN. No fucking doctor designed and built the lung with the lump in it.

    119. Re:Idiocracy by Khyber · · Score: 1

      "mostly because it is a C compiler in disguise."

      In which case, your example fucking FAILS. Pure platform-specific BASIC, please, if you even know how to code for the specific platform (I do, since the TI 99/4A over 30 years ago, and BASIC doesn't really change much between architectures.)

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    120. Re: Idiocracy by tigersha · · Score: 1

      Maybe you should readit as âzLetâs smarten up Excel Macros for the time we really do not need that monster C programâoe

      Most people waste an amazing amount of time clicking through lists of things. This is the target here. Automating small mundane click-this-then-set-that-option-and-then-go-back-to-the-list stuff

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    121. Re: Idiocracy by tigersha · · Score: 1

      I have a highly skilled developer here who writes a database query that generates data for a Ruby program that he processes and loops over to generate a sequence of new SQL queries.

      Same highly skilled programmer uses a keyword table, used to tag records and stores a pice of JSON in it as a string to record some button presses thereby removing any ability to query the data.

      I have a cat that can program better than that.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    122. Re:Idiocracy by bingoUV · · Score: 1

      Prodigy does not mean perfect - just extraordinary.

      Now assuming that the GP meant "perfect logic" in the statement "can't think logically" - which is a reasonable assumption given the context - your statement is going off on a tangent. Existence of prodigies is no evidence for existence of perfectly logical thinking humans.

      Einstein, specifically, made logical errors. His contribution, and also his genius was in daring to take Maxwell's equations far beyond what others of his time dared. And subsequent explanation of his thought, too. This does not need just logic, nor would having only logic have enabled him to do that.

      It is possible that the "logical prodigies", as you describe them, were more adept at finding their own logical bugs. Or used tools (including ideological constructs) to prevent the bugs from affecting a lot of their conclusions. But there is no evidence that they were immune to many of these : https://en.wikipedia.org/wiki/... , or maybe more that are not listed here or have not been discovered yet.

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    123. Re:Idiocracy by Hognoxious · · Score: 1

      You are, of course, right.

      I remember seeing a woman on TV who had all her giblets and stuff the wrong way round - so it was the left ventricle that went to the lungs and the right to the aorta and so on. Total mirror image.

      Still, at least the manufacturers aren't doing it deliberately. I doubt I'll upgrade from Chimpanzee 3.0 SP2.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    124. Re: Idiocracy by Areyoukiddingme · · Score: 1

      How do hundreds of people look at this kind of stuff and not notice?

      Dozens of those people did notice. And kept their heads down and didn't make waves because fixing it would invoke C-level management because the inconsistent data had massive business implications. Or some such.

      Whenever a developer doesn't fix something, look no further than management for the reason why.

    125. Re:Idiocracy by synaptik · · Score: 1

      I got plenty. But seeing how I'm conversing with someone who objects[*] to small injections of humor[**] to a non-somber thread, there doesn't seem to be much point.

      [*] Or at the least, was triggered by a good-natured jab at their favorite musical genre

      [**] And yet, has a joke in their own sig

      --
      HSJ$$*&#^!#+++ATH0
      NO CARRIER
    126. Re:Idiocracy by JoeDuncan · · Score: 1

      The complexity of software comes from the complexity of the underlying problem. ...needs to understand that complexity to create working software for it. ... Lay people, especially managers, like to think "if we just used library X" that could take care of all the hard stuff. The reality is, using library X now becomes the hard part.

      Exactly! The problem with all these frameworks and libraries and that supposedly make things "easier" and "more accessible" is that they've done it by trying to predict all the use cases that might be needed, and moving the complexity for said cases inside the "black box".

      It works great for the simple problems the authors predicted, but the moment your problem is more complicated and "outside" of their predictions - suddenly the problem IS the library/framework, which now presents a barrier to development

      Trivial solutions work for trivial problems, but multiply the complexity of real world problems.

  2. "for rock stars at Google " ?! by Anonymous Coward · · Score: 1

    Please. Google's talent is waaaayyyy over-hyped. And some of the shit I've seen them do is cringe worthy.

    1. Re:"for rock stars at Google " ?! by Opportunist · · Score: 1

      Google used to have really talented people. Unfortunately a mix of Peter Principle and encroaching red tape (aka corporate talent rot) eventually caught up to them.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    2. Re:"for rock stars at Google " ?! by Opportunist · · Score: 1

      Aside of the guy that got fired for questioning it?

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    3. Re:"for rock stars at Google " ?! by Tough+Love · · Score: 1

      Google used to have really talented people. Unfortunately a mix of Peter Principle and encroaching red tape (aka corporate talent rot) eventually caught up to them.

      What do you mean, "eventually"? Only thing I can say is, not as bad as Facebook, but that is damning with faint praise.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    4. Re:"for rock stars at Google " ?! by Tough+Love · · Score: 1

      what they get now is people practicing to be college professors, trying to have "profound thoughts" instead of actually doing the work.

      Right. As everybody knows, all the programming work at Google is done by interns while the tenured smart people head to offsites and take time off for Burning Man.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  3. Arduino? by AndyKron · · Score: 1

    Arduino?

    1. Re:Arduino? by Hardness · · Score: 1

      Python?

    2. Re:Arduino? by OzPeter · · Score: 1

      Maybe he is looking for python?

      What about Python on an Arduino?

      https://github.com/micropython...

      --
      I am Slashdot. Are you Slashdot as well?
    3. Re:Arduino? by drinkypoo · · Score: 2

      Arduino is C++. A lot of the documentation basically says "refer to the samples" and the samples themselves are poorly commented. Arduino is awesome, but it's not easy. It's just easier than MCU programming has been in the past.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    4. Re:Arduino? by fluffernutter · · Score: 1

      By the sheer number of seemingly experienced developers here who seem to get tripped up by Python's lack of static typing, no he isn't looking for Python. In fact, Python must be one of the hardest languages there is.

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    5. Re:Arduino? by nadaou · · Score: 2

      I'll stick to C++ on Ardunio myself but programming Arduinos with Python, toolchain-free, is now a thing thanks to small onboard flash storage, complex but hidden bootloaders, and more powerful microcontroller chips such as the Cortex M4.

      https://learn.adafruit.com/welcome-to-circuitpython/what-is-circuitpython

      --
      ~.~
      I'm a peripheral visionary.
  4. Not much evolution in programming in 50 years by Anonymous Coward · · Score: 1

    relative to many other tech things.

  5. Not really. What you get is ... not done by Opportunist · · Score: 5, Insightful

    What you get when you let coders decide where to go is nothing. Ever. At least nothing that's ever done. Mostly because you get this and that and something else because all of those things are absolutely necessary, and then eternity to accomplish it all. If programmers were to make a toaster, it could toast anything from bread to waffles to muffins and even your sweater, because someone sometimes thought it might be helpful (but we don't remember who said that, but we also can't remove that sweater-module anymore without breaking the rest), it would measure its own temperature based on all the toasting done before to determine the perfect toasting temperature and time (both would be measured by three different sensors and devices), you'd have to give detailed feedback on your toasting and eating experience that would then be used to create a heuristic based on world wide averages... Well, that's the theory. Right now it's basically a stove top with a pan attached.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:Not really. What you get is ... not done by Darinbob · · Score: 4, Interesting

      You've got to factor in product and project managers too. As in "guys, we've got a big potential customer who suggested that sweaters might be toasted, so can you get this done by next week? I already told them we'll have a demo, so don't let me down." and "it would set us apart and be disruptive to the toaster industry if this could wash dishes too."

    2. Re:Not really. What you get is ... not done by The+Cynical+Critic · · Score: 2

      What you're describing sounds way more like what happens when you let managers with MBAs and the markering department make determine what features your product should have. Some over-eager programmers may suggest various improvements, which in your example would be things like making it easy to empty out the crumbs or ensuring it's well done but won't burn your fingers where you grab it after it's done, but most programmers I know only go overboard on how well they want to get it to achieve the intended task.

      Sure, programmers and engineers often end up over-engineering things, which obviously isn't good, but that's a very different kettle of fish compared to the management&marketing-induced feature creep you're describing.

      --
      "Why should I want to make anything up? Life's bad enough as it is without wanting to invent any more of it."
    3. Re: Not really. What you get is ... not done by Anonymous Coward · · Score: 1

      Ok then mgmt must stick to a spec that is agreed on.

      Mgmt: Oh yea about your toasting sweaters idea that we shot down and we told you to design it without that because you told us it cost extra and also told us that we would have to start over if we changed our minds? Yea that toasting sweaters idea... Well the customer heard about it from a competitor and they won't buy from us without it.

    4. Re:Not really. What you get is ... not done by Opportunist · · Score: 1

      Not to mention the ever popular

      "Guys, Toasters-for-less just added a fridge module to theirs. We gotta have that too!"
      "Do people actually use it?"
      "No, but it's a checkbox to tick in the feature list, and without we'd have one feature less".

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    5. Re:Not really. What you get is ... not done by hoggoth · · Score: 1

      And salespeople. Don't forget salespeople. When I worked at a system integrator (custom code for various industries) we got a cool big document scanner. We made a *spreadsheet with hyperlinks* to (1) scan a new document, (2) view a document. A salesman saw it and within two weeks had sold our "industry leading document management system" to a big South American bank. We had less than a month to put something together and then we all got shipped to South America to install our industry leading system and train the techno-phobic bank staff on using our spreadsheet with hyperlinks.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
  6. Is our basic education system a problem by oldgraybeard · · Score: 5, Interesting

    I see that many professionals might be able to use basic programming skills to be more efficient and productive. But most programming tasks require basic logic, math, reading comprehension and critical thinking skills. The very skills many entities in our education system are failing in their attempts to teach. Not to mention the drift away from the 3 R's and the moves to gender and social focus points of our educational curriculum
    I wonder what percentage of individuals have the core foundation to even absorb how to write code.

    Just my 2 cents ;)

    1. Re: Is our basic education system a problem by aj50 · · Score: 1

      Interesting. The complaint I hear most often in the UK is that there's too much emphasis on exam results in core subjects (english, maths, science) at the expense of art and humanities.

      --
      I wish to remain anomalous
    2. Re:Is our basic education system a problem by raftpeople · · Score: 1

      I think the actual skill that really matters is the ability to mentally model what is happening, manipulate the problem and solution abstractly and model the solution.

      I can see the limit on some people when trying to walk them through specific problems, drawing things on the white board, explaining the implications of X, Y and Z etc., and they really struggle to see it. But the people that are good get it naturally with limited information transfer.

      I do think that having an environment/set of tools that allows for some percentage of problems to be handled with the simpler tools is a good thing. There is a continuum of problems and not all of them require advanced tools.

    3. Re:Is our basic education system a problem by oldgraybeard · · Score: 1

      I agree the ability to visualize things is a critical skill. And interesting, imaginative child play pops in to my mind. As a child I had a very limited # of toys including American Bricks, Tinker Toys, Lincoln Logs and an Erector Set, I know I am old ;) And most were just items I could use to create other pretend things with my imagination to play with for hours. Along with things I made in the garage on the farm when not doing chores.
      I used to ride my bike to the dump to collect old electronics to take apart and collect parts/components to make other stuff.
      Do some kids today have to many pre made toys/devices/game consoles/experiences to develop a good ability to visualize or develop a good imagination?

      Just my 2 cents ;)

    4. Re: Is our basic education system a problem by datavirtue · · Score: 1

      I made a fucking robot out of a log and an old car radio when I was about 4 yrs old. I thought he was real...it was a he. Never forget that little guy.

      --
      I object to power without constructive purpose. --Spock
    5. Re: Is our basic education system a problem by Megane · · Score: 2

      And for those whom our education system has failed to teach any science, technology, engineering, or math, "STEM" gets corrupted to "STEAM". This is partly to keep them the little snowflakes from feeling bad about themselves, and partly to keep the education system from being held accountable.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    6. Re:Is our basic education system a problem by EnsilZah · · Score: 2

      I think proper exposure to coding is the main issue.

      I think that if you can show a kid in high school that there's a class of problems that a computer can do a lot more quickly and accurately and save them time by writing a few lines of code, they'd be more likely to code later in life.
      And I think one good way to achieve that is to give them a project that's relevant to their interests and have them work their way to a solution.

      When I was in grade school I remember this really annoying class, they made us walk all the way to the other end of the school and sit in front of a computer, and move a fucking monochrome icon of a turtle around to draw various shapes from our work sheet.
      Only when I was in college did I think back on it and realize they were supposed the be teaching us a programming language called Logo.

      There's nothing special about Boolean operators, loops, functions, this stuff is simpler than most grade-school math, it just tends to be classified in a different category.
      An AND operator is a lot simpler than long-division.

      I studied computers in high school because I liked computer games.
      I remember how, after being taught the basics of printing text and accepting a keyboard input in Pascal, I figured out I could partially solve a puzzle in BBS game called Legend of the Red Dragon using a loop and some basic math, then I figured out how to add menus, colors, blinking to make my app look nicer.

      Years later, working as an artist, I was given the task of assembling some 3D rendered text, each letter came in maybe 6 different layers that needed to be assembled in a certain way, some color correction applied, some modifications made, it was really tedious work, half the time was spent doing nothing creative whatsoever, a waste of a human brain.
      So i figured out Photoshop has this feature called 'Actions' which basically records a set of steps you perform and then you can play it back again.
      A couple of months later a representative from Adobe came around to tell use about the new exciting ways they're going to charge the company more money, and during the meeting I asked him if there's a more powerful tool than 'Actions' and he pointed me to some documentation for their Javascript-based scripting language.
      I left that job several years ago, but I still hear from people who do freelance work for them that when they come in they are told 'We use this tool to export our work, a guy who worked for us a while back wrote it'.

      Anyway, I see a lot of people who just do the same tedious job over and over again because they don't realize they can just solve it once and free themselves to do the creative work their human brain is meant for, the reason they got into the field in the first place.
      Or maybe they do realize but they'd rather do this 20 minute job today and tomorrow, and the next day, rather than spend a couple of hours now to figure out how scripting works.

    7. Re: Is our basic education system a problem by The+Cynical+Critic · · Score: 2

      I have a feeling that's mostly to do with how many people in particularly humanities end up in education as they don't have much else in terms of post-university job opportunities. When a larger and larger section of our youth end up in higher education and the outside-of-education employment prospects of these groups stay the same their share of people in the education sector will obviously go up and they're obviously going to be pushing their what they studied to be given more focus.

      Where I come from even my parents' generation (the ones in STEM subjects to be specific) used to joke about how awful the job prospects of liberal arts people were, but they're still educating way more people in these subjects than there are jobs for and now with the latest education reforms it seems like the chickens have come to roost. The new curriculums and course structures in pre-university education have been widely panned by the teachers of STEM subjects as having been written primarily for liberal arts' subjects and with little regards for the best ways to teach STEM subjects. We're still very high in the PISA rankings, but not only have other countries been improving their scores, ours have been worsening and the only explanation that has been considered acceptable to voice has been that it's the home conditions of the students deteriorating.

      --
      "Why should I want to make anything up? Life's bad enough as it is without wanting to invent any more of it."
    8. Re:Is our basic education system a problem by swb · · Score: 1

      I think you're understating what kind of complexity there is "coding" in the common platforms used by many businesses.

      I could totally see a simple, BASIC-like programming language for Excel that let you perform simple tasks against a worksheet, pre-defining every cell as a variable and every row and column as an array.

      But what do we actually get? The complexity of Office Macros and/or Visual Basic, which is not really very approachable in the time available to many professionals.

      Of course, nearly every company I've worked for past a certain size winds up with some non-programmer who winds up making a spreadsheet with a shit-ton of macros or VB that winds up being totally incomprehensible. Usually it ends up being some key part of the workflow and I've seen large-scale projects come to a halt because some infrastructure change voids internal constants in that spaghetti code.

    9. Re:Is our basic education system a problem by oldgraybeard · · Score: 1

      And when the spreadsheet gets to unwieldy I get a phone call. They hire me to build a distributed in house database application to replace the spreadsheet.
      Interesting enough the spreadsheet is a big part of the design specification/acceptance criteria. Since most clients do not want to put the time and money in to sitting down and doing a design specification no matter how hard you insist it is the best way to assure the project will be completed, will prevent feature creep and that it is for their protection as an acceptance check off.
      But such is life. And in 30+ years I have seen this very same story over and over again, rinse and repeat many times to my benefit.

      Just my 2 cents ;)

    10. Re:Is our basic education system a problem by oldgraybeard · · Score: 1

      Correction
      "And when the spreadsheet gets to unwieldy I get a phone call."
      should have been
      "And when the spreadsheet/VB App gets to unwieldy I get a phone call."

      Just my 2 cents ;)

  7. Here is the thing with "full stack" by El+Cubano · · Score: 4, Insightful

    I don't get why the notion of "full stack developer" is such a big deal. I mean, do people go to build a home and say, "I want an 'all trades craftsman'."? Or do people go looking for a doctor and say, "I want an 'all specialties surgeon'."?

    Of course not. Certainly there are people in every skilled profession who could be classified as generalists. They can probably handle most small things that are not very highly specialized and, if they are good at their profession, they know when something is outside of their skillset and can provide a link to a specialist that can handle it.

    I am not saying that we should make technology and programming more difficult than they need to be. But, let's face it, there is a tremendous amount of knowledge, skill, and experience one must acquire in order to be a good programmer. It is very difficult to acquire all of that for what would qualify as "full stack."

    I think it was Stroustrup (or maybe Dijkstra), speaking on the idea of making programming "easier" so more people could be programmers with far less training and education, who said something to the effect of "I wouldn't want a surgeon operating on me who only had 6 weeks of training."

    1. Re:Here is the thing with "full stack" by arth1 · · Score: 4, Informative

      I don't get why the notion of "full stack developer" is such a big deal. I mean, do people go to build a home and say, "I want an 'all trades craftsman'."? Or do people go looking for a doctor and say, "I want an 'all specialties surgeon'."?

      I want someone to be in charge of building my house that understand enough about wood, concrete and plumbing to safely fuse the different work, without it falling apart next year.
      And when I have surgery on my foot, and the surgeon spots a rupturing blood vessel, I want him to be able to deal and not have to put me on ice while attempting to find someone who knows something about veins.

      A strong base with branching out into special areas is what I want to see. Not specialists who have no fundamental knowledge, unskilled labor who fall apart when instructions don't match reality, nor generalists that are so general that they can't actually do anything.

    2. Re:Here is the thing with "full stack" by jareth-0205 · · Score: 3, Insightful

      Agree on the 'full stack' craze, I also rail against the common mantra that you should use whatever programming language is best designed for the particular task... I tend to stick to the languages I know well rather than jump around. I know that I will probably suck if I switch languages outside the 2 or 3 I already know...

      Even the best programmers make a litany of errors each day, any surgeon who had the mistake rate of a rockstar programmer would be struck off immediately. We think we're so good, but computer science is so far behind every other profession.

    3. Re:Here is the thing with "full stack" by El+Cubano · · Score: 2

      Agree on the 'full stack' craze, I also rail against the common mantra that you should use whatever programming language is best designed for the particular task... I tend to stick to the languages I know well rather than jump around. I know that I will probably suck if I switch languages outside the 2 or 3 I already know...

      When I was fresh out of school, I would choose languages/technologies like this:

      • What is best for the job (i.e., in absolute terms)?
      • What is cool that I want to try out?

      These days, some number of years later, I do something like this:

      • What language is the existing system written in?
      • What language is best known by the development team?
      • What language provides a stable long term platform for development?
      • What languages project good integration points that work best to meet customer expectations?
      • What languages do I know well?
      • What good stable language has some cool updated features influenced by the gaggle of new languages out there?

      The point is that most projects work on existing systems and as I have matured as a programmer I have come to realize that the existing system has to dictate a fair amount about the development choices. That doesn't mean you can't fix problems, but it does mean that scrapping for a complete rewrite is almost universally a bad idea (Spolsky has written about this and how it effectively sunk Netscape).

      In any event, if there is no existing project and no existing team, pick whatever works best in absolute terms. That just isn't a good idea in an established project.

    4. Re:Here is the thing with "full stack" by El+Cubano · · Score: 4, Insightful

      I want someone to be in charge of building my house that understand enough about wood, concrete and plumbing to safely fuse the different work, without it falling apart next year.

      That person is called a general contractor, the construction equivalent of a project manager. Of course, you don't expect that person to set the roof trusses one day, run the electrical the next day, and then figure out why the main train to the setpic tank backed up the following day. Yet, that is the equivalent of what is expected of "full stack developers."

      And when I have surgery on my foot, and the surgeon spots a rupturing blood vessel, I want him to be able to deal and not have to put me on ice while attempting to find someone who knows something about veins.

      I think the ability of the surgeon to deal with depends on a variety of factors. In some cases it might be likely that the surgeon could handle it on the spot, like if the surgeon is a vascular surgeon, and in other cases it might be less likely the surgeon could handle it on the spot. In any event, I would expect surgeons to have at least basic training in recognizing and even to a certain extent dealing with situations that might arise in the normal course of their work.

      A strong base with branching out into special areas is what I want to see. Not specialists who have no fundamental knowledge, unskilled labor who fall apart when instructions don't match reality, nor generalists that are so general that they can't actually do anything.

      I think I did not communicate myself well. The "full stack developer" postings I see and positions I hear people talk about are roughly the equivalent of "must be master-level skill in UI, back-end, algorithm performance, architecture design, (and so on for half a dozen other areas of expertise), must have 10+ years experience in each of those areas, and we will pay $50-75k". That sort of thing is just unrealistic. A good programmer I think can be expected to be really good at one major area of development for every ~10 years as a professional programmer, so to find someone that has excellent skills in three major areas would require 30 years programming experience. That is not at all the expectation of anyone I have heard of go looking for a "full stack developer".

    5. Re:Here is the thing with "full stack" by hammerbot · · Score: 1

      Surgery is mostly repetitive work with some limited variation. Surgeons can practice what they do until most elements can be done by rote. In contrast, many programming tasks are novel, and the boundaries are constantly being pushed forward. Most things that are repetitive and can be done by rote will be automated by any decent programmer. This is not to justify our mistakes, but there are not many areas where the scope of tasks is as broad and constantly changing as it is in IT.

      Some complexity comes from poorly designed and interacting libraries, but they are only so prevalent because of the complexity of the tasks that we have to solve. I have been programming since the 1980s and when I look back at what I used to do it was laughably simpler that what we routinely do today. Sure the lack of tools made it much harder then, but the complexity of our systems was so much less. For an example of this look at the number of lines of code in Linux - Version 0.01 (in 1991) had 10,239 lines of code, version 1.0 (in 1994) had 176,250, by 2.6 (2003) it had 5.9m - by 2015 it has grown to over 19.5m. We are constantly extending our view of what an operating system should be able to do, and the same is true of most things that we write today.

    6. Re:Here is the thing with "full stack" by Junta · · Score: 1

      One thing is that it really depends on the complexity of what you are setting out to do. All too often a business assumes *any* software is as complex as building a skyscraper, and overthinks things.

      Another is that in my experience, a lot of companies will declare someone a 'project manager' who has no particular understanding of any of it. When I speak to a general contractor, they may not be 100% able to do everything, but they will know enough to actually provide valid feedback and assessments.

      The problem with the state of reality in software development is that people fancy themselves construction specialists. However the general contractor has never touched a hammer in their life, and all the pieces are slapped together with chewing gum instead of screws and nails. Also most projects would be terrified of making framing of a wall, and so rely exclusively on pre-fabbed framing. When there exists no framing that fits the wall, they put a close match and call it 'good enough', when assembling a fit-for-purpose frame is trivial.

      Yes, you can go the other direction, 'reinvent the wheel' needlessly, no oversight whatsoever, and you *can* have a crazy complex task to achieve that warrants an army of folks and failing to take it seriously enough. This would also be bad. A good balance of leadership with some competency.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    7. Re:Here is the thing with "full stack" by Darinbob · · Score: 1

      So my company has manufacturing, hardware, firmware, and software. Software is split into the parts that are important and must work from the parts that are fluffier. I do see a distinct type of skill sets in each of those areas, even though all of them involve some form of software.

      I think it's when you get to web based applications that the distinctions between areas of the product become fuzzier and then there's a desire for "full stack" programmers because they're more fungible and you can shift them around as needed (using the school of Agile programming which discourages specialists).

    8. Re:Here is the thing with "full stack" by Darinbob · · Score: 1

      We also knew more than one programming language in the past and used them regularly. Ie, the program is in C, the data is preprocessed in Perl, the mockup is in Lisp, and the build system is a web of shell scripts.

    9. Re: Here is the thing with "full stack" by datavirtue · · Score: 1

      It's because the UI of web applications suck so bad they need everyone to be able to dig around in them. That and wishful thinking...passing as a full stack developer has a very low bar.

      --
      I object to power without constructive purpose. --Spock
    10. Re:Here is the thing with "full stack" by mcswell · · Score: 1

      "the complexity of the tasks that we have to solve": This. I just posted a ways above this about trying to convert spreadsheet data into records, while removing some near-duplicates. Had that been the entire problem, it would have been easy. The complexity came from dirty data. The bigger the data (mine was by no means "big data"), the more certain it is that you'll encounter dirty data, and it's not acceptable for the program to crash (or output misleading results) because of that. So most of the complexity in the programs I write lies in defensive programming.

    11. Re:Here is the thing with "full stack" by jimbobxxx · · Score: 1

      I agree that the lead contractor needs to know that plastering needs to be done, and that the foundations needs to be x meters dee;. I don't care if the architect doesn't know exactly how to do it.

    12. Re:Here is the thing with "full stack" by twosat · · Score: 1

      If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. - Weinberg's Second Law:

    13. Re:Here is the thing with "full stack" by phantomfive · · Score: 1

      It is very difficult to acquire all of that for what would qualify as "full stack."

      It's really n ot that hard. You learned Java and a few other languages in college. You can learn SQL pretty quick. Javascript + CSS is a pain because it keeps changing, but if you know Swing and some design patterns like MVC or messenger, then learning frameworks like React or Angular isn't going to take all of a semester. It will build on principles you already know. Node is just another web server, and MongoDB is designed to b be easy to learn, and it is.

      Learning all the full stacks is hard. Learning one of them is not.

      --
      "First they came for the slanderers and i said nothing."
    14. Re:Here is the thing with "full stack" by jeffb+(2.718) · · Score: 1

      I think it was Stroustrup (or maybe Dijkstra), speaking on the idea of making programming "easier" so more people could be programmers with far less training and education, who said something to the effect of "I wouldn't want a surgeon operating on me who only had 6 weeks of training."

      Sure. But I also wouldn't want to go to the hospital and wait for an MD when I need my nails clipped.

      An awful lot of development is the equivalent of nail-clipping, not surgery. Or at least it should be.

  8. The problem never went away. It is simple... by zkiwi34 · · Score: 1

    Programmers and Program Designers still do not understand the objectives or how the âoereal worldâ works. Meaning that they donâ(TM)t get the problem and donâ(TM)t have any idea what a proper solution might look like. Which explains handily the opening assertion.

    1. Re:The problem never went away. It is simple... by Junta · · Score: 3, Insightful

      It's everyone's fault really.

      I've dealt with programmers who never have and never want to talk to the users of the software they produce. It's just too scary, that's what the support, sales, and marketing people do. If they are needed, then those folks will make bullet points and disseminate to the 'architects' who will task the 'leads' to direct the 'programmers'. There is no way this can lead to good result. Yet this is a common perception of how to manage commercial software development.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    2. Re:The problem never went away. It is simple... by Tough+Love · · Score: 1

      Or don't understand what smart quotes are and why you should disable them.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  9. Sounds good, but by Sqreater · · Score: 1

    There is only one direction in complexity and that is toward more complexity. There is an arrow and it only points in one direction. Eventually there will be a complexity collapse and things will start over.

    --
    E Proelio Veritas.
    1. Re:Sounds good, but by Jerry+Atrick · · Score: 1

      Sounds like a wraparound bug... we'll just use the 2K bug fix, add a couple of digits to the complexity counter and carry on ;)

  10. It’s because... by Anonymous Coward · · Score: 1

    This is because we (or weak technical managers) let programmers change their language/framework/paradigm based on boredom. Bored with PHP/Python? Use NodeJS! Bored with your site being complete and only needing minor fixes? Make it a Single Page App and now you have to struggle with webpack and babel and angular/react. “Sorry boss, I gotta rewrite the app to use typescript, trust me it needs to be done, it’s the way the industry is going!

    I say this as someone who got stuck in web dev and has to go along with my coworkers as they chase te latest trend.

    If I were more cynical I’d have said “job security” instead of “boredom”.

  11. Not "how to fix it" by Kohath · · Score: 2, Informative

    He states the problem. He says it should be better. He doesn't go into "how".

    The fix should be to have software write the code. Input the behavior you want in any programming language — maybe a new one, but old ones to start with.

    Then the software translates it into whatever other language, replaces the easy to understand loops and such with efficient implementations that provide the same result and are provably secure, identifies sequence points, breaks it all up into parrallelizable nuggets, and sends the whole thing to a scheduler that runs it on a set of CPUs.

    1. Re:Not "how to fix it" by Kohath · · Score: 1

      in which case we've already been fixing it for decades... they are called assemblers and compilers.

      Yes, but those are first and second level sorts of enabling tools. Beyond that you have the Java and JavaScript JIT compilers which do substantially more. But they are limited because they have to be efficient — they need to execute code in less time counting the overhead of the JIT compiler. What could they do if they had 1000x the time to pre-optimize the implementation?

      And that’s the runtime and compile time part. The actual code-writing part is what needs more effort. Why do we still need to worry about writing correct syntax? No one worries about correct spelling any more.

      Why do we need to worry about what is scheduled when? Let’s tell the software to do A, B, C, ... K things and have it analyze the dependencies and schedule. Unroll loops, fracture it up into whatever bits are needed, as long as the sequence satisfies the dependencies.

    2. Re:Not "how to fix it" by Kohath · · Score: 1

      The PROBLEM is expressing "Input the behavior you want" in mathematical terms.

      Without that preciseness, there is too many variations... and you can't dictate "do what I mean" when you can't express what that means.

      Sure you can. Say "do basically this" and have the software guess the rest. Create tests that tell the software whether it guessed right or it needs to keep guessing. When that fails, give it a more precise instruction.

      We are already at the extreme of software not really helping here. Any improvement would be better.

    3. Re:Not "how to fix it" by Kohath · · Score: 1

      You should have software helping your engineer.

    4. Re:Not "how to fix it" by Kohath · · Score: 1

      I currently have an engineer fresh out of college working on making the above for loop actually work. I described it to him and he told me he could get it done in a day or two. That was two weeks ago. Because it turns out, it's a hell of a lot harder than that. Every time he comes to me and tells me he is done, I ask him "what about this edge case?" or "did you check that x is getting set correctly?" or "what if then inputs comes in like this?". And he goes back to his desk to continue trudging through every which way that one simple for loop that is easily described by a three sentence task order can go wrong.

      Also, why don’t you have your engineer writing tests for his implementation first? Then he can understand the entire problem domain, then he can write his code to pass the tests. Then he can run regressions when he makes changes. Get the tests right, get the implementation right.

    5. Re:Not "how to fix it" by Junta · · Score: 2

      Easier said than done.

      Basically creating those 'tests' is going to be programming... again... And you could instead... just program...

      The whole 'software guesses randomly' works in some very useful, but very narrow problem sets.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    6. Re:Not "how to fix it" by Junta · · Score: 1

      Whether he is writing the code or writing the tests the same description generally applies... The inexperienced developer doesn't understand everything that was asked and a lot of what could go wrong. One could say he should have conveyed the whole thing up front, but practically speaking humans don't think of everything up front, and only recall or conceive of things when faced with an iteration. You realize as you go that situations crop up, or the original design was ill-conceived.

      This is an area where I have some reservations about the impact of 'test driven development' on human behavior. Any time you say you have '100% coverage' and 'it passes all the tests', it instills a false sense of security because those tests are likely to be incorrect or inadequate. It's a good idea, but have to not get *too* confident based on the unfortunate phrasing.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    7. Re:Not "how to fix it" by Kohath · · Score: 1

      Easier said than done.

      Yes, but let's start saying it. Then someone might do it, or part of it. Then we'll have better tools.

      Basically creating those 'tests' is going to be programming... again...

      Some maybe. Maybe not much if you can gather inputs from users of a previous implementation. Or if you have a random generator to help you make sample inputs.

      you could instead... just program...

      But your implementation still has to pass tests, even if you just think them and don't write them down. Writing them down means they can be used outside your own brain.

      The whole 'software guesses randomly' works in some very useful, but very narrow problem sets.

      Let's expand the number of those problem sets. And then break down big problems into parts that fit into this expanded set. And then when software is doing 30% of our work, we can spend more time on the other 70%, empower young and/or mediocre developers, and all get paid more because we can build better implementations in less time.

    8. Re:Not "how to fix it" by Kohath · · Score: 1

      Obviously we already have compilers. We need something beyond that now.

    9. Re:Not "how to fix it" by Junta · · Score: 1

      Yes, but let's start saying it. Then someone might do it, or part of it. Then we'll have better tools.

      It doesn't really need to be said, because it is so self evident.

      But your implementation still has to pass tests, even if you just think them and don't write them down. Writing them down means they can be used outside your own brain.

      We have to be honest with ourselves, in practice, test cases don't cover all scenarios. They assume some amount of human intelligence and are there for the 'tricky' cases. If you suddenly had to have test cases for every expected behavior for software to randomly guess algorithms to hit it, it would be as hard as programming, if not harder. Creating a loop to count numbers is utterly trivial, but describing all the test cases that would allow a hypothetical learning strategy to deliver something that would just count numbers would be insane.

      Let's expand the number of those problem sets. And then break down big problems into parts that fit into this expanded set

      I guess I sholudn't have said 'works' but should have said 'practical'. As above, in most programming, it's *far* easier to just state the things for the computer to do than to tediously describe all sorts of scenarios until random code generation produces something vaguely appropriate. This isn't a matter of refining the techniques, it's just a fundamental reality of that approach.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    10. Re:Not "how to fix it" by vtcodger · · Score: 1

      FWIW, about 40 years ago the US Navy wrote a "mathematically specified" launch system for one of their weapons systems. It was implemented reasonably competently in FORTRAN. Guess what: It worked REALLY badly. It turns out that most any fool can write equations that look OK in isolation, but making hundreds of "equations" consistent over the full range of legitimate inputs is a lot harder than it looks. (And then there's the minor matter of describing and actually dealing with state transitions ...)

      Don't get me wrong. If you're solving a problem like tracking missiles, writing the equations of motion you plan to use down and implementing what is written is a terrific idea. But I think the concept is likely to have limited utility in other contexts.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    11. Re:Not "how to fix it" by mvdwege · · Score: 1

      Congratulations, you've just reinvented the compiler.

      And this gets modded informative? Jesus wept.

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    12. Re:Not "how to fix it" by Kohath · · Score: 1

      It doesn't really need to be said, because it is so self evident.

      I don't agree. A huge number of software developers don't want new ways of doing things because the old ways let them be the masters.

      We have to be honest with ourselves, in practice, test cases don't cover all scenarios. They assume some amount of human intelligence and are there for the 'tricky' cases. If you suddenly had to have test cases for every expected behavior for software to randomly guess algorithms to hit it, it would be as hard as programming, if not harder.

      But the implementation you would end up with would be a secure one, because you tested it for insecure inputs. And it would be a robust one, because your input set for testing is thorough and has good coverage. So there's that.

      I guess I sholudn't have said 'works' but should have said 'practical'. As above, in most programming, it's *far* easier to just state the things for the computer to do than to tediously describe all sorts of scenarios until random code generation produces something vaguely appropriate. This isn't a matter of refining the techniques, it's just a fundamental reality of that approach.

      I never said "random" code generation. Rather something that takes instructions that are more general than very carefully crafted code, and outputs code to pass tests.

      For example, I want to loop through a collection to implement a transformation of the contents:
      - Do I write my loops and worry about the boundaries? Why? Let the software deal with the boundaries.
      - Do I worry about whether the collection is sorted? Why? Let the software determine whether the collection is sorted and end the looping early if it can.
      - Did I specify the collection was sorted to begin with? Why? Let the software look at how the items were collected and used and decide whether to maintain them in sorted order or to sort them, and what sorting algorithm to use.
      - Do I worry about paralyzing the transform operation? Let the software break it up and send it to the GPU to do all in one go. Or not if the transformation can't be compiled for GPU. Or not if it will be slower to use the GPU.

      This is not really a great example. But let's have software that helps us -- a lot more than it does already.

      And no, the answer isn't I have a new programming language.

    13. Re:Not "how to fix it" by Kohath · · Score: 1

      Yes. I'd suggest something like that could be the basis for lots of new tools.

    14. Re:Not "how to fix it" by Kohath · · Score: 1

      Lots of things have improved since then. Much of the machine learning stuff that's "the new big thing" is not too much different than the stuff from 25 years ago. One of the main differences is that chips are fast enough to actually do it now.

    15. Re: Not "how to fix it" by Kohath · · Score: 1

      Your analogy fails

      Analogies fail. No two things are precisely analogous.

      No one has found a replacement for a writers brain...

      Some news sites have AI writing news. Some stories like company financial reporting are effectively written with no writers.

      I still want better programming tools.

    16. Re:Not "how to fix it" by Junta · · Score: 1

      But the implementation you would end up with would be a secure one, because you tested it for insecure inputs. And it would be a robust one, because your input set for testing is thorough and has good coverage. So there's that.

      No, you probably didn't think of all the insecure inputs to design the test for. Unit testing when thoroughly practiced today with full human intelligence striving to pass it ends up with vulnerabilities. The resultant function could in fact be doing the very wrong thing, and just happen to match the test things you input. For example, if I give the tests: 1 gives 2, 2 gives 3, 3 gives 5, and 4 gives 7. Let's say this miracle code generator looks at them and says 'ah ha, he wants a function to return prime numbers!' but no, I wanted exponents for Mersenne primes, so it does the wrong functionality, but it passes all the tests! More specific and more numerous unit tests are not going to be easier than programming, and they won't cause a code generator to produce secure and reliable functionality.

      - Do I write my loops and worry about the boundaries? Why? Let the software deal with the boundaries.

      Depending on what you mean, this is something programming languages already do. The problem is that if some boundary condition is hit, it isn't psychic and doesn't know what to do about it. In a perl like language, it may be inclined to just no-op on it, which is closest to the ask, and this can produce very bad behavior because while a planned boundary has been violated, the unexpected existence of that data is a real thing and so it isn't handled as someone expects.

      Do I worry about whether the collection is sorted? Why? Let the software determine whether the collection is sorted and end the looping early if it can.

      There are two ways this can go down, either with a type that explicitly says it is sorted, or the software to iterate over the collection checking if it is sorted, which probably won't save you any time. The former does exist in various languages incidentally.

      - Did I specify the collection was sorted to begin with? Why? Let the software look at how the items were collected and used and decide whether to maintain them in sorted order or to sort them, and what sorting algorithm to use.

      Ok, so this would not use a sorted type, but it means it has to check if it is sorted... a lot... Also it may *happen* to be sorted but not *need* to be sorted and it would waste a lot of effort maintaining sort to get out of indicating intent. Also, it may guess the *wrong* thing to sort by and produce behavior not desirable.

      - Do I worry about paralyzing the transform operation? Let the software break it up and send it to the GPU to do all in one go. Or not if the transformation can't be compiled for GPU. Or not if it will be slower to use the GPU.

      I assume you don't mean paralyze. This is an area that could do with better language primitives. There's not much in the way of a standard way of saying 'iterations of this loop are independent of each other'. Closest we get are pools and applying a function, but this can be a bit heavy handed and restrict solutions. For example to get parallelism you might make a function that takes a 32 bit value and parallelize it rather than in a loop, but compiler may know better to use a vector processing facility to batch them. I'm amazed this far into multi-core being the norm and GPGPU being so prominent that languages have not evolved on this front.

      Generally speaking, the things you ask for are existing language features or available in libraries to handle certain problem sets. The last case is probably the least addressed, but the answer is going to be 'I have a new programming language' or at least a new version of a programming language or library.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    17. Re:Not "how to fix it" by Bengie · · Score: 1

      One of the developers of TDD even says that 100% test coverage is a code smell. It's a mostly impossible ideal for all but the simplest projects. Even one of the main agile proponents is saying that agile is being used incorrectly in a way that makes things worse. The problem is everyone wants an answer to the issues of programming that can be solved by knowledge and practice, until it become rote. The very notion of "rote" has a name in programming, "cargo cult".

    18. Re:Not "how to fix it" by Kohath · · Score: 1

      You are trying very hard to argue that there's no place for any better tools in programming. And that all problems are already solved, I guess. No new tools or new thinking needed.

      And even if someone tried something, he'd assuredly do it wrong, because it's impossible to even create tests that are good enough to specify a secure, robust system.

    19. Re:Not "how to fix it" by Tough+Love · · Score: 1

      Congratulations, you've just reinvented the compiler.

      4GL, actually. RIP.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    20. Re:Not "how to fix it" by mvdwege · · Score: 1

      Yes, well, that is really nothing more than an additional compilation stage, now is it?

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    21. Re:Not "how to fix it" by TVmisGuided · · Score: 1

      So, what you're looking for is...

      ...a compiled language.

      --
      All the world's an analog stage, and digital circuits play only bit parts.
    22. Re:Not "how to fix it" by Kohath · · Score: 1

      Incorrect

    23. Re:Not "how to fix it" by Tough+Love · · Score: 1

      Yes, well, that is really nothing more than an additional compilation stage, now is it?

      No, a 4GL is a program writing program wrapped in a bunch of template and forms bullshit only capable of writing programs that had already been written and otherwise just emitting unmaintainable garbage. The input was not a language so a 4GL is not a language translator, therefore not a compiler.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    24. Re:Not "how to fix it" by Junta · · Score: 1

      Improvement is one thing, but the proposal of writing unit tests and only unit tests as an improvement I disagree with.

      I can't give a human a bunch of test cases without saying what it is actually doing and expect a sane result, no way a machine will do better, it has to know the intent not *guessing* the intent (with exceptions).

      To the extent it is possible (e.g. machine learning today), you need to feed a model thousands of distinct examples for it to kind of lock on to some guesswork. It still screws up a lot (you feed it 1,000 pictures of sheep to recognize sheep, it messes up on a sheep that is indoors because that happened to not be in the set). We tolerate it for image recognition because while it is terrible, a human just can't describe all the ways to apply image analysis strategies and all the variations of the subject matter. The technique is best effort to tame unstructured data to then work with traditional programming, as once structure has been applied to the data, much easier to manipulate with programming.. The techniques just don't extend to handling structured data.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    25. Re:Not "how to fix it" by Kohath · · Score: 1

      That’s an argument against using a very specific imagined implementation.

  12. The reality is... by blahplusplus · · Score: 4, Insightful

    ... people don't want to learn. No doubt tools can always be better but knowing how to improve them is a non trivial undertaking. They want easier to use tools but those "easy to use tools" take decades of research and development to make. If good tools were so easy to make they would already exist.

    Computers programs are only as good as the coneptual and modelling approach you use. Consider many 2D videogames who render spries as largely square/rectangle block, if you want two sprites to do something complex like melt into one another, that would require 1) faking it or 2) coming up with an entirely new way to model and animate sprites that broke them down into individual pixels/atomic components.

    The problem with computers for normal people, is that computers force you to specify and make clear your thoughts and most peoples thoughts are hopelessly vague. That's why people are frustrated they simply do not know nor understand the complexity of the work they are asking when the want some problem "they think is easy" to be be rigorously quantified before you can code up a solution in a program.

    1. Re:The reality is... by shatteredsilicon · · Score: 1

      ^^^ This x1000! Mod parent up.

    2. Re:The reality is... by philmarcracken · · Score: 1

      Exactly. The computer cannot be lied to, or rather it will except everything as truth. Trying to program in english is going to result in the same speed as reading legal documents that have had all the doubletalk and loopholes removed. English is a terrible language for specified instructions. The work needs to be done in breaking down the problem you want solved. But where do you even start?

      Personally I wanted to write a small program that would act like a sound firewall for games. I know next to nothing about programming. It should sit inbetween the game and the final output to the audio driver, be able to initiate a listen mode, you fire off the offending sound in game, it populates a list with everything 'hear' and generates a unique ID for them, with an option to replay each until you find the offender. Then create a rule that blocks it.. The problem is I don't even know if this is even possible or what language besides c++ that could even handle it.

    3. Re:The reality is... by Tough+Love · · Score: 1

      The problem with computers for normal people, is that computers force you to specify and make clear your thoughts and most peoples thoughts are hopelessly vague.

      That's it, precisely. Just imagine... somebody processed their available input and concluded that voting for Trump would improve their life and make America a better place. Do you want that person to write the software your business depends on? How about some medical software for your upcoming heart surgery?

      It would appear we triggered a Russian with mod points.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  13. Huh? Programming got harder? by chispito · · Score: 5, Interesting

    He seems a lot smarter than I am and so I do not want to dismiss what he is saying... but I cannot possibly see how programming is harder than it used to be.

    It seems like he is looking at the languages and tool chains used in the enterprise, and complaining that they are not suitable to get Joe Sixpack programming, while ignoring all the incredibly easy ways for somebody to make something useful at home. And, I'm sorry to say it, but the most obvious counter-example to what he is saying is... Python.

    --
    The Daddy casts sleep on the Baby. The Baby resists!
    1. Re:Huh? Programming got harder? by xtal · · Score: 2

      Python rocks.

      It has allowed me to forget about the abomination that is C++.

      C for everything else.

      --
      ..don't panic
    2. Re:Huh? Programming got harder? by drinkypoo · · Score: 1

      I'm sorry to say it, but the most obvious counter-example to what he is saying is... Python.

      Literally the first time I tried to use Python to do anything useful I C&P'd a code sample from a website and the browser destroyed the formatting. Even BASIC wouldn't do that.

      The mention of Hypercard does make me wonder, is there any free modern equivalent? There are of course commercial equivalents, and Filemaker springs immediately to mind. Once you know a little about programming (which is about how much I know) you can use Drupal in basically the same way. I was able to make a tool which interpreted the USDA nutrition database in Drupal without writing any code at all, but actually making things pretty involves some manual CSS. You can't just drag and drop the form elements around. Maybe someday.

      Is there anything as easy as Hypercard available to users today?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Huh? Programming got harder? by aod7br7932 · · Score: 1

      Count me in!

    4. Re:Huh? Programming got harder? by Kjella · · Score: 1

      He seems a lot smarter than I am and so I do not want to dismiss what he is saying... but I cannot possibly see how programming is harder than it used to be.

      Well, he seems to be conflating programming syntax with standard libraries, since he's talking about a hundred thousand pages. Like for example I looked at the Swift language reference and it's 676 pages long and that covers every bit of grammar in great detail. And even that is confusing the part that complex programming languages are there to make programming simple. A Turing machine is ridiculously simple, read the tape symbol, write new symbol, go to new state, move left/right on tape. It's also horribly difficult to get anything useful done that way.

      We are accumulating knowledge embodied in libraries and that's a good thing, consider something like medicine where a few hundred years ago you could probably know most there was to know about medicine. Today there's whole libraries of data and hundreds of specializations which practically means one doctor only knows one little bit. Sometimes we need people to dive into those libraries to make them better and document more clearly what they do and don't do. But there's simply not enough time in a man's life to reinvent everything.

      The other alternative is that we want an AI that's so smart that it'll fill in all the blanks, like you tell me a business requirement and I'll extract from that the GUI, the features, the business logic, the error handling and so on. Honestly even us humans can't figure that one out, so I doubt an AI ever will. There's a reason we invented programming languages instead of English, it just doesn't have the necessary precision and unambiguity required. To say nothing of all we think is implied even though we never explicitly said it, which is particularly fun working with outsourcing.

      --
      Live today, because you never know what tomorrow brings
    5. Re:Huh? Programming got harder? by Junta · · Score: 1

      There's a phenomenon where you forget how to be 'satisfied' with easy programming. When you start out, you don't know how to do much, but what you can do seems easy. As you acquire experience you become able to do so much more than you ever thought you could.

      Then one day years on you take a step back at how you do things and think 'man, this is much more complicated than when I started out'. What you fail to do, however, is try to use those simplistic approaches to solve a problem that you are now used to addressing with all your experience and tools. Then you realize why you needed to leave those simplistic ways behind, and in fact simplistic ways still exist, they just aren't useful as you grow in complexity.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    6. Re:Huh? Programming got harder? by raftpeople · · Score: 2

      When he says programming is harder, I think he means that for X% of problems, especially enterprise business apps, the amount of effort to do basic stuff has increased, and he's right. During the 80's I was creating business apps on midrange computers and the tools were pretty simple allowing us to be extremely productive. Far more productive than today when measured by how fast large enterprise apps can be built out.

      One problem I think he is seeing is that different technologies get introduced that solve specific problems and provide advantages for some scenarios (e.g. web allows us not to install app code all over the place), but also increase the level of effort to create those simple business apps. There is definitely room for tools/environments/frameworks that pull together the various technologies in a simplified cohesive manner so we can be more productive on the high-volume low-complexity stuff.

      HTML/CSS is an example of something that started out solving problem X, morphed into solving problems X+Y and in the process became a productivity sink even though it is providing advantages at the same time.

    7. Re: Huh? Programming got harder? by raftpeople · · Score: 1

      But those are outweighed by the complexity to do basic stuff. In the 80's we cranked out business erp type apps far more rapidly than today. This is one of my primary drivers at work is to put tools in place that will get us back to that level of productivity while still taking advantage of the positives of the newer technologies like web (vs client app).

    8. Re:Huh? Programming got harder? by angel'o'sphere · · Score: 1

      HyperNext: http://www.tigabyte.com/index....
      But I never used it. It is X-platform for majour platforms.
      But I don't like HyperTalk anymore, a real programming language would be more powerful.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Huh? Programming got harder? by drinkypoo · · Score: 1

      But I never used it. It is X-platform for majour platforms.

      It's worthless to me since they don't have a Linux version. Nor an Android version. Linux is a major platform. Android is a major platform.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Huh? Programming got harder? by Tough+Love · · Score: 1

      Please tell us you just left out the sarcasm tag. Please.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    11. Re:Huh? Programming got harder? by phantomfive · · Score: 1

      Yeah, that's why I still use XML.

      --
      "First they came for the slanderers and i said nothing."
    12. Re:Huh? Programming got harder? by xtal · · Score: 1

      I don't care about the "python way". I do it the fastest way that works in Python.

      Python's ability to leverage libraries is phenominal. All it needs is a nice RAD tool and it'd be perfect, IMO.

      --
      ..don't panic
    13. Re:Huh? Programming got harder? by LordWabbit2 · · Score: 1

      the tools were pretty simple

      Yeah, they were, painfully so. I had to make minor changes to a program written in VB (yeah I know) in VS2003 - there was no SDK's for later versions of VS, so I either had to rewrite it or make the changes using VS2003 - and it sucked. I had forgotten how much VS has changed over the years (for the better).

      --
      There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
  14. Turing Machine by Anonymous Coward · · Score: 1

    The problem is that computers are still not idealized Turing machines. Execution times are not zero and memory is not infinite. Knowing how to break a problem in proper structure is what requires years of knowledge, not large manuals of libraries, but rather the knowledge of how to map the problem to the available libraries or do you need to create something new. To manage queries on the US population do you need a list, an ordered list, a tree, a hash table, a distributed hash table or something else? Which of those is going to able to sustain 1000's of queries a second?

  15. Yeah, no. by vadim_t · · Score: 5, Informative

    It's not the 80s anymore. Useful systems are complex, have many layers, and tend to grow new layers over time.

    In the 90s, a web page was a static .html file. Some minimum understanding was enough to make one.

    Later, CGIs were added. Now you need some understanding of HTTP.

    Add a database. Now you need to understand SQL, and related matters, like SQL injection.

    Add JavaScript. A whole new language to deal with.

    Add dynamic content. Suddenly, the page isn't a static thing, there's a DOM that's being modified in real time.

    Add a growing internet, with many users of your page. Now you need to know how to make a scalable system, and how to design a proper database.

    Add cloud computing, where the underlying infrastructure itself can be scaled in real time, and where you can get extra database servers if you need them for a couple hours.

    Add internationalization, and now the programmer has to be aware of Unicode, different date formats and so on.

    With each added feature and with each added layer the complexity grows. And you can't just throw your hands up and say "fuck this, let's do it like we did in the 90s", because all those things were added for a reason. Without Unicode, you have problems with your international clients. Without dynamic content your page is clunky and slow compared to the competition. Without planning for scalability, your infrastructure falls down right when your business is on the front page of Reddit.

    I get the nostalgia for the good old and simple times, but that never lasts. As soon as a new tech emerges, people build on top of it, and then on top of that, and so on, and things escalate until it's hard for a single person to deal with all of it anymore.

    1. Re:Yeah, no. by pjt33 · · Score: 1

      The point you make is a very valid one, but (on the basis of the summary) I'm not sure that you're necessarily in disagreement with the OP. Making a dynamic website requires you to understand a lot of layers, but there are useful systems which are very simple. Sometimes you just need to munge some data, and a skilled Perl user could do it in one line and no more than five minutes. Far more people have problems on that scale than need to make large websites, but most of them will do the data munging by hand because they don't know how to program, or at best they've taken an introductory class in something like Python or Java but they're on a Windows machine with no relevant compilers or interpreters installed and they don't know about sites like IDEOne or TryItOnline.

    2. Re:Yeah, no. by vadim_t · · Score: 1

      That is dangerous in this day and age. Where does this data you need to munge come from? Where does it go to? How does your tool manipulate that data exactly? This munging is going to be one of the layers inside some kind of system, so you still need to consider how it fits into it.

      And then we have to consider other issues, like: does Perl even fit well into this system? Are you causing scalability issues by executing an external command? Are you creating a security problem or a bug by passing commandline arguments wrong?

      So let's take your Perl example, try "perl -e 'print uc("$russian")', (replace $russian with lowercase Russian text. I can't give a proper example, because Slashdot is a piece of junk still stuck in the 90s).

      What that prints is exactly what you give it -- no uppercase. Whoops.

      This works nicely to demonstrate that even for simple string manipulation one has to have some awareness of the underpinnings.

    3. Re:Yeah, no. by aod7br7932 · · Score: 1

      Actually you can when a new design pattern emerges from all this new layers and we coalesce important stuff into one thing and discard the rest.

    4. Re:Yeah, no. by K.+S.+Kyosuke · · Score: 1

      You make it sound as if the choice were between simple-but-incapable and featureful-but-complicated. I'm absolutely not convinced that this is anything but a result of shortsighted convenience. This is a massive false dichotomy.https://developers.slashdot.org/story/18/08/04/055254/the-problem-with-programming-and-how-to-fix-it#

      --
      Ezekiel 23:20
    5. Re:Yeah, no. by Junta · · Score: 1

      Note that you don't *need* to have a database, server side execution, javascript assembled DOM, and such.

      I do that in some cases.

      There is however a documentation site I am responsible for that is just HTML and CSS. People originally said 'oh, it's going to have to be some complex CMS' but we went a different direction. Designers can play with the css and our technical writers just edit text and a build system kicks off to produce HTML and CSS and put to the site.

      As a result, much less surface for attacks and a procedure that allows any writer that can edit a text file the ability to do their job. Yet it *looks* clean and modern to the endusers who are oblivious to how 'unfancy' it is under the covers.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    6. Re:Yeah, no. by raftpeople · · Score: 1

      What you wrote is exactly the problem he is talking about. His point, and it's valid, is that the evolution has ended up in a place that has reduced productivity for X% of apps. The ideal state would be for that evolution to increase the quality/functionality over time while preserving productivity (which requires good tools/environments etc.).

      It's a difficult problem because it's good to retain the independent flexibility for people to go any direction they want/need, but that creates a more complex environment with a reduced chance of optimal solutions (compared to a benevolent dictator that forces everyone to solve problems a specific way that has been identified as good/optima/productive).

    7. Re:Yeah, no. by joe_frisch · · Score: 1

      True, but result of the added complexity is the need for improved documentation. I find that much of the difficulty of programming today is due to badly documented tools and interfaces that result in the need to do "experimental computer science", a recipe for unreliable code.

      Too many companies create useless "auto-generated" documentation , which simply tells you what you can already read from the function declaration. The result is that in order to program in some particular environment you need to learn a great deal of trivia from experience, rather that being able to derive it from documentation an from a general understanding of programming.

      This is very different from most other forms of engineering. If I buy an ADC chip, it will have its functions described in excruciating detail, often in multi-hundred page data sheets. This is in contrast to the few-page data sheets for old simple ADC chips. If I"m careful, I should be able to build a functional board on the first try.

      If I look up the documentation on some development tools or callable libraries, often the documentation is extremely thin and poorly written, with only very brief descriptions of complex functions. This creates a large barrier to entry for any particular type of coding. Does SPIReadWrite(*inbuffer, *outbuffer, nbytes) block, or return immediately? The only way to know is to try, or to talk to someone who already knows.

    8. Re:Yeah, no. by drinkypoo · · Score: 1

      Later, CGIs were added. Now you need some understanding of HTTP.

      I speak from experience when I say, no you don't. When I wrote my first CGI scripts back in the mid-nineties, I knew jack diddly about CGI. Putting a content-type at the top of the page was all you had to do if you didn't want to process a form, and even if you did, you only had to understand variables, not HTTP.

      Add a database. Now you need to understand SQL, and related matters, like SQL injection.

      Only if you use a SQL db. And today, there are tools which construct queries for you.

      This is the point that people try to make when they say programming could be easier. We already use abstraction layers. Why not another layer, to let noobs construct tools? If they aren't writing code, there will be a limit to the damage they can do to themselves. Sure, there's lots of things they're not going to achieve without writing code, but there's lots of things they could achieve, too.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    9. Re:Yeah, no. by swb · · Score: 1

      It's not the 80s anymore. Useful systems are complex, have many layers, and tend to grow new layers over time.

      While I agree with this generally, it's more descriptive than proscriptive.

      *Most* deployed computer systems don't end up scaling to millions of users across the globe, yet in a one-ring-to-rule-them-all kind of way, vendors insist on shipping products with all the baked-in complexity for large scale deployments. A bunch of features and automation interfaces suitable for large deployments that just don't make sense at small and medium scale deployments yet become nearly mandatory because the vendor wants them to be to appeal to the small number of giant deployments.

      One example from every day life is VMware. We have this argument at work about whether there's a need to deploy vCenter for single or even dual hosts without shared storage. Nearly all the necessary VM management can be done without vCenter, but it does add some useful features. But if you add it, now you've added a large layer of management complexity that needs additional care and feeding and another point of failure. And that's just one complexity that can be layered in. You can also get into vSAN, NSX, and the whole suite of vRealize components.

      Another is Exchange Server. Over time, it's gained all these PowerShell interfaces useful for large-scale deployments and automation, but the basic internal mail server use cases don't really need them. They've also turned into a rationale for dumbing down what had been a decent management GUI and pushing a bunch of tasks into much more complex CLI steps. Part of this I think is a deliberate attempt to create obfuscation that pushes some organizations into perpetual cloud services, but part of it is definitely this "need" for every software component to have global scalability.

      My sense this trend toward deep complexity as a mandatory component of computer systems is ultimately going to lead to problems of systemic failure. They're going to be too big and too complex for all but a tiny group of experts who have devoted themselves to them. I don't think it will be long-term sustainable.

    10. Re:Yeah, no. by Tablizer · · Score: 1

      Add a growing internet, with many users of your page. Now you need to know how to make a scalable system, and how to design a proper database.

      You should let a DBA or at least somebody with solid training and experience in databases design the schemas and indexes.

      But there's also a reverse problem in "scaling" when shops adopt technologies meant for scaling that they don't need. You are making a podunk application, but your ego wants to be Netflix or Amazon, so you use CouchDB and microservices. The result is far more code than it would be with regular components.

  16. anyone can do it by Anonymous Coward · · Score: 5, Insightful

    Anyone can program.

    Hell when I started I could crank code like it was nothing. But guess what. That code was total crap. I mean it was *very* *very* *very* badly written.

    Once I learned a good amount of CS I became much better. I did not make terrible memory mistakes. Big 'oh' is a thing and it matters at all levels memory, cycles, instructions, time, etc. It maters it takes a decent math foundation to understand it.

    Once I got the CS degree I still was fairly 'mediocre' at it. At least my code was not terrible. It was not exactly great either. That has take years of practice and time. Tooling around it has helped pick off the silly 'typo' mistakes. But not all. Also more practice. This is an art. We are craftsman. We can use science and math to build our art. But art it is. Once you realize that you can figure out how to make CS great again.

    One of the biggest lessons is. Do not worry about 'stacks'. HR worries about them because the managers think they need to worry about them. What you want is well rounded individuals who can grok the idea of how the stack you are using works and is not an ass to work with.

    We have ended up with giant sweeping stacks that no one person can understand because of 'crunch'. Everyone in the industry wears it like a badge 'I work X hours per week'. That sort of work ethic create crap. You are not stopping and using the the thing holding your ears apart on how people will use your 'latest greatest API which is trending #1 on stackoverflow'.

    Leaky abstractions are dead easy to make. Ones that 'just work'. Those are hard to make. I am currently in the process of picking up spring. What an un-holy mess of a stack. Oh you can do great things fairly quickly. But the one thing everyone bitches about is 'how do I debug this bitch with its 200 line stack traces'. That is one of the 'popular' ones! So everyone is floundering around trying different stacks and transpilers to spackle over the defects of a poor language choice in our browsers. We are also winding up to create the worlds largest lockin of code ever with webassembly. Then deriding our languages for the 'bad' things that are going on (hell I just did it). So we invent 3 more that do pretty much the same mistakes eventually.

    So yeah CS/Programming is hard. Because we are too busy trying to be the next vendor lockin and putting in way too many hours on stacks that just do not help get shit done. But hey at least I am trending and have a banging blog and youtube video series that no one gives a crap about!

  17. Surgery for everyone! by Anonymous Coward · · Score: 2, Insightful

    Everyone must be a surgeon.
    Not those rare few uppity elites who can afford the education.

    It's discrimination I say!
    We need to change how the human body operates to make it easier for more people to work on.

    1. Re:Surgery for everyone! by jareth-0205 · · Score: 4, Interesting

      Everyone must be a surgeon.
      Not those rare few uppity elites who can afford the education.

      It's discrimination I say!
      We need to change how the human body operates to make it easier for more people to work on.

      Like I said - god complex.

      You are not a surgeon. Also, we need waaaaaay more programmers than surgeons.

    2. Re:Surgery for everyone! by fluffernutter · · Score: 1

      Really? If I just want to mend a bad cut I need to be a surgeon?

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    3. Re:Surgery for everyone! by jellomizer · · Score: 1

      When building a house we do not need a carpenter to put up the framing. Sure it is wood working but having a carpenter doing the work will be wasting your money and the carpenters time. Where he could be focusing on the fine wood work which he is trained to do. Sure he can frame just as well if not better then the guys who may be hired off the street. But he decided to specialize in something, this makes his skill unique and worth his time and effort to work on what he is good at.

      A lot of "surgeries" are actually not done by a surgeon. If you have bandaged a bad cut or removed a splinter then you have done surgery on yourself. Emergency workers and midlevels such as ENT and Nurses can perform more complex surgeries. Then you really need a real surgeon where the risk of doing the surgery is high, and needs a skilled and trained person to do the work.

      This applies to programmers. If you actually worked as a programmer having to cover multiple projects you can spend a lot of your time making reports (Often one time runs), or just calculating data points. This is easy stuff for someone who has a Degree in Computer Science. It isn't hard for people without a degree as well. But the tools available seem to expect a developer to be able to use them.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    4. Re:Surgery for everyone! by angel'o'sphere · · Score: 1

      Your definition of surgery seems extraordinarily broad ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:Surgery for everyone! by jellomizer · · Score: 1

      I work with hospital billing... What is considered surgery is actually rather broad. It is in general is a physical fix is done to the body (as opposed to drugs, or consoling, monitoring or testing)

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    6. Re:Surgery for everyone! by angel'o'sphere · · Score: 1

      In the german translation, surgery is something one does with a scalpel ... cutting up the body, removing parts, stitching you back together.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:Surgery for everyone! by Hognoxious · · Score: 1

      You can remove warts with a scalpel. So that's surgery, then.

      P.S. What's the German definition got to do with you? You clearly aren't one, or you'd have written it properly like I did.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    8. Re:Surgery for everyone! by angel'o'sphere · · Score: 1

      You can remove warts with a scalpel. So that's surgery, then.
      If you use a scalpel, then yes. If you use a laser, no.

      No idea about this: P.S. What's the German definition got to do with you? You clearly aren't one, or you'd have written it properly like I did. What is that supposed to mean?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Surgery for everyone! by ranton · · Score: 1

      Like I said - god complex.

      You are not a surgeon. Also, we need waaaaaay more programmers than surgeons.

      Someone has a god complex if they compare themselves to a surgeon? You must have quite the admiration for surgeons.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    10. Re: Surgery for everyone! by phantomfive · · Score: 1

      Surgeon complex? :)

      --
      "First they came for the slanderers and i said nothing."
    11. Re: Surgery for everyone! by phantomfive · · Score: 1

      And his definition of carpenter is too narrow. Framers are carpenters, even if some people call them wood butchers.

      --
      "First they came for the slanderers and i said nothing."
    12. Re:Surgery for everyone! by jareth-0205 · · Score: 1

      Like I said - god complex.

      You are not a surgeon. Also, we need waaaaaay more programmers than surgeons.

      Someone has a god complex if they compare themselves to a surgeon? You must have quite the admiration for surgeons.

      I mean - yes. They face real visible present human consequences for their actions and mistakes. What consequences do I have for my errors... pretty much nothing. Someone might shout at me.

      Dicking about on a computer all day is not the same.

    13. Re: Surgery for everyone! by Hognoxious · · Score: 1

      Or physician envy.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re: Surgery for everyone! by tigersha · · Score: 1

      Agreed. My wife is a obstretician. I am a software engineer. Both work with complex systems that break because of no fault of the person working with it. If it happens in her case people die, kids are disabled for life. If it happens in my case I have multiple backups.

      She has waaay more stress occasionally. But since their job is very much structured with with muliple people and systems in the background it much more boring than my job in many respects.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    15. Re: Surgery for everyone! by tigersha · · Score: 1

      Tell me about it. As a native English speaker living in Germany that is the one mistake I correct about 5 times per day.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  18. You can't get around the time investment by Karmashock · · Score: 4, Informative

    You might as well suggest that people could master painting or mechanical engineering or something without putting in a time investment.

    I'm all for getting more people to code. I'm all for an introductory language for new coders.

    But when it comes to the big league heavy lifting coding, it is going to be complicated because it is complicated.

    It isn't complicated because some "nerds" made it complicated. It was complicated before anyone coded at all. It is inherently complicated.

    --
    I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    1. Re:You can't get around the time investment by Greyfox · · Score: 2

      Yeah, and you're not going to get software from people who don't understand the problem you're trying to solve and who don't know something about the business you're in. Finding a person who can put all the pieces together and actually deliver a product is still hard.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:You can't get around the time investment by drinkypoo · · Score: 4, Interesting

      On one hand, you're entirely correct.

      On the other hand, why isn't there some Lego-like programming environment that wraps up complicated functionality in lick-and-stick modules, for those cases which are simple? Where you plop down modules, and drag outputs to inputs? So what if it only handled the majority of what noobs want to do, wouldn't that be enough to be useful?

      There have been numerous programming environments which take all the programming out of programming, at least for simple tasks. A user could get a lot out of Hypercard without writing any code, even making use of binary plugin blobs in some cases. Unfortunately, I feel much of what killed Hypercard due to disuse by the masses was the everyone-must-pay mentality in Mac-land. Much of what got me to give up using Macs is the high percentage of simple tools whose Linux or even Windows analogue is free, but which cost money on Macintosh — and not a dollar or two, either, but often tens of dollars for really very primitive functionality. If you wanted to do e.g. some simple serial port call and response in a Hypercard stack, you had to pay for that functionality, probably because the development tools were not only nonfree but actually expensive. It's a bit more confusing today, when Xcode costs nothing.

      Another example of programming taken out of programming is found in the various game creation kits, like SEUCK or any of the many text adventure builders — the latter more than the former, of course.

      With the full understanding that doing anything the software wasn't designed to do is going to require coding or at least scripting, why isn't there a drag-and-drop programming environment worth using by now?

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:You can't get around the time investment by Karmashock · · Score: 1

      We have shell commands which allows very simple scripted control of existing text compatible programs.

      We also have programs like AutoIt that allows people to create programs that effectively control and manipulate stuff in an automated way.

      Now you can say this is just automation and scripting. But your module concept is the same thing. The modules are effectively mini-programs that you're scripting together in some organized way.

      Proper programs will not be stitched together modules. And if that is what you want, then use the scripting.

      --
      I've decided to stop wasting my time responding to AC trolls/sockpuppets... so if you want a response from me... login.
    4. Re:You can't get around the time investment by ShoulderOfOrion · · Score: 1

      Exactly. Once you get past the "program the LED to blink" or "fetch all the PERSON_IDs with ZIP_CODE" level of programming, you have moved beyond programming into architecture, engineering and domain expertise. Non-trivial applications are called that for a reason. I'm not going to write a new CFD (computational fluid dynamics) engine using some hyped-up version of BASIC. I'm not going to write a media server streaming the World Cup to the world in some hyped-up version of BASIC. I'm not going to be writing the code that scrams the control rods into the nuke reactor with some hyped-up version of BASIC. At some point you have to accept that programming these applications is an exercise no different than any other engineering task, requiring you to put in the significant effort needed to produce a correct result. There is no such thing as a programming language that can make inadequately-trained people capable of performing complicated tasks.

    5. Re:You can't get around the time investment by BadDreamer · · Score: 1

      There are some such tools, for specific applications. At least one of them is definitely worth using for simpler tasks specific to its domain, and that is NI's LabView.

      But it's far from a general purpose tool. It's dead easy to whip up a feedback loop, or a simple state machine to manage a simple process, but if you're trying to manage an order flow from order to packing slip to invoice it will fall flat.

  19. Not sure author has thought things out by mykepredko · · Score: 1

    The problem with saying "we need to make ???? easier so that everybody can use it" is that you need highly technical people to make ???? easier for everybody else. I see Javascript as being an example of this mindset. It was created to make it possible for basic programmers to create intelligent web pages - for teaching basic programming and implementing simple functions (like convert inches to centimetres) it's pretty good. But, choices made to keep things simple resulted in the language becoming incredibly complex to implement more than simple functions.

  20. Where cross site scripting, XHR, etc come from by raymorris · · Score: 3, Insightful

    > There are so many javascript web frameworks that let incredibly poor programmers produce useful tools. They may be horridly inefficient and buggy but they work.

    Yes, they seem to pretty much work, when they receive the expected inputs. Since the person who wrote it doesn't know what they're doing, inputs they didn't anticipate result in yet another $20 million breach.

    There is a place for something like Hypercard, macros, etc - on your own desktop, to make your job easier. Programming that's going to be exposed to hundreds or thousands of attacks per day, programming on the web, needs to be done right.

    "Done right" doesn't just mean "a professional", an English major given the title "Programmer". It means someone who actually knows what they are doing.

  21. Don't dumb down programming, make people smarter by mykepredko · · Score: 3, Insightful

    Reading the article, I feel like the solution is adding meaningful instruction in programming at grade school and continuing it through a person's education. From here, programming platforms for the masses will become obvious and well supported.

    Sometimes when the common denominator is too low, you have to change it rather than cater to it.

  22. Your desktop vs the internet by raymorris · · Score: 3, Informative

    Something in the style Hypercard or OS macfos, or Excel macros can be very helpful to partially automate your job. Rather than clicking the same thing over and over, you can script your task. That doesn't always require a lot of expertise.

    Contrast that with code exposed on the internet, which potentially connects to your company's critical databases. Being on the web, that code will be attacked hundreds or thousands of times per day. Sometimes, attacked by very skilled attackers. These are two VERY different situations.

    On your desktop, sure go ahead and script autoreplies to common emails. For code on web, being attacked thousands and thousands of times, which can result in multi-million dollar losses, that's best done by someone who really knows what they are doing.

    That does NOT mean a "professional programmer" who was hired as a programmer because he "knows a lot about computers". That means someone who has actually studied how to architect and author secure systems to be robust while under attack, and continues to study. Twenty years into my career, I still study several hours per week, because the black hat hackers keep learning new ways to attack us.

    1. Re:Your desktop vs the internet by mcswell · · Score: 1

      And unless I'm mistaken (I avoid spreadsheets as much as possible), it's difficult to use real variable names in Excel; most people use Column/Row numbers. Apparently it's possible to use variable names (https://smallbusiness.chron.com/use-variables-excel-55043.html), but I've never seen a spreadsheet that did.

    2. Re:Your desktop vs the internet by virtualXTC · · Score: 1

      Wrong: Just like you don't need to be a 'real' programmer to use dreamweaver or wordpress, if designed properly, one can abstract the protection of critical databases (ie don't provide an API for accessing the critical parts / default to private).

    3. Re: Your desktop vs the internet by J.+J.+Ramsey · · Score: 1

      I'd say no and yes, respectively, to those questions.

    4. Re: Your desktop vs the internet by phantomfive · · Score: 1

      To do that right, you basically have a full time DBA writing stored procedures, who also knows a LOT about security. Even then you mess up when your front end guy has no clue and makes it possible to do an XSS attack.

      --
      "First they came for the slanderers and i said nothing."
    5. Re: Your desktop vs the internet by djnewman · · Score: 1

      Writing an Excel macro with the built in tools easily results in totally untestable code. Using VBA with a fully expressed, documented and peer review can and will prevent these errors. The problem is that "computer scientists" and "professional programmers" only want to learn to code in C variants. As developers we need broad experience and open minds.

  23. They requirements have increased a thousand fold by jlowery · · Score: 1

    Users demand more sophistication than the 80x40 character-based applications I first wrote starting out. Back then, I could churn out a working departmental application inside of a week, including data tables, using a 4GL.

    Who wants to go back to those days? Now we have internet instead of LANs, GUI, events, threads, all sorts of data stores, and layers of abstraction to manage it all. I don't see it getting any simpler.

    --
    If you post it, they will read.
  24. Re:They requirements have increased a thousand fol by jlowery · · Score: 1

    They=> The

    ugh. can't edit in /.

    --
    If you post it, they will read.
  25. Re:Visual Basic? by xtal · · Score: 3, Interesting

    Borland Delphi (and later, C++ Builder, maybe) were great examples of how components could be visualized, packaged, and used for development.

    It's really a shame nobody has pushed this direction. It worked really, really well.

    --
    ..don't panic
  26. Re:Shouldn't it be possible... by tyme · · Score: 1

    ... to be competent when you are incompetent? Sounds like a question posed by a Marxist.

    and, oddly, it's the capitalists who are always trying to answer this admittedly stupid question with equally stupid (but profitable) solutions.

    --
    just a ghost in the machine.
  27. Less lonely by basic.gongfu · · Score: 1

    I created a Forth-derived language, embedded in C (link below) to tap into some of that old school simplicity without loosing contact with the bigger picture. Even Python is too complicated for my taste when it comes to whipping out simple tools, and not integrated deep enough with C to use as an embedded scripting language. Suggest JS at your own peril. https://github.com/basic-gongf... https://github.com/basic-gongf...

  28. Visual Basic and Excel For All by jetkust · · Score: 1

    Yes, sure. The whole thing where a guy thinks you can simplify complicated things by using what you think is a "simple" tool. Because the task all of a sudden will become simple as well, right? I guess we should all start learning Scratch.

  29. let's try that with something else by ooloorie · · Score: 1, Interesting

    Jonathan Edwards has been practicing brain surgery since 1969. "Brain surgery today," he writes, "is exactly what you'd expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. "It is long past time to return to designing surgical tools not just for rock stars at the Mayo Clinic but the vast majority of doctors and laypeople with simple small-scale brain problems,"

    There, fixed that for you.

    1. Re:let's try that with something else by iggymanz · · Score: 1

      no, the web "full stack" is needlessly complicated...provably so by the security flaws and bad design of the standard components.

    2. Re:let's try that with something else by ooloorie · · Score: 1

      no, the web "full stack" is needlessly complicated...provably so by the security flaws and bad design of the standard components.

      The "full stack" functionality comprises distributed systems programming, asynchronous programming, relational databases, transactional processing, network security, user interfaces, error recovery, and whole host of other pieces. Saying that the tools we have are "needlessly complicated" (and we have tons of tools to choose from), and without even any ideas about how to improve them, really is just a testament to your ignorance, an example of Dunning Kruger.

    3. Re:let's try that with something else by iggymanz · · Score: 1

      You are the one that is ignorant.

      You only know the common bad tools.

      There are frameworks that lesson the complexity, one of them is used in the e-commerce system I manage that handles over a billion dollars a year in volume.

      It has more than the pieces you list, too. You sound like a web code monkey only listed those.

    4. Re:let's try that with something else by ooloorie · · Score: 1

      You only know the common bad tools.

      You have no idea what tools I know.

      There are frameworks that lesson the complexity, one of them is used in the e-commerce system I manage that handles over a billion dollars a year in volume.

      Sure you do.

  30. Seems like today's web environment, no? by rnturn · · Score: 1

    "...'rock star' programmers and the sophisticated high-powered tools they preferred. As a result the internet age has seen an exponential increase in the complexity of programming, as well as its exclusivity."

    Bingo!

    And that complexity makes it nigh upon impossible for any one person to understand everything about how their site works. (Well, I guess, unless you're a rock star.) Even then, though, you see job ads with a laundry list of "must haves", "should haves", etc. as though any one person could have an in-depth understanding of how all those technologies work---and their potential security problems if used improperly. I am still seeing emails from recruiters for what's described as an "entry-level" position that lists more requirements than I can view on my big monitor without scrolling with many of the requirements also wanting several year's worth of experience. (I can only assume that the reason these are still being sent out by recruiters is that a hiring manager hasn't quite figured out the oxymoron that is "entry-level software engineer with years of experience".) And don't think that concentrating on a major vendor's web application environment will make fully understanding how it all works together not a daunting task when the environment is made up of software tools developed by small vendors that the company bought up and cobbled together with little-to-no effort made to have them conform to a consistent look-n-feel. And that's just the crazy quilt knowledge base you need to absorb just to support the resulting web site(s). I can't imagine having to develop in such an environment without wanting to run screaming for the door.

    --
    CUR ALLOC 20195.....5804M
  31. Need imagination re user capabilities, interaction by jensend · · Score: 1

    The line between using a computer and programming one used to be thinner. HyperCard and spreadsheets are great examples of how people brought programming to the masses. (Visual Basic, I'm not so sure of.) Shells of all kinds and other environments like MATLAB did some of the same things. Macro languages in programs like WordPerfect likewise empowered the user and lowered the barrier to entry.

    My favorite example is RPL on HP 28/48 calculators. It took a little doing to learn how to use a postfix calculator, but once you did, all you had to do was enclose the keystrokes you'd normally use inside a <<>> and BOOM, you're programming. Then users, having already stepped over the low barrier to entry, could gradually learn additional constructs as needed instead of needing a full 'intro to programming' class before they could do anything useful.

    Thing is, none of the good examples that come to mind date from 1990 or later. Our ideas about how users interact with computers have for roughly thirty years been too stagnant or too simplifying and un-empowering.

  32. STOP throwing out successful ideas by Tablizer · · Score: 3, Interesting

    It's not the 80s anymore. Useful systems are complex, have many layers, and tend to grow new layers over time.

    I have to disagree. The necessary CRUD, GUI, and relational idioms to do the job of typical business applications are mostly the same as the 80's. The web and silly fads came in and mucked it up, turning bicycle science into rocket science by pounding a square peg into a round hole.

    Nobody seems interested in exploring and developing new standards to make CRUD and productivity applications easier again. The arcane fidgety nature of the state of the art is too much job security: simplification may trigger an IT bust.

    For example, the Oracle Forms developers at our shop can crank out applications at about 1/7 the pace of the "web" oriented developers. The result is not aesthetic, but they work and get the job done. (Oracle is a jerk in other ways, but Forms just works.)

    But our shop has to migrate away from Oracle Forms because Oracle stopped making a Forms client and converted it to Java. Java doesn't get along with our security infrastructure. Flash and Java made the same mistake of making their client into do-all behemoth, which resulted in security holes. If they or the industry had focused on making just a "GUI browser" (hopefully with an open standard), we could toss HTML browsers for productivity applications. HTML browsers are better for e-brochures, and not eCRUD.

    So, if you want to fix it, learn from past products that work, and produce a stateful "GUI Browser" standard. Let's go back to coordinate based clients instead of client-size auto-flow placement. The server side can resize for the client size as needed. That way we have one placement engine instead of the 50+ placement engines we have now (browser brands & versions). Client-side layout sucks big productivity donkey dicks. (This is not the same as proposing only WYSIWYG as some critics have claimed, because the server can still do auto-flow if desired.)

    Put on the client just enough to get the client job done, shifting the rest to the server, but otherwise learn from the failure Java applets and Flash and don't make the client into a do-everything monstrosity. (Resisting Emacs jokes.)

    1. Re:STOP throwing out successful ideas by K.+S.+Kyosuke · · Score: 1

      Nobody seems interested in exploring and developing new standards to make CRUD and productivity applications easier again.

      Some people do...

      --
      Ezekiel 23:20
    2. Re:STOP throwing out successful ideas by Tablizer · · Score: 1

      I don't see much concrete and relevant there. The educational drawing gizmo is interesting, but doesn't represent the typical business apps I see day to day.

    3. Re:STOP throwing out successful ideas by K.+S.+Kyosuke · · Score: 1

      Have you read the STEPS reports in the Writings section?

      --
      Ezekiel 23:20
    4. Re:STOP throwing out successful ideas by Tablizer · · Score: 1

      Sorry, but it just doesn't seem relevant to the kind of applications I see day to day. The author seems to specialize in building graphic design and publishing tools of the kind Adobe specialize in. It's a fine niche, but it ain't mine.

    5. Re:STOP throwing out successful ideas by K.+S.+Kyosuke · · Score: 1

      You said "CRUD and productivity applications". That's exactly what this system is supposed to simplify.

      --
      Ezekiel 23:20
    6. Re:STOP throwing out successful ideas by Tablizer · · Score: 1

      another problem is it's not clear how "easier" is being scored. You have to show what it's being compared to, and have some objective and agreed upon metric for scoring "easier". "Author X likes notation Y" doesn't necessarily translate to benefits beyond Author X.

    7. Re:STOP throwing out successful ideas by jafac · · Score: 1

      You mean Display PostScript?

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    8. Re:STOP throwing out successful ideas by Tablizer · · Score: 1

      If Oracle Forms was so great, and Oracle fucked it up, then blame Oracle, not Java.

      Okay, Oracle developed a CRUD-centric programming language and IDE roughly around the late 1980's. It used a relatively thin client "CRUD browser" for lack of a batter name that users downloaded which allowed them run multiple Oracle Forms (OF) applications.

      The client ("browser") was pretty easy to install and upgrade, and applications developers could develop applications quite quickly using the Oracle Forms stack.

      Then, about 15 years ago Oracle decided to discontinue their dedicated CRUD browser and use a Java-based version of the browser instead. The OF programming language and IDE is mostly the same, just the client implementation changed. THIS is what ruined a good thing. Managing client-side Java engine versions is a big corporate headache. Java applets failed, not OF itself. They should have continued with the dedicated CRUD browser.

      You donâ(TM)t think the programming world is more complicated than it was back in the 80s? You must not be a programmer. Not everyone has the same CPU, memory, and screen resolution of your own personal workstation. They arenâ(TM)t using the same written language, time zone, system of weights and measures, color palate, and input devices you are using, either.

      I'm mostly talking about business CRUD applications. Nobody is going to do payroll on an iPhone. I don't know why you are bringing up time zones and color palates. Specific scenarios would help. Are you talking about internationalization? OF doesn't preclude such. And, I already agreed the results were not stylistically in fashion, but chasing fashion is not cheap.

      The OF applications still work just fine at our org, minus the Java problems, per above.

      1/7th the speed of the other teams?

      That's a typo clarified in a later reply, I meant 7x as productive, such as coding 21 apps for every 3 the web-stacks produce.

      You think that web browsers are the PROBLEM and all you are asking for is a universal platform for server-centric computing where the client isnâ(TM)t asked to do any of the heavy lifting? The web browser IS that universal platform you fucking tool.

      Web browsers suck for that purpose. It would take a while to explain why.

      The problem with simplification is that not everyone wants their applications to look and act alike. Commercial products must differentiate themselves enough so that people understand they are different and choose the one they prefer based upon features etc they provide.

      I'm mostly talking about internal applications such that marketing aspects are not an issue. But humans do judge books by their cover and chase visual fashion fads, and that is indeed part of the problem, making us always start over instead of perfecting existing techniques and conventions. PHB's abound.

      You know what is easier since the 80s? Getting your hands on good programming tools....with zero (additional) cash outlay than most of the industry was able to do during the entire decade of the 80s

      That's true, but education of newbies is kind of a different topic. By the way, Oracle used to give away a student kit for free, I believe. But just because a stack is easy for students and newbies to obtain doesn't make it productive in a normal corporate environment in the medium and long term.

      And the good ideas of OF, Delphi, Powerbuilder etc. can be cloned in a generic sense and put into an OSS project. Most of their good ideas are not proprietary.

      than can physically sit at your own personal workstation where you have coded-up that 50-line basic program that âoeworks just fineâ for you.

      Where did I propose that? I'm not understanding what scenarios are playing

    9. Re:STOP throwing out successful ideas by Tablizer · · Score: 1

      You mean Display PostScript?

      Make it an interactive standard and we might have something. Although, paper form idioms and GUI idioms do have some differences to iron out.

      I've read about "Display PostScript", but it seems immature.

  33. The Peter Principle by K.+S.+Van+Horn · · Score: 1

    It is long past time to return to designing tools not just for rock stars at Google but the vast majority of programmers and laypeople with simple small-scale problems,

    Every time someone does that, their "simple" tools end up being used for problems far more large and complex than they were designed for, and we get a godawful mess. Think shell programming, Perl, PHP, Excel, etc. (Spreasheets have been used to produce the most opaque, incomprehensible modeling code I've ever encountered.) It's the Peter Principle for programming languages and tools.

  34. Re:Visual Basic? by Tablizer · · Score: 1

    I'd say it depends on what you are trying to do. As a general purpose programming language, VB indeed did suck. But as a platform for internal CRUD applications (data entry and search forms), it simplified a lot of common tasks. Users loved tabbed forms.

    Delphi was more flexible in terms of customizing the architecture and distribution. For data-centric applications with a similar drag-and-drop programming feel, there was also PowerBuilder.

    A language or tool probably cannot be optimized for all usages. Same with the web browser: it's pretty good for e-brochures, but weak at productivity and data-centric applications.

  35. FoxPro on DOS by Frankie70 · · Score: 1

    > It is long past time to return to designing tools not just for rock stars at Google but the vast majority of programmers and laypeople with simple small-scale problems,"

    FoxPro on DOS fits that.

  36. Re:100% complainer by anvilmark · · Score: 1

    Did you actually read the article? He proposes the programming equivalent of "trade school" education - which was pretty common 30-40 years ago.

    On the other hand, he complained that nobody is going back and rewriting legacy code, just layering on top of it (that's the context for the "100k lines of documentation" comment). I understand his concerns, but this is as unattainable as expecting politicians to review and rewrite all the old laws. The vast majority of organizations can't afford the resources necessary to re-engineer, rewrite and re-validate ancient code.

  37. Meh. by aussersterne · · Score: 1

    People have been saying "programming should be easier" forever.

    Many have tried, all have failed.

    And the task keeps getting bigger because the uses and requirements keep expanding. From one simple input (keyboard) from one source (user) to a variable domain of many complex inputs from many sources. From one simple output (answer) to a variable domain of many complex outputs to many destinations. And the core tasks, too, aside from input and output, are far more complex than they were.

    If you have one hex nut to loosen and tighten, you can make a simple wrench to do it. If you have to be able to work on an infinite number fasteners—hex nuts, machine screws, torx screws, allen bolts, grommets, flip latches, tumbler locks, screw-down locks, snap fittings, adhesive strips, magnetic plates, snap rings, cotter pins, etc. and the domain of tasks goes from loosen and tighten to loosen, tighten, open, close, diverge, converge, adjust left, adjust right, increase weight, decrease weight, etc. and the number of possible surfaces increases from two adjoined flat surfaces to be bolted together to N surfaces of M possible shapes... Well, you're going to end up with a shed full of tools, each one of them reliant on a different kind of knowledge and experience.

    Life is complicated. Programming is approaching use in virtually every domain of life. Ergo, programming will be complicated.

    You want programming to be simple, you may as well start off by trying to make life simple—that's the root of the problem.

    --
    STOP . AMERICA . NOW
  38. Historically grown. by Qbertino · · Score: 1

    That's what all plattforms are.

    To emphasise: Today we do applications in a webbrowser and the avantgarde is done in a scripting language of which - if you had said it would rule the world 20 years ago - people would've stuck you in the l00ny-bin.

    The biggest remaining problem today is that visual stuff (builders, modellers, DMIs etc.) is still 10 years behind what used to be the epitome of DMIs (direct manipulation interface ... look it up) called Flash. That was a prorpietary technology and had a shitty herald (Adobe) but it was cross-plattform and any idiot could wip up a feasible piece of software that was good looking and ran everywhere within a few hours.

    Full-stack - and I presume we're talking about the web because, ... what else is "full-stack"? - looks the way it does because it's FOSS tech bolted on to FOSS tech each of which became popular for totally different reasons. I expect us to weed the problems out within the next decade or so and then programming will have universally become some neat DMI / BPM / Modelling thingie with code attached whenever needed and whenever an expert is needed. Today, we pay little more than a maintenance allowance for tools that used to cost as much as a luxury car (or an entire luxury carpark), if we pay at all.

    Plattforms will become a fashion choice, nothing more. See Apple for how this is done well. And programming will be easyer than ever with most work done by bots anyway. Just look and see what is happening in the middleware and ERP space right now - high profile toolkits and the high-profile specialised jobs that come with it are dropping left, right and center and we flexible FOSS tookit and web proggers are going to have the bots on our heels aswell. Sooner than most would like to believe.

    My 2 Eurocents.

    --
    We suffer more in our imagination than in reality. - Seneca
  39. Re:Tldr: coding is hard and I'm a moron by layabout · · Score: 1

    Tons of programming languages, libraries, tools, etc, etc. Some are easier than others save when you have a problem they aren't suited for. There is no such thing as one size fits all programming, and I'm pretty sure never will be.

    many of those libraries are driven by ego. others are driven by unintelligible code bases that make it easier to create another unintelligible code base than modify the existing unintelligible code base.

  40. people google now by fluffernutter · · Score: 1

    I think the thing that this person may be missing about the 'internet age' is that people don't read all the documentation and understand every aspect before sitting down and starting a project. I think people are generally going to do a quick start or some tutorials and Google on anything else they need, or reference it then.

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    1. Re: people google now by phantomfive · · Score: 1

      That's a really good point. I'm not really sure how to handle this new situation, either. How do you make sure your code is correct, if you don't have solid understanding of the tools (and libraries) you are using?

      --
      "First they came for the slanderers and i said nothing."
  41. Re:Not "how to fix it"-NCIS school of programming. by Kohath · · Score: 1

    Cultural references don't work any more. A tiny, tiny, tiny fraction of readers watch NCIS. Most people probably don't even know it's a TV show.

    Also, what's wrong with advocating for better tools? Please post your better ideas if you have them. Then it would be an interesting discussion.

  42. People like complex by TJHook3r · · Score: 1

    If a solution takes a Business Analyst, an Architect, Security Expert, DBAs and Testers to deliver, why would you expect the actual coding to be simple?

  43. Sounds like you read the opposite of what I said by raymorris · · Score: 1

    > don't think your solution of hiring just "a professional" works.

    I specifically said hiring just a "professional", someone hired as a programmer, is not sufficient. In my other post I mentioned that I still study several hours per week, because new vulnerabilities and attacks arise every week.

    I also insisted on establishing code review / peer review at my job, where other people trained in security review all of my code before it's deployed. We have weekly sessions where someone on the team presents something related to security for the all of us to learn - continuing education every week. Those things are part of actual professionalism. Now, I'm learning more about how one of the best companies does security with software designed for top secret software. I'll apply what I learn, where appropriate. Lockheed Martin seems to take security very seriously, and do a pretty good job. If anyone reading this has worked for Lockheed, I'd enjoy talking to you.

  44. No universal proof of forced tradeoff by Tablizer · · Score: 1

    If good tools were so easy to make they would already exist.

    They do: VB, Delphi/Lazarus, PowerBuilder, Oracle Forms, Paradox, Clarion, and a few others.

    The problem was deployment, and NOT programming productivity. Nobody ever said, "Our GUI/CRUD tools make programming too tedious, let's go Web!" Deployment issues are what "sold" the web: reduction of client-side installs and updates. But, we should revisit the assumptions behind all this.

    As I mentioned elsewhere, Oracle Forms used to have a thin client that was relatively easy to install and distribute, but they mucked that up when they converted it to Java: a really fat client.

    The mantra of the Web was that in order to get easy or no deployment you had to live with a more complicated and layered development environment. You either hired 25 more deployment specialists (desktop support) or 10 more programmers, and the second looked cheaper to most bosses and owners. (It's why we've had a dev boom/bubble.)

    Implied is a fundamental trade-off between simple development and simple deployment. The theory is that one MUST make this trade-off; that it's hard-wired into the Universe.

    But I'm not convinced it's a Law of Nature. Nobody's produced something akin to Amdahl's Law for an inherent dev-vs-deployment tradeoff.

    Pre-Java Oracle Forms seemed to just about get it right (with some fixable qualms). I believe if the client's and server's responsibilities are partitioned well to avoid a bloated client standard, we can have the best of both, or at least a better mix than the current web mess. A work-world-oriented "GUI browser" standard.

    1. Re:No universal proof of forced tradeoff by blahplusplus · · Score: 1

      Implied is a fundamental trade-off between simple development and simple deployment. The theory is that one MUST make this trade-off; that it's hard-wired into the Universe.

      You just restated that tools are hard to make... the reason is nobody has come up yet with a better way of modelling the problem. Whenever we try to solve a problem it is dependent on how we conceived it in the first place. AKA tools are dependent on their conceptual / theoretical foundations, figuring out how to observe and correctly conceive a problem is the hardest part before designing the solution.

    2. Re:No universal proof of forced tradeoff by Tablizer · · Score: 1

      Stop assuming you can get it right on the first try and experiment. Draft up some plans and sample languages or API's/XML and let people comment. Come up with about a dozen sample applications, such as college class and grades tracking, hotel reservations, etc. to see how they do under each test stack.

      Yes, it takes time and resources, but that's different than "can't be done". And I've mentioned a tool or two that appears to be on the right track. Let's understand why they do what they do well and build on that.

    3. Re:No universal proof of forced tradeoff by blahplusplus · · Score: 1

      I hear what you're talking about but I'm speaking from experience. Sometimes the technological path you've traveled down is fundamentally wrong conceptually. Consider polygonal modelling vs nurbs. I've been working on something that radically conceptually breaks with the idea of modelling as we know it completely but it takes time for these ideas to be researched and fleshed out - it's non trivial - aka time consuming. I agree that things can be made easier, the problem is whether or not we are even aware of what mistakes we've actually made, aka we're too stupid at something to fully grasp how stupid we are at said thing.

      I'll give you this bit from Neil degrass Tyson:

      https://www.youtube.com/watch?...

  45. I haven't coded in decades .... by King_TJ · · Score: 1

    I was part of the generation of kids who latched on to the early 8 bit personal computers and learned to program in BASIC because, well ... that's what the manuals told you how to use them. As things got more advanced, I started a hobby of running my own computer BBS, and initially used software I wrote myself in BASIC. (By then, I was already hitting limitations of what the language would let me do, because BASIC had no way to collect input or produce output to and from my modem. I had to use a lower level assembly code driver program to handle the I/O. A friend of mine, who knew some assembly programming, helped code that and maintain it for me with updates for a while.)

    By the time I'd done that for a few years, the Borland "Turbo" products for coding in PASCAL or C were becoming really popular, and friends of mine were modifying existing code-bases for PC compatible BBS packages using those languages. I was too invested in what I'd put together in BASIC to care about that, at the time.

    When I finally went all-in on a PC clone (vs. my Tandy Color Computer 3) - I was sidetracked by other things in life, including learning to play guitar and playing for a while in a small, local band that some friends had put together, and taking college classes. When I re-visited software development for Windows, people were WAY ahead of me, using the visual development languages and object-oriented programming, which was a foreign thing to me.

    I went on to a career in I.T., which I do to this day, but beyond your basic batch scripting, I really don't ever attempt to code anything. Truth is? There's SO much out there already, I struggle to imagine scenarios where I'd ever want to write something that hasn't already been done! It's a full-time job mastering several of the existing Enterprise-class products on the market that a given employer might expect me to be proficient in.

    I think I understand what Jonathan Edwards is saying, because it's exactly what I experienced that drove me away from programming. But I'm not sure it's a "problem" anymore? The days of things like HyperCard are past us because the types of applications one would typically create with them are already readily available, and in the form of code that runs natively on the system without "helper" software interpreting it first. Even in my early days of using BASIC, I hit hard limitations on what it could do that forced me to use outside assistance (that assembly code device driver for modem I/O).

    The expectations for the level of what applications, games or utilities do is high enough, today, that I think you need specialists, well versed in complex programming languages, to pull them off. There are times I really do missing coding in BASIC. To this day, I remember the commands and most of the syntax. But even with the "last gasp" of attempts to modernize traditional BASIC with those BASIC compilers they had for MS-DOS for a while? The language just couldn't DO enough to keep up with people's expectations.

    1. Re:I haven't coded in decades .... by angel'o'sphere · · Score: 1

      Something like HyperCard on mobile devices (to work directly on the device, not to program it on a desktop and then deploy it) would still be super useful. I used NovoCard on iOS for a while, awesome.

      I would like to haveva HyperCard with groovy as scripting languahe, if it could bebeasily deployed to iOS and Android I would write it myself even.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  46. Dumb down other engineering too by sigmabody · · Score: 1

    This argument works just as well for other professions; allow me to demonstrate.

    People have been building airplanes for roughly twice as long as their have been computers, but yet we are still paying hundreds of millions of dollars for top-end fighter jets. Why is that? Why have we not yet advanced to the point where building fighter jets is commoditized, and can be done with minimum wage workers with high school educations? Why do we still have to pay exorbitant salaries for so-called "experts", in this nerd-driven culture of exclusivity? #RocketScienceForAll

    See, the answer is pretty simple, when you are enough of a "rock star nerd" to apply some simple logic. Making complex computer programs is "hard", and thus requires people with "intelligence" and "experience". It's the same in pretty much every specialized profession; programming is sorta the outlier because for some reason (media, outreach, or otherwise), people seem to have the misguided notion that if we were better at dumbing it down, we could make it accessible to everyone. The reality, though, is that for the same reasons that we don't have many high school only educated doctors, or lawyers, or physicists, or rocket scientists, etc., we also don't have (and it's not really possible to have) a plethora of minimally educated/experienced good software developers.

    TL;DR: Don't be an idiot, good science/engineering is hard, and that's why "normal" people cannot magically be good engineers. Try to remember that good engineering is hard, even if ignorant people say programming should be easy.

  47. You know by OrangeTide · · Score: 1

    It's why JavaScript, PHP, VB.NET, etc exist and are popular. The learning curve isn't so too steep and just about anyone can write small programs in them. If you want to make a large and complex program, well that's a tough job. I guess we should be sorry that we haven't made it easy to do hard things?

    Car analogy: It's not too hard for an amateur to make a small steam engine or small electric motor. It's significantly more complex to make a fully working and safe car, that includes engine, brakes, rolling chassis, etc.

    --
    “Common sense is not so common.” — Voltaire
  48. Hardware tends to mask inefficiencies by DidgetMaster · · Score: 1

    Yes, some tasks only require a quick solution without a lot of engineering; but complex systems that run frequently need skilled programmers to design and build them.

    Back in the day, software had to be as small and efficient as possible because CPUs were slow, memory was limited, and storage took forever. Programmers would sometimes take days to squeeze out a few percentage points of efficiency in a single function. Today, all kinds of horrendous software can run fairly quickly if you put it on a fast enough machine. The cloud can make things even worse. An atrocious algorithm against a large data set can still get done in a less than a minute when it runs on a 1000 server cluster. The fact that it could have run even quicker on a 10 server cluster if the algorithms were changed, is rarely explored...after all it works, right?

    I am building a new, general-purpose data management system. One of the best things for its development, was my insistence on testing it on a 10 year old Core 2 duo processor (Q8300) with only 4 GB of RAM and no SSD. It forced me to really optimize a bunch of things so that it was running fast on the old box and is thus lightning fast on the latest hardware. It is an object store that can do file system, database, and NoSQL operations within a single system. The database queries it runs have so far been about twice as fast as PostgreSQL in my benchmarks. It can store 100 million files and find them thousands of times faster than file systems like NTFS or Ext3. I am currently working on ingesting data exported from MongoDB (Json) to see how much faster I can make that run too.

  49. Re:"a cross between Dungeons & Dragons and Rub by OrangeTide · · Score: 1

    Put numbers on each face of the cube. You can quickly manipulate the cube on your turn, then roll it like a die. add up all the numbers on a face and that is your result.

    --
    “Common sense is not so common.” — Voltaire
  50. it's already easier by Cederic · · Score: 1

    Look at the use cases for computers in the 60s. 90% of that can be done by installing a package.
    Or the 70s, or the 80s, or the 90s.

    A million accountants worldwide program: They program a computer to read in data, manipulate it, transform it and output it again. They happen to use Excel to do this.

    A million Android users automate their daily schedule. They use ITTT, or the new Samsung thing that got installed on my phone yesterday, or some other programmable automation tool.

    Thousands of call centres are automated by people that barely know how to use a computer. They use Blue Prism or Automation Anywhere or an equivalent.

    Full stack developers don't do this shit. They don't need to. They deal with more complex systems, that do more complex things, and write the tools that others use to do the easy shit.

    Oddly enough it's hard. Robust, secure, scalable, performant code is easy, if you don't need it to do anything. When you're asked to make it do everything, and what 'everything' encompasses changes on a daily basis, and you're given a deadline that's too soon.. yeah, it's hard. So be professional, learn how to do it (including managing the requirements, the deadlines, the budgets and the ways to optimise the fuck out of the lot of them) and stop bitching.

  51. Re:They requirements have increased a thousand fol by raftpeople · · Score: 1

    But what the business needs hasn't really changed much for those types of apps. It's still a matter of maintaining master data and entering transaction data. Today's ERP apps generally look the same as 80x40 but inside a GUI window instead, and the reason is because the actual app requirements are the same: enter character based master and transactional data. There are some examples where graphics adds real value, like displaying images of items, or grids of detail with cut and paste, but most of the apps haven't changed much.

  52. Re: Tldr: coding is hard and I'm a moron by datavirtue · · Score: 1

    ....and this is how it should be until the business requires an intelligible code base.

    --
    I object to power without constructive purpose. --Spock
  53. Re: Javascript by datavirtue · · Score: 1

    Web apps will die as mobile cross platform matures.

    --
    I object to power without constructive purpose. --Spock
  54. we need universal easy access to gui by imisshypercard · · Score: 1

    Anytime I want to write a quick program for my linux system, I have to decide on which gui framework to use. And they all have big issues. 95% of my time is dealing with the issues - which change with each update and 5% is actually writing code to solve my problem du jour. I've resolved to writing things in the terminal with ncurses now (least common denominator. Screw all the gui idiosyncrasies and especially bugs.

    Hypercard was THE answer. We could do something quick and dirty working just with graphic interface, or use Hypertalk if we needed something more sophisticated, or write an XCMD or XFNC in C or assem. if we needed more in capability or speed. Never having to deal with the Mac's graphic subsytem. It could have morphed into being the finder and the core interface for the Mac ala smalltalk. But Jobs was never a programmer's visionary. I would buy a Mac today, IF it came with a modern Hypercard. But it would probably be bogged down with so much baggage that it would be unrecognizable.

  55. Software is a force multiplier - it doesn't inherently do anything, it allows people to multiply whatever they do.

    It's good that software isn't a super-simple thing to do, because we don't need to multiply the level of retardation in the world.

    If software becomes easy enough for everyone to write then everyone will write software, meaning every fucktard on the planet has equal influence over the world to the non-fucktards

    The fucktards are more numerous so this would basically be an extinction level event.

  56. Re:Electrical Engineers by serviscope_minor · · Score: 1

    They should make the tools simpler so everyone can participate.

    They have. It's called an "Arduino".

    You know, have like blocks that fit together so you can build a robot

    They're called "Arduino Shields".

    Or if you prefer, it's called I2C or SPI. But really, you can build a robot by taking an arduino, attaching a stepper shield and plugging in a beefier PSU and some steppers. Adding even pretty advanced sensors is a question of shoving another shield on.

    But if you think a lot of EE hasn't got easier recently, the you really really haven't been paying attention to the field.

    --
    SJW n. One who posts facts.
  57. Program is easy. by aepervius · · Score: 1

    Programming is easy. Many people can pick up programming, put them on a computer with logo and have them move the turtle. Et voila many people will pick up quickly how to move the turtle. And bam you are a programmer. But see the difference between a programmer and a developper is that there are certain more complex you have to understand to make something, e.g. security, how memory function for your framework, GUI concept, HMI concept, what is the difference beetween n.log n and n^2 , and is it relevant to your application, scalling, maintainability, normalisation and when to use it and so forth. The difference between programmer is the same as knowing how to apply cpr , and how to be a heart surgeon. Everybody can do the one, but it need training and understanding to do the second. I have 30 years of developpment training and often i think I feel I am still at the programmer level, butchering stuff rather than do good development. But at least those 30 years gave me to see that not everybody can do development and a lot of folk don't understand those important concept. I have had many *programmer* not understand the concept of maintainability and shit code which long run make us lose hard cash. Or use normalization haphazardly.

    Making programming easier does not help one understand the more complicated concept, and thus it will not enhance the quality of our software. Just like not everybody has it to be pilot or heart surgeon, sorry, but many of us are not really developper, we are code butcher.

    --
    C. Sagan : A demon haunted world:
    http://www.amazon.com/gp/product/0345409469/
    visit randi.org
  58. So in other words, by CptLoRes · · Score: 1

    you want a fail safe and simple solution that solves complex problems. I wish I thought of that, I'd make billions I tell you.

  59. Re:100% complainer by virtualXTC · · Score: 1

    While the article proposes 'trade schools', I think similar results can be accomplished though further visual abstraction which will benefit everyone: just like 'real programmers' and regular people use a desktop GUI to visually organize and minimized the lists of commands they need to know, the same can be done with programming. Indeed, one can already see impmentations of this with things like:
    IFTTT
    Stringify
    Pipeline Pilot
    Orange
    Scratch
    mBlock
    Bubble.is
    etc.

  60. Over 1,000 WordPress vulns on my desk right now by raymorris · · Score: 1

    Funny you mention WordPress. Scheduled for the next sprint, we'll be programming detection for over 800 known vulnerabilities in WordPress plugins, and 300-400 in WordPress itself. If WordPress plugins are your example of programming by non-experts ...

  61. Re: 100% complainer by datavirtue · · Score: 1

    I was involved with a pie in the sky project where the developers were given a chance to rewrite and entire legacy application suite. We ended up with a new legacy code base consisting of all the latest fads and trends which were misused and abused. It is worse than the old legacy...literally.

    --
    I object to power without constructive purpose. --Spock
  62. Order n^2 vs. nlogn by hsthompson69 · · Score: 1

    Unless you can teach the average schmoe the difference between O(n^2) and O(nlogn), you've got no hope of bringing "programming" to the masses. I sped up a visualbasic "program" written by a "normal", by fixing their check for duplicate records by sorting *first*, then looking for dups, instead of going to each row, and checking every other row in the database for dups. Went from running 48 hours to less than 2.

    Put another way, there are *lots* of ways to program poorly. Democratizing even the most basic tools won't prevent that.

    1. Re:Order n^2 vs. nlogn by hsthompson69 · · Score: 1

      The "normal" would have seen exactly what they thought they would see - they had written a simple, reliable, completely unscalable algorithm.

      They had no idea that it could be improved in scale. They had no idea that their solution, while *valid*, was not *optimal*. Simply showing them "hey, you're iterating through 1 million rows 1 million times" wouldn't have even registered with them as a problem - it was simply the reality of solving their issue logically and completely.

      Now, how much training does it take to get someone to truly understand quicksort, bubblesort, or bucketsort? How much math do they have to understand to not only grok the *problem* with O(n^2), but also viable alternatives to their naive thought process? How much experience do they need to go through before they can apply this to arbitrary business requirements?

      There's a book "Drawing on the Right Side of the Brain", which makes a great case that the art of drawing is not a mechanical one of hand dexterity, but a mental one of being able to see properly. It seems the same thing might apply here.

      I guess I'd be really interested in what the minimal training would be to understand "big O" notation, implementations, and applications to reality. Maybe some people can get it in weeks, others, months or years.

    2. Re:Order n^2 vs. nlogn by iggymanz · · Score: 1

      But we're saying there would be library of tools. you tell the tool the rule for putting "this thing gets sorted in front of that thing", then call the sort tool.

      Sorting is a solved problem, after all.

    3. Re:Order n^2 vs. nlogn by hsthompson69 · · Score: 1

      Having a library of tools available, and knowing that you should use them are two separate things.

      The "normal" guy didn't realize that searching for duplicates without sorting first was O(n^2). Giving him a sort function in a library isn't going to help him if he doesn't even realize there is a need to sort.

    4. Re: Order n^2 vs. nlogn by hsthompson69 · · Score: 1

      I am agreeing with you as hard as I can.

      The people who understood big-O notation, and applied it regularly, never really talked about it much. The only context I would ever bring it up in would be about "what baseline skills are required to become a decent programmer", not "let's have a long code review and critique every loop for big-O optimizations".

    5. Re:Order n^2 vs. nlogn by hsthompson69 · · Score: 1

      I'm not sure if that follows. The "normal" fully *expected* that the computer was going to take O(n^2) time. That seemed like a logical outcome for them - it wasn't a surprising result, and even seeing the exact, step-by-step path the program was taking would not have inspired them to imagine that there was a better algorithm for solving the problem.

      I think this is exacerbated even more by the grand performance expansion of computer hardware over the past 30 years - you can get away with shitty algorithms simply by throwing more iron at it, and some people have no idea how to even *recognize* optimization potential, much less understand it's possible.

  63. Re:100% complainer by MightyMartian · · Score: 1

    IBM still makes a good deal of its money building hardware and operating systems that support 40+ year old software. Some of this software has cost hundreds of millions of dollars to develop over decades, and replacing it would be obscenely expensive, not to mention disruptive. And really if it still works and is still maintainable, then what's the problem? When you stop finding programmers who can work on the system, then you've got a problem, but until then if you have a vast sunk cost

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  64. Amiga CanDo by Zobeid · · Score: 2

    He mentioned Hypercard. I'd say, bring back something like the CanDo programming environment that we used to have on Amiga.

    Re: https://randocity.com/2018/03/...

    This was amazingly accessible, like BASIC if you had a BASIC where everything was created visually with a GUI—which is very different from having a visual GUI editor as some kind of mere accessory sidecar. Rather than create your code in one IDE, and a GUI in another, and then try to graft them together (like IB on the Mac), CanDo had you create your GUI which you could then embed code objects into. Your bits of code were simply properties of GUI objects, although it was also possible to have dedicated code-holding objects with no visual presence. It wasn't perfect, because large projects could become disorganized, but for relatively smaller stuff it was brilliant.

    So why didn't it get traction; why didn't it take over the world? For one, CanDo was an Amiga thing, and therefore unknown to most of the world. For another, it came out exactly at the time when the internet was taking off, and the rest of the world was going gaga over HTML and Java, while CanDo had no concept of network connectivity.

  65. Code monkey by PmanAce · · Score: 1

    What you are saying is that you want to be a code monkey because you are too lazy to properly learn most of what is needed to do things properly and clean without taking short-cuts. You must be a millennial!

    --
    Tired of my customary (Score:1)
  66. Front end is shit by MichaelSmith · · Score: 1

    We used to be able to build GUIs with a few thousand lines of code, now you need hundreds of megabytes of js, css, html and whatever else, and everything interacts in strange ways and weeks breaking and getting broken in to. Its a clusterfuck of terrible design.

  67. Re:100% complainer by Hognoxious · · Score: 1

    Rewriting ancient legacy systems is trivially easy. You just have to leave out all the accumulated business rules.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  68. Cranky old man syndrome by TimMD909 · · Score: 1
    When he said "You get a cross between Dungeons & Dragons and Rubik's Cube, elaborated a thousand-fold" I immediately thought, "That's awesome. I'm curious to see how he plans to maintain this beautiful utopia we've made." Then he starts poopooing all over everything.

    Well boohoo. I like our nerdy culture. If you wanna be a sanctimonious white knight, there's always the Rust community.

  69. Re:100% complainer by Tough+Love · · Score: 1

    He proposes the programming equivalent of "trade school" education - which was pretty common 30-40 years ago.

    Trade school education might be fine for trade school problems, but which master practitionser is going to decide whether a problem is a trade school problem or not?

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  70. nothing to do with programming whatsoever by epine · · Score: 1

    Christopher Hitchens:

    If you can write you can talk, if you can talk you can write. This cheers his students up. How many of you like to listen to the other students talk? This depresses them again.

    With writing, the bar is to be more interesting than silence.

    With coding, the bar is to achieve a tiny modicum of formal consistency.

    Most people suck at both.

    And this is before you describe the operating environment, which 90% of those 100,000 pages of documentation are actually addressing.

  71. Re:Don't dumb down programming, make people smarte by bidule · · Score: 1

    The average internet user has trouble expressing his ideas, even after years of schooling. Considering they can't master the English language, I'd be surprised if they get any result out of the more formal computer languages.

    --
    ID: the nose did not occur naturally, how would we wear glasses otherwise? (apologies to Voltaire)
  72. No, he's right. by sonamchauhan · · Score: 1

    Programming today reminds me of the clutter pervading so many homes in the 70s, 80s and early 90s. No surface free from some sort of curio, knick-knack or souvenir. Some useful, some to document an important precept, or capture a moment, some just for entertainment.

    Programming needs its own minimalism movement. Mental work surfaces free of clutter, with the sophistication baked into tools that are visible.

    For instance, webMethods, a Java-based programming IDE from the 90s, had the right idea back then. A program statement in their native 'Flow' language was no longer a linear line of text. Instead, a line became a 2-D canvas, graphically showing all the in-scope stack variables (so you were reminded of what was in-scope). The variable types (Java objects, strings, arrays, etc) looked different and could be manipulated in the canvas -- so a single 'step' could do multiple assignments, math operations, etc. It also had nifty builtin operations to snapshot and restore the stack-frame (handy for debugging).

    Unfortunately, the core webMethods language hasn't progressed much in the two decades it's been around. Neither is it open-source.

  73. Re: Visual Basic? by phantomfive · · Score: 1

    I agree with everything you said except one nitpik: web browsers are only marginally tolerable for graphics design and brochures. Many of the designers of CSS and HTML didn't want it to be good for that, they wanted it to present information and thay was it. Other people wanted that, of course, but the result of these conflicting goals is one that does page layout, poorly. This is all my opinion, of course.

    --
    "First they came for the slanderers and i said nothing."
  74. Just different worlds now. by os2fan · · Score: 1

    The problem, I think, is that the overall model is lost. That programing has become something different to doing things on the computer.

    In younger days, I could program Lotus for DOS, even doing clever things like programmically hiding lines in print, or adding one's own menu to a spreadsheet. Then Windows came along, and it was all hidden in things like VBA. It no longer was a copy of the commands with logic.

    When you could get into files, and see what was needed, you could program for it. I used an RTF file as a batch for a rexx processor, that created documents based on the user input file, and checking the file you could produce good copies of letters. It's a lot harder to do this with a binary file.

    I still use REXX. It's a simple language, and IBM envisaged it as the glue of the OS. But they did not lock it up like visual basic. The thing is an extension of the command prompt, and you can write neat filters for things, or fiddle with INI and registry, and create desktop icons from a batch. The current install on my computer is to copy a directory structure, and run the batch file to create links to lots of programs.

    --
    OS/2 - because choice is a terrible thing to waste.
  75. End user computing is not feasible by cjonslashdot · · Score: 1

    The comments here are mostly in two groups: (1) those who feel that programming is fundamentally simple and anyone should be able to do it, given simpler tools, and (2) those who feel it is fundamentally difficult and not everyone can do it.

    Those in group (1) point to languages like Python and Basic as proof that anyone can program. However, there is an important issue that is missed in most of the comments: How productive a language is for the original programmer, versus how easy it is for someone else (on your team, or another team months later) to figure out your code and be able to modify it safely. These are very different things.

    For an organization with lots of teams, it is very difficult to create maintainable, shareable code. It really takes a professional. I have been in many organizations that had to deal with "the end user computing problem". These organizations undertook large efforts to get code out of the hands of users and into the hands of professionals where it could be maintained properly.

    Should it be so hard to code? No, but we are kind of stuck. The OSes and frameworks keep getting more complicated; and worse, the fundamental technology choices that underpin most things were deeply flawed choices - we are stuck with approaches that make things brittle and unnecessarily complicated. Thus, I see little hope of non-professionals being able to write code in the context of those flawed frameworks and technologies.

  76. One of the problems by TVmisGuided · · Score: 1

    One of the biggest problems anyone sees if they look at the code being put into production is that whoever wrote the code never gave any thought to its being maintained later, after he/she departs the project. The coolest, froodiest, whiz-bang collection of libraries in use today may have been completely discarded when the next programmer comes along to fix the security hole written into the website/application/whatever, and perforce the new programmer MUST reinvent the wheel in order to repair what the first programmer never saw as a fault.

    Languages such as COBOL survive because they are, in large part, self-documenting. (They also survive because no newer language is capable of accomplishing the job the original language did...but that's a separate argument.) While we slog our way through our next entry in the "Obfuscated C contest", similar code gets put into production as back-end processes for data mines, with predictably poor or unusable results, and after the programmer gets fired for not accomplishing the design goal in the PHB's time frame, the next poor sap dropped into the chair is left with trying to puzzle out what the first one was trying to do, and matching that up with whatever design specs the PHB expects to be met, and doing both in the same or shorter time frame as the first poor sap was given. Meanwhile, COBOL applications written 40 or more years ago continue to do the job they were designed to do, and do that job very well, and (provided one can still find a COBOL programmer) are maintained at comparatively low cost.

    To avoid being accused of crossing Teddy Roosevelt's line (paraphrased as "Pointing out a problem without proposing a solution is called whining"), here's part of the answer: start programmers out on the KISS formula, and keep them writing code to that formula.

    That's as far as I go.

    --
    All the world's an analog stage, and digital circuits play only bit parts.
  77. Can't do that with a moving target by ET3D · · Score: 1

    How can you make things easy when what you're trying to achieve changes all the time? Sure, if you want static pages that work at desktop resolutions of 10 years ago, I think you've got the problem licked. Want something dynamic that changes style between desktop and mobile? Sure, you could design it now. By the time it's done and bug free, things would likely have moved enough that it won't fit the bill.

    It's easy to make something that would be easy to use -- just limit its scope severely. There's pretty much no other way to do it (although AI might get to that some day, and you'll be looking for a new job). You already have a multitude of solutions of this sort. I can create a nifty site quite easily at Wix or a nice blog at WordPress.com. The only problem is, they're not what your client or your boss wants, and they will never be.

  78. Obligatory XKCD by Ottibus · · Score: 1
  79. The problem it is not the programming by info6568 · · Score: 1

    The problem here is not to make programming easier but to classify the type of tasks you are trying to accomplish.

    Some tasks are easy and can be accomplished by anybody without training, so the people without knowledge or sophisticated skills can work them easily. But other tasks are very critical and complex and well trained specialists need to work on them.

    Don't try to put everyone in the same basket because you will obtain super complex and heavy things (when you need to do special programs with very easy and powerless tools), or super dangerous solutions (when you are trying to use those easy to use tools in critical environments).

    Another issue is about the computers. Before everything was "Basic" because the machines were very simple, slow, with less resources, so only Basic or machine language was possible. But today the user machines are ultra powerful computing devices with many layers or complexity to deal with. An option is to go the Raspberry Pi path and to define small simple things on machines that only do one thing and can do it without a lot of complexity, and not to try to resolve all humanity problems with the current bloated operating environments that are excessive in everything they "try" to do. This is not a programming problem, this is a conceptualization one.

  80. From the stone age to the land of Babble by Contract+Gypsy · · Score: 1

    Okay, I'll share a peak into my history when it comes to programming. Started out with raw assembler on 68xx and 8051 8 bitters. Complex and frustrating for the first six months but then it was easy. Then came the RISC parts in assembler not too bad to adjust to. Then I changed jobs and created programs to run on DOS for production end of line testing using QuickBasic. I literally said to myself this is for kids given it's absolute simplicity. Then I shifted to C on embedded micros, very nice as it gave you almost as much flexibility as assembly did, but in a far more human like language, so I found it to be perfectly in the middle of assembler and basic. As the embedded processors got bigger and faster I stayed with C and let all the young whipper snappers go down the path of C++/prime/sharp and so on. For me those spin-offs just added complexity that to this day I still say is overly complicated even when running on Cortex M4s. Of course somebody came out with a zillion RTOS's to make life easier. I never went the way of RTOS, but my co workers did and seem to like it. But over the years I've shifted from software/firmware to hardware. I write enough code now to validate the functionality of the hardware, and C works very well in that environment. In short, I stuck with C and didn't bother with the babble and its complexities today. So, for embedded, I say C is the Language, it goes great with a bottle of Vodka too! But then of course there was a fellow I worked with 20 years ago that was stuck on embedded Fortran, he loved it!

    --
    Life is in a state of dynamic equilibrium, it both blows and sucks
  81. Delphi by BadDreamer · · Score: 1

    Delphi is still in use. It's used for major application in the industrial and transportation sector. I work with it to create industrial GUI's and communication software.

    It is better than ever, and is gaining very good cross platform capability.

  82. Programming today is vastly easier by Tony+Isaac · · Score: 1

    In the bad old days of Basic, software structure and layers were non-existent. Good luck trying to reverse-engineer somebody else's old code! Today, programming has become much better structured, making it far easier to maintain and extend. There's no way I want to go back!

  83. The hard part is not the coding by Tony+Isaac · · Score: 1

    The hardest part of programming is not the coding. It's deciding exactly what you want the software to do! This is called engineering.

    In a way, it's like road building. The hard part is not moving the dirt around and pouring concrete. The hard part is deciding where you want the road to go, buying the land where it will go, putting up with people who don't want the road nearby.

  84. Re: Visual Basic? by Tablizer · · Score: 1

    Well maybe, but they are usually less critical. If your ad doesn't display right on 2% of browsers, that's not a big loss. If your app doesn't work on 2% of browsers, then you flood your help desk.

  85. Deployment of Delphi/Lazarus [Re:Visual Basic?] by Tablizer · · Score: 1

    Borland Delphi....It's really a shame nobody has pushed this direction. It worked really, really well.

    If someone just finds a way to make Delphi/Lazarus easy to deploy (install & upgrade) on desktops, it might catch on in corporations. Desktop deployment headaches are mainly what made Web-based applications catch on. Solve the deployment problem and we can get away from the spaghetti web stacks, and UI's become simpler to make again. MUISA!

    Some say Microsoft has greatly improved Windows WPF application deployment, making it automatically detect upgrades, prompting users; and optionally automatically upgrading without a prompt if the developers choose. The pendulum often swings, so maybe desktop apps are back.

  86. TRy this by Ol+Olsoc · · Score: 1
    hold on......

    Jonathan Edwards has been programming since 1969 (starting on a PDP-11/20). "Programming today," he writes, "is exactly what you'd expect to get by paying an isolated subculture of women to entertain themselves for fifty years.

    Johnathan Edwards, yuou have outed yourself as a sexist bigot. Gotta remember my good sexist, if you Exchange "women" for "men", and it is considered sexist, the original statement was as well. I mean, it is politically accptable to blame matters on people by the basis of them having a penis, but that's their sex.

    --
    The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
  87. Concept programming by descubes · · Score: 1

    I agree with the general sentiment. My own answer to this was something called "concept programming", which focuses on the translation of ideas into code. The following presentation gives an outline of what this means and a few early results: http://xlr.sourceforge.net/Con....

    From that I derived a concept programming language called XL, https://github.com/c3d/XL. Which keeps evolving too fast to ever stabilize. Two semi-stable variants emerged, however, one called Tao3D for interactive real-time animations (http://tao3d.sourceforge.net), one for distributed programming and the Internet of Things (https://github.com/c3d/elfe).

    Both variants demonstrate, technically, how well the concept programming approach works, and how well it answers the original posters questions. However, nobody cares. None of these languages ever reached a "good enough" status, i.e. a status where you can really make a living out of programming them.

    I'm still working on this, though, and I still believe that the original idea is sound. It just needs more focus on execution, ironing out all the details (e.g. having a complete runtime support library), building a community, etc, things I never really had enough resources to do well enough.

    --
    -- Did you try Tao3D? http://tao3d.sourceforge.net
  88. Re:They requirements have increased a thousand fol by LordWabbit2 · · Score: 1

    but most of the apps haven't changed much

    Which is why there is still so much COBOL code still in use. People who hate COBOL and want to replace it with a Java, C# etc. application instead are not aware of how complicated and involved the COBOL code is, also how much money it cost to write and get rid of all the bugs. Writing software is a time consuming thing, and since time = money writing software starts to get VERY expensive.

    --
    There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
  89. It's been tried by BubbaJonBoy · · Score: 1

    It's been tried - and rejected by the folks that pay salaries.
    There was a programming language way back that utilized a flow chart type language with visual blocks that you simply filled in the logic parameters.
    Arguably Visual Basic was accessible to non-compsci folks. Nope - they hired people to code still.
    Hypercards died from lack of interest.
    IBM had a database product with flexible field definitions assigned as a form.
    Basically you picked a field type, gave it a name and label, slapped it on a form and the thing would create a database.
    Filemaker used to be approachable in a simplistic manner.
    Nope, truth of the matter is that business people simply want to offload responsibility for doing to doers and stick to managerial tasks.

  90. Corrections [Re:STOP throwing out successful ideas by Tablizer · · Score: 1

    Corrections:

    Re: "can crank out applications at about 1/7 the pace"

    It should be "at 7 times the pace": 7 applications per 1 application from the web stacks. I should also clarify it doesn't really speed up the analysis side of things by 7 times, but because they can make an actual product faster than others make examples and prototypes, it does speed up the feedback cycle with customers to a degree. (Our web stacks could probably be simplified to some degree also, but our shop is stuck in habits. With a well-tuned web-stack, per fitting our org, the ratio would probably be 3-to-1.)

    Re: "learn from the failure Java applets and Flash"

    Should be: "learn from the failure of Java applets and Flash"

  91. Trivial solutions only work for trivial problems.. by JoeDuncan · · Score: 1

    It wasn't always this way, Edwards notes, citing spreadsheets, HyperCard, and the many incarnations of Basic as examples of how programming technology can be vastly easier and more accessible.

    I've seen many of these "technologies" which are supposed to make programming easier and more accessible, from the ones cited to things like true visual programming (e.g. LabView...) and the by far the biggest problem these "solutions" have is that they are only really applicable to trivial problems, and when you try to apply them to large real-life problems, they quickly become unusable and WAY more complicated than traditional approaches.

    Sure, it might be easier to write "Hello World" with some of these, but try writing an enterprise app that has to handle hundreds of thousands of users with them: you're either not going to be able to or it's going to be a LOT more complicated than doing it the normal way.

    TL;DR

    Trivial solutions only work for trivial problems, and most real life problems are NOT trivial.

  92. 'The Problem With Programming and How To Fix It' by sumergo · · Score: 1

    Two seconds into a discussion about how programming computers should be simple and easy to do without a CS degree and all our multiple coding/design/development designations - we get into wanking about Arduino or C++, frameworks, Java . . . You just don't get it do you (mostly) guys? It isn't about the tools you love to handle and the joy you get from them yourselves, it's about the ease and speed with which you develop a working, bug-free system for your client.

  93. I remember my first time with Visual Studio by Zorpheus · · Score: 1

    I opened Visual Studio 6.0, had no idea what to do in the IDE. So I opened the help, clicked on Getting Started. I got to a page that told me how great Visual Studio is. I clicked links to other pages, and other links there. And I just came to pages that told me how great it all is, and I did not get started at all. It was just a large loop between such pages.
    And I already knew how to program, in Delphi, Pascal and Basic. I got along with Delphi without any outside help. But this Visual Studio was just impossible to get along with if on your own, without literature.