Slashdot Mirror


Remember the Computer Science Past Or Be Condemned To Repeat It?

theodp writes "In the movie Groundhog Day, a weatherman finds himself living the same day over and over again. It's a tale to which software-designers-of-a-certain-age can relate. Like Philip Greenspun, who wrote in 1999, 'One of the most painful things in our culture is to watch other people repeat earlier mistakes. We're not fond of Bill Gates, but it still hurts to see Microsoft struggle with problems that IBM solved in the 1960s.' Or Dave Winer, who recently observed, 'We marvel that the runtime environment of the web browser can do things that we had working 25 years ago on the Mac.' And then there's Scott Locklin, who argues in a new essay that one of the problems with modern computer technology is that programmers don't learn from the great masters. 'There is such a thing as a Beethoven or Mozart of software design,' Locklin writes. 'Modern programmers seem more familiar with Lady Gaga. It's not just a matter of taste and an appreciation for genius. It's a matter of forgetting important things.' Hey, maybe it's hard to learn from computer history when people don't acknowledge the existence of someone old enough to have lived it, as panelists reportedly did at an event held by Mark Zuckerberg's FWD.us last Friday!"

95 of 479 comments (clear)

  1. Back to BASIC by Bob_Who · · Score: 3, Funny

    10 GOTO 20
    20 GOTO 10

    1. Re:Back to BASIC by Samantha+Wright · · Score: 4, Informative

      Here's some worthwhile reading on why Lisp has trouble staying put—possibly a little flamebait-y: Lisp is not an acceptable Lisp, The Lisp Curse, and Revenge of the Nerds. The core arguments seem to be (a) it's really easy to invent things in Lisp so no one can agree on how to do it, and (b) the lack of a coherent standard platform means there is no easy target for university courses or job descriptions.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    2. Re:Back to BASIC by cheater512 · · Score: 5, Funny

      Lisp never 'comes back'. It merely recurses.

    3. Re:Back to BASIC by Darinbob · · Score: 3, Insightful

      Lisp is easy to get good programs from. You just have to stop thinking in non-Lisp ways. What confuses people is the functional orientation, but if you don't understand functional style of programming then a lot of modern stuff will pass you by. Procedural stuff is very easy in lisp too.

    4. Re:Back to BASIC by phantomfive · · Score: 2, Insightful

      ok, I can understand not liking whatever language, but you think C++ is better than LISP? Seriously? And because it's easier?

      --
      "First they came for the slanderers and i said nothing."
    5. Re:Back to BASIC by Jeremi · · Score: 2

      Your fork bomb fizzles due to running out of stack.

      Any C compiler worth its salt will recognize the tail-call recursion and rewrite/optimize that code into a loop... so the bomb will go off after all as long as you compile with -O3. ;)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    6. Re:Back to BASIC by ShanghaiBill · · Score: 2

      Lisp is easy to get good programs from.

      Then name some "good programs" written in Lisp. I have worked with thousands of programs written in C. Plenty in C++, Java, Perl, Python, and even a few in Ruby. But other than Emacs scripts, I have never come across Lisp in a non-academic program.

    7. Re:Back to BASIC by ebno-10db · · Score: 3, Informative

      What confuses people is the functional orientation

      Whether or not a language is functional is a matter of degree (just as whether or not a language is dynamic is a matter of degree).

      Out-of-the-box Lisp is not nearly as much a functional language as *ML or Haskell. There is no pattern matching for example. Of course you can turn Lisp into a functional language, which is what Qi is. In true Lisp fashion it's incredibly clever - 10k lines of CL and you've got a functional language that is arguably even more of a functional language than Haskell (not sure about functional specific optimizations though). And also in true Lisp fashion, there's already a (not fully compatible) fork/successor called Shen (by the same guy who created Qi!).

      In other words it's an ongoing experiment, rather than something you can rely on. It grew out of the L21 project, which was supposed to be about Lisp for the 21st century. The lesson is that Lisp for the 21st century is just like Lisp for the 20th century - incredibly clever and powerful but not stable or standardized enough to rely on. Of course the great exception to that is Common Lisp - a byzantine composite of many pre-1985 dialects, warts and all, that hasn't really been updated in 27 years.

    8. Re:Back to BASIC by ebno-10db · · Score: 4, Insightful

      it gives me somewhat of a sign of relief to see C, C++ and Java/C# be stable in the face of this recurring tide of fad languages

      Sheesh, kids today. I remember when C++, Java and C# were the fad languages. I even remember when C outside of the Unix world was a "fad" replacing Fortran, Basic and Pascal. The "classic" languages you grew up with are not the end of programming language evolution.

      OTOH I admit that the so-called Cambrian explosion of languages really needs to be followed by a mass extinction. Perl, Python, Ruby, Lua, etc., etc., etc. You could spend the rest of eternity debating their pros and cons, but do we really need all of them? It's great if you want to spend the rest of your life learning yet another genius's "best of" mix of existing language ideas, but it sucks if you just want to get work done. Then there's Clojure, because what the Lisp world really needs is yet another dialect, and F# because, uh, well OCaml has been around a while and we really want yet another variant, and ...

    9. Re:Back to BASIC by ebno-10db · · Score: 2

      you think C++ is better than LISP? Seriously?

      It's absurd to talk about which is better except with respect to a certain type of application. For example, deeply embedded processors running on an RTOS (not embedded Linux or something), or even bare metal, with memory limitations and hard real-time constraints measured in tens of microseconds is not the best environment for Lisp (or any GC language for that matter).

    10. Re:Back to BASIC by ebno-10db · · Score: 2

      Things really started going downhill when BASIC came out.

      BASIC came out in 1964.

    11. Re:Back to BASIC by ebno-10db · · Score: 2

      It works fine if you're judicious about what C++ features to use, and when and where to use them. As much of a pig as C++ is, one thing Stroustrup got right was making it a true multi-paradigm language, and he stuck to the principle of not dragging in any baggage or overhead that you don't explicitly ask for.

    12. Re:Back to BASIC by Darinbob · · Score: 4, Informative

      Macsyma? Emacs itself is more Lisp than C. Zork was a Lisp dialect. Mirai is lisp, and was used to do animation in Lord of the Rings. Lots of expert systems. Several CAD systems and other modelling programs. Data analysis stuff. Whoever uses Clojure is using Lisp and it seems to have some traction. And Orbitz is apparently using a lot of Lisp internally (just to throw out a web site since some people think it's not real if it's not a web site or PC app).

    13. Re: Back to BASIC by Therad · · Score: 5, Funny

      and he is still right. ;)

    14. Re:Back to BASIC by ebno-10db · · Score: 3, Informative

      It can be done in C++, but why go to the extra effort?

      What extra effort is that? Calling your files *.cpp instead of *.c? Ok, that is an extra two letters per file name.

      The why is so that you can take advantage of C++ features. Templates for example are a great way to write very fast code, and if you know what you're doing you don't get the dreaded bloat. Object based programming is a nice way to encapsulate things and adds zero overhead. True OO can be used judiciously in the non-speed critical parts (often a clean way to have a single image handle several minor hardware variants). A combination of object based and operator overloading can be a clean way to handle the semantics of fixed point DSP, which don't map nicely to most languages.

      C++ is not designed for efficiency.

      Read Stroustrup. As I already said, one of the key design principles was not to add overhead unless you explicitly ask for it. It was designed to be as efficient as you need it to be.

      If you don't care quite so much about efficiency, use LISP

      1. GC and HRT? Don't go.

      2. Even where you can write Lisp to be as efficient as C/C++ for low level operations, all you're doing is writing C/C++ in Lisp. What's the point?

      3. How many Lisps, Schemes, whatevers, have you seen for cross-development to DSP's and other architectures that are usually only embedded, have good optimizers (ala SBCL for example), and can run without an OS?

    15. Re:Back to BASIC by TheRaven64 · · Score: 4, Interesting

      The first C book I read spent most of the first chapter justifying why you'd use a high-level language like C instead of assembly. How times change...

      --
      I am TheRaven on Soylent News
    16. Re:Back to BASIC by K.+S.+Kyosuke · · Score: 3, Insightful

      For example, deeply embedded processors running on an RTOS (not embedded Linux or something), or even bare metal, with memory limitations and hard real-time constraints measured in tens of microseconds is not the best environment for Lisp (or any GC language for that matter).

      It's the best environment for Forth, and conversely, Forth is the best language for than environment.

      --
      Ezekiel 23:20
    17. Re:Back to BASIC by DuckDodgers · · Score: 3, Insightful

      There are also thousands of failed projects in C, C++, Java, Perl, Python, and Ruby. There are two separate questions to debate - whether Lisp is a good language to use, period, and what obstacles there are to widespread adoption. Obviously if Lisp sucks, then that can be a big obstacle to widespread adoption.

      But there's a famously quoted statement by Guy Steele, who wrote some of the Lisp language specs and Java language specs. "we were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp." ( http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg04045.html )

      Going from C to C++ is easy, I did that. Going from C++ to Java is easy. I did that too. Going from Java to Lisp is damn difficult, at least for me. But the fact that teaching mainstream C, C++, and Java developers Lisp is difficult merely makes it unlikely Lisp will be popular. It does not prove Lisp is a poor language.

    18. Re:Back to BASIC by 0racle · · Score: 2

      it sucks if you just want to get work done

      So pick a language you're good at and get work done. The existence of other languages doesn't prevent that. The one true language is never going to happen.

      --
      "I use a Mac because I'm just better than you are."
  2. It's not the programmers making the decisions by cultiv8 · · Score: 4, Insightful

    It's managers and executives who make the decisions, and to them whether it's a browser or mobile app or SaaS or whatever the latest trend is, who cares if you're reinventing the wheel as long as profits are up.

    --
    sysadmins and parents of newborns get the same amount of sleep.
    1. Re:It's not the programmers making the decisions by fldsofglry · · Score: 5, Insightful

      Also in line with this: I can't imagine that way patents work actually help with the problem of inventing the wheel. You almost have to reinvent the wheel to create a working solution that won't get you sued.

    2. Re:It's not the programmers making the decisions by DaveAtFraud · · Score: 2, Insightful

      It's managers and executives who make the decisions, and to them whether it's a browser or mobile app or SaaS or whatever the latest trend is, who cares if you're reinventing the wheel as long as profits are up.

      That hasn't changed either. Just the specific subject of the idiocy has changed. Idiotic managers are timeless. Lady Ada probably had the same thing to say about Charles Babbage.

      Cheers,
      Dave

      --
      They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
      Ben
    3. Re:It's not the programmers making the decisions by sjames · · Score: 5, Informative

      Actually, it was Babbage who faced such idiocy from Parliament:

      On two occasions I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.

      And you thought the clogged tubes thing was bad.

    4. Re:It's not the programmers making the decisions by Opportunist · · Score: 2

      Ah, so that's why progress was possible back then and near absent today?

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    5. Re:It's not the programmers making the decisions by TheRaven64 · · Score: 5, Interesting

      There was a point made at the 30-year retrospective talk at last year's European Smalltalk conference. If you have two languages, one of which allows developers to be more efficient, then you will end up needing fewer developers for the same amount of work. Unless your entire company uses this language and never experiences mergers, then this group of developers will be outnumbered. When you begin a new project or merge two projects, management will typically decide to pick the language that more developers have experience with. If you have a team of 100 C++ programmers and another team of one SilverBulletLang programmers, then it seems obvious that you should pick C++ for your next project because you have vastly more experience within the company in using C++. The fact that the one SilverBulletLang programmer was more productive doesn't matter. In the real world, languages tend not to be silver bullets and so the productivity difference is more in the factor of two to five range, but that's still enough that the less-productive language wins.

      --
      I am TheRaven on Soylent News
    6. Re:It's not the programmers making the decisions by Xest · · Score: 5, Insightful

      That's such a cop out and it's not true. Most the managers making these decisions are technical managers who come from development backgrounds themselves.

      There is a problem at a more fundamental level, even outside of determining what buzzwords to use for a product and it's prominent even in some of the higher echelons of web society. The most obvious I'm going to point out is that of HTML5 - it's a braindead spec full of utterly amateur mistakes that could've been avoided if only Ian Hickson had spent 5 seconds understanding why existing things were the way they were and why that mattered.

      An obvious example is that of HTML5's semantic tags, using a study to determine a static set of tags that would be used to define semantic capabilities in a spec that was out of date before the ink had even dried was just plain stupid. The complaint that we needed more readable markup rather than div soup to make writing HTML was naive, firstly because amateurs just don't write HTML anymore, they all publish via Facebook, Wordpress and so forth, and secondly because there's a good reason markup had descended into div soup - because genericness is necessary for future-proofing. Divs don't care if they're ID is menu, or their class is comment, they're content neutral, they don't give a fuck what they are, but they'll be whatever you want them to be which means they're always fit for the future. In contrast HTML5 tried to replace divs with tags such as aside, header, footer and so forth which would be great except when you have a finite number of elements you end up with people arguing about what to do when an element doesn't fit. Do you just go back to using divs for that bit anyway or do you fudge one of the new tags in because it's kinda-loosely related which means you bastardise the semantics in the first place because we now don't really know what each semantic tag is referring to because it's been fudged in where it doesn't make a lot of sense?

      The real solution was to provide a semantic definition language, the ability to apply semantics to classes and IDs externally. Does that concept sound familiar? It should because we had the exact same problem with applying designs to HTML in the past and created CSS. We allowed design to be separate from markup with external stylesheets because this had many benefits, a few obvious ones:

      1) Designers could focus on CSS without getting in the way of those dealing with markup making development easier

      2) We could provide external stylesheets for no longer maintained sites and have the browser apply them meaning there is a method to retrofit unmaintained sites with new features

      3) Our markup is just markup, it just defines document structure, it does one thing and one thing well without being a complete mess of other concepts.

      Consider that these could've been benefits for building a semantic web if HTML5 had been done properly too. The fact that Ian Hickson failed to recognise this with HTML5 highlights what the article is talking about exactly. He's completely and utterly failed to learn the lessons before him as to why inline styling was bad but on a more fundamental level demonstrates a failure to understand the importance of the concept of separation of concerns and the immense benefits that provides that was already learnt the hard way by those who came before him. His solution? Oh just make HTML5 a "living spec" - what? Specs are meant to be static for a reason, so that you can actually become compliant with them and remain compliant with them. Spec compliance once you've achieved it shouldn't ever be a moving target. That's when you know you need to release a new spec.

      It's a worrying trend because it's not just him, I see it amongst the Javascript community as they grow in their ambition to make ever bigger software but insist that Javascript is all they need to do it. The horrendously ugly fudges they implement to try and fudge faux-namespaces into the language in a desperate attempt to alleviate the fact the Javascript was just neve

    7. Re:It's not the programmers making the decisions by captainClassLoader · · Score: 4, Insightful

      What I've seen in the 3 decades I've been in the industry is that the number of programmers using OldVanillaLang versus SilverBulletLang is less of an issue - Managers are often willing to go with a more resource-efficient solution, given that IT/MIS departments are often considered overhead on the bean counter spreadsheets. The thing that keeps managers on the OldVanillaLang track is the answers to the questions: "Supposed my SilverBulletLang guys leave - Who takes over their code? How do I evaluate SilverBulletLang developers in interviews? And since they're rare, can I afford them?"

      --
      "The plural of anecdote is not data" -- Bruce Schneier
    8. Re:It's not the programmers making the decisions by TheRaven64 · · Score: 2

      You're missing the point. Developers may pick the language, but if you've only hired a tenth as many programmers for language A than as for language B (because those who use language A are ten times more productive), then when you come to start a new project you'll have ten times as many advocates for language B as you do for language A. Which language will your development team pick?

      --
      I am TheRaven on Soylent News
  3. A (very) recent OSCON talk by zmughal · · Score: 5, Informative

    John Graham-Cumming gave a talk at OSCON 2013 titled "Turing's Curse" that speaks to this same idea. Worth a watch.

  4. We don't shun those who should be shunned. by Anonymous Coward · · Score: 5, Insightful

    It's pretty damn obvious why this is: as an industry, we no longer shun those who should definitely be shunned.

    Just look at all of the damn fedora-wearing Ruby on Rails hipster freaks we deal with these days. Whoa, you're 19, you dropped out of college, but you can throw together some HTML and some shitty Ruby and now you consider yourself an "engineer". That's bullshit, son. That's utter bullshit. These kids don't have a clue what they're doing.

    In the 1970s and 1980s, when a lot of us got started in industry, a fool like that would've been filtered out long before he could even get a face-to-face interview with anyone at any software company. While there were indeed a lot of weird fuckers in industry back then, especially here in SV, they at least had some skill to offset their oddness. The Ruby youth of today have none of that. They're abnormal, yet they're also without any ability to do software development correctly.

    Yeah, these Ruby youngsters should get the hell off all of our lawns. There's not even good money in fixing up the crap they've produced. They fuck up so badly and produce so much utter shit that the companies that hired them go under rather than trying to even fix it!

    The moral of the story is to deal with skilled veteran software developers, or at least deal with college graduates who at least have some knowledge and potential to do things properly. And the Ruby on Rails idiots? Let's shun them as hard as we can. They have no place in our industry.

    1. Re:We don't shun those who should be shunned. by DutchUncle · · Score: 2

      I think you were trolling, but there's a point under there. In the 70s you had to have a clue to get anything done. As more infrastructure and support system has been built, in the interest of not having to reinvent the wheel every project, you *can* have people produce things - or appear to produce things - while remaining clueless. Flash and sizzle have been replacing the steak.

    2. Re:We don't shun those who should be shunned. by Anonymous Coward · · Score: 2, Insightful

      I can tell that you're young simply because you used C++ in a debate where someone slightly older would have used C. Either that, or you're a Windows programmer.

      C utterly dominated open source (and thus the Slashdot community) until about 5 years ago. That's when the overwhelming number of university switched to C++. Of course, before that it was Java, so you can see the trend.

      Unless you're a Windows programmer, I'd stick with C, which is infinitely simpler, and provides you freedom to maintain competency in other languages, many of which have far cooler features than C++ will ever be able to provide.

    3. Re:We don't shun those who should be shunned. by symbolset · · Score: 5, Interesting

      These guys were openly publishing their brilliance before hiding how your shit works was even a thing. Believe it or not once upon a time if you invented a brilliant thing in code you shared it for others to build upon so you could learn and grow and benefit. Hiding it for profit wasn't even thought of yet. It wasn't just undesirable: the thought did not even occur. That was the golden age of much progress, as each genius built upon the prior - standing upon the shoulders of giants reaching for fame. Now that we're in a hiding era we go around and around reinventing the same shit over and over, suing each other over who invented it first. It is madness. In the process we have moved backwards, losing decades of developed wisdom.

      --
      Help stamp out iliturcy.
    4. Re: We don't shun those who should be shunned. by Anonymous Coward · · Score: 2, Insightful

      I'm offended that ruby keeps getting thrown in with this Node/NoSQL stuff. Node has a couple of real use cases, but outside of that its a waste of time. NoSQL has a couple of real use cases, but outside of them it's not something you build around.

      Ruby on the other hand is a really interesting language that has the benefit of being so flexible that its made for creating DSLs. Puppet, Chef, Capistrano and Rails just off the top of my head. Do some libraries have memory leak issues? Yes. Does its thread handling suck? Yes. Does jRuby fix all of that? Yes. Does Torquebox let you deploy on hardened JBoss infrastructure? Yes. Is the rails community driving a huge chunk of the web to embrace PostgreSQL over MySQL...? Yes.

      Ruby and specifically jRuby is a powerful development platform with a great community around it. It is not deserving of being thrown in with the likes of Node as a fad. The biggest issue I see in Rails code is developers that try to do everything in Rails instead of leveraging their database but the popularity of PostgreSQL and its features are even starting to change that.

    5. Re:We don't shun those who should be shunned. by Anonymous Coward · · Score: 2

      Some universities have been teaching since 1995, and before. But it wasn't until the last 5 or so years that the majority of graduates only think in terms of C++ to the odd exclusion of C. Your opinion would have been non-existent 10+ years ago, especially on Slashdot and in the open source community.

      Yes, C++ has useful features. But C++ doesn't integrate with other languages as well as C because of exceptions and name mangling. And there is no subset of C++ which is C, because C99 and C11 have many basic features which are not only incompatible, but unsupportable in C++. For example, C99 compound literal arrays cannot be supported in C++ because of the different semantics of temporary objects. I just ran into a bug like this the other day where someone copy+pasted some C code into C++, which caused a silent bug until compiled with a very recent version of GCC which emitted a warning about the different semantics.

      Why would I ever write both crippled C++ and crippled C? If you want C code, write C code. If you want C++ code, write C++ code. But it's idiotic to pretend that C++ can replace C.... it can't, not anymore than Ruby can replace C.

      I personally prefer C because a humanoid can actually comprehend the C standard. The C++ standard is incomprehensible even by the authors, and C++ programmers are as apt to be cargo-cultists as someone who writes JavaScript, simply because the language is so complex they don't even bother trying to understand it in its entirety. If I forget something about C, I can easily go to the C standard. You can't do the same for C++ because the standard is written for the benefit of compiler writers, not users. The semantics for any particular feature are spread scatter-shot throughout the standard, which is also an order of magnitude larger than C's standard, and even worse when you exclude their respective libraries and stick to language syntax and semantics.

      But if you're comfortable using a language where you can't know it inside-and-out, good for you. But please keep your software away from me. I prefer being a _master_ of C, and a _master_ of several other languages. C++ only has slaves.

    6. Re:We don't shun those who should be shunned. by sg_oneill · · Score: 2

      To be honest, I sort of softened on ruby on rails after being forced to endure a project on it, and must to my teeth-grinding resentment, actually found it a decent and productive environment (Although I'd say Django more so because of its relative lack of magic, and hey who doesn't enjoy screwing around with python).

      Now don't get me started on javascript on the server and NoSQL systems. Somewhere between "lets call ourselves amazing because we got a god damn web browser script environment to implement a pattern that was considered dubious 20 years ago" and "Fuck integrity shits faster in memory also lets just forget 40 years of database academia and make a HTML5 slideshow instead", you can see where my greying heckles start to rise.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    7. Re:We don't shun those who should be shunned. by Darinbob · · Score: 2

      And Ruby is just a hobbled variant of Smalltalk anyway.

    8. Re:We don't shun those who should be shunned. by Darinbob · · Score: 2

      That's why I don't work in areas where that can be done. In embedded systems you still need to know the basics and can't just rely on the web technology invented last week. Even in mobile devices they need bare metal C coders (I just got a recruiter letter for it too). Gotta know hardware, operating systems, some assembler, debug from core files, good algorithms, communication with other processors, etc. Try getting a $10/hour a guy doing that, or someone who thinks a certificate is proof of qualifications.

    9. Re: We don't shun those who should be shunned. by MillerHighLife21 · · Score: 3, Interesting

      Package management and fit for purpose tool chains don't exist in other languages? Is that a joke? Have you seen the Ruby gem ecosystem? Have you seen the Java ecosystem? You can do everything that you described in Ruby or Python without blinking and you won't incur the technical debt that Node's global insanity creates. Node came a long and people went "OMG! Non-blocking I/O!" and everybody else with a pulse looked at it and said...yea, that's what background workers are for but background workers encapsulate the logic instead of letting it all float around in one process. Eventually, node code grows to insanity.

      Mongo is awesome...for write heavy applications. In most applications that means that one table could probably be better served with Mongo. For logging or cloud based data aggregators it's EXCELLENT. It's a fantastic session store too. Also a great query cache. That doesn't make it the optimal tool for your entire system where you might actually care about normalization, data compression, data integrity or the amount of hard drive space required to store all the data bloat that comes with it.

      I can built a fully functional ecommerce system with an API, payment gateways, account system and analytics in 2 weeks (and most of that is just setting up the payment gateway and merchant account) with Ruby, Python, Groovy or Scala. With 1 person. Having it do $100k / month in sales is a product of what it's offering, how effectively it's marketed, how the supply chain side of the business can scale with demand and has absolutely zero to do with Node and/or Mongo.

      Are you actually serious with such an example?

      --
      "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    10. Re:We don't shun those who should be shunned. by grcumb · · Score: 2

      I Googled "A poor worker blames his tools". All I got was links to Craftsman and Harbor Freight.

      I bet you're blaming Google for this.... :-)

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    11. Re:We don't shun those who should be shunned. by snehoej · · Score: 2

      Inheritance is un-useful, and C code is more maintainable and portable than C++? No offense, but I'm not sure you're getting the whole OO thing.

    12. Re:We don't shun those who should be shunned. by goose-incarnated · · Score: 2

      "C has no un-useful parts"

      setjmp / longjmp ?!?

      Very very very useful when writing error handlers for functions way on down the stack. Much more crufty than C++ exceptions, but a helluva lot more helpful when debugging signal-based coded.

      --
      I'm a minority race. Save your vitriol for white people.
    13. Re:We don't shun those who should be shunned. by TheRaven64 · · Score: 3, Insightful

      This is one of the sayings that's always bugged me. It's true, but that's because the first thing that a good workman does is pick appropriate tools, or build them if they don't exist. Many of the great scientists, artists and craftsmen over the decades have been as well remembered for the tools that they created as for the things that they did with the tools, yet this saying is often used to mean 'put up with crappy tools, their limitations are your fault,' when it should mean 'if you are failing because of bad tools, it's your fault for not using better ones.'

      --
      I am TheRaven on Soylent News
    14. Re:We don't shun those who should be shunned. by TheRaven64 · · Score: 4, Interesting

      The designers or Ruby wanted Smalltalk with Perl syntax. I find it amazing that anyone could look at Smalltalk and think 'the one thing this needs to make it better is Perl syntax'. And you can substitute pretty much any language for Smalltalk in the last sentence.

      --
      I am TheRaven on Soylent News
    15. Re:We don't shun those who should be shunned. by Pino+Grigio · · Score: 2

      That's utter bullshit. When you file a patent, you describe in detail the technique you used. You can't file one if you don't. You're putting it into the public domain. It can't be exploited (assuming the patent holds), but it's still out there.

    16. Re:We don't shun those who should be shunned. by serviscope_minor · · Score: 2

      The un-useful parts - overloading and inheritance for example, detract from that.

      C has overloading. The + operator is overloaded so that it operates differently on pointers, ints, chars, floats, doubles and various combinations of the two. Could you imagine actually using a language without overloading?

      I have used them and the result is not particularly pleasant.

      Likewise for C++ which has *user defined* overloading. The idea of writing complex maths in C is horrible compared to C++.

      And inheritance? How is that *not* useful? It is really "easier" to use 27 different ad-hoc OO systems in C than one fixed one in C++?

      why am I doing this? Could this not be done better without the C++ extensions to C?"

      And the answer is usually "no". C++ + STL has a vastly different feel to it from plain C. I had to go back to writing C recently after a long haitus. The sheer quantity of boilerplate you have to put in which obscures the program logic is so frustrating. Everything from resizable arrays to strings to more complex data structures is just an immense amount of work by comparison. And you gain none of efficiency, ease of use, maintainability or portability for the work.

      C++ implementation is a crutch because it makes assumptions that will not always be valid.

      The memory and machine model of C++ is almost identical to C and it's very simple to mentally convert C++ things like inheritance into C code. The C++ compiler isn't making unwarranted assumptions. If unwarranted assumptions are being made then it is you who are misunderstanging C++ and making bad assumptions.

      --
      SJW n. One who posts facts.
    17. Re:We don't shun those who should be shunned. by Marc_Hawke · · Score: 2

      Neither one of your meanings matches how I've always heard it. A poor worker will try to place the blame on someone else. "It couldn't have been my fault, they must have been bad tools." So the tools were the constant rather than the variable.

      --
      --Welcome to the Realm of the Hawke--
    18. Re:We don't shun those who should be shunned. by nitehawk214 · · Score: 2

      I think you were trolling, but there's a point under there. In the 70s you had to have a clue to get anything done. As more infrastructure and support system has been built, in the interest of not having to reinvent the wheel every project, you *can* have people produce things - or appear to produce things - while remaining clueless. Flash and sizzle have been replacing the steak.

      Now it's html5 and sizzle.

      --
      I'm a good cook. I'm a fantastic eater. - Steven Brust
  5. Paging Linus by TubeSteak · · Score: 3, Insightful

    http://scottlocklin.wordpress.com/2013/07/28/ruins-of-forgotten-empires-apl-languages/#comment-6301

    Computer science worked better historically in part because humorless totalitarian nincompoopery hadn't been invented yet. People were more concerned with solving actual problems than paying attention to idiots who feel a need to police productive people's language for feminist ideological correctness.

    You may now go fuck yourself with a carrot scraper in whatever gender-free orifice you have available. Use a for loop while you're at it.

    --
    [Fuck Beta]
    o0t!
    1. Re:Paging Linus by phantomfive · · Score: 3, Informative

      For those who didn't catch it, he's an APL programmer. "Use a for loop" for him is the biggest insult in that entire paragraph.

      --
      "First they came for the slanderers and i said nothing."
  6. Hive: distributed and free by michaelmalak · · Score: 2, Interesting

    That's genius: comparing a "$100k/CPU" non-distributed database to a free distributed database. Also no mention that, yes, everyone hates Hive, and that's why there are a dozen replacements coming out this year promising 100x speedup, also all free.

    And on programming languages, Locklin is condescending speaking from his high and mighty functional programming languages mountain, and makes no mention of the detour the industry had to first take into object-oriented programming to handle and organize the exploding size in software programs before combined functional/object languages could make a resurgence. He also neglects to make any mention of Python, which has been popular and mainstream since the late 90's.

    1. Re:Hive: distributed and free by phantomfive · · Score: 3, Interesting

      He's talking about APL, that's not a functional language. It's an array based language, of which Dijkstra said, ""APL is a mistake, carried through to perfection."

      --
      "First they came for the slanderers and i said nothing."
  7. large teams by fermion · · Score: 2

    One of the things that I still see is the idea that when a problem exists, throw more people at it. The mythical man month pretty much threw that to wind for software development, and I am sure there are a whole slew of books that predate it saying essenstially the same thing. Yes advancements do mean that more people can communicate more directly, but there still is a limit and I do not think it is as great as some believe. Define interfaces, define test that insure those interfaces exhibit high fidelity, and let small teams, even a single person, solve a small problem. What technological advance has done is make clock cycles very cheap, so there is less excuse to go digging around trying to change code that will make your code run a little faster. Speaking of interfaces, we know that when data and processes are not highly encapsulated, it is nearly impossible to create a bug free large project. One thing that object oriented programs has done is to create a structure where data and processes can be hidden so they can be changed as needed without damaging the overall software application. Now, many complain because the data is not really hidden, it is just a formality. But really coding is just a formality, and a professional is mostly one who knows how to respect that formality to generate the most manageable and defect free code possible. One thing that has been lost with the generation of rapid development systems quickly spouting out bad code is that code and the ability to tweak it is the basis of what we do.

    --
    "She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
  8. 'Web Based' Coding is not the same... by neorush · · Score: 4, Funny

    We marvel that the runtime environment of the web browser can do things that we had working 25 years ago on the Mac

    I don't remember that code running cross platform on varying architectures. The web as an platform for distribution should not be compared to an actual OS...that doesn't even make sense.

    --
    neorush
    1. Re:'Web Based' Coding is not the same... by DutchUncle · · Score: 4, Interesting

      I don't remember that code running cross platform on varying architectures.

      Yes. No code runs cross platform on varying architectures - INCLUDING the stuff that supposedly does, like Java and Javascript and all of the web distributed stuff. All of it DEPENDS on an interpretation level that, at some point, has to connect to the native environment.

      Which is what BASIC was all about. And FORTRAN. Expressing the algorithm in a slightly more abstract form that could be compiled to the native environment, and then in the case of BASIC turned into interpreted code (Oh, you thought Java invented the virtual machine?)

  9. In a lot of ways it is closed source vs open by GoodNewsJimDotCom · · Score: 2

    There are a lot of things that if source code was available, other people could build on it and make higher quality products. In the absence of source code, people need to start from scratch often rebuilding the wheel.

    Competition for money might get people to strive to make better pieces of art. But on the flip side, this same competition will sue your pants off for any reason they can find so you don't compete with them either.

    An on an unrelated note, I had an idea for a zombie video game like Ground Hog day today. When you die, it starts out as the beginning of a zombie pandemic. As you die and play through it over and over, you get secrets to where weapons and supplies are. You find tricks you can use to survive and save people. Eventually you find out who caused the zombie pandemic. You can then kill him before he goes through with it. I'm not sure an ending where you serve in prison is a good ending though. I didn't think it the whole way through, but it sounded like a good premise for a zombie game.

    1. Re:In a lot of ways it is closed source vs open by MrEricSir · · Score: 2

      There are a lot of things that if source code was available, other people could build on it and make higher quality products. In the absence of source code, people need to start from scratch often rebuilding the wheel.

      That doesn't seem true for the most part.

      All open source does with regard to code reuse is that it makes it painfully obvious how much redundancy there is. The spat between the different Linux display managers is one recent example, but I'm sure you can think of many others.

      As for why this is, there's many reasons: incompatible licenses, NIH syndrome, incompatible technologies/versions, copyright assignment, etc. Getting people to work together towards a common goal over the long term is a lot harder than slapping the right license on your code.

      --
      There's no -1 for "I don't get it."
  10. In Browser by MacDork · · Score: 5, Insightful

    We marvel that the runtime environment of the web browser can do things that we had working 25 years ago on the Mac.

    Did the Mac, 25 years ago, allow people to load code from a remote server and execute it locally in a sandbox and in a platform independent manner all in a matter of a couple of seconds? No. No it did not.

    We should then pay homage to the Mac 25 years ago, when it basically did what Doug Englebart demonstrated 45 years ago. Nice logic you have there.

    1. Re:In Browser by cold+fjord · · Score: 3, Informative

      Did the Mac, 25 years ago, allow people to load code from a remote server and execute it locally in a sandbox and in a platform independent manner all in a matter of a couple of seconds? No. No it did not.

      Depends on how much leeway you are willing to grant. Around 1990 or so, the Mac could run Soft PC, a virtual machine x86 emulator running DOS or Windows. The Mac could certainly network and had file servers. So you should in fact have been able to download code from a fileserver and run it in the virtual machine, which from a Mac perspective would effectively be a sandbox. Although the PC DOS/Windows platform isn't "platform independent," it was nearly universal ( minus Mac only systems*) at the time.

      * Yes, yes - Amiga, Apple II, Atari, et. al.

      --
      much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
    2. Re:In Browser by grcumb · · Score: 5, Funny

      We marvel that the runtime environment of the web browser can do things that we had working 25 years ago on the Mac.

      Did the Mac, 25 years ago, allow people to load code from a remote server and execute it locally in a sandbox and in a platform independent manner all in a matter of a couple of seconds? No. No it did not.

      We should then pay homage to the Mac 25 years ago, when it basically did what Doug Englebart demonstrated 45 years ago. Nice logic you have there.

      Dude, just ignore this guy. Of all people who have the right to indulge in a good, old-fashioned 'get off my lawn' rant, Dave Winer ranks last. This is the man who, for our sins, gave us XMLRPC and SOAP, paving the way for the re-invention of... well, everything, in a web browser.

      Port 80 died for this man's sins....

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  11. Re:The thing about repeating the past by symbolset · · Score: 4, Insightful

    Lady Gaga is mentioned because she is both a classically trained artist and sui-generis of successful PopTart art through self-exploitation. Yes, the reference is recursive - as this sort of folk are prone to be. They can also be rude, if you bother to click through, as they give not one shit about propriety - they respect skill and art and nothing else.

    When I plussed this one on the Firehose I knew most of us weren't going to "get it" and that's OK. Once in a while we need an article that's for the outliers on the curve to maintain the site's "geek cred". This is one of those. Don't let it bother you. Most people aren't going to understand it. Actually, if you can begin to grasp why it's important to understand this you're at least three sigmas from the mean.

    Since you don't understand why it's important, I wouldn't click through to the article and attempt to participate in the discussion with these giants of technology. It would be bad for your self-esteem.

    For the audience though, these are the folk that made this stuff and if you appreciate the gifts of the IT art here is where you can duck in and say "thanks."

    --
    Help stamp out iliturcy.
  12. What past was he from? by Russ1642 · · Score: 2, Funny

    He says system performance is the same as it was way back then. He thinks that stuff just happened immediately on those systems because they were running very efficient code. So what. Here's a simple test. Go get one of those computers and set it next to yours. Turn them both on. Mine would be at a desktop before the old one even thinks about getting down to actually running the operating system. Or start a program. On a current system it loads now. As in, right now. Back then it was a waiting game. Everything was a waiting game. He must have simply forgotten or repressed those memories.

    1. Re:What past was he from? by siride · · Score: 3, Insightful

      Also those old programs did a lot less than many of our new programs. People often forget that when complaining about performance.

      That's not to say, of course, that modern programs couldn't be written more efficiently. Because of Moore's Law and other considerations, we have moved away from spending a lot of time on performance and efficiency.

    2. Re:What past was he from? by phantomfive · · Score: 2

      Not sure what you're talking about. My current desktop boots in around 30 seconds. My Commodore 64 from 1980 was blinking a READY prompt in about 2 seconds.

      Of course modern computers have faster CPUs and everything else, but I'd really like to know where along the line a 30 second boot time became acceptable......

      --
      "First they came for the slanderers and i said nothing."
    3. Re:What past was he from? by AK+Marc · · Score: 4, Informative

      What past were you from? When I had DOS 3.3 running on my XT (on a hard drive), it booted in a few seconds after POST. When I loaded Windows 3.1 (no network at home at the time, so didn't run W3.11) on an XT with 1M RAM, it would take forever. And DOS 3.3 from floppy was slow, and loud. But 3.3 from HD on an ancient XT was much faster than Windows is today. DOS programs loaded fast, granted I was running 300k programs, not 300 MB programs, but they were still fast on DOS 3.3 back in the day. What were you running on your ancient computer?

    4. Re:What past was he from? by Darinbob · · Score: 2, Informative

      However, compare Word from 1990 to Word from today. The 1990 one will start nearly instantly, by incredibly responsive, and have all the features most people use anyway.

    5. Re:What past was he from? by Billly+Gates · · Score: 2

      Like clip art, cut and paste, and fonts even?

      Shit I would take wordpad over word for dos.

  13. Net, CPU and GPU bound by AHuxley · · Score: 5, Insightful

    The best and brightest at Apple, MS, BeOS, Linux did learn from "the great masters" - thank you to all of them.
    They faced the limits of the data on a floppy and cd.
    They had to think of updates over dial up, isdn, adsl.
    Their art had to look amazing and be responsive on first gen cpu/gpu's.
    They had to work around the quality and quantity of consumer RAM.
    They where stuck with early sound output.
    You got a generation of GUI's that worked, file systems that looked after your data, over time better graphics and sound.
    You got a generation of programming options that let you shape your 3d car on screen rather than write your own gui and then have to think about the basics of 3d art for every project.
    They also got the internet working at home.

    --
    Domestic spying is now "Benign Information Gathering"
    1. Re:Net, CPU and GPU bound by Darinbob · · Score: 4, Insightful

      Some people seem to think this article is about going back to the past. They miss the entire point. We're not saying that older programs were better, or that older computers were better, or that we should roll back the clock. We're saying that they had to pay more attention to what they were doing, they had to learn more and be broad based, they had to learn on their own, and so forth. When they had good ideas they were shared, they were not continually being reinvented and presented as something new. They didn't rely on certification programs.

  14. Re:it Is Un-Fucking-Believable by Russ1642 · · Score: 2

    If the people in the middle ages had only realized it was the rats, and the fleas they brought with them, they wouldn't have suffered from plague for so long. Hindsight is 20/20.

  15. Re:Lisp is just a representation of ASTs. by Samantha+Wright · · Score: 2

    There's arguably a list of things that make a language into "a" Lisp, and not all of the languages that meet those criteria are actually forks or directly inspired by McCarthy et al.'s LISP programming language. GP was referring to this concept, but probably has a much looser understanding of what it means to be a Lisp. Tragically, TFA is mostly about APL.

    --
    Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
  16. Some things are missing by Gim+Tom · · Score: 4, Interesting

    As a 66 year old life long geek I actually saw many of the things I worked with decades ago reinvented numerous times under a variety of names, but there is one thing I used extensively on IBM OS/360 that I have never seen in the PC world that was a very useful item to have in my tool kit. The Generation Data Set and by extension the Generation Data Group were a mainstay of mainframe computing on that platform the entire time I worked on it. When I moved on to Unix and networks in the last few decades of my career I looked for something similar, and never found anything quite as simple and elegant (in the engineering sense of the word) as the Generation Data Set was. Oh, you can build the same functionality in any program, but this was built into the OS and used extensively. If anyone has seen a similar feature in Unix or Linux I would love to know about it.

  17. A symptom of popular culture in the '60s by DutchUncle · · Score: 4, Insightful

    ... which really means the late '60s into the '70s. Isaac Newton said that he saw far because he stood on the shoulders of giants. Bill Gates and Steve Jobs were *proud* of knowing nothing about the industry they were trying to overturn. The same free, open, do-your-own-thing attitude (partly based on the new abundance helped along by technological advancement) that permitted startups to overtake established manufacturers, also encouraged tossing out anything "established" as "outdated" whether it was useful or not.

  18. Optimal team size by DaveAtFraud · · Score: 2

    For any given software project there is an optimal team size. If the project is small enough, you can keep the team size down to what works with an agile development methodology. If the project is bigger than that, things get ugly. I started my career in a company that considered projects of 50 to 100 man-years to be small to medium sized. Big projects involved over a thousand man-years of effort and the projects were still completed in a few years calendar time. You can do the math as to what that means as far as number of developers working concurrently (I remember one project that had approximately 500 to 600 people working on it).

    The methodologies and discipline exist to solve such projects. It isn't efficiient compared to a small project but small project techniques can't solve big problems in time. Usually when you attempt to explain what it entails to management you get a response of, "We don't have time for that." So, the project flounders for twice as long before finally getting put out of everyone's missery.

    Oh yeah. Been there. Done that. Over and over. Seen it done right when people used the right approach and I've seen more than my share of death marches that only seemed to convince good developers to look for another line of work.

    Cheers,
    Dave

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
    Ben
  19. All Mozart's Works are Open Source by Flwyd · · Score: 4, Insightful

    You can learn a lot from Mozart because you can read all the notes he published.
    You can listen to many interpretations of his works by different people.
    We don't have the chance to read through 25-year-old Mac symphonies^W programs.
    We aren't even writing for the same instruments.

    --
    Ceci n'est pas une signature.
  20. Re:The thing about repeating the past by Anonymous Coward · · Score: 4, Funny

    This is perhaps the most masterful parody of the passive-aggressive, cringe-inducingly self-congratulatory hipster attitude that I've seen on this site, and possibly anywhere on the internet, in some time. Bravo.

  21. indeed, too many bad code monkeys, few engineers by raymorris · · Score: 5, Insightful

    Indeed. Half of today's programmers have roughly zero engineering education, and want to be called software engineers. They have no idea, no idea at all, what their data structures look like in memory and why they are so damn slow. Heck "data structure" is an unfamiliar term to many.

    It's not entirely young vs old, either. I'm in my 30s. I work with people in their 50s who make GOOD money as programmers, but can't describe how the systems they are responsible for actually work.

    How do we fix it? If you want to be good, studying the old work of the masters like Knuth is helpful, of course. Most helpful, I think, is to become familiar with languages at different levels. Get a little bit familiar with C. Not C# or C++, but C. It will make you a better programmer in any language. Also get familiar with high level. You truly appreciate object oriented code when you do GUI programming in a good Microsoft language. Then, take a peek at Perl's objects to see how the high level objects are implemented with simple low level tricks. Perl is perfect for understanding what an object really is, under the covers. Maybe play with microcontrollers for a few hours. At that point, you'll have the breadth of knowledge that you could implement high level entities like objects in low level C. You'll have UNDERSTANDING, not just rote repetition.

    * none of this is intended to imply that I'm any kind of expert. Hundreds, possibly thousands of people are better programmers than I. On the other hand, tens of thousands could learn something from the approach I described.

  22. The past was nice but today is not then by Coditor · · Score: 5, Insightful

    I'm old enough at 55 to remember the past, and yes I did love APL briefly but lamenting that the present isn't like the past is like wishing it was 1850 again so you could have slaves do all your work. Neither the web nor the modern mobile application is anything like the past, and what we use to write that code today is nothing like what I started with. Trying to relive the past is why old programmers get a reputation for being out of touch. The past is important in that I learned a lot then that still rings today but I can say that about every year since I started. Today is a new day everyday.

  23. Re:What Mac did you use? by Guspaz · · Score: 2

    LocalTalk file sharing, AIFF files, 8-bit audio support.

  24. Re:The thing about repeating the past by __aaltlg1547 · · Score: 3, Insightful

    Yeah, but too many of today's programmers think they discovered America themselves.

  25. Au Contraire! by VortexCortex · · Score: 3, Interesting

    For instance: As a cyberneticist I'm fond of programs that output themselves, it's the key component of a self hosting compiler... Such systems have a fundamental self describing mechanism much like DNA, and all other "life". While we programmers continue to add layers of indirection and obfuscation ( homeomorphic encryption ) and segmented computing (client / server), some of us are exploring the essential nature of creation that creates the similarities between such systems -- While you gloat over some clever system architecture some of us are discovering the universal truths of design itself.

    To those that may think Computer Science is a field that must be studied or be repeated, I would argue that there is no division in any field and that you haven't figured two key things:
    0. Such iteration is part of the cybernetic system of self improvement inherent in all living things -- to cease is death, extinction.
    1. Nothing in Computer Science will truly be "solved" until a self improving self hosting computing environment is created...

    So, while you look back and see the pains of Microsoft trying to implement POSIX poorly, I've studied the very nature of what POSIX tried and only partially succeeded to describe. While you chuckle at the misfortunes of programmers on the bleeding edge who are reinventing every wheel in each new language, I look deeper and understand why they must do so. While you look to the "great minds" of the past, I look to them as largely ignorant figures of self import who thought they were truly masters of something, but they ultimately did not grasp what they claimed to understand at a fundamental level -- The way a Quantum Physicist might acknowledge pioneers in early Atomic thinking... Important, but not even remotely aware of what they were truly doing.

    How foolishly arrogant you puny minded apes are...

  26. Upgrades and backward compatibility by grumbel · · Score: 2

    I think "learning from the old masters" really isn't the problem. It's not that we don't have lots of smart people writing software. I think the core problem is that we haven't figured out how to do upgrades and backward compatibility properly, which the old masters haven't figured out either. You can go and develop a HTML replacement that is better and faster, sure, but now try to deploy it. Not only do you have to update billions of devices, you also have to update millions of servers. Good luck with that. It's basically impossible and that's why nobody is even trying it.

    In a way HTML/Javascript is actually the first real attempt at trying to solve that issue. As messed up as it might be in itself, deploying a HTML app to billion of people is actually completely doable, it's not even very hard, you just put it on your webserver and send people a link. Not only is it easy, it's also reasonably secure. Classic management of software on the desktop never managed to even get near that ease of deploying software.

    If software should improve in the long run we have to figure out a way how to make it not take 10 years to add a new function to the C++ standard. So far we simply haven't. The need for backward compatibility and the slowness of deploying new software slows everything to a crawl.

  27. You hate Gates but... by brillow · · Score: 2

    You don't like Gates but wish programmers looked towards more "Great Masters?" Bill Gates was a Great Master Programmer.

    1. Re:You hate Gates but... by Anonymous Coward · · Score: 2, Insightful

      Yes, many people don't realize how he got to his position. He started Microsoft by writing a BASIC interpreter for a machine that he had never seen before. He had to make an emulator for it on a PDP-10 based on its specs, then write BASIC on the emulator in a matter of weeks. He had to write in machine code and fit it all in 4k.

      It worked the first time it was executed on the real hardware. Good luck finding somebody today who could do that.

      dom

  28. Common rediscovered problems. by Animats · · Score: 3, Insightful

    There are a few problems which keep being rediscovered. In many cases, the "new" solution is worse than the original one.

    • Flattened representations of trees Fairly often, you want to ship a flattened representation of a tree around. LISP had a text representation of S-expressions for that. XML managed to make a mess of the problem, by viewing it as "markup". JSON is essentially S-expressions again.
    • Concurrency primitives This goes back to Dijkstra, who got the basic primitives right. We had to suffer through decades of bad UNIX/POSIX/Linux locking primitives. The Go language touts as their big advantage the rediscovery of bounded buffers.
    • Virtualization IBM had that in 1967. IBM mainframes got it right - you can run VM on VM on VM... X86 virtualization can't quite create the illusion of a bare machine.
  29. Re:What past was he from? Mine. by Space+cowboy · · Score: 2

    I had an Atari ST at college. It booted (to a graphical, no less) desktop pretty much instantly, say a few seconds if you had a slew of SCSI peripherals (especially a CDROM drive), but otherwise it was about half a second.

    It was ready to go, too. None of this crap of *showing* the desktop and then spinning the busy cursor for another 30 secs...

    Simon.

    --
    Physicists get Hadrons!
  30. Code review by smittyoneeach · · Score: 2
    1. Carriage returns slow down your code execution.
    2. Use variables to break your code into manageable chunks.
    3. Stop with excessive whitespace already. Sheesh.
    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  31. Another interpretation by wanax · · Score: 5, Interesting

    I've always felt like that quotation had another interpretation, one that's much more favorable to the MPs:

    If you're an MP, you've probably had to deal with a lot of people asking for money to fund what is essentially snake oil. If you don't understand the underlying 'cutting edge' technology (both plausible and acceptable), one simple test is to ask a question that you KNOW if the answer anything other than "No" that the person is bullshitting, and you can safely ignore them... and as reported the question is phrased in such a way that it would sorely tempt any huckster to oversell their device. I think Babbage's lack of comprehension was due to his inability to understand the idea that the MP was questioning HIM, rather than the device.

    1. Re:Another interpretation by serviscope_minor · · Score: 3, Informative

      one that's much more favorable to the MPs

      Come to England and look at our MPs! You will the probably feel that it wasn't such an unfair interpretation on the part of Babbage.

      Seriously though there are many people out there (and they tend to be non technical) who simply do not understand comptuers. The lack of understanding means that they effectively interpret the actions of computers as magic in that there is no way for them to reason about what a computer might do. Even pretty smart people fall prey to this.

      The UK has never had a tradition of putting technically minded people into parliament.

      --
      SJW n. One who posts facts.
  32. Parent post speaks truth by Camael · · Score: 4, Interesting

    Actually, from the examples cited, it seems to me to be painfully obvious why in those cases information was not shared.

    One of the most painful things in our culture is to watch other people repeat earlier mistakes. We're not fond of Bill Gates, but it still hurts to see Microsoft struggle with problems that IBM solved in the 1960s.

    For quite a long period of time, IBM and MS were stiff competitors (remember OS/2 warp?). I doubt MS would inform IBM what they were working on, much less seek help. In fact, it seems to be the exception rather than the rule for software companies to share code with each other. Selling code, after all, is usually how they make money.

    'We marvel that the runtime environment of the web browser can do things that we had working 25 years ago on the Mac.'

    Im fairly confident that Apple would sue any company that copies its software written for the Mac. Let us also not forget how much problems Oracle caused for Google when they sued over the Java API in Android. Yes, it is efficient to reuse old tried and tested code, but it also opens you up to a lawsuit. So it is not so much reinventing the wheel as trying to find a different way of doing things so you wont get sued. For that, you have current IP laws to thank.

    One of the problems with modern computer technology is that programmers don't learn from the great masters. 'There is such a thing as a Beethoven or Mozart of software design,' Locklin writes. 'Modern programmers seem more familiar with Lady Gaga. It's not just a matter of taste and an appreciation for genius. It's a matter of forgetting important things.

    The problem here is with equating writing software to producing works of art. People are willing to go out of their way to learn and improve themselves to paint better or make beautiful music because it enables them to express themselves. It's emotionally satisfying. OTOH most software is programmed to achieve a certain utility and the programmer is faced with constraints e.g. having to use certain libraries etc. He is rarely able to express himself, and his work is subject to the whims of his bosses. For most everyday programmers, I think there is no real motivation to 'learn from the great masters'.

    An exception might be the traditional hacking/cracking community where the members program for the sheer joy/devilry of it. I understand there is a fair amount of sharing of code/information/knowledge/learning from the great masters within their community.
     

  33. Re:indeed, too many bad code monkeys, few engineer by Impy+the+Impiuos+Imp · · Score: 2

    You play with that newfangled mnemonic bullshit, huh? 1s and 0s too much for you?

    goddam kids.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  34. I'm not seeing your point by raymorris · · Score: 2

    Yes, back in the day it could be said that becoming familiar with assembly could make you a better C programmer. It can still be said, because it's true, and I said it above. That's the point of "spend a few hours playing with microcontrollers", to get a minimal familiarity with that level of intimacy with the hardware.

    Are you suggesting that it's not true, that C won't show you things that you don't learn from Ruby? Also the reverse - GUI programming in .NET will make you truly appreciate the value of objects, interfaces, etc.

    Note that I'm not suggesting that all programs should be written in a low level language. Go ahead and use the appropriate language. Perl is great because it has LWP::Simple (very high level) and it has bit shift operators.

    What I'm saying is use SQL, sure, and even report generators, but know how they work. If I give you two tables that are 3X3, could you perform a join with pencil and paper? If so, you'll do better work than someone who only uses a report generator and has never looked at the underlying data.

    1. Re:I'm not seeing your point by serviscope_minor · · Score: 2

      Sorry, my point was not as clear as I had hoped, since I never actually made it directly...

      Are you suggesting that it's not true, that C won't show you things that you don't learn from Ruby?

      Not as such. I'm suggesting that some people are simply impervious to learning. Back then as now, people managed to struggle through careers in programming without seeming to gain knowledge, skill or apparently any understanding deep enough to write programs. For those people, they learned nothing really from C then and probably wouldn't now either.

      For good people, exposure to more languages will certainly benefit them.

      For bad people, there is no hope.

      --
      SJW n. One who posts facts.
  35. It's the maintenance problem. by bregmata · · Score: 2

    Historically, apprentices would study at the master's feet. They would start by doing menial support tasks (like sweeping floors), moving to copying the master's work as journeymen, then finally after many years becoming themselves masters and actually creating works.

    Up to 80% of the cost of software is maintenance. There are very few maintenance programmers. See, most kids want to start out at the master level and skip paying their dues. There's a bug or an enhancement? No problem! just rewrite the program from scratch, do it right this time! It's actually less expensive to rewrite the software than to maintain it, since you save that 80% of the cost. At least in the very very short run.

    If programmers were required to do an apprenticeship, doing software maintenance for a couple of years before ever writing something new, they would be exposed to what went before and overall quality would go up. It just seems the know-it-all of youth has been taken too far in the industry and the price is being paid.

  36. Programming as a craft, not Science by servant74a · · Score: 2
    I have a degree in computer science (mainly software oriented, but included some hardware design), but people still say I am 'just a programmer'. Most programmers don't just 'do code', they do systems analysis, systems design, program development including some coding, testing at various levels, systems maintenance, and in there is a lot of 'interfacing' with suits and customers. Very little is coding. Of a properly done developed system lifecycle, less than 10% is normally coding.

    There are the 'coder factories' that advertise on late night TV. The people that come out of there, and even out of high-school and Jr Colleges or trade schools are all dropped in the same pool as 'programmers'. Most programmers, at least the better ones, view their code as in many ways an art form. Once upon a time (think '70s) using 'tricks' to save memory was a big thing and was often used as some sick form of 'job security'. From what I have seen most individuals are over that, but not so much commercial software companies that think 'protectionism' is 'protecting their assets'. Much code has been 're-implemented' by doing blackbox reengineering.

    There is still a place for the arts in computers and even software, but making things run better, faster, be smaller, use less resources, use 'vertical' AND 'horizontal' computer power, failsafe, encryption, API's, easier to network/interface, secure, better human interface, usability, etc.

    Yes, I have studied the history of computing both academically and as a personal interest. That includes anything from mechanics of the babbage engine, digital systems design (that has been useful several times since school in 'doing what everyone says can't be done'), studying the architecture of the Saber System (hardware and software from IBM for American Airlines - now antiquated, but a leap forward in interactive computers, networking, and database architecture). I have worked with some of the architects and developers of the original National Semiconductor UART chips and the IBM HASP system originally written for NASA to keep them from being kicked out of NASA in Houston. Knowing HOW these worked, how the succeeded and failed ALL helped in my systems I wrote for customers (Mainly Fortune 500 types but includes medium to mom&pop shops).

    It has been interesting studying some of the big failures and successes of the past, both in computing and business. Seeing the advanced systems before they were appreciated by the public. Seeing the marketing faux pas of large and small companies. For many small companies it is fatal, for large it hurts reputation even if they get through it (Ford Edsel, Apple Lisa, New Coke, we can all name some more).

    I don't think EVERYONE needs to get as deep into it as I have, but it would help understanding and appreciation of the history both technical and of the people and times when developing solutions for today and the future.

    Education is never lost. It just adds to the tapestry of life.