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

560 comments

  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 Anonymous Coward · · Score: 0

      Sounds to me like the proposal is âoethere should be different computer languages for different purposesâ - like there already are. But I agree about HyperCard; is there a modern equivalent?

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

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

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

      It's one of the many challenges companies face when they dumb down their work force in the name of statistics. Meanwhile, we keep hiring developers based on their ability to code and they don't seem to have any issues.

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

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

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

      And without a fancy GUI.

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

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

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

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

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

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

    15. Re:Idiocracy by Anonymous Coward · · Score: 0

      Nope. It's more of "Let's go back to C"

      Basically the issue right now is that there are layers and layers of complicated shit involved in programing even the simplest of things.

      In BASIC you'd have something like
      10 print "Hello World"
      or in C
      main(){
      puts("Hello World\n");
      }

      as very simple things, but that C program requires including stdio.h, and where do you get stdio.h ? the compiler toolkit. Switch the compiler, and stdio.h might not exist, or have different parameters. You don't need to link anything if the C compiler knows it's an exe.

      Now C++ turns that into an entire clusterfuck, standard template library, thousands of header files, and a dozen different ways to do the exact same thing. C++ is ultimately a "failure" as far as keeping it simple. You an put someone in front of C or Basic, and it's straightforward until you get into pointers. C++ is completely unintelligible to the same people, while solving a few issues like garbage cleanup as a feature of the language. It still doesn't give you free threading.

      Java, attempts to cover C and C++'s weaknesses, but it was never a free language, so it's adoption is basically risky, and ultimately it was a fad language.

      So now that we covered the language issues, let's get to the real issue. The real issue is that the build tools for everything are garbage. Ever since I started working with Linux and FreeBSD, each "OSS" project uses different build tools, often in languages like perl csh or python. So JUST to build anything, you need to install at least two other scripting languages. That is horrible, because instead of having just one thing to deal with (your program) you now have to debug broken build tools, and when two dependencies depend on different build tools in different languages, you get broken projects.

      So ultimately you end up installing a dozen versions of Perl and Python just to install anything via source code, that's insane.

      And don't get me started on NPM/Javascript/PHP/Ruby/Python build tools used for "web frameworks". This is some of the worst shit there is. Software like Wordpress, Drupal, Joomla, PHPBB3, and so forth start using these kits, and it results in these highly-used things being broken because of shit in that dependency is broken.

      You do not need a CS degree to program, but you would be deluding yourself if you think you can just sit anyone down and tell them to use X, Y or Z tools, because the way things are right now, you basically need to know everything, and the more obscure something is (eg Rust) or annoying (WebASM) something is, the more security issues there will be, because developers are not familiar with 100 different pieces of the puzzle, they're only familiar with the glue used to hold them together.

    16. Re:Idiocracy by Anonymous Coward · · Score: 0

      So what you're saying is that we need to ditch C/++ for low level programming and switch to Rust? I can't really think of any other truly low level language that refuses to compile code with common errors. Yet people complain that Rust is too hard. So does coding need to get easier, or do languages need to enforce better practices? Making it harder to make errors is going to make programming more difficult, and making coding easier will result in either less efficient code or more error prone code.

      There's really not a free lunch to be had here.

    17. 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"
    18. 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.

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

    21. Re:Idiocracy by Anonymous Coward · · Score: 0

      Well, Liberty BASIC is still there and makes Windows programming very easy:
      http://www.libertybasic.com/

      It is ideal for many engineering, homebrew and small business uses. It has simple graphics and I/O and a nice widget set with a tool to create GUIs quickly.

    22. 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
    23. Re: Idiocracy by Anonymous Coward · · Score: 0

      I agree. There is so much more to programming than simply knowing how display "hello world"

    24. Re: Idiocracy by Anonymous Coward · · Score: 0

      Let's make architecture easy then (eye roll). I have worked with some awful programmers, some people just don't get it (e.g. bugfixing involves shuffling code around untiil it inexplicably works again). The industry most definitely does not need more people like this. Effective code sharing could solve the shortage problem. Wheels are reinvented thousands of times over, this is where we can readily improve.

    25. Re:Idiocracy by Anonymous Coward · · Score: 0

      Whaaat! I looked at the original article expecting to see some
      meat, and all I got was 7 paragraphs and a bunch of comments!

      CAP === 'impasse'

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

    27. 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
    28. Re: Idiocracy by Anonymous Coward · · Score: 0

      If you don't have the required competence for using a tool; switch to a different tool or acquire the missing competence. Don't talk shit about the people who have mastered the tool. They are probably one source of acquiring the aforementioned missing competence.

    29. Re: Idiocracy by Anonymous Coward · · Score: 0

      Architects don't make the buildings strong. There is an army of engineers that take the initial architect's design and calculate and science the shit out of it, and make corrections and what not so the building can stand. It is often that there are so irreconcilable changes that the architect needs to revise the design several times.
      The only difference with software is that the customer gets shipped a version (the building is built) only after it is reasonably sure that it won't fall down. Software is shipped if it compiles, especially in agile.

    30. Re:Idiocracy by Anonymous Coward · · Score: 0

      The "rock stars" I've worked with had the opposite problem - a severe case of Dunning-Krueger mixed with NIH Syndrom. To wit, they will not use pre-existing code, because it couldn't POSSIBLY compare with their own brilliant code.

      So you end up with a convoluted, arcane, impossible-to-maintain mess that has a design so brilliant, only the rock star can understand it.

    31. Re: Idiocracy by layabout · · Score: 1

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

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

    33. Re: Idiocracy by Anonymous Coward · · Score: 0

      Unless a company fires all of their QA department and ships the bug-riddled product anyway like Microsoft did.

    34. Re: Idiocracy by Anonymous Coward · · Score: 0

      20 years developing hardware and software using a range of tools from poor to outstanding. Developing software is frequently more difficult than hardware, hardware conforms to a universal standard known as physics. Software is developed by a range of skill levels, most couldnâ(TM)t earn an engineering degree, too much math. The same skills that make a good engineer make a good software developer, the ability to think rationally, logically and to apply what you know creatively and effectively. Unfortunately there are far more software jobs than people with those attributes.

    35. Re:Idiocracy by Anonymous Coward · · Score: 0

      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.

      Specialization, proven experience and re-certification would be the road ahead then. To draw a parallel to our local building industry, a programmer would have to show 5-20 years of experience from, say UI projects of similar or higher complexity level to be allowed to sign off their part of the design/code/product. That's a hard requirement given that the measurement practice is still at its relative infancy compared to other fields. I wouldn't know where to start for such a large overhaul of the field that values speed and time to markets above all else.

    36. Re: Idiocracy by Anonymous Coward · · Score: 0

      This is already done for some applications. ie: NASA (https://www.fastcompany.com/28121/they-write-right-stuff) where they actually go through and prove the correctness of each line for spacecraft. The reality is most software development doesn't need this level of correctness, good enough is good enough, and the competitive nature of the industry means if you go too slow you leave money on the table.

    37. 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)
    38. 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
    39. Re:Idiocracy by Anonymous Coward · · Score: 0

      "you can't just continually hire super-intelligent people because there just aren't enough of them"

      Geniuses will always be in short supply. The first thing to do is to fire the 90 % of sub-par programmers. And yes, catholic dogma holds that the Pope is infallibie. Anybody who wants to program computers must be at least as infallible as the Pope.

      Then the second step is to reduce the complexity of the software so that mere super-geniuses are actually able to design it. This implies discarding at least 99 % of existing or in-development programs and 90 % of the features of the remainder. We need fewer computers and fewer programmers than we have, but it would be great if there were just a few systems that actually worked.

    40. Re:Idiocracy by Khyber · · Score: 0

      BASIC, the shit-slow (sometimes double-interpreted) junk?

      No thanks. Even with the sheer power we have today in terms of IPC and clock speed, that's just a waste of energy.

      --
      Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
    41. 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.

    42. Re: Idiocracy by Anonymous Coward · · Score: 0

      The Pope is only considered infallible Ex Catedra.

    43. 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.
    44. Re:Idiocracy by Anonymous Coward · · Score: 0

      what profession?
      Why sorting it out?

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

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

    48. 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.
    49. Re:Idiocracy by Anonymous Coward · · Score: 0

      Been There. Done that. Its called PL/I

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

    51. 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.
    52. Re:Idiocracy by Anonymous Coward · · Score: 0

      I agree, whilst you're at it, if you could also make physics, and maths easier that'd be awesome too.

      It's ridiculous that solving the millenium problems is something only geeks who dedicate their life to it. Everyone should be able to solve complex mathematical problems, all we have to do is just make them easier.

      I mean like WTF, I have to spend my whole life on math just to solve P vs NP? Why don't we just make math easier so I don't have to spend so long figuring out a solution?

      If it weren't for tossers like Einstein and Hawking we'd easily have a grand unified theory now, but no, they just had to go and make physics difficult so that I can't be a genius at it.

      How is the layman supposed to stand a chance in this world if they can't just get everything for free with zero effort?

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

    54. Re: Idiocracy by Anonymous Coward · · Score: 0

      And yet somehow humanity manages to surge forward on an ever and incredibly accelerating curve of technical advancement. Unpossible!

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

    56. 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.
    57. Re:Idiocracy by Anonymous Coward · · Score: 0

      The big players have problems in their libraries precisely because they have people creating them who haven't learned computer science, only programming. Yes, the medical world is exactly the model you should be looking at. You don't have a pharmacist do surgery on you.

    58. Re:Idiocracy by Anonymous Coward · · Score: 0

      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.

      Not really. You have a low UID, may I assume you have not earned a degree in a modern technology program? Myself and a biomed compared our stacks of textbooks. Mine was nearly twice the height, not including the updated versions that tech people really do need to keep up-to-date on. She can rely on her knowledge from four years ago. My knowledge from four years ago has already been replaced.

      What you said, with some grace for hyperbole, is true in traditional STEM university programs, but not modernized ones. Even for undergrad my program required 98 technology credits, while at most elite schools only requires about 30.

      The problem is that medical students study only their specialty and what is needed for it. With technology, to be considered worth hiring, you must be well-versed in several. Advertisements for career positions are sufficient evidence to prove this. There is no "Entry level position for a general practitioner with five years experience. Must also have 10 years of experience as a cerebrovascular surgeon and can sub for chemistry lab technicians or anesthesiologists starting at 70k a year." Yet the tech analogue is so common they are laughably unavoidable.

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

    60. Re:Idiocracy by Anonymous Coward · · Score: 0

      Visual Basic takes care of all that for you.

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

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

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

    65. Re: Idiocracy by Anonymous Coward · · Score: 0

      Thats called a linter these days

    66. Re:Idiocracy by Anonymous Coward · · Score: 0

      The situation isn't entirely the fault of the programming languages though.

    67. 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."
    68. Re:Idiocracy by Anonymous Coward · · Score: 0

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

      You have way too optimistic image of how good people at medicine are and how much checks they have in place. I have seen even the same doctor changing her opinion within half a year from definitely not, into definitely yes, without any change in the patient or conditions. Same thing has happened several times when changing from one doctor to another. And no-one will check if the latest decision is correct or not, unless the patients makes a claim against the doctor or asks another opinion. There is also research data that shows that doctors are 50% correct of saying if there is a specific decease in X-ray image or not.

      And it is not just medicine, pretty much every field, including construction, don't have checks, unless some individual require it. E.g. I know a case in construction where a person was certain that builder were up to no good and he ordered them to take down a wall on his own cost and sure enough he found serious errors behind the wall which resulted into firing of the constructors and some law suits also.

      If you do code-reviews you are doing much more than what the rest of the world is doing.

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

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

    72. 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.
    73. 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.
    74. Re:Idiocracy by Anonymous Coward · · Score: 0

      You also need to be able to learn, and process information. A common fallacy I've seen, is that everyone is capable of doing or learning anything. The next, is that people are all intelligent in the same way.

      I've seen people that would have a difficult time using a map, but could memorize all of the place names on it. I'm not referring to a rainman situation, just someone with an excellent memory -- but for whatever reason, lacks the genes to properly conceptualize maps. Hell, there are people literally unable to tell one face from another:

      https://en.wikipedia.org/wiki/Prosopagnosia

      "...the ability to recognize familiar faces ... is impaired ...while other aspects of visual processing (e.g., object discrimination) and intellectual functioning (e.g., decisionmaking) remain intact. ..."

      Some people are quite literally not able to perform certain jobs with any level of competency. Period. Ever.

      There are 'tricks' to recognizing faces for people with prosopagnosia. Those tricks require constant vigilance, are not effective all of the time, and only a lunatic should decide to employ such a person to, say, examine people against their ID when entering a secure site.

      Programmers, good programmers, have certain genetically enabled skills -- combined with learning, which enable them to do their job.

      Sure, you could abstract away much of that work into some other complex area.. such as developing tech that is easier to use, but then you'd be making *that* complex. And by making it complex, and abstracted away so you can't "touch" it, you'd reduce the power programmers have to do what they do.

      I'm not even sure what problems exist to be solved. The article talks of "issues" and "problems" to be solved. What issues? What problems?

      Complexity?

      Any profession requires extensive learning, otherwise it's just 'a job'. Architect? Oh yeah, I hope you put all the power in the tools, not the head, and then have the bridge I drive over daily designed by the new 'architect light' that uses those tools.

      Or even better, put all the "complex stuff" inside of tools, and then I can visit my "doctor lite", that when I say I have an ache.. looks at a print out and says "naw, you don't". Yeah. That'll help.

      Especially when a new bug comes out, with new symptoms, that nothing can detect yet.

      And worst of all, much of the guy's article had nothing to do with any of this, but with a lot of other, non-headline summary cruft.

    75. 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.
    76. 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.
    77. Re:Idiocracy by Anonymous Coward · · Score: 0

      Assembly is simple. I self invented it at the age of 6 when I looked at a computer for the first time. It was obvious what had to be happening behind the scenes. I was an electronics show next to the only computer. I asked how the TV was displaying such clear lines because VHS always had a bit of blur and why they would have recorded the line moving around other than to show off how clear their new tape was. The sales man said it was a "computer" and that it was creating those lines in real time, and it had a CPU that was like a fast calculator.

      I was instantly obsessed with it and within a few minutes I concocted a way to represent the pixels, including their position and movements. Along with that, how to store and address them. Around the age of 8, I got a book on "programming", which was ASM, and it was nearly identical to how I envisioned the computer to work. I naturally picked up ASM and finished the book within a week.

      My favorite language for the longest time was C. It was like syntactic sugar for ASM. Now days I mostly use .Net, focusing on high performance concurrent libraries that my company uses internally.

      On the topic of concurrency, I self invented race conditions at the age of 11 when I read about dual CPU computers. It seemed obvious to me that you couldn't keep the CPUs in perfect sync, which meant you can't just read values from memory without knowing when the data is ready. I became obsessed with understanding how to "multi-thread" for many years. I would spend hours just thinking on the subject. By the time I hit the real world programming for a wage, multi-threading was child's play.

      I've recently become interested in programming books from the 60s and 70s. After a while I realized that most of the ideas that I created were already made and polished decades ago. So many people say programming keeps changing, but it doesn't. Just old ideas with more of the yak shaving removed. The implementations keep changing, but the technology is fundamentally the same. An example is when I was told that Amazon has a "new" Datawarehousing service called RedShift and the programmers in charge treated it as a whole new technology. It's the same as any datawarehousing software in the past 50 years since the concept was created. The only practical difference is the operations aspect. It has the exact same strengths and weaknesses as anything else I've seen. But everyone else treated it as this whole new thing that needed to be explored and made all the same F'n mistakes that they made when using the Microsoft Datawarehouse solution.

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

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

    81. 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.
    82. 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."
    83. Re:Idiocracy by Anonymous Coward · · Score: 0

      What horrendous situation? What problem?

      The only problems I see, are people cutting corners for fiscal gain -- resulting in security issues.

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

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

    86. Re: Idiocracy by Anonymous Coward · · Score: 0

      It's not about discipline, you bootlicking cuck. It's about allocation of resources.

      Management simply will NOT pay for high quality software. If a programmer tries to spend the time necessary to create really solid, logically consistent, reliable software - he'll be fired before he's halfway finished.

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

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

    89. Re:Idiocracy by Anonymous Coward · · Score: 0

      It isn't. Systems have become *way* too complex.

      Oh, you can write toy examples in python and then it is that easy.

      But as soon as your program gets out into the real world, all sorts of cracks appear in the various abstractions. And suddenly you need to know all sorts of intimate details of the platforms you're running on.

      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 then the Android Studio abstraction breaks down and you need to know how the various parts of an android app are cobbled together, and how Android Studio does it slightly different than all the documentation you can find. And before you know it you have been reading for weeks.

      I succeeded, because I have been doing this for some time. But come on, what a mess.

      Don't get me started on 'web development'. Javascripthtmlpostgetphprubyajaxcssaarghpleasesomeonestopit.

    90. Re:Idiocracy by Anonymous Coward · · Score: 0

      Making easy this hard cuz memorizing things IDEs can do better makes me feel better about myself when compared to other people... No thanks, I'ld rather get things done vs reinventing the same problems that could have been avoided had a little time been spent on study and research.

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

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

    92. 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.
    93. 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.
    94. Re:Idiocracy by slashdot_commentator · · Score: 0

      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.

      Actually, no, I disagree there. Yes, there are computing problems that are hard to solve and requires experienced, talented developers. The real problem is that the overwhelming majority of programmers do not understand the theory of programming to the point they can make optimally intelligent decisions on how to implement a computer solution.

      The real problem is that programmers are captives of the current software development ideologies; the commercial environment. There is actually only one relevant computer language; that is machine code. Its the only code that hardware devices can execute and return meaningful results. We have (abstract) programming languages because assembler is too challenging for the majority of software developers to produce working, bug free programs. So programming languages actually exist to act as a buffer between less talented humans and computing machines.

      Our modern programming languages now actually exist supposedly so other human beings can understand the programming another human being did, and be able to modify it for some new function or correct some old bug, and yet still function properly when translated to machine code so a computer can execute it and produce desirable results.

      So why is the current software development industry so problematic and dysfunctional?

      1) Languages are a reflection of human extensibility and execution speed. The more abstract the language (from the machine), the less efficient it is in execution. Its taking abstracted data structures, methods, concepts and converting it to machine code. The more support it provides for human comprehension, the more machine code it has to construct to emulate human concepts on the computer. There definitely is a breaking point where a language requires too many resources that is economically available to a computing device.

      2) There is little consensus over what is the "ideal" sets and levels of abstractions to be expressed in a language that would make it an "ideal" language for the commercial industry to adopt. One consensus event was the adoption of COBOL by the business industry. The industry is evolving away from COBOL, because there are new database technologies businesses want to adopt, and other technologies (like AI) which are not expressed in COBOL.

      The next consensus point was the widespread adoption of the C language. This is because industry wanted optimally efficient machine code that could utilize abstractions (like data structures, pointers, etc.) for humans. FORTRAN produces faster executable code than C, but FORTRAN does not lend itself to huge APIs or as bugfree, correctable code as C.

      For a while, computer scientists thought that incorporating a set of human abstractions labelled "object oriented" programming would result in more productive (less talented) programmers, but that paradigm is being moved on from for newer paradigms. Meanwhile, the capitalist industry only cares about faster code, useful for commercial purposes, and even cheaper programmers, so it popularized bastard languages like javascript and php (web languages), and VM based languages (like java) to supplant C. Today, computer scientists look to even more abstract languages like "functional" based languages to be the "holy grail".

      The reality is that there is no universal language that is powerful, fast, and cheap (programmers). The less a programmer needs to do to make a useful program (utilizing prepackaged function libraries and APIs), the more desirable it is to the business market and less talented programmers, but inevitably it will run slower and require more expensive computing hardware.

      Today all these varieties in language are cliques of programming intelligentsia wanting to push their personal agendas and perspectives. Academics have no interest in develo

      --
      There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon
    95. 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!

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

      > . Wheels are reinvented thousands of times over,

      That is where Stackoverflow comes to the rescue.

    97. 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.
    98. 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.
    99. 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
    100. 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.
    101. 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.

    102. 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.
    103. Re:Idiocracy by Hognoxious · · Score: 1

      ... by tomorrow morning.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    104. 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.
    105. Re:Idiocracy by Anonymous Coward · · Score: 0

      The problem is that it's impossible. The complexity of software comes from the complexity of the underlying problem.

      (eyebrow raise) Hm?

      http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html

      CYA

    106. 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!
    107. 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.
    108. Re: Idiocracy by Anonymous Coward · · Score: 0

      That has nothing to do with your original claim. You have the debating skills of a turnip.

    109. 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.
    110. 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."
    111. 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.

    112. 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.
    113. 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.
    114. 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.
    115. 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?

    116. Re: Idiocracy by Anonymous Coward · · Score: 0

      How's that bootleather taste?

    117. 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.
    118. 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.
    119. 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.
    120. Re:Idiocracy by Anonymous Coward · · Score: 0

      Medics have it easy. Sure, the human body is a complex system, but
      - it's A complex system, not many

      I have a word for you: epidemic.

    121. Re:Idiocracy by Anonymous Coward · · Score: 0

      For the most part I agree with you. Tools are slowly getting better, which does mask some of the underlying complexity making today's programming easier than before. That complexity is extremely difficult to hide, so progress is slow, but it is progressing. Take memory management. Early programs had to write memory management. Later, libraries/os handled most of the management, but the program was still explicit. Now modern languages handle the nuts and bolts automatically (ie Java garbage collection or Rust ownership rules, etc.).

    122. 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.
    123. Re:Idiocracy by Cederic · · Score: 1

      Shrug. Multiple installations are hardly something to fear.

    124. 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.
    125. 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.
    126. 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.

    127. Re:Idiocracy by Anonymous Coward · · Score: 0

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

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

    128. 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.
    129. Re:Idiocracy by Anonymous Coward · · Score: 0

      >they don't bring out a new version every five months.

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

      Wait for it, biomedical engineers are working hard to make just that a reality. Software updates over the air in an artificial heart. What could possibly go wrong.

      Also, sometimes the heart breaks down because the materials are shit and is recycled by the body.

      There are bugs in any field.

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

    131. 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."
    132. 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."
    133. 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."
    134. 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."
    135. 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."
    136. 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."
    137. Re:Idiocracy by synaptik · · Score: 1

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

      --
      HSJ$$*&#^!#+++ATH0
      NO CARRIER
    138. 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."
    139. Re: Idiocracy by phantomfive · · Score: 1

      Why are you flushing and sleeping so much?

      --
      "First they came for the slanderers and i said nothing."
    140. Re: Idiocracy by Anonymous Coward · · Score: 0

      And all of it is bottlenecked by the time it takes to write the code to do the job. So the best choice is the most expressive and predictable language (for you). For me, for text processing type tasks, thatâ(TM)s usually Python. I think it used to be be Perl for a lot of people, but I never went there.

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

    142. 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.
    143. 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.
    144. 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.
    145. 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.
    146. 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.
    147. 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.
    148. Re: Idiocracy by phantomfive · · Score: 1

      Cool, thx

      --
      "First they came for the slanderers and i said nothing."
    149. 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.
    150. Re: Idiocracy by phantomfive · · Score: 1

      What do you normally use?

      --
      "First they came for the slanderers and i said nothing."
    151. 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
    152. Re: Idiocracy by hackwrench · · Score: 1

      Are you his mummy?

    153. 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.
    154. Re:Idiocracy by Anonymous Coward · · Score: 0

      Everything you've just said is wrong, and alludes to a child's understanding of the field of medicine and the human body. You seem to think something as basic as diagnosing the patient is simple and clear; you dismiss the body's complexity, not understanding that the body is a mass of many complex systems, each one more complex than any codebase you've ever dealt with, guaranteed.
      In short, you show the same sort of disrespect through ignorance that TFA is guilty of.

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

      Fine Learn ASIC then.

    156. Re: Idiocracy by Anonymous Coward · · Score: 0

      Wait wait wait, are you actually acknowledging and admitting that you still use VB6 here in 2018?

      I remember using that when I lived in my parents house in roughly 5th grade. Now I'm 30 years old and married with two children. That software is ancient!

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

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

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

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

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

    160. Re:Idiocracy by Anonymous Coward · · Score: 0

      Ignore him. Tough Love is just another /. blowhard who knows some technical things, so he thinks he knows everything.

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

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

    165. Re: Idiocracy by Anonymous Coward · · Score: 0

      VBA is *NOT* BASIC. Just because Microsoft uses the term doesn't mean it conforms to the standard. Bottom line is you use Microsoft software, which is why you are so incompetent you don't know this already.

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

    167. 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.
    168. 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
    169. 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
    170. 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.
    171. Re:Idiocracy by Anonymous Coward · · Score: 0

      This is a superb analogy and very funny, but you are both at least 70% wrong.

      Firstly, the human body is a very, very complex collection of a great many different systems which don't really have a consistent unifying theory, so instead you have to learn a very great deal of specific physiology, histology and biochemistry. The anatomy is also surprisingly complex, as there are a great many variations on the general theme. To quote the great Professor S. Jacob, who taught me anatomy, "People look very different on the outside. What makes you think they're all the same on the inside."

      Secondly, while the systems involved may not change, our understanding of them and of how to treat diseases of them changes enormously over time.

    172. Re:Idiocracy by Anonymous Coward · · Score: 0

      Most software projects have a budget that's 10% of any of those things. When you put the big bucks on a software project with a clear scope you get engineering marvels like SQLite. How much effort and expertise do you think was actually put into massive-lib-364-with-leftpad-dependency.js? I bet it was less than the crappiest Linux kernel module. Our biggest problem is actually that software has exploded into being EVERYWHERE and nobody wants to pay for it to be good.

      We're living in a software shanty town right now, where the buildings were all built by random people using stuff they found laying about.

    173. 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."
    174. 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.

    175. 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
    176. 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. Shouldn't it be possible... by Anonymous Coward · · Score: 0

    ... to be competent when you are incompetent? Sounds like a question posed by a Marxist.

    Although it would be nice if computers could program themselves, and in a way they are only starting to do so in limited ways due to careful techniques by knowledgeable individuals, it is still wishful thinking for it to happen in general.

    Captcha: honing (these captchas are erily psychic)

    1. Re: Shouldn't it be possible... by Anonymous Coward · · Score: 0, Insightful

      You wouldn't know Marxism if a proletarian smacked you upside the head with a copy of Das Kapital then proceeded to expropriate your means of production.

      I bet you also believe in the left/right false dichotomy promoted by the financialist mass media. Go back to Reddit - we don't need anymore credulous rubes around here.

    2. 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.
  3. "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 Anonymous Coward · · Score: 0

      The HR department was a huge part of the problem. Whether it was by design, they were not interviewing people for specific tasks or jobs. They interviewed people as "the right people", and then offered whatever was in their pile of job requesitions that they considered "the right fit", whether the requesting manager or the job applicant had any idea they'd ever been a candidate for that role. And they took *six months* to make the offer after the original interview, which happened to me several times.

      They're not Harvard or MIT or Oxford hiring department heads. Good candidates interested in joining Google were *gone* by the time the offer happened, which is what happened to me. (And I'd told their HR that I'd taken the other position months previously.) So what they get now is people practicing to be college professors, trying to have "profound thoughts" instead of actually doing the work. And it explains why they've gotten so focused on managerial and social politics. Many of their last 10 years of new staff were taught to care far more about the number of non-gendered bathrooms than whether the software worked. It's a core group of far more adept people actually doing the new projects, and they're falling in number.

      I've heard from Google managers that it's improved in the last 2 years (One of them was trying to recruit me.) Has anyone here seen evidence of that?

    3. 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.
    4. 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.
    5. 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.
  4. Arduino? by AndyKron · · Score: 1

    Arduino?

    1. Re:Arduino? by Anonymous Coward · · Score: 0

      Maybe he is looking for python?

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

      Python?

    3. 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?
    4. 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.'"
    5. 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.
    6. 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.
    7. Re:Arduino? by drinkypoo · · Score: 0

      Python is not sufficiently easier, especially since it creates its own problems... it was an advance from mainframes when we moved to not using indentation for flow control, and they decided to go backwards. If you have to be able to tell the difference between a tab and spaces for code samples to work, you've already screwed over the newbies.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    8. Re:Arduino? by Anonymous Coward · · Score: 0

      Depends on what you mean by hard.

      It is very easy to get started and get things done in Python.

      It is also very easy to shoot yourself in the foot and get obscure and hard to track bugs if your program grows from small script to medium sized application.
      While it takes effort to redefine the language to something unreadable in C++ the ducktyping in Python means that you get that almost for free.

      "Use the right tool for the job" is a commonly repeated mantra.
      Python has its uses, but it isn't the tool to use for every job.

    9. Re:Arduino? by Anonymous Coward · · Score: 0

      I dunno?

  5. Not much evolution in programming in 50 years by Anonymous Coward · · Score: 1

    relative to many other tech things.

  6. 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 datavirtue · · Score: 0

      Right. Listening to developers spin up a project always makes me cringe. The business gives requirements and they go off half cocked architecting what they think they are going to want five years from now.

      Just deliver a fucking tarball of code that makes the business happy...if they want more later just do whatever you have to do to get it done. I can understand framing it out to maintainable but this usually goes way overboard. Focus directly on what the business is asking for at that moment...fuck the new shit you want to work on....do that at home.

      --
      I object to power without constructive purpose. --Spock
    3. 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."
    4. 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.

    5. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      I just bought a new car (top trim level). My sister thinks it is over designed. I think it is perfect. Several times I have thought "I wish it did this" to look down at the steering wheel or in the owner's manual and find that it does. For the cost of a button and some computer code I would rather have these nice features than not.

      Cars and programs are similar in that they are design once (per product cycle anyway) and build many. Yes car materials do cost more than a CD or download.

    6. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      What your describing has nothing to do with coding, but everything to do with goals and motivation.

      You can pick any job, and you will almost always find 80% of the people don't care about what they are making, and have no idea about the intended user. Most of them only care about 3 things: their pay, how to entertain themselves most of the day, and what they can do to keep their job.

      I can tell you right now, making their job simpler with the goal of it being easier to hire a replacement is far far from the list of things people will do in a capitalist society.

    7. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      Sure, programmers and engineers often end up over-engineering things, which obviously isn't good *

      * Isn't always good.

      I've encountered a fair share of situations where over-engineering saved the day just because the end user did things that were unthinkable or the specification was incomplete to begin with.

      The hard part is to know when to waste resources making things fool proof and when that effort is just wasted time.

    8. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      Damn. I forgot fish. Time to reengineer the whole thing.

      Seriously, though, you don't design every Toastable up front, you just make a Toaster that .toasts(Toastable), and an implementation for Bread extends Toastable, because that's what product asked for. There's nothing wrong with open design.

    9. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      I used to work at a major university where they decided to roll out their shiny new website over the Christmas holiday break.

      Those of us who remained on campus were asked to test it. I was using an iMac so I opened it in Safari and Safari crashed. No error message, no blank screen - just crashed.

      When I reported this, the team's response was "try another browser." Evidently people visiting their site in Safari was a use case they hadn't anticipated!

    10. 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.
    11. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      To be fair, a website should not be able to take down the browser (or the entire computer?) like that no matter what it does. So that is a problem with Safari, or more generally the OS it was running on. Secondly, no one uses Safari, except those caught up in the iOS walled garden where you don't have a choice.

    12. Re:Not really. What you get is ... not done by Anonymous Coward · · Score: 0

      Well, this was in 2007, so iPhone was still new and before Chrome stole Mac Safari's market share, and yes it was obviously due to a bug in Safari or a system library (most likely in the JS engine).

      The point is that the developers should have spotted it and worked around it.

      You can't tell the world what browser to use to visit your site. You have to make sure it works with everything.

    13. 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)
  7. Tldr: coding is hard and I'm a moron by xxxJonBoyxxx · · Score: 0, Troll

    >> 100k lines of doc, full stack means you need to know what you're doing, wah wah wah

    Tldr: coding is hard and I'm a moron.

    There are plenty of jobs in real estate at the moment - why don't you apply for one of those and leave those of us who make the world work alone.

    1. Re:Tldr: coding is hard and I'm a moron by Anonymous Coward · · Score: 0

      >> 100k lines of doc, full stack means you need to know what you're doing, wah wah wah

      Tldr: coding is hard and I'm a moron.

      There are plenty of jobs in real estate at the moment - why don't you apply for one of those and leave those of us who make the world work alone.

      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.

      Want super easy? Labview is pretty easy. Doesn't scale the best though.

      Want super powerful, well C still has that? A big programming project is liable to use different technologies: Low level when you need it, higher level for most stuff, maybe even web interfaces for some.. common databases for back ends, etc, etc..

      I understand the appeal to simplicity, and some of that is achievable. For instance java and C# could be merged, but likely will never be, and there are downsides to merging as well.

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

    3. 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
    4. Re:Tldr: coding is hard and I'm a moron by Anonymous Coward · · Score: 0

      There is something to be said about design by committee.

      It sounds like a bad idea but when it comes to library interfaces I found that interfaces designed by a disagreeing committee are more pleasant to use than one that was designed by the library developer.

      Or maybe it is just that the separation between the one designing the interface and the one writing the library is the important part.

  8. 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 Anonymous Coward · · Score: 0

      That is what happened in the US.

      Now we get "graduates" that can't read, do arithmetic, or even talk understandably.

      But they think they can do art or music without knowing anything about it.

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

    4. Re:Is our basic education system a problem by Anonymous Coward · · Score: 0

      Programming is helped by math and logic but to program you need to know programming. Little kids have craped out reams of code when sufficiently motivated and they'll find the equivalent of hard bugs if it means they can copy their neighbors floppy disk. Along the way they'll discover math they're not going to formally introduced to for years and never even realize it.

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

    6. 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
    7. 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; }
    8. Re:Is our basic education system a problem by Anonymous Coward · · Score: 0

      People are often happy with the first solution they come up with, when in reality there are multiple solutions. Usually some solutions are e.g. fast to implement while others are cheaper to maintain, some provide fast execution times while others give you hardware redundancy, etc. You need to know your priorities and you need to come up with multiple solutions and weight those solutions based on your priorities.

      But you can't do this on low level because it takes too much time, but you must do it on high level where rewriting would be expensive.

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

    10. 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."
    11. Re:Is our basic education system a problem by Anonymous Coward · · Score: 0

      Hear! Hear!

    12. Re:Is our basic education system a problem by Anonymous Coward · · Score: 0

      The thing is you won't really find "Math" in the us education system until you get to graduate school. If they are masters they will likely just fake it. If they are Ph.D. student they will for once finally learn math, or find someone else to do it. Really only graduate level Math majors get to learn that Math is modeling and relationships based on those models.

      Rarely will people get to the level where they will question if the standard math operations they remembered by rote and all that calculus actually makes sense for the problem at hand. Let alone worry about how pretty much any modern computer doesn't follow all those math "laws" they learned in their "education"

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

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

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

  9. Javascript by Anonymous Coward · · Score: 0

    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. What Edward wants has already been the trend for decades. Excellent programmers building complex frameworks that abstract away all the hard bits allowing for rapid development of the relatively few business cases out there. Exactly how many companies do you think are doing anything novel or inventive with their web tech?

    The trend is going to continue anyway. At some point we'll reach a level where there is a solid framework either produced by one company making bank or as an open source project that makes slapping together the common web site functionality so easy an MBA can do it. Companies will realize their dream of cutting out the unnecessary nerd that they have to pay too much. Alternatively, replace them with high school interns.

    1. Re: Javascript by datavirtue · · Score: 1

      Web apps will die as mobile cross platform matures.

      --
      I object to power without constructive purpose. --Spock
  10. 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 Anonymous Coward · · Score: 0

      If that individual doesnâ(TM)t hire specialists, plumbers, carpenters, and brick layers, your house will flood from broken pipes, collapse under its own weight, or crumble after a few years. No sane person hires a âoefull stackâ builder who does all that work himself, unless you donâ(TM)t care that itâ(TM)ll cost ten times as much with half the quality.

    10. Re:Here is the thing with "full stack" by Anonymous Coward · · Score: 0

      The term "full stack developer" replaces the earlier job description of "web designer" or "web master". It indicates a combination of graphic design and computer programming, but always restricted to making web sites and mobile apps.

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

    13. Re:Here is the thing with "full stack" by Anonymous Coward · · Score: 0

      The idea of programming as a semiskilled task, practiced by people with a few months' training, is dangerous. We wouldn't tolerate plumbers or accountants that poorly educated. We don't have as an aim that architecture (of buildings) and engineering (of bridges and trains) should become more accessible to people with progressively less training. Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained. Obviously, we don't want our tools--including our programming languages--to be more complex than necessary. But one aim should be to make tools that will serve skilled professionals--not to lower the level of expressiveness to serve people who can hardly understand the problems, let alone express solutions. We can and do build tools that make simple tasks simple for more people, but let's not let most people loose on the infrastructure of our technical civilization or force the professionals to use only tools designed for amateurs.

      - Bjarne Stroustrup

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

    15. Re:Here is the thing with "full stack" by Anonymous Coward · · Score: 0

      Knowing something about the problem, I _would_ actually consider hiring a less educated plumber.

      C++ is a mess of unenforced rules. Interfaces built from C++ ... won't unless you are a programmer that has learned the rules and you are interfacing with code written by same.

      He thinks he owns this object after giving it to me?
      Oh that was built by a programmer that didn't know to make his destructors virtual.
      Yea you need to write a cast to add const to that thing if you want to actually use it. ...

    16. Re:Here is the thing with "full stack" by Anonymous Coward · · Score: 0

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

      Depends on the situation.

      If I'm going to an expedition to the south pole I would take the 'all specialties surgeon' with me over the specialized brain surgeon.

      There are many companies that aren't specifically focusing on software development but still needs a couple of developers.
      If your development team only consists of two or three people you might need them to be jack of all trades.
      Sure, one of them can be specialized but then you are screwed when he ends up in a car accident and is hospitalized for a couple of month.

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

    18. 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."
    19. 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.

  11. 100% complainer by TurboStar · · Score: 0

    The article proposes no solution. The author simply whines about programming being hard. He suggests there's "simple small-scale problems" which don't need "rock stars" to solve. No examples of these problems or what programming might be like if it were fixed.

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

    2. Re:100% complainer by Anonymous Coward · · Score: 0

      Rewriting legacy system can actually be surprisingly cheap. That is because often legacy systems were build with hundreds of developers in the duration of several years and after that several changes on top. During this time, many stupid choices were made that make maintenance hard, there can be e.g. self made databases, even self-invented programming languages. If one person can get a good understanding of the whole system and what it needs to do, that person can realize that there are several huge systems that are unnecessary, if things are done slightly differently. So when rewriting, you don't actually need to build a system as big as it used to be.

      Biggest costs might come from data conversion as usually this requires that data structure is heavily modified and from legacy interfaces that must be maintained. And the biggest problem with conversion is handling corrupted data that is on the old system. And biggest problem with legacy interfaces are bugs that exist in current implementation as those usually need to be replicated, which is hard. Depending on the system, this can be a big task or not.

      We are currently rewriting a big system that is expected to pay itself back within half a year when taken into use, because the maintenance costs are so huge.

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

    4. 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
    5. 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.
    6. 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."
    7. 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.
  12. Maybe he should invent... by Anonymous Coward · · Score: 0

    ...python or Arduino. Basic still exists, by the way but has been supplanted by python. Or there's scratch, or Excel, or Lego mind storms. We managed to learn programming back before having access to the Internet, when I had to ask for a book on x86 assembly language for my birthday.

  13. 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 Anonymous Coward · · Score: 0

      More likely it is that "managers" can't translate "reality" into real requirements.

      Programming is at its base a mathematical activity. If you can't get real requirements, you won't get the math... and the result will be programs that don't do what the manager really wanted.

    2. 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.
    3. 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.
    4. Re:The problem never went away. It is simple... by Anonymous Coward · · Score: 0

      Yeah, I'm going to turn off a useful feature on my phone, just to accommodate the one backward-ass site on the Web that chokes on them. Ass.

    5. Re:The problem never went away. It is simple... by Anonymous Coward · · Score: 0

      You've suggested talking to users as if this is another magic bullet, but it doesn't scale.
      - speaking to which users and solving their contradictory information how?
      - how does that guarantee an actual viable product - users may not even get what we are trying to build
      - most programmers cannot architect anything anyway
      - why do you think we have sales, support, and marketing, presales, architects etc?

  14. 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 Anonymous Coward · · Score: 0

      Cool. I'll start writing FORTH and assembly again.

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

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

  16. 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 Anonymous Coward · · Score: 0

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

    2. Re:Not "how to fix it" by Anonymous Coward · · Score: 0

      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.

    3. Re:Not "how to fix it" by Anonymous Coward · · Score: 0

      Isn't that called programming? We type things like "for all objects perform x action" and then we send it to a compiler that translates it into machine language and sends it to the scheduler....

      If you build your system with a high level design, that is pretty much what you doing. But someone has to define the actions. And sometimes the actions are hard. 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.

      Software engineering is more than just "programming" or "writing code". Any idiot can handle the happy case, but they don't pay us to only handle the happy case. My customer expects it to work correctly every time, no matter what bizarre scenario we get fed.

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

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

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

      You should have software helping your engineer.

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

    8. Re:Not "how to fix it" by Anonymous Coward · · Score: 0

      It's hilarious that describing a compiler is considered "informative" here, rather than "funny", since it was an attempt at sarcasm.

    9. 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.
    10. 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.
    11. 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.

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

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

    13. 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.
    14. Re:Not "how to fix it" by Anonymous Coward · · Score: 0

      This already exists. You're basically talking about Prolog-style logic programming.

    15. Re: Not "how to fix it" by Anonymous Coward · · Score: 0

      Your analogy fails, while we donâ(TM)t worry about spelling we still need to be masters of grammar, otherwise we wonâ(TM)t be understood. Moreover a successful writer should have the capacity to keep things interesting or no one will read long enough to receive his message. No one has found a replacement for a writers brain, and if we had it would be called AI and we wouldnâ(TM)t need writers anymore.

    16. 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
    17. 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'?
    18. 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.

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

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

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

    22. 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.
    23. 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".

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

    25. 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.
    26. Re: Not "how to fix it" by Anonymous Coward · · Score: 0

      This is sarcasm, right? I can never tell on the webs.

      If not, we call this magic invention "programming languages".

      Regarding the subject, I fail to see why doctors go through years of training and we all accept it, but programmers may not.

    27. Re: Not "how to fix it" by Anonymous Coward · · Score: 0

      Before you can understand the problem you have to make the customer understand the problem. This requires prototyping with real data and even then it is not certain that they understand. You have to do something and say that now it is ready they test it and notice that it doesn't handle case A that they never mentioned and then you can fix it and let them try again.This is difficult with big applications as realistic prototype requires quite complete code.

      And all this is just to make the customer understand what they want.

    28. 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'?
    29. 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.
    30. Re:Not "how to fix it" by Kohath · · Score: 1

      Incorrect

    31. Re:Not "how to fix it" by Anonymous Coward · · Score: 0

      But does he state the problem?

      The problem when systems are too complex is that the people in power _want_ them to be too complex.

      Face it, this thread is about Microsoft. MS has every incentive in the world to make things more complicated, and buggy, and broken, and limited. That way they control and dictate everything. Others have to jump through their hoops, throwing ten or 100 times as much work into the most simple of problems. Only to have it all turn to trash because the next version/lang is out.

      If you had a simple powerful language, anyone could use it, and you could never sell upgrades.

      We are in the garbage dump age of computing
      because Microsoft gets paid for every load.

    32. 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.
    33. 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.
    34. Re:Not "how to fix it" by Kohath · · Score: 1

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

  17. 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 Anonymous Coward · · Score: 0

      The reason many 2D videogames modeled sprites as blocks is because of the hardware (the graphics subsystem they ran on). All the old "console era" computers had video memory set up to do more with less, because they were limited in both addressable space and raw speed. For example, in one of them an 8x8 block of pixels that you would expect to take 64 bytes was actually an 8-byte monocolor matrix (8x8 bits) in one memory space plus another byte in a separate space that controls the background-foreground colors for the that block (4 bits per, giving you 16 possible colors for foreground and 16 for background). That's why the blocky color or background can spill from cell to cell when sprites meet.

      So that was not a modeling issue as you assume, but a hardware layout issue. The problem "normal" people encounter is that they have difficulty converting human wants into the hardware world, which requires understanding about how the hardware operates. That same thing that makes you wonder if the tiny nail you put in the drywall won't get pulled out by the weight of the frame hanging on it.

    4. Re:The reality is... by Tough+Love · · Score: 0

      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?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    5. Re:The reality is... by Anonymous Coward · · Score: 0

      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.

      This is absolutely right. To be a good programmer requires a logical and analytical mind, superior or at least average intelligence, the ability to persevere and work through complex problems and lastly patience in good measure because computers take all requests absolutely literally and require correct instructions down to the smallest minutiae. As you might expect, this combination of qualities is rare among the general population. It's hard to say with precision, but I would estimate that less than 3% of the general population is even capable of becoming professional programmers and fewer still will actually take up the career and stick with it for the decades it takes to become a master.

    6. 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.
  18. 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 mmmVenison · · Score: 0

      Hey, if Jeff K can do it, anyone can do it. But I do miss the blink tag, that thing was the bomb!

      --
      Offended? Find a safe space and cry yourself to sleep.
    2. Re:Huh? Programming got harder? by Anonymous Coward · · Score: 0

      BASIC is still available and it still works exactly the same as always. So if he wants to go back to the good old bad old days, there is actually nothing stopping him.

    3. Re:Huh? Programming got harder? by Anonymous Coward · · Score: 0

      Here is an old favourite:
      http://www.libertybasic.com/

    4. 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
    5. 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.'"
    6. Re:Huh? Programming got harder? by aod7br7932 · · Score: 1

      Count me in!

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

    10. Re: Huh? Programming got harder? by Anonymous Coward · · Score: 0

      Code completion, integrated spell checking for comments, syntax coloring, visual UI design tools, code checking as I type, all modern tools not universally available just a decade ago. These are huge productivity boosters, and unless youâ(TM)re using Xcode, Android Studio, and LLVM you likely donâ(TM)t have them.

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

    12. 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.
    13. 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.'"
    14. 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.
    15. Re:Huh? Programming got harder? by Anonymous Coward · · Score: 0

      The human brain is a fairly simple hardware device of boolean logic and analog amplification / modulation. We certainly have the capability today to make the equivalent of a baby's brain. Send it to school for 20 years, along with humans. Hope it doesn't turn into a Hitler or similar.

      When human level AI gets 1000x faster than a human it will research and do a 3 year task in one day. Stuff that we would never try will be done.

      Then that 1000x task will figure out how to make AI smarter, and just like speculative execution made CPUs of the same clock speed faster, the new AI will be faster, but unlike CPUs there is no limit to the upside like with speculative execution.

      Now we have both 1000x smarter and 1000x faster and that is just the beginning.

    16. 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."
    17. Re:Huh? Programming got harder? by Anonymous Coward · · Score: 0

      Python has always been a headache for me. It feels like there's an ongoing mandate in Python to do as many things differently to any other language as possible.

      Maybe I'm stupid, but I feel like I can get up to speed in most general-purpose languages pretty quickly. I can jump from C# to Javascript to Visual Basic to PHP, etc without having too many problems. I can even grok Lisp.

      But every time I try to do something in Python it ends up being an exercise in frustration for me.

      I worry that Python's popularity is going to create a subset of devs who find going the other way just as frustrating and will be stuck on Python Island for their entire careers.

      And when I see discussions over the "most Pythonic" way to write something and see the agreed-upon solution looks to me either messy or dangerous and error-prone, I worry that they won't be.

    18. 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
    19. 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.
  19. 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?

  20. 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 Anonymous Coward · · Score: 0

      Unicode? Slashdot is doing well without it.

        !

    6. 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.
    7. Re:Yeah, no. by Anonymous Coward · · Score: 0

      Complex, layered systems aren't new in computing, and go back long before the 80s. But part of the idea behind dividing things into layers is so that you have an abstraction barrier: you don't have to necessarily understand what a lower level is doing, as long as you conform to an interface. This helps to minimize the cognitive overload that would result if you had to keep everything in your head at once.

      But not all abstractions are created equal, and if you're not careful, you can add layers that are much thicker than they need to be. Taking your SQL example: if you don't need a relational database, maybe you don't need SQL, just a KV store. Now your DB layer is much simpler. A lot of the horrendous complexity and difficult to understand/debug systems which are common now, result from piling up these poorly chosen layers as a shortcut.

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

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

    10. 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.'"
    11. Re:Yeah, no. by Anonymous Coward · · Score: 0

      Without planning for scalability, your infrastructure falls down right when your business is on the front page of Reddit.

      You are describing the slashdot effect on Slashdot and you give being on the frontpage of Reddit as an example?

      You must be new here, you insensitive clod!

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

    13. Re:Yeah, no. by Anonymous Coward · · Score: 0

      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.

      and don't forget about mobile devices

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

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

    1. Re:anyone can do it by Anonymous Coward · · Score: 0

      I am currently in the process of picking up spring. What an un-holy mess of a stack

      Luxury!!! I single-handedly maintain a struts 1.0 web app that was written by some tortured souls more than 15 years ago. It was 350k lines of Java (that's not counting the JSP, JS, XML or CSS) when I took it over. I've got it down to 250k but it's still a horrendous brain tumor inducing mess. In my short 25 years as a professional programmer, my experience is that most frameworks just get in the fucking way.

    2. Re:anyone can do it by Anonymous Coward · · Score: 0

      Oops, I forgot to mention it uses struts + tiles. Can't forget shitty old tiles...though apparently I can...probably due to my unyet diagnosed brain tumor.

  22. thanks for proving his point by Anonymous Coward · · Score: 0

    I am sure all the snarky comments to come will prove his assertion about the programming subculture. After 30 years of programming professionally, I can barely stand it myself...

  23. Electrical Engineers by 110010001000 · · Score: 0

    I have the same problem with Electrical Engineering: why do you need to know stuff in order to do EE? They should make the tools simpler so everyone can participate. You know, have like blocks that fit together so you can build a robot or a rearrange to build a mobile phone, etc.

    1. Re: Electrical Engineers by Anonymous Coward · · Score: 0

      Modular electrical components exist, but per unit are more expensive than custom designed electronics. When your building millions or more the greater development cost is more than made up by the parts cost savings. Modular components are also more bulky than custom designed circuits due to the relative flexibility needed by the modular parts. For the same reason modular parts take up more space, which would make your iPhone the size of 80s sat phones.

    2. 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.
  24. 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 Anonymous Coward · · Score: 0

      Programming is inherently hard. Sure toolkits can make it easier, but the more crap you put in-between the programmer and the machine, the more inefficiencies there are.

      Efficiency V.S. simplicity is an age old problem. The most simple solution to a computing problem is almost never the most efficient one.

      The real problem is that there isn't enough incentive for programmers with a solid grasp of programming to teach those skills to next generations. Who teaches "Computer Science"? Not expert programmers, instead, expert mathematicians. But the vast majority of bugs in computer programming come from programming errors, not mathematical ones.

      "Computer Science" barely teaches you the basics of programming, the rest is just math. They don't really teach you how to write code that is genuinely secure. An graduate with a bachelors in "Computer Science" isn't going to come out with the skill necessary to write good code.

      The elite programmers aren't "gods" but we are better than regular programmers that pop out of university by a *huge* margin, mostly because they have never actually been taught what they need to know.

      It's great if you come out university able to do some fancy calculus and such, but when you choose C and write code with buffer overflows, abuse macros, and write generally unmaintainable code, you've failed on an entirely different level.

      My skillset isn't "godly", but nobody is going to pay me to teach other people what I've learned over the past 10 years of programming. On paper I'm unqualified, I don't have a fancy degree, don't have that "pedigree". But the thing is, nobody from university actually is qualified because they don't hire "our kind" to design curricula. (well sometimes they do, but over half the time the people just end up trying to push corporate products because corruption.)

      So where do you learn this stuff? From being part of the community of programmers and learning from one another. University doesn't generally teach you anything advanced about programming. Since there's not really a source that will spoon feed you this kind of knowledge, only the few who seek it out find it. Some people call us "elite", but really we're human like the rest of people. The difference is the willingness to seek out the right information and learn from other's mistakes.

      Instead of complaining about programming being too hard, complain about university not actually teaching you how to program. Computer Science is NOT programming, it's math that's useful for programming, but not the skill itself.

      Should every person be a programmer? No. It's not that easy. Trust me, I've tried teaching people before, it's not easy for most people to even get their brain wrapped around a simple scripting language. You can learn yourself, but it takes patience and practice.

      Plus very good programmers can make around $300k/yr. Why would they accept a job teaching for ~$75k/yr? Raise your offer. And stop letting academics design courses without oversight from people in industry, speaking from personal experience, these academics literally have no clue about anything except the math part, which is only around 20% of the challenge of programming.

    5. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      P.S.
      Fix the grading system in academia and give grants to talented programmers instead of the talented academics.

      It's great to know what a directed acrylic graph is, but that doesn't mean you can use one. In my case I've often used structures because that was the design that seemed most optimal, only to later discover there is some weird academic name for what I did. (For example, I used a "radix tree" before I knew what a "radix tree" was.)

      Some things aren't obvious and worth teaching. Tree balancing, for example, using AVL and Red Black trees, especially that damn delete operation. And the merge/split ones too. Heapsort, quicksort, introsort, all must knows in my opinion.

      Euler circuits and Euler or Hamiltonian graphs? Interesting, but I have no idea what you'd actually need to know that to accomplish.

      And the ultimate folly, trying to teach people data structures before memory management. (hint: nearly all jobs you're required to do any serious data structure manipulation will also require manual memory management.)

      Manual Memory Management:
      - Skill Demand: Very High
      - Taught: Almost never

      Euler Circuits:
      - Skill Demand: Virtually Non-existent
      - Taught: Basically always

    6. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      No, and the medical system already accounts for this by permitting non-surgical specialties such as emergency medicine or family practice to do minor procedures.

    7. 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.
    8. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      And how many tools required by surgeons are programmed by "programmers"?

    9. Re: Surgery for everyone! by Anonymous Coward · · Score: 0

      Your definition of programming seems rather narrow

    10. 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.
    11. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      Amen.

      Programming is a trade. Like woodworking or metalworking. Or at least it should be.

    12. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      It is only a god complex if you think surgeons are god. Do you really believe that?

    13. 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.
    14. 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."
    15. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      No we don't. We need way more surgeons. One programmer can write one program that can be copied and used infinitely. One surgeon can perform one surgery at a time on one person. He then needs to do the same thing over again on the next person, etc.

    16. 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.
    17. 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
    18. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      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.

      Eh. I know many Germans who 'undercapitalize' words. They are aware that other languages do not capitalize many of the words German does, so they are extra stingy with capital letters.

      So just because someone writes 'Deutsch' in German, does not mean that he would not write 'german' in English. In my native language, you do not have to capitalize language names. Nowadays, most people do, but the grammar rules do not demand it.

      And seriously, if you are going to be pedantic, you probably should not suggest that your interlocutor is a 'German definition'.

    19. Re: Surgery for everyone! by phantomfive · · Score: 1

      Surgeon complex? :)

      --
      "First they came for the slanderers and i said nothing."
    20. 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."
    21. 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.

    22. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      One = a German. Not that fucking hard, is it?

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

      Or physician envy.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    24. Re:Surgery for everyone! by Anonymous Coward · · Score: 0

      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.

      Surgery is really, really hard though. And nobody wants stinking autistic nerds doing it.

    25. 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
    26. 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
  25. 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 Anonymous Coward · · Score: 0

      Thing is some people barely seem to have the IQ necessary to put their own pants on. You just need to look at the places all the cargo cult programmer come from, and the types of questions they ask on forums. If they can find existing code they can copy to solve their own problem, they can't make any logical jumps, or apply reasoning, to adapt it to suit. That's if they can even find an answer to their question independently without being "helped" or "guided", or even if given explicit directions have "doubts", or insist in parroting back the answer and asking if they understand it correctly.

      Schools need to focus on critical thinking, and logical reasoning. Once people understand what they are doing it doesn't take much of a jump to understand "programming" is a method to keep repeating a task one should only need solved once. Now programming it might be more time consuming than 1X manual cycle, if I think more than one person is going to ask me to do something I'll automate it.

    3. 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.'"
    4. 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.
    5. 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.

    6. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      All the requirements in your 2nd para ("Lego like ..") are fulfilled by Microsoft Visual Basic. It creates a mess, but it got the work done for a lot of people. There's no web counterpart because Google stopped developing GWT (which was exactly that) and Microsoft made ASP.Net super complex just to write a Hello World program

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

    8. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      There is. They tend to be fairly domain specific but lego like "languages" do exist (Pd, Max/MSP, etc). See https://en.wikipedia.org/wiki/Dataflow_programming

      While they enable people to be productive in their domains, the reality is that they're no easier to learn than any other programming (unfounded opinion).

    9. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      What you speak of DOES exist. Not just the toy drag n' drop toy languages nobody uses, but also actually high powered layman's programming tools that work very well and are extremely widely used. These tools are called Excel and Access. Using these two, an accountant or middle manager can model a seriously complex business process using simple and straightforward application of logic. They can get a GUI screen and everything!

      And they do. Often. And I see the things they make. The terrible, awful things. See, usually the people using these tools are very... programming impaired. They don't understand abstraction. They can't design an interface. They have absolutely no concept of the QualityWithoutaName, and if you try to educate them they shut down. They're a man who learned to walk by running a marathon. They learned how to run at a decent jogging pace in a single direction, and scoff at you when you suggest learning how to walk or stand still without falling over. The solutions they make are incredibly fragile, and they become slaves to their own monstrous process. Then an actual developer is brought in to parse the lovecraftian nightmare and write something sensible.

      Once you get over the syntax, actually learning software development is really about learning how to model problems effectively, write code that is highly maintainable, and communicate concepts effectively in a team of other developers and to the end users. Understanding the sometimes esoteric bits is a given! It's a baseline, like how a carpenter knows how to hit a nail so it doesn't bend. Suggesting that giving nail guns to laymen will make them good carpenters is simply missing the point of what makes a good carpenter's work good!

    10. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      On the other hand, why isn't there some Lego-like programming environment that wraps up complicated functionality in lick-and-stick modules,

      You mean Scratch?

    11. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      Show me a picture of a programming environment (using photoshop or equivalent) that models the following BASIC program:

      10 PRINT “Hello World!”

      I’ll wait.

    12. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      The best place to look is colleges and universities studying learning with K-8 kids. There are several graphical systems for programming - even games.

      In corporate environments, it ain't going to happen mainly because all the products are shiite - it is your marketers which matter.

      You can start with VB in 1997 - it gave you the IDE to drag-and-drop visual components and tie them in with code and behaviour. Why didn't it take off? Well... basically the same IDE is still in use now, with more languages and the same problems.

      Several flow-chart applications attempted to take off, but they only covered part of the complexities - and because of usage, rarely captured meaningful amounts of requirements, let alone application logic. (see: difference between requirements and technical requirements)

      As for newer things, you have products like Boomi, a middleware which is (only?) graphical, and works like crap because nothing is obvious. Because it is graphical. ...*grump*

    13. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      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?

      What you are asking for - to me at least - sounds a lot like KNIME , which is an open-source tool that I use a lot in my own work (particularly because my job involves a lot of developing workflows for people who aren't necessarily computer savvy). You can stitch together any number of tools for analysis of any of a number of different data types. If you're a programmer you can create your own nodes or write snippets of Java, R, Python, Perl, or other languages as well.

    14. Re:You can't get around the time investment by Anonymous Coward · · Score: 0

      Show me a picture of a programming environment (using photoshop or equivalent) that models the following BASIC program:

      10 PRINT "Hello World!"

      I’ll wait.

      http://dbbd.sg/wiki/index.php?title=Pure_Data

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

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

    1. Re:Where cross site scripting, XHR, etc come from by Anonymous Coward · · Score: 0

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

      Would be convincing if more than 10% of all programmers could outline SSDLC the way they can waterfall.

      Fact is most people that make software for a living don't even know what information security is let alone care about it outside of resume prestige.

  28. Worthless blather by Anonymous Coward · · Score: 0

    I was pretty much done with this article when he said,

    "I don't blame the kids." So where were you when the shit went down? Farting around in your ivory tower?

    And then he said,

    "most people are stupid compared to computer science professors."

    and I was completely done with this piece of pissant shit.

    AC

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

  30. It might help if he knew what he was talking about by Anonymous Coward · · Score: 0

    "Dungeons & Dragons requires mastery of an encyclopedia of minutiae"

    No, it really doesn't. It requires the ability to tell stories.

  31. 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 Anonymous Coward · · Score: 0

      I disagree about Excel though... It seems a macro or formula is easy... but that is deceptive. Another problem with Excel macros and formulas is, they are often hacked together on the spot until they seem to work and aren't documented or reviewed. So no one knows if they really produce the correct results.

      And then this can happen:

      https://www.nytimes.com/2013/04/19/opinion/krugman-the-excel-depression.html

    2. Re: Your desktop vs the internet by Anonymous Coward · · Score: 0

      Are you saying nobody ever bashes together code in C or Javascript or Python that just barely works in the obvious case and doesnâ(TM)t really work correctly overall? Are you saying that the bugs are found more easily in those languages?

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

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

    5. Re: Your desktop vs the internet by J.+J.+Ramsey · · Score: 1

      I'd say no and yes, respectively, to those questions.

    6. 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."
    7. Re: Your desktop vs the internet by Anonymous Coward · · Score: 0

      So confident, we are.
      Dark side be careful we should be.

    8. Re: Your desktop vs the internet by Anonymous Coward · · Score: 0

      Youâ(TM)re mistaking old style macros for Visual Basic for Applications (VBA) code. Virtually all Excell âoemacrosâ are now written in VBA.

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

  32. Visual Basic? by MpVpRb · · Score: 0

    He mentions VB as an example of an easier language. WTF?

    It was a steaming pile of confusing layers of incomprehensible and inconsistent cruft

    Just about everything was a special case that had to be learned and remembered

    Is it an object? or just a function left over from the old days?

    It it a method? or an attribute?

    I'm so happy to be done with it

    1. 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
    2. Re:Visual Basic? by Anonymous Coward · · Score: 0

      I taught myself to program using VBA in the IDE that could be accessed in Office applications (1998). It was the first language that I learned, and I was able to follow my nose into building database driven web applications using VB6/ASP. That gave me the experience to move in to similar programming using Python and PHP.

      None of the work I have done over 20 years is anything remotely close to Computer Science. I don’t have a single day of formal training and I am definitely not an engineer.

      I think I am an example of what he is talking about. I came to programming because the tools were already integrated into the general purpose environment I was working in. As soon as an application arose (the ability to automate tedious desktop tasks) I had everything I needed.

      I haven’t used Office in 10 years, so I don’t know if the situation is the same.

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

    4. Re:Visual Basic? by Anonymous Coward · · Score: 0

      There is a big difference between the old VB and the newer VB.net

    5. 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."
    6. Re:Visual Basic? by Anonymous Coward · · Score: 0

      Delphi is still around and developed:

      https://www.embarcadero.com/products/delphi

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

    8. Re:Visual Basic? by Anonymous Coward · · Score: 0

      You're looking for C# and the .NET framework, Delphi architect Anders Hejlsberg's babies. Don't let the association with Microsoft scare you, it's all completely open source now and has been improving even more rapidly in recent years. It's truly a comfortable language with an excellent development environment. After messing with C++ and BASIC for several years as a preteen, my first time in front of Visual Studio making a windows forms application in C# was magic.

  33. mind-boggling stupid position by Anonymous Coward · · Score: 0

    The reason it is impossible to learn everything to be a "full stack developer" is that there are so many tools and libraries out there freely available which make development go so much faster. Microsoft even wrote a Javascript library to write Autocad files, for god's sake.

    There's no reason to be a full-stack developer because that's so much less efficient. There is literally no scenario where it makes sense to build everything unless you're building a vanity site for yourself and want to do it just for the sake of doing it.

    Find a profitable niche and stick with it.

    And for teaching kids you can just teach them Python. There are tons of ways to make it fun and interesting and the language itself is not as brittle as say C.

  34. 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.
  35. 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.
  36. Like most things by Anonymous Coward · · Score: 0

    If you want to do something simple in software, well it is pretty easy in some scripting language. But as soon as say want to catch issues, like network problem, overflow, input sanitizing, authenticating, etc, it gets complicated. Network alone can exponentially increase the difficulty because well, so many things can go wrong. And you can't just lump it into "network problem" if you want to be smart about it and try to do something intelligent based on the type of problem.

  37. It's these crazy libraries and shit.... by Anonymous Coward · · Score: 0

    Having gone from ANSI C to Java and C# and Python and today's languages, I spend more time figuring out the libraries than actually solving problems.

    There are times when I'm doing UI stuff, I wonder if would be easier just to roll my own than have to deal with writing a whole class to inherit a bunch of shit or end up with:

    object.object.object.object.method(object.object.object.method(object.object(class(object(class))))).method().variable = obj.class.method.......

    just to have some stupid little thing in a window that used to be just an entry in a resource file back in 1994.

    Yeah yeah yeah, I programmed in the snow, uphill, both ways.

  38. What is needed by Anonymous Coward · · Score: 0

    is a simple programming language with extensible builtin data structure. Add to that an IDE for writing code, debugging and version control.

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

  40. The problem is very very philosophical. by Anonymous Coward · · Score: 0

    What are the constraints on the imagination in a computing system?

    A Civil Architect has to worry about physical constraints; weight, load capacity, material cost.

    A Social Architect, social constraints; psychology, sociology, and so forth.

    And a Software Architect? Pure comprehension is the problem.

    And in order to really understand the system at hand, you have to practice believing in whatever you want to believe in; trying one theory after the next; and run it until it prooves itself out, and then continue on. However there are a lot of ways to accomplish something, and not all of them are "right" by another person's standard.

    And because of that, computers, and what they represent to people hiring programmers, can represent a trap of believing in whatever you want to believe in.

  41. Frameworks.... by Anonymous Coward · · Score: 0

    Those get really annoying over using standards. Especially in Java where you can potentially have TONS of frameworks. Also Groovy? You can compile with it pure Java so just write the Java and skip the middle man. I swear sometimes people make things to complicated or dumb things down to much.

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

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

  44. 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
    1. Re:Seems like today's web environment, no? by Anonymous Coward · · Score: 0

      "entry-level software engineer with years of experience"

      In the olden days we used to call them Key Punch Operators ...

  45. microsoft shilling by Anonymous Coward · · Score: 0

    lol, "#CSForAll movement" ... this MS shilling... was SlashDot acquired by Microsoft like GitHub?

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

  47. 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 Anonymous Coward · · Score: 0

      Am I the only one who doesn’t understand what I’m the world the parent is trying to say, here?

      If Oracle Forms was so great, and Oracle fucked it up, then blame Oracle, not Java.

      Your OF team works at 1/7th the speed of the other teams? Sounds to me like they should get 1/7th the pay.

      You don’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’t using the same written language, time zone, system of weights and measures, color palate, and input devices you are using, either.

      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’t asked to do any of the heavy lifting? The web browser IS that universal platform you fucking tool.

      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 have had the displeasure of using one of these “heavy lifting” platforms that tries to do everything for you. “Just describe your application in XML and we’ll handle the rest” (to paraphrase) and the result was something that was not possible to customize, optimize, or improve/modify in any way. A total deal-breaker that we had to rip-out by the roots because it was killing our product.

      You know what is easier since the 80s? Getting your hands on good programming tools. With a few books from the library, a 14-year old student with a personal computer and an internet connection can accomplish more in a weekend with zero (additional) cash outlay than most of the industry was able to do during the entire decade of the 80s. Who was using relational databases in the 80s? Virtually nobody. Now you can install one onto your Linux server with a single command and get that data mode up and running in a hot second. You used to have to pay big bucks or hire a consulting company to get anything real accomplished. Now, kids can drag-and-drop puzzle pieces (seriously, search for “app inventor”) and make their own mobile applications in minutes and deploy them nearly as fast.

      So feel free to sit there on your lawn and yell at the young’uns and tell them that no progress has been made and that programming never got any better after Fortran 77 was released. Meanwhile, the rest of the world will move on and create systems and applications that serve more people than can physically sit at your own personal workstation where you have coded-up that 50-line basic program that “works just fine” for you.

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

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

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

  49. Not "how to fix it"-NCIS school of programming. by Anonymous Coward · · Score: 0

    The NCIS school of programming.

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

  50. Programming used to be easy because... by Anonymous Coward · · Score: 0

    Programming used to be easy before because:
    1. You didn't care about the security at all.
    - HTTP is much more easy to setup and test than HTTPS, especially when you need to consider security certificates
    - HTTPS is slower, especially on connection time, which requires you to design the whole system differently than you would with HTTP.
    - You need to setup a way how to change certificates etc. as they usually age within few years.

    1. Re:Programming used to be easy because... by Anonymous Coward · · Score: 0

      We had a team of 3 who made games. One of us focused purely on writing a library that loaded sprites from image files.

      Nowadays, one needs to read a chapter from l3rd party library to get the same job done. And this is why programming nowadays requires that one reads documentation. Because so much is already done and you just need to study how to use it.

      This can obviously be improved. APIs can be better and libraries could do more. I am still shocked that standard Java libraries miss a lot of functionality and just because of that, you need to use some Apache commons libraries to get trivial things done. E.g. comparing two datetime objects based on date only. Because the standard library lacks these simple features, one needs to study external libraries and that is what makes programming hard. You used to have just one documentation and you could find everything within it.

    2. Re: Programming used to be easy because... by Anonymous Coward · · Score: 0

      Actually you had to read docs when you were writing you custom image loading code, the only difference was then you were reading technical specifications for the image formats and the memory layout of the video hardware. Having done this myself I can tell you youâ(TM)re third party solution is easier.

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

  52. 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
    1. Re:Meh. by Anonymous Coward · · Score: 0

      It is not complicated. There are only two types of "thing" in this world, goops and stuffs; and only two processes to operate on them. Goops you mix together in a vat and stir with a paddle and get a different goops. Or you can take two stuffs and attach them together to make another stuffs. (The inverses are also valid operations).

      The real base of the problem is not that anything is complicated (because it isn't), it is simply an "understanding" problem...

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

      You are right. Few easy things to make life simpler
      - Get rid of summer time changes
      - Get rid of time zones
      - Get rid of different time formats
      - Get rid of imperial measurement system
      - Get rid of different currencies
      - Get rid of different charsets
      - Get rid of different ways to express line change
      - Get rid of different languages
      - Get rid of diffrent programming languages
      - Get rid of dufferent browsers

      I can easily come up with more and more stuff like this so I just have to stop.

  53. This is blaming the toolset... by Anonymous Coward · · Score: 0

    ...without considering that the problem space is inherently hard.

  54. 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
  55. Best way to start by Anonymous Coward · · Score: 0

    the vast majority of programmers and laypeople with simple small-scale problems

    We can start by redefining pi to a couple decimal places.

  56. Re:They requirements have increased a thousand fol by Anonymous Coward · · Score: 0

    Users have to be whipped? "It's in black and white", "there's no mouse", "I don't want to crawl under the table to plug the USB stick in", "my i5 laptop is old and fucking slow!" (it's 2x faster than my desktop, but you don't know how to watch RAM usage and your 4GB are 150% full). All a bunch of whiners!

  57. As simple as possible by Anonymous Coward · · Score: 0

    But not simpler...

    Some guy said and it's applicable gere

  58. 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."
  59. The problem with civil engineering by Anonymous Coward · · Score: 0

    Far too much civil engineering depends on crusty old math books and has historically been the province of white male nerds. We need to democratize civil engineering, teach bridge and road construction beginning at an elementary level, and ensure that people at all levels of society can participate in designing sewer systems.

  60. Let's simplify computer programming. by Anonymous Coward · · Score: 0

    There have been several attempts to simplify computer programming: BASIC, Visual Basic, LISP, FORTRAN, PASCAL, COBOL, 4 GLs, etc. all more or less fall in that category and they were all effective to some extent, but none proved superior.

    Computer programming is one of the easiest things to learn, but is not a pariicularly useful skill, so we would not want everybody to learn it. There are currently about a hundred more active programmers (professional, programming on the side, hobby programmers, etc) than the world has use for. But the same thing goes for the number of poets, playwrights, novelists and musicians.

    The result is that we have millions of programs that have (or come without a guarantee they don't have) bugs (logical errors) or exploits (a subtler class of logical errors). The conclusion must be that the computer industry off today is unable to design good quality software or hardware. Computers will not be ready for use in real life applications for years to come. We look to academic computer science to invent ways to design and verify software and hardware and to teach this knowledge to practicioners. It may help to introduce laws that create mandatory quality standards.

    1. Re:Let's simplify computer programming. by Anonymous Coward · · Score: 0

      The result is that we have millions of programs that have (or come without a guarantee they don't have) bugs (logical errors) or exploits (a subtler class of logical errors).

      Nitpick - programs don't have exploits, they have vulnerabilities. An exploit is a tactic.

  61. moving targetq by Anonymous Coward · · Score: 0

    I don't think your solution of hiring just "a professional" works.
    There are new exploits discovered all the time.
    Even if a person actually knows what they're doing, with all the credentials and experience to "do it the right way", they still can get blindsided.
    And by blindsided is a slow-burn attack leaking data out for years before discovery.
    And all this expert professional would do is say: it's not me! it was X, Y, or Z.

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

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

  64. "a cross between Dungeons & Dragons and Rubik' by Anonymous Coward · · Score: 0

    I take it he has not done any actual programming/software design... Or he has never played D&D or seen a Rubrics cube.

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

  66. 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 Anonymous Coward · · Score: 0

      What youâ(TM)re saying is you didnâ(TM)t want to learn a new tool. Fair enough, but why should we believe youâ(TM)d be willing to learn this hypothetical beginners language that can make up for your lack of skill?

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

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

  70. 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
  71. Stupid by Anonymous Coward · · Score: 0

    The problem with programming is that there's too many people doing it who haven't studied computer science. That is why there are so many things being created with tons of bugs and security holes.

  72. Agreed 110% + excellent performance! apk by Anonymous Coward · · Score: 0, Interesting

    See subject: Delphi = awesome & can build STATICALLY compiled VCL single .exe programs. I used it for APK Hosts File Engine 9.0++ SR-1 32/64-bit for Windows https://www.google.com/search?... that even registered /.ers like & use (small sampling w/ dozens more like it in reviews by /. peers) https://linux.slashdot.org/com...

    THEY DID PUSH IN THAT DIRECTION FOR LINUX!

    * TRY FreePascal 3.04 + Lazarus 1.8.2 IDE for it (EXACT duplicate of Delphi @ syntactic level + IDE)!

    I used it to PORT the program above to Linux APK Hosts File Engine 2.0++ 64-bit for Linux h t t p : / / a p k . i t - m a t e . c o . u k / A P K H o s t s F i l e E n g i n e F o r L i n u x . z i p

    APK

    P.S.=> Delphi BEAT C++ & VB in 4/6 tests in Visual Basic Programmer's Journal 1997 oct issue "Inside the VB5 Compiler" & tied 1 w/ C++ & lost only 1 (so did C++) to VB (ActiveX formload) ESPECIALLY in MATH & STRINGS by 2-4x FASTER... apk

    1. Re:Agreed 110% + excellent performance! apk by Anonymous Coward · · Score: 0

      Stop spamming your bullshit engine where it doesn't belong.
      If in doubt if you should mention it don't
      If you think you should mention it don't

  73. I think the focus needs a little shifting... by Anonymous Coward · · Score: 0

    The problem with programming is programmers.

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

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

  76. Re:They requirements have increased a thousand fol by Anonymous Coward · · Score: 0

    "layers of abstraction to manage it all"

    That's the biggest problem in programming today, IMO. Our current systems have so many layers of abstraction piled on top of each other, that no one really knows what the fuck the computer is doing. Not only do programmers not know exactly what a particular abstraction is really doing inside it's black box, but they don't know how many abstractions are inside that abstraction.

    Any proposal to make programming easier, is really asking for even more layers of abstraction. Piling more layers of crap on top of the existing crap just makes a bigger pile of crap.

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

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

  79. "Full stack" developer by grumpy-cowboy · · Score: 0

    Def: A developer who think he knows everything. He use expressions like "web scalable", "big data", "micro-services", "cloud enabled", ... in every sentences he say. He prefer using hundreds/thousands of "cloud instances" to run his new ''à la mode" social network site instead of optimizing his code. He runs everything on a NoSQL database even if it's not required because relational databases is an old technology from the last century. He is probably working on a Macbook Pro drinking a big overpriced Starbucks coffee because he's so cool... he's a Full Stack developer!

    --
    Will $CURRENT_YEAR be the year of the Linux Desktop?
  80. 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
  81. 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.

  82. But programming is easy (relatively speaking) by Anonymous Coward · · Score: 0

    The thing is, programming IS easy, relatively speaking. It's easier to learn than say, learning to speak a foreign language fluently as an adult, or playing the violin. Merely learning how to program (rather than write good software) is entirely possible for an average person in 3 months.

    What's hard is defining in advance what a computer should do in a near infinite amount of different situations... baring in mind, that a computer must now be doing multiple things at the same time and it must not become confused by this.

    Another hard thing is finding out why a computer did something that you didn't expect, given you have no great way of finding out what it was actually doing at the time.

    Software is now used to run most of the world's processes and it stands to reason that designing this software is at least as hard or harder than designing the human processes that they replaced. Humans may stop, reevaluate the situation, read between the lines and exercise their own judgement, computers can not.

    So this is is why attempts to "dumb down computer programming" always fail. Computer programming was never the problem, designing software was always the problem. If you are truly capable of automating the world's work, then programming will be a piece of cake for you.

    What about non-technical people? Well, you have to decide how you define "technical" first. Is being "technical" a matter of identity, wearing "geek" t-shirts, being the first person with a new toy, visiting Slashdot etc? Or is it a matter of being detail oriented, being able to zoom in on the individual steps of a grand plan to know what can go wrong with it. If it is the former, then being "technical" by identity and wearing the right t-shirts has no baring on your ability to program OR design software. If it is the latter, then if you're not detail oriented, then you're not going to be able to help the process more than you hinder in any capacity. Security vulnerabilities, DOS and crashes are all products of not seeing the details of what can go wrong.

  83. Google of all places?! by Anonymous Coward · · Score: 0

    It is long past time to return to designing tools not just for rock stars at Google

    I guess he didn't notice Go? Why, even when discussing Go 2, the resistance to add complex features like generics is strong: https://github.com/golang/go/issues/19412

    Don't get me wrong. The author is right about everything else. But Google is just barking up the wrong tree.

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

  85. Let's pretend by Anonymous Coward · · Score: 0

    In other words, let's pretend programming is easy and everyone can do it. Great advice! The result is known as Windows et al. Have fun!

  86. 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 Anonymous Coward · · Score: 0

      That sounds more like an argument for languages and tools that better allow programmers to see what the computer is actually doing?

      If the "normal" had been able to step through the code visually, the problem would have been obvious!

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

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

    4. Re: Order n^2 vs. nlogn by Anonymous Coward · · Score: 0

      Every programmer I've ever worked with who enjoyed blathering on about big-O notation wrote bug-ridden, hopelessly insecure code that was painful to read. Not saying there's a causal connection, just stating my experience.

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

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

    7. Re:Order n^2 vs. nlogn by Anonymous Coward · · Score: 0

      My point is that you don't need to know theory or "big O" to see when you're doing more work than necessary.

      In this case the "normal" couldn't see what the computer was actually doing. This is at least partly the fault of the tools.

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

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

    1. Re:Amiga CanDo by Anonymous Coward · · Score: 0

      I never used CanDo (I never had access to Amiga systems, sadly), but this sounds a heckuva lot like Visual Basic.

      And haven’t we all pretty much agreed at this point that Visual Basic was one of the worst things ever to have happened to the computing world?

      How is it that one of these tools (CanDo) was great, and “we should have more things like that” but VB was “an abomination that should never be repeated?”

      I think the reality is that when you make programming accessible to everyone — even people who have no goddamned idea what they are doing — the result is an absolute shitshow.

      Great tools used by good people can result in great things. But great tools used by incompetent boobs will be used to create havoc.

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

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

  91. Who will win? by Anonymous Coward · · Score: 0

    The basics of computer science -or- one frontend boi

  92. hundred thousand pages of documentation by Anonymous Coward · · Score: 0

    what is this documentation you speak of

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

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

  96. But not that... by Anonymous Coward · · Score: 0

    In principle, ok, but when you start showing pictures of Chairman Mao, er, I mean Basic... that's done an immeasurable amount of damage. Someone commented about Excel macros. If I need to script something, there's no way I'm using VBA. Writing a simple macro in 1-2-3 was, well, simple and quick. Need more? Use a powerful, more formal language.

  97. The PDP-11/20 wasn't announced until 1970 by Anonymous Coward · · Score: 0

    Jonathan Edwards has been programming since 1969 (starting on a PDP-11/20).

    According to Mr. Edwards' biographical page, he began programming in 1969, and he programmed on a PDP-11/20, but he doesn't indicate those events are connected. Given that the PDP-11 was introduced in 1970, the article seems to have misinterpreted Mr. Edwards' biography.

  98. pffft by Anonymous Coward · · Score: 0

    programming is definitely easier and more accessible to new people than it ever has been

  99. Old != bad by Anonymous Coward · · Score: 0

    I was writing code in the mid-70's, sold my first piece of software in 1981 so not quite as old as the author but close. I've worked with many languages, BASIC, Business BASIC, C, CFront, C++, LISP, TCL, Pascal, Java, APL, Fortran IV and 77, and COBOL. I've seen the hype through the years where BASIC was bashed, C++ was pushed to replace C, Delphi and Object Pascal were the answer, SmallTalk was the only one doing it right, Java was safer than C++, C# was better than Java, D beats C++, but Rust is even better, static typing sucks, Python is the way to go because Knuth said whitespace should be important, on and on and on.

    Last week I was sitting in a room with a number o senior tech folks at our company and we were discussing some tech debt we needed to address. One of our main platforms is written in zOS assembly running on a mainframe and everyone felt it needed to be ported to serverless cloud technology. Me being me I simply asked why, how do we present a funding case to do the work. The answer "its old technology". One person said, "you have to use a green screen application to setup a new customer" by entering a couple of records in the configuration database.

    I asked what it would be replaced with and was told "it needs to be a web application". When I asked what was the difference between a green screen application form that talks to a central server and an HTML form that does the same thing, it was like the scene from Star Trek episode "I, Mudd" where Spock looks at the identical robots and says "I love you, but I hate you" and they couldn't grasp the concept because they were the same.

    Don't get me wrong, there is a valid business case to be made for rewriting this multi-million dollar earning platform and that is lack of support. We can't hire developers that know this code or are even willing to learn it so we're at the mercy of IBM consultants.

    My point is that the architects in this room focused on the "oldness" of the technology as the justification for reworking it and not on the total cost of ownership.

    But this brings forward some serious flaws in our current approach to software development - the magpie affect. So many of the folks in our field want to only work with the next hip and cool technology but none of them "stick". So we end up with a morass of applications built with different fleeting languages.

    I always liked Business BASIC, thought it was the a good tool for the job. I prefer C over C++ when possible, or just use C++ as C with classes (much like CFront originally worked). Java effectively replaced COBOL as the enterprise platform and it is still going strong. I avoid the .Net/C# ecosystem because of vendor lock in, same reason I would agree with migrating off a mainframe system.

    The author makes some decent points, tools like Hypercard allow non-developers to create solutions to problems they have. The professional developers may laugh at how bad Visual Basic or MS Access applications were but they do the job, don't require an army to support.

    Nearly all developers or architects I've met at one time or another has used the phrase "best tool for the job", the problem is they spend so much time trying to find the absolute best tool that they ignore the good enough tool.

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

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

  104. THIS! by Anonymous Coward · · Score: 0

    The first car my father had no electronics inside. We have been able to repair almost everything our self.
    Try to open the hood on a modern car and you will not be able to identify how to even take it apart.

    This is not a problem of programming.
    It also cannot be unmade. We consume much higher quality products that are better because of much higher sophistication.

    Trying to go back in time to make programming/car repair/getting food simple as it was does not work.
    We need the higher sophistication and effectiveness (of the products, not manufacturing) to survive in much more crowded world.

    Fantasize about returning to growing all your food/ repairing your own car/ programming web application on your own as long as you want, but it surely is not a thing for everyone anymore.

  105. Re: They requirements have increased a thousand fo by Anonymous Coward · · Score: 0

    Good example is a number x that needs to be calculated using some old data and new data. Current application requires that user calculates it and inputs it. Well turns out people suck at calculation so the number is often wrong. So new version of the app calculates it automatically. But when implemented it turned out that no one knew how to actually calculate it. It took about a year requiring a lawyer several domain experts, architecture changes etc. to get it calculated.

    This was just a one number that everyone thought was easy to calculate. Horros still wait because the number has been wrong for decades and someone needs to fix the mess.

  106. Obligatory XKCD by Ottibus · · Score: 1
  107. 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.

  108. Dear JEALOUS "Lil' Jowie" the "ne'er-do-well" by Anonymous Coward · · Score: 0

    In case you didn't NOTICE shitbrain punk you are? I AM ON TOPIC about coding SPECIFICALLY on Delphi you dumb FUCK!

    Additionally: Dear JEALOUS "Lil' Jowie" the "ne'er-do-well" do-nothing - I also don't OBEY a pusscake like YOU that STALKS ME via UNIDENTIFIABLE anonymous offtopic trollings... got it?

    You're a POWERLESS little CUNT that can't stop me - accept it.

    APK

    P.S.=> Of course, IF you'd like to MEET ME IN PERSON & TRY MAKE ME OBEY YOU? You're more than WELCOME to try, straight to my face, man to man (so I can put you in the morgue, you chicken dick little cocksucking motherfucker)... apk

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

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

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

  113. The cathedral vs bazaar model rears its head by Anonymous Coward · · Score: 0

    Linux is an excellent example of how we have migrated from a lucid, well written kernel to one dominated by corporate and military interests, that does all things for all devices and platforms. A study, that I can't cite, showed that open software eventually ends up in the hands of sophisticated specialists, thus refuting the cathedral vs bazaar argument of open software development.

    SystemD is one more example of how the KISS principle has been sacrificed at the altar of sophistication.

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

  115. 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.
  116. what in the actual fuck??? by Anonymous Coward · · Score: 0

    where does this presumption that EVERYTHING must be graspable by EVERYONE?

    what happened to BRAIN SURGERY FOR ALL?

    or CHEMICAL ENGINEERING FOR ALL?

    or PARTICLE PHYSICS FOR ALL?

    basic and hypercard are never going to be able to write device drivers. what the fuck are we even talking about???

  117. Coders like their code by Anonymous Coward · · Score: 0

    There has always been a field of computer science devoted to making it easier for people to create applications to get stuff done, and it has always been opposed by coders. "You have to hand code in machine language because only by abstracting what the computer is doing in your own mind can you understand what's going on and create precise and optimally efficient code. This new fangled assembly language will never work". And "You can't write an OS in a compiled language like C, it has to be done in assembly language to get the precision and efficiency needed". "You can't rely on builtin data types, or methods and garbage collection, you have to design data structures and allocate memory by hand for things to work and be efficient". Guess what wins out in terms of costs?

    Edwards is just pointing out that today the approach has shifted to paying brilliant PhDs to spec, prototype then write code that scales up to billions of users and then rollout it out on cloud based systems rapidly. This way you, crush the opposition and gain a monopoly in what you want people to be doing. And of course whenever Governments try to copy this they produce IT systems that don't even work, with triple the original budget and take three times longer than planned. That is a barrier for the entry of competition into the market, which results in high profit margins. Barriers to IT adoption also limits the productivity of workers, which results in low paying jobs with poor conditions that only exist until the PhDs figure out how to abolish them entirely.

    Instead you can return to devoting some computer science resources to make developing applications easier for people. In the last 30 years there have been systems developed that allow you to specify algorithms in a human readable format. You then feed them into a compiler that spits out code that is proved to be mathematically correct, and where every step is fully documented. They are finding use in complex aviation and defence systems where a single obscure bug can produce catastrophic results and regulators like the FAA require every step be documented for accident investigations. And after Toyota had to pay out $3b for an findable presumed bug that caused their cars to accelerate for no reason and crash, car manufacturers are looking at them too. After the Commonwealth Bank was fined $700m for a bug that resulted in their ATMs not logging transactions properly for reporting to the Australian anti-money laundering body, the finance sector might be looking at them too.

    And if a professional contractor or worker in a business, who understand the problem first hand, can create an application, without a PhD and 10 years of experience in all the best coding techniques, then they become more productive and valuable. Instead of being replaced by a system full of bugs that doesn't do everything that was wanted. Anyway, that's Edward's idea, using computer science to expand programming into more areas, instead of just focusing on what's possible by geniuses at the bleeding edge.

  118. 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
  119. Programming is not CS by Anonymous Coward · · Score: 0

    Completely agree with "Computer science is not a prerequisite for most programming", after all, programming isn't Computer Science.

    The amount of times I hear 'oh, I'm a Computer Scientist too' when, upon enquiring further, it turns out that they've spent 3 years at university essentially studying - no, scrap 'studying', insert 'learning' - some sort of framework and a bit of Java and Python ffs. Writing an Android app isn't studying Computer Science; and no, you're not a Computer Scientist. Now I will concede that at some institutions you will learn some proper CS-underpinning stuff, but only at some of the better institutions. My own had the right idea - they have a sign up saying 'The computers are for email and writing-up, please use the whiteboards for the Computer Science'.

    There's nothing to be ashamed about either - if you find that you're actually not a Computer Scientist. Truth is, we don't really need very many Computer Scientists! Think of them as being more like theoretical physicists if you like. Or better still, Materials Scientists. Materials Scientists know a lot of chemistry and physics - you need to if you want to create new interesting materials: The Physics Nobel in 2010 was more or less a Nobel for Materials Scientists ("for ground-breaking experiments regarding the two-dimensional material graphene"). Materials Scientists create new materials which in turn are used by engineers, e.g., Civil Engineers. Civil Engineers don't need to understand the deepest underlying properties of a material in order to use it in a project. In turn, the workers actually building stuff don't need to be Civil Engineers and/or Architects - they have their own set of skills. At one end you have the few, at the other the many.

    We've over used the term 'Computer Science' - after all - it sounds good doesn't, "I'm a scientists!". Drives me mad. A simple test - here's a link to some proper Computer Science. IF you can follow this - and a bit more than roughly, then you're good to go: https://eccc.weizmann.ac.il/re...

  120. Please, we need programmers after the singularity by Anonymous Coward · · Score: 0

    LoL. We, the hand programmers, can be useful too after the singularity.

    More seriously, I think long term education on programming should focus on algorithms. Part 1 (data types, loops, sorting, graphs, recursion ... ) part 2 (complexity, distribution, scalability, of the part 1) part 3 (real time, prooved, machine drivers, machine Learning ...)

    Algorithms are everywhere and unlike programming language they are not an hype technology.

    The real difficulty is to teach a sound algoritmic framework ... that scales up from part 1 to part 3 and above. I think many programming languages share today the same paradigm and should belong to the same algorithmic notation.

    I guess that all programming languages will belong to a teachable algorithm notation.

    The difficulty of learning many programming languages seems to reapeat the history of math notation. Math notation has converged to a norm, for humans to detect errors and ambiguities. Even us programmers have been able to check our own math in high school. Some real mathematicians creates their own checkable (consistent ?) notation to proove their new math.

    But programming languages have to be checked by the programmer, by the compiler. And maybe by the patent bureau ??

    Of course there exist computer class on language design, and this class, with the algo class, should adress the diversity of programming languages.

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

    1. Re:It's been tried by Anonymous Coward · · Score: 0

      > Hypercards died from lack of interest.

      No, I think it died because a) Apple didn't make it work transparently over the network, so HTML became the go-to hypertext solution, and b) Apple started charging for the app they previously bundled with the OS for free.

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

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

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

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