Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 15 submissions in the queue.
posted by chromas on Wednesday October 03 2018, @09:12PM   Printer-friendly
from the the-future-is-now,-old-man dept.

Nikita Prokopov has written a blog post detailing disenchantment with current software development. He has been writing software for 15 years and now regards the industry’s growing lack of care for efficiency, simplicity, and excellence as a problem to be solved. He addresses the following points one by one:

  • Everything is unbearably slow
  • Everything is too large
  • Bitrot
  • Half-baked products get shipped
  • The same old problems recur again and again
  • Most code has grown too complex to refactor
  • Business is uninterested in improvement

Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
  • (Score: 0, Flamebait) by Anonymous Coward on Wednesday October 03 2018, @09:23PM (12 children)

    by Anonymous Coward on Wednesday October 03 2018, @09:23PM (#743678)

    This is what happens when you young d(_)che bags graduate college, and all you know is some toy language like Python, Java, C#, or Ruby. You think they're awesome because they're easy. I think they're crap because then I'm forced to work with you, and you can't write deterministic code to save your life. I had one young guy flip his sh*t because he had to write some code because "OMG, you mean there isn't already a library for that in the language?!!" I said, "welcome to software engineering."

    • (Score: 5, Insightful) by Fluffeh on Wednesday October 03 2018, @09:52PM (10 children)

      by Fluffeh (954) Subscriber Badge on Wednesday October 03 2018, @09:52PM (#743692) Journal

      And that sort of elitist attitude is just as much part of the problem. You were young and fresh out of education (self or formal) at some point. You had no clue but didn't know it. We all were. And slowly or quickly we all got better.

      Rather than being the guy who knows a lot but doesn't share and looks down his nose at all the new guys, why don't you try to be the experienced guy who lifts the new folks to greater heights. Empower them to become more, show them the next part of the journey.

      Or... you know... sit here bitching anonymously about those young whipper-snappers and their fancy-schmancy languages.

      *sips coffee*

      • (Score: 0, Troll) by Anonymous Coward on Wednesday October 03 2018, @10:12PM (4 children)

        by Anonymous Coward on Wednesday October 03 2018, @10:12PM (#743697)

        You probably love systemd.

        • (Score: 2, Funny) by Anonymous Coward on Wednesday October 03 2018, @10:30PM (3 children)

          by Anonymous Coward on Wednesday October 03 2018, @10:30PM (#743707)

          Obviously you love the regular D

          • (Score: 4, Touché) by coolgopher on Thursday October 04 2018, @06:44AM (2 children)

            by coolgopher (1157) on Thursday October 04 2018, @06:44AM (#743889)

            Personally I favour regular expressions

            • (Score: 2) by Freeman on Thursday October 04 2018, @02:52PM (1 child)

              by Freeman (732) on Thursday October 04 2018, @02:52PM (#744107) Journal

              You're one of those 'eh? https://xkcd.com/1313/ [xkcd.com]

              --
              Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
              • (Score: 2) by maxwell demon on Thursday October 04 2018, @06:12PM

                by maxwell demon (1608) on Thursday October 04 2018, @06:12PM (#744220) Journal

                Since the last election, the regex in the title text is irreparably broken: There's no way a regex at the same time both matches Clinton (last name of Bill Clinton) and doesn't match Clinton (last name of Hillary Clinton).

                --
                The Tao of math: The numbers you can count are not the real numbers.
      • (Score: 1, Funny) by Anonymous Coward on Wednesday October 03 2018, @10:35PM (1 child)

        by Anonymous Coward on Wednesday October 03 2018, @10:35PM (#743711)

        I think his point is that millennials leave school without the tools required to be good programmers. Rather than learning deterministic coding, they spend their time taking gender studies courses. The end result is Ruby on Rails.

        • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @05:30PM

          by Anonymous Coward on Thursday October 04 2018, @05:30PM (#744198)

          “Ruby on Rails”

          Is that some porn series about a girl with a train fetish?

      • (Score: 3, Interesting) by MichaelDavidCrawford on Thursday October 04 2018, @03:47AM

        by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @03:47AM (#743828) Homepage Journal

        -s"

        What upset me the very most about my homelessness is that I was unable to mentor the young people during that time.

        --
        Yes I Have No Bananas. [gofundme.com]
      • (Score: 3, Interesting) by MichaelDavidCrawford on Thursday October 04 2018, @03:48AM

        by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @03:48AM (#743829) Homepage Journal

        Somewhere I read his explanation for his enthusiastic reception of shitty code from the newbies:

        Because mentoring the newbies is how we obtain oldbies.

        --
        Yes I Have No Bananas. [gofundme.com]
      • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @12:50PM

        by Anonymous Coward on Thursday October 04 2018, @12:50PM (#744040)

        Can't you recognize drill sergeant tough love when you see one?

        "You worthless maggots! I've never seen so sorry bunch of wannabe software engineers in my entire life! You won't last a minute out there in the field. I am gonna wipe out that smug smiles from your faces.
        Now hit the vim and give me for (i = 0; i 50; i++) pushup();"

    • (Score: 2, Funny) by Anonymous Coward on Thursday October 04 2018, @02:10AM

      by Anonymous Coward on Thursday October 04 2018, @02:10AM (#743799)

      I had one young guy flip his sh*t because he had to write some code because "OMG, you mean there isn't already a library for that in the language?!!"

      Been there, seen that.

      $job had a project where they were migrating data from 'legacy' data storage system into 'new improved shiny thing' storage system that was, at this point, also an untested storage system (this last bit is important). Migration was occurring by reading from 'legacy' system, over a network connection, and writing to 'shiny new system' over a network connection.

      Dev's had not even considered the possibility that untested shiny new thing might just accept data writes, reply with "success" response, but not actually store the data that was sent to be stored. Additional fact, a prior 'shiny new, but different, storage system' failed for just this reason. Writes were indicated as "successful" but attempting to retrieve written data later resulted in failure from prior 'shiny new system' for some substantial portion of reads.

      So, I asked that they add a test of data written to verify it was in fact stored successfully by reading the newly stored data back out from 'shiny new' and comparing it to the original that was still stored in 'legacy system'.

      I learned a few days later that the dev's had been looking for a prebuilt "compare" library to accomplish this ask instead of simply coding a simple compare loop.

  • (Score: 3, Informative) by Joe Desertrat on Wednesday October 03 2018, @09:24PM (17 children)

    by Joe Desertrat (2454) on Wednesday October 03 2018, @09:24PM (#743679)

    Too many times software gets changed from what is useful and works to something far less useful, if at all, and often more unstable as well. Especially when they try to force software for the desktop into being software for a phone.

    • (Score: 5, Interesting) by fyngyrz on Wednesday October 03 2018, @09:47PM (16 children)

      by fyngyrz (6567) on Wednesday October 03 2018, @09:47PM (#743690) Journal

      He (or at least TFS) missed another.

      OS vendors are rotting perfectly good software — from the outside — by breaking APIs.

      They're also not fixing bugs X,Y... in the OS's they've already published, preferring instead to create new OS versions that often leave older machines un-upgradable with new features A,B... (often buggy themselves) and, if you're very lucky, the actual bug fixes needed for bugs X,Y... while at the same time they may break APIs and therefore existing software that used to work just fine.

      IMHO, if a software producer abandons maintenance for a a software product — both OS vendors and Application vendors — they should lose all IP rights to that product. That way it will be worth the time to the community to debug and patch existing broken software of significant import, and there is also a motivation for companies to keep maintaining software beyond the ridiculous short cycles most of them have fallen into at this point.

      • (Score: 0) by Anonymous Coward on Wednesday October 03 2018, @10:49PM (7 children)

        by Anonymous Coward on Wednesday October 03 2018, @10:49PM (#743721)

        OS vendors are rotting perfectly good software — from the outside — by breaking APIs.

        As long as that is understood, programs can be designed to easily survive that - by adding a separate abstraction layer which is in charge of all OS interaction, and which does not expose any not directly needed functionality to the rest of the program. This way, effects of an API change are localized and multiple alternate APIs are easy to support.

        • (Score: 5, Interesting) by fyngyrz on Wednesday October 03 2018, @11:26PM (4 children)

          by fyngyrz (6567) on Wednesday October 03 2018, @11:26PM (#743753) Journal

          Actively developed SW can be insulated against API changes

          FTFY.

          As long as that is understood, programs can be designed to easily survive that - by adding a separate abstraction layer which is in charge of all OS interaction, and which does not expose any not directly needed functionality to the rest of the program.

          The problem (aside from the considerable extra work and various performance penalties) is that not all useful software is under development. Several of the applications I use no longer have companies behind them for one reason or another; there's no one who will be able to manipulate the abstraction layer. So when the OS API breaks, that's the end for them. Assuming one indulges in the new OS and can't get a VM set up with the old one to carry on, albeit inconveniently.

          Some things are more than API-deep, too. Apple's planning to outright break support for 32-bit applications in an forthcoming OS release. I have a lot of software that's 32-bit; most of these aren't in any way lacking in functionality, or buggy, yet Apple is going to break them completely. They'll end up running in a VM as well under an earlier version of OS X, because of course there's no actual reason they can't keep running, other than Apple being Apple, which is to say, being customer-screwing boneheads.

          Then there's this. I write software under QT, which is essentially an abstraction layer. I do this so that I can variously generate versions for OS X, Windows, and linux from my projects. QT, however, often plays the "let's break it!" game; apps developed under QT 4.8 that are warning- and error-free generate literally tens of thousands of errors when an attempt to build them is made under QT 5. Furthermore, applications generated under QT 5 won't run on OS versions that applications which were generated under QT 4 will run on — so I face the issue of screwing some subset of my users if I move those projects to QT 5. Do I want to do that? No. I really don't.

          This in turn demonstrates that unless you write your own abstraction layer, you can be bitten by exactly the same factors. And a decent abstraction layer is no trivial thing; QT again demonstrates this both by its depth, and its considerable load of bugs and problems, which, just like the OS vendors, it tends to leave unfixed and lying around in favor of "Hey look, New! Shiny!"

          I have asked myself multiple times if it would be worth my time to write my own abstraction layers. Each time, the answer is no. So instead, I develop under as far back an OS and abstraction layer as I can get away with, adding my own functionality similar to new OS / abstraction features being offered as needed. Which, to be honest, doesn't happen all that often. But one example of this is that QT as of versions 4.8-ish didn't provide USB support worth a shit, so I wrote the needed classes for OS X, Windows, and linux. It took a lot of time and care to do it, but now, at least, I have it when I need it.

          Bottom line, the only real fix here WRT new OS and related abstraction layers is proper legacy API care from the OS and abstraction layer vendors. And we all know that's not going to happen.

          • (Score: 0, Disagree) by Anonymous Coward on Thursday October 04 2018, @09:06AM (3 children)

            by Anonymous Coward on Thursday October 04 2018, @09:06AM (#743949)

            Open source SW can be insulated against API changes

            FTFY. Let's not forget the obvious.

            I write software under QT, which is essentially an abstraction layer. I do this so that I can

            ...get bitten by dev team's every whim, err, "good idea"?

            so I face the issue of screwing some subset of my users if I move those projects to QT 5. Do I want to do that? No. I really don't.

            Which is exactly why you should bite the bullet and add an intermediate layer. You'll waste more time and effort fighting the constant churn - and losing - than it takes to isolate the high-level UI logic from the gritty details of actual API calls, and then add pluggable support for "new-and-improved" QTs at your leisure.
            Besides getting an option to then add support for another toolkit with minimal effort.

            The API churn is the new normal. Forget the gone epoch of stable libs. And we need to design our code accordingly.

            • (Score: 2) by fyngyrz on Thursday October 04 2018, @01:28PM (2 children)

              by fyngyrz (6567) on Thursday October 04 2018, @01:28PM (#744057) Journal

              Open source SW can be insulated against API changes

              FTFY. Let's not forget the obvious.

              Open source software may be actively developed beyond that which the originator indulges in. Or it may not. That depends entirely on developers with the appropriate skillset(s), interests, and available time and energy, a combination for which there is absolutely no guarantee. The only developer you can control as far as maintaining software goes is either an employee, or yourself. Everything else, including the entire open source world, is some combination of random, undependable, luck-based, popularity-based, or toxic.

              For instance, I have built a fair number of open-source projects of my own; I have yet to see a commit or code submission (prior to git) from anyone else, ever. There are thousands of users across all these projects (not counting the tens of thousands for my closed source projects, commercial and otherwise), and certainly they would benefit from the attention of others — added features, moves from (for example) Python v2.7 to v3.x, etc. But no. To date (many years now, I've been writing software since the 1970's), if it was going to get done, I've had to do it, or assign an employee to do it.

              Also, when an open source project is actively developed, it fits in perfectly with my original statement. So you didn't fix anything. Sorry. :)

              Which is exactly why you should bite the bullet and add an intermediate layer. You'll waste more time and effort fighting the constant churn - and losing

              Wrong. It's very clear you have no idea whatsoever of the magnitude of such a task.

              Furthermore, until Apple dumps that "32-bit only" thing on everyone like the load of utter shite it is, I'm not fighting churn at all, because I stick with the OS and abstraction layers I started with (Windows has been no problem... they do back-compatibility far better than Apple does. Linux is pretty good at it as well.) This means that to date, I only have had to deal with how the new Apple OS is back-compatible with the old abstraction layer, and that's about the lowest possible load there is in that context. For example, when an application was developed under QT 4.8, that's where I keep it. That means the APIs I'm dealing with are stable, if nothing else; they may have bugs, but as I find them, I can work around them, and eventually they sink below the noise level, which means things become more reliable, not less.

              Even after Apple shits on everyone, there will be VMs to turn to. That's the golden fix for the userbase, as it provides envelopes within which properly written software can continue to serve the users as they need them to, despite malfuckery on the part of the OS vendor(s), Apple in this instance.

              For my own development, the key I have found is to ignore the "New! Shiny!" that the OS vendors are always pushing at their victims users and developers, and concentrate instead on functionality aimed straight at the user vertically aligned with the core competence of the application, which in my case is most often a language, an image manipulation related application, or an SDR radio application.

              add pluggable support for "new-and-improved" QTs at your leisure.

              No. Not my problem.

              • (Score: -1, Troll) by Anonymous Coward on Thursday October 04 2018, @02:04PM (1 child)

                by Anonymous Coward on Thursday October 04 2018, @02:04PM (#744075)

                Wrong. It's very clear you have no idea whatsoever of the magnitude of such a task.

                Give me a couple minutes to stop laughing at your lousy telepathy. Thanks.
                I simply sat and done it, instead of bitching. I do not talk about hypotheticals. But if you're sure the task is too great a "magnitude" for you, then it most certainly is.

                • (Score: 2) by fyngyrz on Thursday October 04 2018, @10:20PM

                  by fyngyrz (6567) on Thursday October 04 2018, @10:20PM (#744360) Journal

                  I simply sat and done[sic] it

                  Yes? Show your work. I'm perfectly ready to believe you... on that basis. Otherwise, not a chance. :)

        • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @03:56AM

          by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @03:56AM (#743833) Homepage Journal

          The ZooLib C++ Application Framework [github.com] has the MIT License, specifically to encourage both open source and proprietary use.

          Andy Green [em.net] write its first version on top of Mac OS so as to insulate himself from Bedrock, which Apple shouted from the rooftops would enable cross-platform windows and mac apps. Andy didn't want to have to rewrite all his products when bedrock shipped - which it didn't - so he figured he would just implement a bedrock shim underneath zoolib.

          From there it was not hard at all to write a windows 3.1 shim.

          These days, ZooLib has a cocoa and a cocoa touch shim. So I could recompile the Win/Mac app I wrote in 2000 to run on the iPad, which I actually intend to do in my infinite free time.

          I write an essay called "Why ZooLib" for its original website, which Andy took down in favor of just using GitHub. I asked him if I could say that "ZooLib frees the developer from OS vendor shackles."

          Andy's reply?

          "Quite."

          --
          Yes I Have No Bananas. [gofundme.com]
        • (Score: 2) by jmorris on Thursday October 04 2018, @05:15PM

          by jmorris (4844) on Thursday October 04 2018, @05:15PM (#744186)

          Guess what champ, you juts became part of the problem when you do that. What is the word you would use to describe your "abstraction layer"? Yup, you just created yet another API / Framework that, being a one off for your product, will be buggy and poorly maintained and likely have inadequate documentation. After a few years you will think so highly of it that you unleash it on the world as yet another abstraction framework where it will join the others in sucking. Programmers will program to your ABI as it mutates and changes and they curse your name. And then some moron, having learned nothing, will, within the cubefarm of some vast software shop out there, write a nasty little library to abstract away the churn in your ABI and allow a block of code to build against multiple versions of it and later add some code to let code built against this new abstraction library perhaps build on an entirely different platform or widely deployed abstraction ABI. A co-worker will learn of it and want to use it, some internal docs will get written....
            And the wheel turns.

      • (Score: 4, Interesting) by edIII on Wednesday October 03 2018, @11:31PM (7 children)

        by edIII (791) on Wednesday October 03 2018, @11:31PM (#743758)

        Missed another. You explained why Open Source and FOSS will eventually take over nearly all software. What you missed also explains why Open Source and FOSS will rule software forever.

        SECURITY.

        We are now reaping what we sowed. There is about 1% of the knowledgeable (referred to as one percenters) that can basically go anywhere and do anything. It's computing, but without any morality or honor. These groups of people have the control they have now because security was forever an afterthought, and greedy shortsighted managers, executives, and shareholders ultimately drove the development process. Now that we've linked so much of the world up the Internet, intertwining our processes with it, creating new dependencies upon it each day, controlling cyberspace effectively means you control meat space. This is also gives rise to mistrust in computing, because governments are not interested in increasing the levels of security, but falling over each other to control exploits and perform mass surveillance of their citizens instead.

        I would list proprietary and unmaintainable code as part of the problem. It matters not how high quality it is purported to be, even if it is noticeably free of bugs. That's because security can now only be established by 100% transparency as far down as reasonably possible. That means no blobs or binaries, and we need multiple TPM modules that are Open and controlled by the owner.

        At this point we need a new coding paradigm that treats security as paramount. User experience be fucking damned. On the latter note, that's also getting better because of proper 2FA.

        --
        Technically, lunchtime is at any moment. It's just a wave function.
        • (Score: 3, Insightful) by MichaelDavidCrawford on Thursday October 04 2018, @04:00AM

          by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @04:00AM (#743836) Homepage Journal

          there is just too much source, and not enough eyeballs that actually lift a finger - or rather, an eyelid - to inspect that source.

          Instead we have my experience with gedit on Slackware a while back, where all the text that was below the visible part of the window simply disappeared into the ether.

          Yes really: you could type The Great American Novel into a very very tall window, but when you scrolled back up after typing "The End" you would find that the last page was all that remained.

          "Release early and often" is in my opinion the problem and not the solution.

          --
          Yes I Have No Bananas. [gofundme.com]
        • (Score: 4, Insightful) by MichaelDavidCrawford on Thursday October 04 2018, @04:02AM (3 children)

          by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @04:02AM (#743838) Homepage Journal

          your secure software will never be used if you do not place quite a high priority on user experience.

          Consider that the Central Intelligence Agency, upon realizing that the President and his cabinet weren't reading their daily intelligence summaries, created a very special cable TV show for a very special, very limited audience.

          --
          Yes I Have No Bananas. [gofundme.com]
          • (Score: 3, Insightful) by Fluffeh on Thursday October 04 2018, @05:28AM

            by Fluffeh (954) Subscriber Badge on Thursday October 04 2018, @05:28AM (#743869) Journal

            ... created a very special cable TV show for a very special, very limited audience

            I was going to come up with a wisecrack about Fox & Friends being full of fiction unlike the daily presidential briefings and not limited in who can watch... but... some of the excuses given in the past for wars started and actions taken make that seem less funny and witty if you think about them.

          • (Score: 1, Insightful) by Anonymous Coward on Thursday October 04 2018, @09:07AM (1 child)

            by Anonymous Coward on Thursday October 04 2018, @09:07AM (#743950)
            That's the problem of electing Presidents who can't or can barely read... You should be able to read faster than most TV presenters present their garbage/poison.

            TV shows are mostly[1] for entertainment or influencing/brainwashing idiots.

            That said, the US and the world would probably have been better off if they shutdown most of the CIA.

            [1] Only in a minority of cases they're useful for learning stuff that really is better in video format - e.g. learning how to cook or build something - but the CIA "intelligence summaries" are unlikely to fall into that category.
            • (Score: 4, Informative) by MichaelDavidCrawford on Thursday October 04 2018, @10:31AM

              by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @10:31AM (#743970) Homepage Journal

              Consider the effort that goes into the CIA World Fact Book.

              Quite a lot of CIA publications are unclassified and are posted openly on their website. Several of them - including the transcript of an address to the staff by a former CIA director - are concerned with ways to avoid letting personal bias influence one's analyses.

              The CIA Memorial Wall is white marble, with five-point stars carved into each for each clandestine agent that's been killed while on a mission. There aren't as many stars as one would expect. I concluded that the CIA must not have many clandestine agents of its own, rather than much of its intelligence comes from "assets" - foreign citizens who commit treason by spying for the US - as well as "contractors" - not so much like Snowden, but clandestine agents who are paid by the CIA but who aren't CIA employees.

              I'm quite certain that the vast majority of CIA employees are analysts who do stuff like read every newspaper in God's Creation so as to keep up to date on America's up-and-coming new enemies.

              The CIA also translates foreign academic journals, then publishes these translations in the US. A Caltech astronomer I once worked for used one such translated journal as a Russian source for a review article he wrote.

              Review articles summarize the results of a number of other, more-focussed articles. For example I did the data analysis for the age measurements of some globular stellar clusters - one paper per cluster. A review article would then discuss all those papers, so as to draw some conclusion about globular clusters in general.

              --
              Yes I Have No Bananas. [gofundme.com]
        • (Score: 1, Informative) by Anonymous Coward on Thursday October 04 2018, @04:13AM (1 child)

          by Anonymous Coward on Thursday October 04 2018, @04:13AM (#743845)

          You forgot that FOSS has gone into "greedy shortsighted" mode with companies taking over.

          They are not interested in "done" software, but recurrent income. Thus the "we can't fix that, let's restart" trend. Which of course leads to restarts of huge, complex, messes, which warranty they will never end, and that will require support contracts until end of times. "Let's rewrite the basic libs, the core of the OS, the display systems, the toolkits, the desktops, everything... just make sure when we approach completness of something, we jump ship to the next very new best, and go back to v0.1"

          Trully depressing, because they do it from the inside, not from a fork that has to earn foothold by showing clear adventages over the original. And in doing that, they drown the good things by sheer inbalance of size and resources.

          • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @10:43AM

            by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @10:43AM (#743972) Homepage Journal

            Free Software and Open Source Software are _completely_ different things.

            Whenever I point this out I'm met by confident jackasses who point out that they both have the same licenses. That does _not_ make Free Software the same as Open Source Software.

            The difference between the two is not the choice of licenses, but the _reason_ the license was chosen. I mentioned that to Richard, to which he replied "That is correct".

            Richard himself quite a while back told a journalist that the purpose of Free Software is "to build a community" whereas the purpose of Open Source is "efficiency".

            I expect that this distinction is quite likely while he doesn't particularly care whether Hurd will ever be finished: it has a community. It's the community that's important, and _not_ the code.

            I looked into this after I myself confused Free and Open Source at Kuro5hin. Someone pointed out that "Open Source is the enemy". After carefully studying both Free and Open, I came squarely down on the side of Free Software.

            I cooperate with some Open Source projects, I'm not an asshole about it - but software that's purely my own, is Free Software and not Open Source.

            Some cluebot had the gall to tell Linux that the Linux Kernel is Free Software because it has the GPL. Linus tore him a new asshole.

            When this discussion came up at Advogato, someone explained that "They're fellow travelers".

            That's a Communist term for two people who have the same destination but who are enemies of each other: Russia and China repeatedly exchanged fire in Mongolia, and China invaded North Vietnam in 1975. (The NV tore China a new asshole of its own.)

            --
            Yes I Have No Bananas. [gofundme.com]
  • (Score: 5, Interesting) by FatPhil on Wednesday October 03 2018, @09:39PM (2 children)

    by FatPhil (863) <pc-soylentNO@SPAMasdf.fi> on Wednesday October 03 2018, @09:39PM (#743687) Homepage
    ... were what I was complaining about 15 years ago. His happy memories of efficient well-designed code are to me still relative annoyances.

    I'm (re)writing back-end stuff for a webby thing, which I have deliberately decided to host the dev version of on a 700MHz 32-bit Model B RasPi, so that I do not permit myself any room to be sloppy with implementation, and have decided to write much of the guts in lua rather than Perl - we're talking a 2-4x speedup over the perl versions of the scripts. It's still slowish, but bearable - when it becomes unbearable, I profile it and streamline it. As it's a scripting language (but JIT'ed) the adage of less is more holds true - so there's very little bloat. I've got a RasPi 3 lined up to be the live world-facing machine, that has about 8 times the grunt. No fancies, no bling, just the fricken data requested nothing more - only the lightest CSS to style tables. It's so ugly it's beautiful.
    --
    Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
    • (Score: 3, Interesting) by suburbanitemediocrity on Thursday October 04 2018, @12:29AM (1 child)

      by suburbanitemediocrity (6844) on Thursday October 04 2018, @12:29AM (#743773)

      I remember back in the 80's it was said Russian programmers were so much better than the west because they had to do the same thing with antiquated hardware.

      • (Score: 2) by DarkMorph on Thursday October 04 2018, @08:51PM

        by DarkMorph (674) on Thursday October 04 2018, @08:51PM (#744314)
        So being a Russian programmer with modern hardware, my code must be fucking awesome!
  • (Score: 5, Interesting) by Thexalon on Wednesday October 03 2018, @09:47PM (2 children)

    by Thexalon (636) on Wednesday October 03 2018, @09:47PM (#743689)

    These kinds of problems are absolutely nothing new in the field: Fred Brooks was writing about them decades ago, and they're just as true now as they were then.

    And he's right: Software today is largely a big bloated barely-functioning mess. And there's no simple method to eliminate the problems, because all the business incentives point towards slapping together a big bloated barely-functioning mess as quickly as possible and then engaging in the ever-popular practice of turd-polishing. There is, for instance, not much business case to be made for "let my developers spend 2 weeks fixing longstanding but minor bugs", and even less for "let my developers spend 3 months refactoring out the major problems with our system's design."

    It's also worth noting that the overwhelmingly dominant project management methodology is not Agile or Waterfall but what I've termed the UM approach:

    1. Underestimation: In this phase, the project manager assumes that every estimate given to them by the development team is multiplied by a factor of at least 2, and immediately cut a, say, 2 month timeline into 3 weeks. They then negotiate with their higher-ups to get approval for those 2 weeks - the higher-ups, naturally, think that the time estimate is inflated a bit, so they trim off the fat and cut it down a bit more to, say, 2 weeks. It is important to understand at this phase that if this underestimation does not occur, the project will not move forward, because approval for this project managers' pet project is competing with approval for other project manager's pet projects and the magically shrinking estimate is necessary for anything at all to happen. It should also be worth noting that the project manager's career depends on successfully completing projects, which means successfully getting higher-ups to approve said projects, so all the incentives encourage this behavior.
           
    2. Misery: In this phase, the project manager attempts to demand that the development team work harder and faster so they can get the project done in as close as possible to the time they told the higher-ups. Any lateness in this phase will be blamed on the developers, ideally either the very disposable junior-level developers or the old guys the company wanted to get rid of anyways. Regardless of what the project manager does, the job is guaranteed to take no less time than the developer's original estimate.
           
    3. UM: In this final phase, everybody makes excuses for why the project was not completed according to the project manager's schedule. This phase is characterized by people sitting in meetings going "Ummmm...", from whence it gets its name.

    This methodology will be dressed up with some cool-sounding name, but this is the approach used by every larger company and many smaller companies I've worked for.

    --
    The only thing that stops a bad guy with a compiler is a good guy with a compiler.
    • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @04:15AM

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @04:15AM (#743847) Homepage Journal

      When I worked at Apple in the mid-nineties they were generally doing a good job at shipping quality software. I won't say on time or on budget, but what actually got into end-users' hands generally worked well.

      I credit some of this to Apple's requirement that all new projects have enthusiastic ERS sign-off: Engineering Requirements Summary. Not just the managers had to sign the ERSes but also the coders who would implement them.

      I read the ERS for the PowerPC Dynamic Recompiling 68k Emulator. I'm afraid that document was very much under NDA so I can't tell you how that emulator actually worked, but I can say its ERS was lucidly and concisely written, and at the time I felt that all I really required to have written that emulator myself was to have read the ERS.

      But I've also worked at places where it was all to common for the management to say "We'd make a killing if we published $SHINY Just In Time For Christmas". And in fact at one company that was a contract shop, the lawyers spent an extra month hammering out the contract for something that really did require it be in customer hands by black friday, so we all worked 24/7 to get it there.

      We really did, which speaks to the competence of our engineering staff, but I really would have liked to have beaten both parties' attorneys to death with my bare hands.

      --
      Yes I Have No Bananas. [gofundme.com]
    • (Score: 2) by termigator on Thursday October 04 2018, @05:42PM

      by termigator (4271) on Thursday October 04 2018, @05:42PM (#744209)

      I use the term “BIOYA” model. Pronounced boy-ya. Stands for, “Blow it out your ass,” since that is where most project time estimates come from.

  • (Score: 5, Insightful) by Snotnose on Wednesday October 03 2018, @10:00PM (4 children)

    by Snotnose (1623) on Wednesday October 03 2018, @10:00PM (#743694)

    Back in the 80s we were saying the same thing. Microsoft was notorious for releasing software that would run well on hardware released 2 years later.

    All I have to do is monitor a modern webpage as it downloads the latest cat I Kan Haz Cheezburger 34 kb jpg picture. Typically well over a meg for 1 stupid picture.

    --
    When the dust settled America realized it was saved by a porn star.
    • (Score: 2) by black6host on Thursday October 04 2018, @01:11AM (2 children)

      by black6host (3827) on Thursday October 04 2018, @01:11AM (#743794) Journal

      Folks just should have stuck with "Hello World!" Although I'm sure there are many who could screw that up. : )

      • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @10:33AM (1 child)

        by Anonymous Coward on Thursday October 04 2018, @10:33AM (#743971)

        It's possible to screw it up. Ever tried to install and configure node.js using npm just to get Hello World out?

        • (Score: 1, Touché) by Anonymous Coward on Thursday October 04 2018, @11:34AM

          by Anonymous Coward on Thursday October 04 2018, @11:34AM (#743987)

          It's not even funny..

    • (Score: 3, Interesting) by MichaelDavidCrawford on Thursday October 04 2018, @04:19AM

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @04:19AM (#743850) Homepage Journal

      I Am Absolutely Serious, it's not just my paranoia about being tracked.

      It's not the tracking pixel itself, but all the HTTP headers as well as all the name lookups and redirects, combined with the query parameters on the tracking pixel URLs being used to defeat caching.

      Anyone in their right mind would regard it as sufficient to include just one web bug in any given page, but when I was hunting down web bug servers, all the time I would find pages that had dozens of tracking pixels, all from different analytics companies.

      While I readily agree that it is of vital importance that every gay pr0nsite know which of its users are Republican Senators, could it possibly be that ad targeting could be so vastly improved by getting Gay Senator Reports from twenty different analytics firms?

      Political campaign websites were the very _worst_ offenders.

      --
      Yes I Have No Bananas. [gofundme.com]
  • (Score: 5, Interesting) by jelizondo on Wednesday October 03 2018, @10:12PM (6 children)

    by jelizondo (653) Subscriber Badge on Wednesday October 03 2018, @10:12PM (#743698) Journal

    Oh God!

    Been around software development for many years, since '87 or thereabouts. Seen a lot in that time, in no particular order: HP-UX, Xenix, AS/400, CPM, MS-DOS, OS/2, Windows.

    And the more I see, the crappier things seem. My particular beef is with software updates being mostly messing around with UI and now everything going to the "cloud". I just dumped the latest version of Adobe Acrobat in favor of Javelin 3 [drumlinsecurity.com] because I could not figure why the hell I needed to reboot my machine after the last update. Megabytes and megabytes for shit I don't need or want. Javelin might not be the best free option, but it is small and fast; I just need to open .PDF files, nothing more.

    As TFA states Android is such a big beast that I would gladly switch to something else entirely, except the other option is iOS and I hate Apple a lot more than I hate Google. Like choosing between Hillary and Trump, give me a fucking option!

    And don't get me started on Mozilla, the lost child of Free Software.

    Sorry for the rant. I want a simple OS that I control with simple applications that do their tasks fast and without trying to "help" me.

    • (Score: 0) by Anonymous Coward on Wednesday October 03 2018, @10:23PM (2 children)

      by Anonymous Coward on Wednesday October 03 2018, @10:23PM (#743702)

      I want a simple OS that I control with simple applications that do their tasks fast and without trying to "help" me.

      Tiny Core: http://www.tinycorelinux.net/ [tinycorelinux.net]

      • (Score: 5, Interesting) by suburbanitemediocrity on Thursday October 04 2018, @12:26AM

        by suburbanitemediocrity (6844) on Thursday October 04 2018, @12:26AM (#743770)

        QNX offered that 20 years ago. It fit on a 1.2MB floppy drive and due to its real-time design was very fast on a 486.

      • (Score: 2) by Freeman on Thursday October 04 2018, @03:25PM

        by Freeman (732) on Thursday October 04 2018, @03:25PM (#744130) Journal

        I've toyed with Tiny Core for a while now, but it's never taken hold of me. I love the tiny size, including resource usage, but getting Wi-Fi to work on that thing is stupid hard. Then, when I do get Wi-Fi working, it only wants to use PSK instead of a user/pass. I recently tried AntiX and that seems to be more along the line of what I want / need. While, I would love a tiny distro like Tiny Core, I need some things to just work. That way I can focus on the specifics for my project, and no the underlying OS.

        --
        Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
    • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @02:28AM

      by Anonymous Coward on Thursday October 04 2018, @02:28AM (#743801)

      I'll have to try Javelin 3 (or 2, I have an older system), thanks for the tip.

      Meanwhile, you might enjoy Sumatra -- https://www.sumatrapdfreader.org/free-pdf-reader.html [sumatrapdfreader.org]
      As well as pdf files, it also opens several ebook formats. Two versions for Windows, one runs standalone with no install required.

      i had the same problems with Acrobat that you did (several years ago) and rarely use it now.

    • (Score: 3, Insightful) by pkrasimirov on Thursday October 04 2018, @08:13AM

      by pkrasimirov (3358) Subscriber Badge on Thursday October 04 2018, @08:13AM (#743926)

      > I just need to open .PDF files, nothing more.
      > I want a simple OS that I control with simple applications that do their tasks fast and without trying to "help" me.
      I'd add simple networking.

      But that's not what they want.

    • (Score: 2) by Freeman on Thursday October 04 2018, @03:35PM

      by Freeman (732) on Thursday October 04 2018, @03:35PM (#744142) Journal

      Personally, I've liked Puppy Linux for the OS control part. They have a nice remastering tool that you can use to make your own custom installs. http://www.murga-linux.com/puppy/viewtopic.php?t=71349 [murga-linux.com] It's also relatively easy to hack a Puppy Linux install with JWM into an Internet Kiosk that starts fresh after each reboot. I've done just that with a few different versions of Puppy Linux.

      --
      Joshua 1:9 "Be strong and of a good courage; be not afraid, neither be thou dismayed: for the Lord thy God is with thee"
  • (Score: 2) by MostCynical on Wednesday October 03 2018, @10:20PM

    by MostCynical (2589) on Wednesday October 03 2018, @10:20PM (#743700) Journal

    Why software is so bad [technologyreview.com].

    Also, long rant covering everything from bad code to women in IT, written by a guy who sounds like a few people here on SN: What is code [bloomberg.com].

    --
    "I guess once you start doubting, there's no end to it." -Batou, Ghost in the Shell: Stand Alone Complex
  • (Score: 4, Insightful) by turgid on Wednesday October 03 2018, @10:40PM (8 children)

    by turgid (4318) Subscriber Badge on Wednesday October 03 2018, @10:40PM (#743712) Journal

    Yes, he has discovered what we all discover and it is related to goid old Human Nature. Most people, whatever their role like to go with the flow, adopt the path of least resistance. It's basic thermodynamics.
    As a grey beard once told me, what works doesn't change but what it's called does.
    When I was learning "what works" it was called agile incorporated the extreme programming buzzword.
    You need to read the Robert C Martin books, Poppendieck and Poppendieck, Feathers, the Gang of Four patterns book, the Mythical Man Month by Brooks, Fowler on Refactoring, Beck on TDD and there were even a couple of Microsoft books from the 1990s where it seemed that a couple of people there figured out how to do software (I'm sure they got promoted out of harm's way). Paul Graham also wrote a lot of very perceptive stuff. Look up Revenge of the Nerds.
    And if you want to get a job done, avoid C++.

    • (Score: 2) by coolgopher on Thursday October 04 2018, @02:03AM (6 children)

      by coolgopher (1157) on Thursday October 04 2018, @02:03AM (#743798)

      And if you want to get a job done, avoid C++.

      Umm, no. C++ is a great choice for some things, and really helps you get stuff done by providing both type safety and paradigm flexibility. If you're working close to the metal (or even on it), C++ can be just the ticket to really solid code.

      Would I pick C++ to write a web UI? Hell no. Pick the right tool for the job. Sometimes that's Javascript, sometimes it's C or C++.

      • (Score: 5, Informative) by turgid on Thursday October 04 2018, @07:04AM (5 children)

        by turgid (4318) Subscriber Badge on Thursday October 04 2018, @07:04AM (#743892) Journal

        If you're working close to the metal, use C. C++ adds little to no value, makes your code bloated and unreadable, ties you to a particular version of a particular compiler, has exceptions welded in, the standard libraries are atrocious and no two people can agree on how to write it. It takes all day to compile. Other than that, it's fine.

        • (Score: 2) by coolgopher on Thursday October 04 2018, @09:26AM (2 children)

          by coolgopher (1157) on Thursday October 04 2018, @09:26AM (#743959)

          Written as someone who hasn't used C++ on the metal for some time, I see. Though if you'd asked me last year, I would have agreed with many of your points. By now I've seen first-hand that careful C++ on a micro is perfectly doable and can add a lot of clarity to the code. If you're feeling locked to a particular version/compiler, you're doing it wrong.

          • (Score: 2) by turgid on Thursday October 04 2018, @08:28PM (1 child)

            by turgid (4318) Subscriber Badge on Thursday October 04 2018, @08:28PM (#744301) Journal

            Is there a standard ABI now? Can you link modules compiled with one compiler to modules compiled with another? Or do you have to recompile all of your code? And what about templates? As soon as you start to use templates, you have to recompile everything, every single time...

            • (Score: 2) by coolgopher on Friday October 05 2018, @12:49AM

              by coolgopher (1157) on Friday October 05 2018, @12:49AM (#744411)

              If you're on ARM, certainly, it's all EABI*. Though why you'd want to use more than one compiler in the one project is beyond me, unless of course you're stuck with a binary blob library, in which case you're screwed in the first place :(

              If you're using a decent dependency managing build system (e.g. make), you'll only recompile the parts that need recompiling. I'm not sure why you think templates mean you have to recompile everything all the time? The two downsides with templates are typically longer compile times (since they can't be dumped into their own compilation units; pre-compiled headers are an unpleasant attempt to improve that aspect, but maybe they've improved since last I tried using them), and larger binaries as you can easily get less code sharing happening if you're not thinking about such things while writing your templates. Having to recompile everything every single time is not one of the template downsides.

              Please note that I'm not trying to imply that C++ is in any way perfect, it's assuredly not. It is however very powerful and flexible, and can make life so much more pleasant when used well.

              *) Cue discussion about soft-float vs hard-float...

        • (Score: 1, Interesting) by Anonymous Coward on Thursday October 04 2018, @09:32AM (1 child)

          by Anonymous Coward on Thursday October 04 2018, @09:32AM (#743962)

          If you're working close to the metal use ASM. Stuff like GCC too often gets in the way - suboptimal, plain wrong, etc.

          Example from someone who works close to the metal: https://www.facebook.com/photo.php?fbid=10204246490398046&set=a.1031044991993&type=3&theater [facebook.com]

          So, having tired of trying to get GCC-ARM to behave even remotely sensibly, I wrote my first piece of Cortex-M assembler.

          Minutes, this took, minutes... it reads five 16-bit serial ADC chips that are hanging off a parallel port.

          It's hard to directly compare it with GCC-ARM's compiled version because GCC-ARM cannot produce an "optimised" version that actually works, because it shuffles the order of the port accesses around and that breaks the code, but roughly speaking this is about a quarter of the size and fifteen times faster... or would be fifteen times faster if I didn't actually have to slow it down so the ADC hardware can keep up. Not a problem C programmers would understand.

          ASM isn't that bad especially if you use an assembler that actually helps rather than hinders.

          • (Score: 2) by turgid on Friday October 05 2018, @10:05PM

            by turgid (4318) Subscriber Badge on Friday October 05 2018, @10:05PM (#744816) Journal

            The whole point of C was to be a high-level portable assembler. That's a farcebook link, so I didn't read it, but if that's a complaint about gcc's ARM support, then perhaps that's valid. Other C compilers are available and C is an open standard. By the way, when I were a lad, it looked like Modula-2 would take over the world, not C++.

    • (Score: 4, Interesting) by MichaelDavidCrawford on Thursday October 04 2018, @11:22AM

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @11:22AM (#743981) Homepage Journal

      And I write solid code.
      The rest is Python.

      It's not C++'s fault. It's the fault of the people who have the idea that they can write C++ the same way they right C, but with Classes 'N Stuff.

      Whenever a recruiter solicits me for "C/C++" work I instantly reply to point out that "C and C++ are two _completely_ different language. Please do not use the term "C/C++" any more than you would use the term "Spaghetti/Plutonium"".

      C++ must be written the way C++ _wants_ to be written. RAII - Resource Allocation Is Initialization is _fundamental_ to the design of the language. If you've never even heard of RAII, then you have no understanding of the language.

      C++ is quite carefully specified so that its resource allocations - not just memory, but other resources like file descriptors - have Transactional Commit/Rollback Semantics, just like SQL databases.

      What would happen to your SQL allocation if you committed a failed transaction? What would happen if you committed failed transactions on a regular basis?

      That's what happens when C programmers try to use C++ as "A Better C". It just cannot be done, in much the same way as Plutonium cannot make a better pasta sauce.

      --
      Yes I Have No Bananas. [gofundme.com]
  • (Score: 5, Insightful) by jmorris on Wednesday October 03 2018, @10:43PM (9 children)

    by jmorris (4844) on Wednesday October 03 2018, @10:43PM (#743715)

    Seriously, the bloat is out of hand. Compare Lotus SmartSuite on Win 3.1 to LibreOffice now. Both are full GUI programs with embedding, truetype fonts, bitmap and vector images, etc. Both have word processor, spreadsheet, presentaions, and the usual things one expects. Either would would be perfectly capable of producing a complete book. One shipped on a few floppy discs and the other won't fit on a CD-R anymore. One ran well on a 486 with a few MB of memory and LibreOffice tends to chug unless you have several GB. Measured any way you please, shipping size, resident working set, cycles consumed, LibreOffice needs hundreds of times the resources and offers few compelling features that Lotus lacked to compensate. Yet LibreOffice descends from Star Office that ran on OS/2 on those low resource machines, but the bloat just piled on with each year that went by.

    The linux version of Netscape Communicator in the 1990s ran fairly well on a 486 and perfectly fine on a Pentium. No it didn't support all of html5/css3/etc. but it browsed webpages and did its job. On machines with 8-16MB of ram. MB, not GB. Machines with single cores clocked at a 2 or 3 hundred MHz, not multiple cores cranking out a few GHz optimized out the wazoo to retire multiple instructions per clock. Modern processors often have more cache than machines of that era had for main RAM. Do pages load faster? Do they do a lot of things that simply couldn't have been done then? As a rule, they do not. But they have a lot more ads now. Again, measured any way you want you see hundred of times more resources producing little improvement.

    The problem seems to be idiots. People with zero clue, and violently opposed to demands they get one, slam together obscenely bloated libraries and frameworks, with dependencies of their own, and because there aren't even real books documenting these horrors anymore (O Reilly doesn't even try to sell books anymore, they want you to subscribe to their constantly churning e-books) everyone does the blind leading the blind game on stack exchange. They do this because it is the extent of what they are capable of, they have no actual knowledge of how anything works, just that stacking libraries atop one another will eventually get something that approximates working.

    And now hardware is starting to be built the same way, everything is cookie cutter blocks of "IP" that small fabless entities license, cross license, relicense and tweak until single person knows what is actually inside them, then they toss a final product together and never bother to debug or document any of it before abandoning that one for something entirely different, being bought and absorbed into some bigger but equally fake entity (losing most of their people and documents along the way) and so on.

    How often do you see a new version of a software product released with "Slashed memory use in half!" as a bullet point? How about "Now 33% faster than the previous version on the same hardware!" We should start demanding it.

    • (Score: 2) by suburbanitemediocrity on Thursday October 04 2018, @12:19AM (1 child)

      by suburbanitemediocrity (6844) on Thursday October 04 2018, @12:19AM (#743768)

      I use .com to write all of my documents.

      • (Score: 3, Insightful) by suburbanitemediocrity on Thursday October 04 2018, @12:21AM

        by suburbanitemediocrity (6844) on Thursday October 04 2018, @12:21AM (#743769)

        That should be mail.google.com.

        OTOH, firefox requires about 1000x more memory than an entire QNX install.

    • (Score: 2) by RS3 on Thursday October 04 2018, @03:01AM (1 child)

      by RS3 (6367) on Thursday October 04 2018, @03:01AM (#743811)

      I thought code bloat was out of hand in 1995, but I digress. A friend of mine does stuff like high-end PhotoShop, Premier, Solidworks, etc., and 32 GB RAM is typical for him and his wife. Do they need all of that functionality loaded in RAM? Couldn't they modularize the software? With today's SSD speeds you could demand load and unload a lot of the code more efficiently than OS-level paging. Just a thought.

      With the big problem of CPU security bugs and the somewhat significant loss in performance, it really is time to refine and shrink code.

      One of the best examples of great tight code is the audio recording / editing software "Reaper". Much of it is written in assembly, which doesn't guarantee smallest code but I like to think it's more likely.

      • (Score: 3, Informative) by mhajicek on Thursday October 04 2018, @05:28AM

        by mhajicek (51) on Thursday October 04 2018, @05:28AM (#743870)

        My CADCAM box has 64GB. It's mostly for the data, not the code.

        --
        The spacelike surfaces of time foliations can have a cusp at the surface of discontinuity. - P. Hajicek
    • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @11:33AM (3 children)

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @11:33AM (#743986) Homepage Journal

      Your statement of the problem is far more general than just software:

      For quite a long time now it has been fashionable for politicians to act like idiots even when they're intelligent and educated.

      For quite a long time the Republicans have been steadily working to eliminate the teaching of Critical Thinking in schools for the _specific_ reason that they regard Critical Thinking as inspiring children to disobey their parents. Maybe their parent are idiots, maybe their parents are evil, maybe their parents told them to jump of the Golden Gate Bridge but they plummet to their deaths because they weren't taught Critical Thinking.

      My own high school English and Literature classes _heavily_ emphasized critical thinking. Yes: English, not math nor science. This because math does not permit ambiguity, science has little room for ambiguity but natural language is so expressive specifically _because_ of its ambiguity.

      Now that we have a few generations of adults who weren't taught Critical Thinkking, they readily fall prey to propaganda and transparently false claims.

      --
      Yes I Have No Bananas. [gofundme.com]
      • (Score: 2) by jmorris on Thursday October 04 2018, @04:37PM (2 children)

        by jmorris (4844) on Thursday October 04 2018, @04:37PM (#744169)

        I'll excuse you, considering your issues, for not knowing what is going on there. You are confusing "Critical Theory" with "Critical Thinking." Like all Marxist terminology it uses English sounding words but assigns meanings almost entirely opposite to them. But lets not get off on a political tangent on this thread.

         

        • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @09:40PM (1 child)

          by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @09:40PM (#744333) Homepage Journal

          To have been educated in Critical Thinking leads one to cry "Bullshit" when one sees, hears or reads bullshit.

          That's not always as easy as you might expect. Suppose just for the sake of argument that our _only_ only evidence for or against confirming Judge Kavanaugh was last Friday's hearing. Is he guilty of attempted rape? Is Dr. Ford assassinating a righteous man's character? I have two very close friends who are also my Facebook friends, but not friends of each other. They've been arguing this back and forth for _days_.

          I didn't watch Friday's hearings because I didn't feel the need to: I'm not into TV I'm into reading so I read oodles of articles, essays, rants and manifestos until my eyeballs started bleeding.

          But once having done so, I figured it was important that I watch the hearing, so I watched just a little bit, specifically when Democratic Senator Klobuchar asked Kavanaugh whether he'd ever experienced an alcohol blackout.

          A simple, "No, Senator" would have sufficed, but Kavanaugh couldn't settle for that.

          He want absolutely bananas yet I remain puzzled that out of all those barrels of ink spilled over last Friday's events, only _one_ opinion piece pointed out that "Kavanaugh has a drinking problem". NO ONE has so far reached the conclusion I did the very instant I saw Kavanaugh tear Klobuchar a new asshole:

          tl;dr: he's the very worst kind of alcoholic because he worships beer as if it were a God. I've known several other addicts to worship their drug of choice that way. It is specifically that _worship_ that makes them the worst kinds of addicts, whether they worship beer, weed, heroin or meth:

          You'll never convince a sincere Christian to renounce his faith. Yes america is chock full 'o closeted gay Christian child molesters - but they're not _sincere_ once. The Romans really _did_ feed Christians to lions: lots of Christians, lots of Lions. "Vatican" is Latin for "graveyard". It was at first a swamp where the Roman pitched the bodies of dead Christians. The pope who built the first Vatican Cathedral - there've been two, the first burned down - put it on top of that swamp specifically because the Christian martyrs had _already_ consecrated that ground.

          If you can feed a Christian to lions without him doubting Jesus in the slightest way, then you can impeach Kavanaugh, imprison him for perjury, let him back out on the street with no hope of getting a job because he's a felon, let him sleep out in the rain as he starves to death, yet he will somehow come up with enough money for his beer. I've seen that far more times than I care to think about.

          THAT is Critical Thinking, my friend: I one-upped the entire Democratic Party by noticing what is as plain to me as the nose on my face: Judge Kavanaugh worships his beer.

          As for Critical Theory - it happens that I'm heavily into that actually, but I had never known there was a proper name for it. Thanks!

          --
          Yes I Have No Bananas. [gofundme.com]
          • (Score: 2) by jmorris on Thursday October 04 2018, @10:33PM

            by jmorris (4844) on Thursday October 04 2018, @10:33PM (#744369)

            Critical thinking applied to the current SCOTUS mess actually looks very different. Once you realize that arguing the merits of the he said, she said means you already lost the game you can arrive at the Truth. If there existed 8x10 color glossy photographs of this alleged drunken grope it still does not matter. What happened in high school ~36 years ago (barring an actual criminal act, i.e. a police report, charges, etc) does not matter, Dr. Ford should have never been permitted to grandstand on live TV and this whole sorry episode should have been nipped in the bud right there. Whether the guy drank in high school or college is also unimportant. Justice Breyer actually having an arrest record for underage drinking did not matter, and should not have mattered. Whether he is likely to judge cases while drunk should matter, but Justice Ginsberg attending a State of the Union drunk off her ass didn't matter so....

    • (Score: 3, Interesting) by VLM on Thursday October 04 2018, @12:03PM

      by VLM (445) on Thursday October 04 2018, @12:03PM (#744003)

      measured any way you want you see hundred of times more resources producing little improvement.

      There is a small problem in that bug and error and possibly intentional back door rates scale slightly less than linear with software bloat.

      Thats why 80s home computers could ship with their "OS" in masked rom because the error rate per 8K is low enough to get away with that, whereas 100 gigs of windows or linux will require daily/weekly patching.

      At some point in the future, the bandwidth to patch bloated software has to be factored into memory system design. Like if you had some AI flying car it might require 100 TB of binary code, and a codebase that big would require such a bandwidth of constant patching that you'd need some dedicated hardware between the L1 and L2 on chip CPU cache just to keep up with endless bug fixing. Aside from the issue that 100 TB of binary executable code would probably require more coders than the population of the Earth, etc.

      There is also an interesting competition with EE / telecom error rates. Can you read 8K of executable code from a masked rom without a single bit error? Yeah not too hard. Now try 100 TB of executable code from a hard drive without a single bit error? Not so simple. Eventually the power requirements of sending enormous amounts of executable binary data will exceed the power requirements of actually processing the data, and that will be interesting. No longer will heat production limit clock speeds; heat production will limit times between crashes due to memory read error rate.

  • (Score: 3, Insightful) by ilsa on Wednesday October 03 2018, @10:54PM (6 children)

    by ilsa (6082) Subscriber Badge on Wednesday October 03 2018, @10:54PM (#743725)

    In the old days, hardware was far more expensive than the programmers that wrote the software, so you had to make every byte count.

    Now, the cost of developers is significantly more than the cost of the hardware, which means the focus is now about how to make developers produce the fastest. Anything that makes things easier for the developer is the road taken, no matter how god-awful the product becomes as a result.

    Throw into the mix the current new developer values like 'move fast and break things' (what a f__king idiotic philosophy), etc, and you can easily see why the state of software is so crap now.

    • (Score: 3, Interesting) by inertnet on Wednesday October 03 2018, @11:29PM (3 children)

      by inertnet (4071) on Wednesday October 03 2018, @11:29PM (#743756) Journal

      That, and the fact that all those fancy coders must have the latest, fastest hardware to play with. I bet a lot of them never even realize that most of the world is using dated hardware.

      • (Score: 2) by c0lo on Thursday October 04 2018, @05:30AM (2 children)

        by c0lo (156) Subscriber Badge on Thursday October 04 2018, @05:30AM (#743872) Journal

        That, and the fact that all those fancy coders must have the latest, fastest hardware to play with

        I'm quite a seasoned coder and I must say that I appreciate a machine that can do the compilation of a C++ monster solution (over 50 subprojects in C++ and some 150+ C#) in less than 20 mins - parallel compilation - on my dev desktop.
        The Jenkins slave machine that we use for building manages to do it in under 10 mins, using to-redhot-100% about 50 of the 64 CPU cores (yes, we are already using UBes [buffered.io] inside CI).

        --
        https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
        • (Score: 2) by VLM on Thursday October 04 2018, @12:09PM (1 child)

          by VLM (445) on Thursday October 04 2018, @12:09PM (#744010)

          in less than 20 mins - parallel compilation - on my dev desktop.
          The Jenkins slave machine that we use for building manages to do it in under 10 mins

          Eventually it gets to the point of just have a frigging chromebook connected to an absolute monstrosity of a build farm in vmware. Very few laptops will give you 10 fanless hours of computing with 128 gigs of ram and 36 TB of storage. Thats hard on a desktop too.

          Interesting problem I ran into was vmware performance for multicore can be very bad because the amount of time I can get 32 cores simultaneously is much less than the time I can get 8 cores for four virtual images so wall clock results were way better for large numbers of parallel machines.

          I'm just saying when you can spin up a build box with one click, if you got 50+150=200 projects and access to a corporate sized compute cluster you could probably get that build time down to a minute or less with 200 or so dedicated build boxes. And of course the testing infrastructure. Massive parallelism works REALLY well with test infrastructure.

          • (Score: 2) by c0lo on Thursday October 04 2018, @12:58PM

            by c0lo (156) Subscriber Badge on Thursday October 04 2018, @12:58PM (#744045) Journal

            an absolute monstrosity of a build farm in vmware.

            VM-es simply don't make the cut due to the projects dependencies.

            --
            https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
    • (Score: 3, Interesting) by jelizondo on Thursday October 04 2018, @12:44AM

      by jelizondo (653) Subscriber Badge on Thursday October 04 2018, @12:44AM (#743776) Journal

      Amen brother

      I started "programming" on a VIC-20 with fucking 8 KB (yes, KB) of RAM. So I learned to count bytes and strive for efficiency. Then I was off to dumb terminal world and of course, every byte counts, every instruction counts and one looks with a magnifying glass at everything to make it as lean and fast as possible.

      Some years ago some dude who replaced me at one of my old jobs complained to one of my friends still at that company that he could not understand why some portions of the code (written about 20 years ago) were in machine code! Well, doh, because those portions were bottlenecks and I need the fastest execution possible! And he was complaining because he couldn't read assembler.

      Get off my lawn!

    • (Score: 3, Interesting) by jmorris on Thursday October 04 2018, @05:40PM

      by jmorris (4844) on Thursday October 04 2018, @05:40PM (#744205)

      The problem is not realizing when programmers are more expensive than throwing hardware at a problem and when they aren't. The example in the article was a bad one. A script a single person runs daily and gets a correct answer from in a second or two is not a candidate for any further optimization. If it is a resident process on a billion battery powered devices it is. Between those poles the reward for optimization varies.

      My Fedora desktop is currently wasting 51MB of resident set for a goddamned bluetooth applet written in Python and $deity only knows how many libraries so it can sit idly doing nothing useful. It also need another 42MB for the program that manages the tray icon, it, keeps bluetooth/obex in memory for another 7MB, talks to bluetoothd which squats on another 5MB and interacts with Pulseaudiod and pulse/gconf-helper for another ~22MB. There is no sound currently being produced btw. Over 100MB are currently mapped just for the bluetooth stack. Considering how many Linux desktops there are, all of that is a very good candidate for an optimization project but nobody will do it because they know that before they could complete the work the underlying libraries will change again, the Mad Hatters will reinvent the whole middle layer of plumbing again or perhaps rip and replace the entire desktop. Now consider that Android re-uses some of those bluetooth libs.

  • (Score: 2) by suburbanitemediocrity on Thursday October 04 2018, @12:16AM

    by suburbanitemediocrity (6844) on Thursday October 04 2018, @12:16AM (#743766)

    I remember the exact same thing thirty years ago.

    Somebody needs to create a new language to solve these problems.

    I suggest Ada.

    1. PC name
    2. Reuse
    3. Proven design
    4. Extra money to be made from #2

  • (Score: 5, Insightful) by arslan on Thursday October 04 2018, @12:44AM (2 children)

    by arslan (3462) on Thursday October 04 2018, @12:44AM (#743777)

    Jeez.. some of the stuff on that blog reeks of naivety.

    As a general trend, we’re not getting faster software with more features. We’re getting faster hardware that runs slower software with the same features.

    That is patently untrue. We do get faster hardware with more features. It is just not a feature the user wants, it also includes features the product owner wants like telemetry. But yes, it runs slower.

    The rest of the arguments is more of the same. He doesn't seem to understand that the world at some point went from a very simple

    "I earn money by trying to sell you a product by making the features for you and have longevity to make it attractive to own so you get bang for you buck"

    to

    "I earn money by giving or selling you a product at minimal cost that will give you features you want but also pack with features that will allow me to sell your consumption activity"

    and

    "I earn money by selling you a cheaply manufactured product with the features you want with no longevity at all so we can rinse and repeat this for me to get a continuous revenue stream"

    ... and it goes on and on.

    It is all about consumerism and to some extent globalism. The software industry isn't bad, it is just doing what the market is asking it. Until the market's model changes, the majority of software developers out there who are in it to make a living will continue to do as asked. Only the minority who are financially independent enough will venture into the purist state of his rallying cry.

    • (Score: 2) by jmorris on Thursday October 04 2018, @06:00PM (1 child)

      by jmorris (4844) on Thursday October 04 2018, @06:00PM (#744215)

      See my comment above about the size of the bluetooth stack on Fedora. That isn't being driven by rampant consumerism, it is driven by stupidity.

      • (Score: 2) by arslan on Thursday October 04 2018, @10:22PM

        by arslan (3462) on Thursday October 04 2018, @10:22PM (#744362)

        Sure. I'm sure there lots of example of true stupidity in code. I've seen em myself and dailyWTF and codinghorror has lots of em. The blog post talks about bloatware in browsers and our PCs getting beefier but still going slow. In general all these are because of adware and telemetry. That is not just coding stupidity. That is conscious capitalism.

  • (Score: 2) by goodie on Thursday October 04 2018, @01:01AM

    by goodie (1877) on Thursday October 04 2018, @01:01AM (#743786) Journal

    This is more about software development than software per se. But it relates anyway... Much of what is done is about re-doing the same thing over and over again, just for the sake of it. New framework? Redo what you already implemented with it! And on, and on. I am not a software developer anymore but back then it used to annoy me quite a bit. I long for stability. I am not reluctant to change, but there has to be a good reason for it. Most of the time, I felt like there was not. Could be wrong though...

  • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @01:04AM

    by Anonymous Coward on Thursday October 04 2018, @01:04AM (#743792)

    There is a price to do it 'right'. Most customers dont want to hear that, nor do they care as they have business to do. " Now, and cheap so i can get back to making money. " Tomorrow can wait, until tomorrow.

  • (Score: 2) by CZB on Thursday October 04 2018, @02:35AM (3 children)

    by CZB (6457) on Thursday October 04 2018, @02:35AM (#743804)

    If you can't think of a way to change big industry wide problems, look smaller and find a business or project you can work at that does things right. The market for your product isn't the world, its just your customers who want something done your way.

    • (Score: 3, Funny) by MichaelDavidCrawford on Thursday October 04 2018, @04:36AM (2 children)

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @04:36AM (#743858) Homepage Journal

      Consider security software. If I want to be well-paid to write secure code for a customer that is happy to permit me all the time I required, I'll do so for the CIA.

      But that doesn't do anything to prevent the next Federal Office Of Personnel Management hack.

      The OPM hack, thought to have been perpetrated by the PRC, lifted the applications of every Federal employee who had ever applied for a security clearance. In response the CIA withdrew _all_ of our clandestine agents from China.

      The OPM employee who telephoned my Aunt to inform her that the PRC had lifted Auntie's records too was in tears the whole time they were in the phone.

      What can we do to prevent stuff like that?

      The Internet Protocol spec - the low level IP packet spec specifically, not TCP or UDP - has header fields for Classification - Top Secret, Confidential and the like - as well as Compartment. If you and I both design ICBMs but you do the warheads while I do the engines, you and I will be in different Compartments so our two computers will be unable to communicate.

      That ALL BY ITSELF should have been sufficient to prevent Bradley Manning having lifted all those diplomatic cables.

      But packet-level IP security doesn't work when the Army and the State Department buy their routers online at Alibaba.

      --
      Yes I Have No Bananas. [gofundme.com]
  • (Score: 2) by Rich on Thursday October 04 2018, @02:38AM (2 children)

    by Rich (945) on Thursday October 04 2018, @02:38AM (#743807) Journal

    So, it's been obvious for well over a decade that stuff goes downhill, particularly after what I like to call "peak desktop" in 2010. Just a few days ago, on the topic of the recent Haiku release, I lamented that the base os will run in 192MB, but once modern web technology gets started up, it wants more like 2GB.

    <RANT>But there are faults in everything. We don't need to argue about the modern web, which includes anything XML (whoever thinks XML has even the slightest justification for its existence can leave now, please). Compositing window managers are responsible for gobbling up huge amounts of memory in our computers. Interpreted languages heat away at least a magnitude of CPU cycles over even badly compiled native code. C as the main language for low level development is abysmal, for bearable speed it needs "precompiled header" kludges for what Pascal compilers did with modules over 30 years ago, it can't properly express the bit manipulations that the low-level people need ("hwreg = (hwreg & ~(1<<HWBITSHIFT)) | (setting << HWBITSHIFT);"), its macro processor needs tricks (do { int tmp; ... } while (0)) for locals and can't do anything functional (unless you use the GCC extension, which hasn't made it into the standard in like 20 years or so), and it's libraries are not only unsafe (cf. gets()) but so lacking and awkward that one HAS to turn to something different for acceptable results within reasonable time. Enter any of the "scripting" languages that tend to get slower over time while they pile up cruft. (Note that there's no reason a natively compiling, optionally type safe language could not have a friendly syntax, good libraries, and "just work" from the command line, or even easier, a lean IDE as well).</RANT>

    Anyway, enough of the rant. You've seen that the whole stack is rotten to the bottom. But what are you going to do about it? Crank up your assembler, and start anew? If you were earnest about it, you couldn't even access the assembler's documentation, because the nonexistent browser can't get it through the nonexistent pile-of-crap WLAN stack.

    What options did the Haiku people have with their Web access? Stick to Net+ specs and only display passive HTML? And be looked on like smelly weirdos? So somehow port Chromium or Firefox? And be stuck with TWO browsers to maintain? In went WebKit and with it the complexity and bloat.

    So? Where do we start?

    • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @04:30AM

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @04:30AM (#743854) Homepage Journal

      Forum on Risks to the Public in Computer and Related Systems [ncl.ac.uk].

      For a while now I've been intending to post to RISKS that RISKS does no one any good if the people who create those risks don't read RISKS themselves.

      I first learned of the RISKS Forum when I read a Scientific American article which discussed the Patriot Missile's failure to intercept any SCUDs during the first Persian Gulf War:

      Inappropriate Code Reuse, in the specific case of the Patriot, timing code that was developed for far-shorter time periods that lost accuracy during the longer times during which the Patriot was in flight.

      HOW HARD DOES IT HAVE TO BE?

      I love nothing more than to say "Kids These Days Don't Know How To Write Code" but to actually do so is unproductive: today's Ignorant Kids will be tomorrow's Ignorant Tech Leads.

      We need to get this message into the hands of those who are in a position to do something about it. We all like to blame management, but while management does have some responsibility, the bulk of the guilt lies in The Kids These Days Who Don't Know How To Write Code.

      I've understood this for quite a long time, but other than to point out that it does no good to preach to the converted, I don't have the first clue what to actually do about it.

      --
      Yes I Have No Bananas. [gofundme.com]
    • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @11:41AM

      by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @11:41AM (#743991) Homepage Journal

      The - proprietary - BeOS of which Haiku is an open source clone would install on 8 MB and work _really_ well on 32.

      The very most memory I ever owned during my time as a Be developer was 160 MB.

      --
      Yes I Have No Bananas. [gofundme.com]
  • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @06:07AM

    by Anonymous Coward on Thursday October 04 2018, @06:07AM (#743878)

    Agreed. People were roughly 4x more productive producing desktop software for regular office CRUD apps. The Web screwed the pooch. Deployment & updating was an early problem with desktop apps, but it was growing better over time. CRUD may not be glamorous, but it is common and needed. Some are switching back to desktop dev in our shop.

    Many hoped better JavaScript gizmos and HTML5 would improve Web UI practicality, but mostly failed. JavaScript wasn't designed for large UI engines, but merely a glue language. Things "break" over time as new browsers or other added JS gizmos conflict. It's like DLL-Hell 2.0.

  • (Score: 2) by istartedi on Thursday October 04 2018, @07:15AM

    by istartedi (123) on Thursday October 04 2018, @07:15AM (#743898) Journal

    After a couple decades of "just throw more hardware at it" because "developer cycles are more expensive", is it any wonder that Hello World is several megs and could just as easily mine a bitcoin when you run it?

    --
    Appended to the end of comments you post. Max: 120 chars.
  • (Score: 2) by darkfeline on Thursday October 04 2018, @08:00AM (4 children)

    by darkfeline (1030) on Thursday October 04 2018, @08:00AM (#743919) Homepage

    The author is stupid. He provides this quote, as if it were wrong:

    >I have a Python program I run every day, it takes 1.5 seconds. I spent six hours re-writing it in rust, now it takes 0.06 seconds. That efficiency improvement means I’ll make my time back in 41 years, 24 days :-)

    Except that quote is exactly right. Everything is a tradeoff. If you spend X amount of time worth Y and get Z value out of it, if Y > Z then you don't do the work.

    If you need to spend more money to hire better people to spend more time to write better software that doesn't earn you more money, then you won't do that. Or you'll go bankrupt, which explains why no company is doing that; the ones that were doing that don't exist any more.

    --
    Join the SDF Public Access UNIX System today!
    • (Score: 2) by shortscreen on Thursday October 04 2018, @09:21AM (3 children)

      by shortscreen (2252) on Thursday October 04 2018, @09:21AM (#743953) Journal

      The dev time ROI might end up being a bit less than 41 years with a smiley after it. For instance, what if that program has 100,000 users and not just one?

      • (Score: 2) by MichaelDavidCrawford on Thursday October 04 2018, @11:58AM

        by MichaelDavidCrawford (2339) Subscriber Badge <mdcrawford@gmail.com> on Thursday October 04 2018, @11:58AM (#743999) Homepage Journal

        For years now I've been advocating for the refactoring of source code in such a way that its execution uses less electrical energy.

        For reasons I don't fully understand, many of my fellow Kuro5hin members regarded my idea as ludicrous, despite that I pointed out that surely there is _some_ reason why computers have power cords or batteries.

        "Intel giveth, but Apple taketh away": hardware designers work like slaves to eke little efficiency gains out of their components in the hope that the entire chip will use substantially less power, generate substantially less heat and execute code substantially faster.

        Yet not just apple with its Cocoa and Cocoa Touch but _every_ software vendor - INCLUDING OPEN SOURCE DEVELOPERS - when given a CPU that's twice as fast, write code that's four times as slow.

        A while back I read the source to glibc's qsort(). While well-written and not strictly quicksort but a highly-regarded improvement on quicksort, that code was written for a SPARC 1 in 1990. Surely it could be improved?

        We have CPUs with zillions of cores which work really well for servers with zillions of clients, but all those cores do us no good whatsoever when that CPU has just one user running just one program.

        This because no one can be bothered to learn concurrent algorithm design and coding. Yes, multithreaded code is hard to get right - but it _can_ be done. Concurrent code need not use threads, that's why Apple created - and Open Sourced! - Grand Central Dispatch, which facilitates multicore code _without_ the use of threads or complex locking.

        There are _many_ other ways to do concurrent coding.

        As for qsort(): it's not good enough just to make a concurrent quicksort, because the first pass is inherently single-threaded. While you can make its implementation run faster for a given N, it still won't be any faster than O( n lg n ).

        But parallel computation has been an active area of research SINCE THE NINETEEN FUCKING FORTIES because we have always known that computers will never run so fast that we can't find good reason to make them faster. Consider weather forecasting, or nuclear weapons design.

        Just Read The Damn ACM Proceedings when you wonder about how to replace single-core code with multicore.

        Consider that it's only been since 2000 or so that Linux has been able to do what MULTICS was able to do in the sixties. UNIX was not by any means intended to insult MULTICS or to be better than MULTICS, rather the original UNIX coders wrote UNIX for fun and relaxation after having worked so hard to get MULTICS to work so incredibly well.

        The reason why UNIX won but MULTICS lost was that (I don't really know but expect) that MULTICS was written in Assembler for a very high-end mainframe, whereas of course UNIX was written in C, with the original UNIX kernels being very, very efficiently written in ways that are completely unsuitable for modern uses, for example the inode table was a fixed-size array, so if you want to open more files you had to relink the kernel.

        --
        Yes I Have No Bananas. [gofundme.com]
      • (Score: 2) by darkfeline on Thursday October 04 2018, @07:16PM (1 child)

        by darkfeline (1030) on Thursday October 04 2018, @07:16PM (#744265) Homepage

        What if a small town gets a lot of tourism in the future? Clearly, that is valid justification to spend millions to build a ten lane highway through the town now.

        --
        Join the SDF Public Access UNIX System today!
        • (Score: 2) by shortscreen on Thursday October 04 2018, @08:04PM

          by shortscreen (2252) on Thursday October 04 2018, @08:04PM (#744289) Journal

          So your business plan is to sell a shoddy product, wait for it to become popular despite its shoddiness, and only then consider improving it? (If so, you may not be alone.)

  • (Score: 0) by Anonymous Coward on Thursday October 04 2018, @11:23AM

    by Anonymous Coward on Thursday October 04 2018, @11:23AM (#743982)

    Here, let's list some ways to make your desktop leaner and meaner.

    1) Self configured and compiled Linux kernel
    2) If you have a beefy computer, maybe compile your entire stack, i.e. use Gentoo. Notice the possibility to cross compile targeting weaker machine.
    3) Openbox window manager

  • (Score: 3, Insightful) by VLM on Thursday October 04 2018, @11:52AM (1 child)

    by VLM (445) on Thursday October 04 2018, @11:52AM (#743997)

    So this all boils down to, "you can write Java in any language"

    With a side dish of the only difference in poor performance between the software devs and, say, the VP of diversity, is you can trivially measure the job performance of the software devs. So the accounting woman who takes 3x longer than it "should" to process reimbursements, or the HR people who mostly turn valuable oxygen into greenhouse gasses, are just as incompetent but never measured and reported. The sales droids have a numeric result, but what they promise the customer need have no relationship with reality, unlike the devs.

    At LEAST half the W-2 workers in any business were below the median in their educational classes because higher performers tend to not do W-2 type of work, so the bulk of code "in the wild" is always going to be at or below the median of "Java 101" homework standards.

    • (Score: 2) by jmorris on Thursday October 04 2018, @05:00PM

      by jmorris (4844) on Thursday October 04 2018, @05:00PM (#744180)

      Now that is a dank take on the world. Everything sucks. And probably accurate. May SMOD relieve our suffering!

(1)