Slashdot Mirror


Six Laws of the New Software

LordFoom writes "Still suffering from post-dotcom stress disorder, I keep my eye out for gentle balm to sooth my ravaged psyche. The manifestos at ChangeThis are not it. The most popular manifestos range from irritating to enlightening, with none of them particularly comforting. In particular the recent Six Laws of the New Software have done my dreams of writing lucrative code no good - although it has changed my idea of what money-making code is."

68 of 313 comments (clear)

  1. In a nutshell by winkydink · · Score: 5, Informative

    Keep it simple
    Keep it small
    You're not gonna be the next Microsoft
    Do many releases
    Comply with relevant standards

    --

    "I'd rather be a lightning rod than a seismometer." -Ken Kesey

    1. Re:In a nutshell by cyber_rigger · · Score: 5, Funny

      7. Don't post a link on /. to your development machine.

    2. Re:In a nutshell by jsprat · · Score: 4, Funny

      1. Keep it simple
      2. Keep it small
      3. You're not gonna be the next Microsoft
      4. Do many releases
      5. Comply with relevant standards

      That's 5 laws... What's the sixth?

      Profit?
    3. Re:In a nutshell by winkydink · · Score: 3, Funny

      Simple covers 2. I simplified. :)

      --

      "I'd rather be a lightning rod than a seismometer." -Ken Kesey

    4. Re:In a nutshell by Saeed+al-Sahaf · · Score: 2, Insightful

      You'll never be the next Microsoft thinking that way. Think big, have great unstoppable vision. Play to win, or give it up now.

      --
      "Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
    5. Re:In a nutshell by darkpixel2k · · Score: 5, Funny

      The sixth rule of the new software is: you do not talk about the new software!

      --
      There's no place like ::1 (I've completed my transition to IPv6)
    6. Re:In a nutshell by Doomdark · · Score: 3, Interesting
      Or maybe there just will never be another Microsoft; as in no company will duplicate the (early) life-span of Microsoft. That's entirely possible -- perhaps time for mega-corporations based on standard expensive shrink-wrapped applications is over?

      This is not to say there couldn't be other mega-corps in software, just that they would probably become such using different kinds of products, strategies and so on.

      What I don't understand, however, is the last part ("play to win, or give it up now"): are you implying there is no other way to succeed than the Microsoft way? I'd think that's bit short-sighted. Besides, Microsoft didn't exactly get started on great unstoppable visions, but with rather simple ideas of building basic interpreters (etc) to sell for hobbyists. The vision part only came when they grew big, and made founder(s) think they need to have visions; bit like how George Lucas keeps on reinventing the history of Star Wars.

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    7. Re:In a nutshell by clockwise_music · · Score: 2, Insightful

      I agree, this manifesto is too closed-minded. Saying "you are not going to be the next microsoft/SAP because you are too late" is completely wrong. Let's see how google goes in another 5 years.

      No-one says it is going to be easy, but with a bit of imagination anything can happen. Who the hell would have thought five years ago that google could beat yahoo et al? (Of course the day they write an OS that is better than XP, I'll eat my hat (luckily I don't have any))

    8. Re:In a nutshell by robertjw · · Score: 2, Informative

      Microsoft should read this article. Sure they have unstoppable vision and play to win, but they lose way more than they win.

      They have 3 or 4 areas where their products are dominant (operating system, word processor, spreadsheet, etc..) and those areas are impressive, but what about all the areas where they have commited tremendous amounts of resources just to get minimal market share or fall flat on their face. For every product they have been successful at there are dozens that have less than optimal market penetration (xbox, IIS) or are losing ground (IE). Ten years ago, when there wasn't a competitor in sight, they could have focused on building the best operating system possible. Instead every release was overpriced, unstable and characterized by new shiny buttons. Now OSX, linux and Open Office are serious competition in their primary markets. They will have to regain some focus and dump some of the waste to survive long term.

      Gates and company were in the right place at the right time, that's why their products are successful. There have been many companies just as ruthless that are now just memories.

    9. Re:In a nutshell by Master+of+Transhuman · · Score: 2, Insightful

      "You're not gonna be the next Microsoft"

      Fuck him.

      Somebody has to be - why not me?

      Remember, Microsoft didn't exist thirty years ago - and will likely not exist thirty years from now...

      This is just the usual bullshit from people who can't deal with change.

      Total crap.

      Nothing to see here. Move along.

      --
      Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
    10. Re:In a nutshell by orasio · · Score: 2, Informative

      Somebody has to be

      Or not.
      Maybe there's no way people will pay $200 tax to use their computer, in the next 30 years.
      Of course, if you addressed a new tech, like nanotech-for-the-regular-guy or stuff like that, there's room for some hobbist-turned billionaire, but regular software doesn't look like a field that could support another Bill Gates.

  2. In the end of last century... by melted · · Score: 5, Insightful

    There was a widespread belief among physicists that there's nothing more to discover in physics. They were wrong. This guy is also wrong.

    1. Re:In the end of last century... by Brian+Brian · · Score: 5, Insightful

      Anyone proclaiming the end of anything has just demonstrated the limits of their mind.

  3. Here's another law to add by Dancin_Santa · · Score: 5, Insightful

    When developing a web browser, if a plug-in needs to be launched, don't let the plug-in's loading cause all other instances of the browser to lock up.

    I'm looking at you, Firefox.

    What's the deal with the PDF-format anyway? The document is 17 pages of Powerpoint-like slides. I'm sure some nice, simple HTML could have displayed that much more quickly. And not locked up Firefox for a minute.

    1. Re:Here's another law to add by cmowire · · Score: 4, Insightful

      Disable the acrobat plugin.

      Not only does this prevent Firefox from freezing up obnoxiously, but it also means that you don't see the file until it's actually done loading. Progressive PDF's suck.

    2. Re:Here's another law to add by sglider · · Score: 3, Informative

      This link from the Firfox FAQ answers why that happens. It isn't Firefox's fault, but it is adobe's fault. If you follow that link, you'll see adobe pages load (on a broadband connection) in mere seconds.

      --
      War isn't about who's right. It's about who's left.
    3. Re:Here's another law to add by ufnoise · · Score: 2, Informative
      Disable the acrobat plugin.

      Easier said than done. If you try and hide the plugin, mozilla and firefox often go looking for it. Eventually I had to just delete the shared library on linux. On windows, I had to edit the preferences file to look for a version of acrobat that didn't exist yet.


      The plugin is so annoying because its toolbars take up a lot of space along with firefox's.

    4. Re:Here's another law to add by dabigpaybackski · · Score: 2, Informative
      Disable the acrobat plugin.

      Yes, disable it, and use a quick and functional third-party PDF viewer like this one. Acrobat in an ponderous, bloated abomination, kind of like Mothra in larval form.

      --
      "OH SHIT, THERE'S A HORSE IN THE HOSPITAL!"
    5. Re:Here's another law to add by dmaxwell · · Score: 2, Informative

      The plug-in is itself Adobe software. It would be nice if there was such a thing as a plug-in system that can't be abused but I suspect that it either doesn't exist or isn't practical. I've been using Mozplugger to invoke Acrobat. The behaivor is much better. Mozplugger will start a new instance of Acrobat for each PDF you open in a tab but it seems to sidestep the other ills caused by Adobe's plugin.

    6. Re:Here's another law to add by ytpete · · Score: 3, Informative

      An even better option: PDF SpeedUp. A coworker clued me in to this great little utility. It basically disables all the extra junk in Acrobat Reader, cutting the load time down to 1-2 sec tops.

    7. Re:Here's another law to add by soft_guy · · Score: 2, Funny

      It's pretty easy to brag about your computer's great PDF handling when the whole graphics subsystem is built on PDF. Windows users do not have this luxury. Taunting them about it is cruel. Be nicer.

      --
      Avoid Missing Ball for High Score
    8. Re:Here's another law to add by jalefkowit · · Score: 2, Informative
      What's the deal with the PDF-format anyway? The document is 17 pages of Powerpoint-like slides. I'm sure some nice, simple HTML could have displayed that much more quickly.

      Boy, that's for sure. And you're not the only one who thinks so; see Jeff Jarvis' and Doc Searls' rants on the subject, which prompted a response from ChangeThis' founder, Seth Godin:

      I hear you. But I think the comparison is not apt. The right comparison is to compare our PDFs to books.

      Books are not searchable. They cost money to reproduce. You can't print multiple copies and Google searches them even less well than they search PDFs.

      You don't hear anyone whining about books...

      Anyway, we use PDFs because they're a lot more booklike. They read better. They stick together when you forward them. They print better.

      Maybe he should have just gone all the way and printed them as books, then?

    9. Re:Here's another law to add by CaptnMArk · · Score: 2, Insightful

      PDF is good for printing.

      For screen it's total shit because the page doesn't resize appropriately like in a browser.

    10. Re:Here's another law to add by Leo+McGarry · · Score: 5, Informative

      This old saw needs to die, now. It's completely false to say that "the whole graphics subsystem is built on PDF." That simply isn't so. Let me explain where that came from.

      Back in the olden days, there was this thing called QuickDraw. QuickDraw was pretty incredible. It consisted of a full-featured set of routines for drawing on the screen, and the whole business fit inside something like 32 KB of ROM.

      QuickDraw was based on the idea of pixels. Everything was a pixel. Drawing with QuickDraw was based entirely around pixels.

      Quartz abandoned the idea of pixels in order to give programmers a device- and resolution-independent graphics toolbox. Quartz consists of two parts: a drawing library called Quartz 2D, and a windowing and real-time compositing system originally called Quartz Compositor. A couple years back, Quartz Compositor was re-implemented in GPU code and re-christened Quartz Extreme. (Quartz Compositor still runs on Macs without programmable GPUs.)

      The imaging model used for Quartz 2D was inspired by both Display PostScript and PDF, but it's not the same as either of them. Unlike QuickDraw, where everything was about pixels, in Quartz 2D it's all about paint. Quartz 2D establishes a floating-point coordinate system called a context, and the programmer draws on the context by defining regions and filling them with paint. Internally, everything is represented as a display list, as opposed to a bitmap like in the old days. The display list gets rendered to the screen by Quartz Extreme.

      Because Quartz 2D uses a similar imaging model to PDF's, Quartz 2D display lists can be translated to PDF trivially. The whole business is handled for you. All you have to do is request a Core Graphics PDF context instead of a regular Core Graphics context and draw to it just like you were drawing to a window. Core Graphics is responsible for translating your Quartz 2D display list into PDF.

      So let's be totally clear here: None of the graphics on your Mac are represented internally in PDF format until your program explicitly requests that a display list be saved in PDF format. Internally, everything is a Quartz 2D display list. The computer converts to and from Quartz 2D quickly and easily through the use of some highly optimized Core Graphics code.

      Now, you wanna know why Acrobat is so much slower than Preview? Because Acrobat uses its own PDF interpreter to go from PDF to QuickDraw. This takes a ton of CPU time, compared to going from PDF to a Quartz 2D display list. So Acrobat is both much bigger (because it includes a whole PDF interpreter) and much slower than Preview.

      On Windows or Linux or whatever other incredibly lame operating system you want to consider, a PDF reader is necessarily going to be big and slow, because it's gonna have to translate from PDF into some bitmap format. Old operating systems don't have the advantage of having an internal display-list graphics format that's conceptually similar to PDF, or a hardware-accelerated compositor that's responsible for turning those display lists into pixels. But that still doesn't change the fact that the PDF specification is wide open, and anybody who wants to should be able to write his or her own PDF reader for those old operating systems.

      Incidentally, Quartz 2D used to be notably slower than QuickDraw for doing lots of basic tasks. If you take antialiasing and transparency off the table and just deal with drawing lines, QuickDraw used to kick Quartz 2D's ass. No more, though, because Quartz 2D has recently been rewritten to take advantage of programmable GPUs, just like Quartz Compositor was rewritten and became Quartz Extreme. Now, depending on the kind of GPU you have, Quartz 2D can be anywhere up to 40 times faster than QuickDraw ...and that's with antialiasing and transparency. It's pretty amazing.

      Frankly, it kinda makes me wonder why more people aren't raving about Quartz. I guess it's probably because most people don't unde

    11. Re:Here's another law to add by knBIS · · Score: 2, Insightful

      Why does a web browser need to be able to read pdf files??

      I never bothered installing the adobe software, and have firefox set up to open all pdf files in xpdf automatically... it works great!
      The document is opened a second or two after i click the link, and i never have to worry about my browser crashing..

    12. Re:Here's another law to add by AhaIndia · · Score: 2, Informative

      This isn't Firefox's fault. It is because of Adobe products.
      Just now I searched for a free PDF viewer. I found Foxit PDF reader, which is a free lightweight PDF reader.
      It opened the same document very fast.

      --
      ~Aha~
    13. Re:Here's another law to add by tedgyz · · Score: 2, Insightful

      Progressive PDF's suck.

      No. ALL PDF's suck.

      Don't get me wrong, I wholly support a platform-neutral document format. What I don't support is a document reader that takes longer to load than my operating system. Nor do I support a document reader that insists on nagging me to install OTHER software for the benefit of a bloated software empire (the other one).

      --
      "No matter where you go, there you are." -- Buckaroo Banzai
  4. The first law of new software... by neuro.slug · · Score: 4, Funny

    The first law of new software is you do NOT talk about new software.

    The second law of new software is...

    C'mon, somebody had to say it.

  5. Direct link by Dancin_Santa · · Score: 4, Informative

    Link to article

    Be careful, it locks up Firefox until it loads.

  6. Next time I'll check the link better. by Anonymous Coward · · Score: 5, Informative
  7. Hope I'm not trolling too hard... by Anonymous Coward · · Score: 3, Insightful

    But seriously, I thought the dot com bust was actually a *good* thing for real programmers. It weeded out all those retards with a geology degree who were in it just for the cash. Granted, those who were actually good at coding made a lot more back in those days. But if you're actually talented then there is no reason you can't make what you want to make. Doesn't matter what the profession is.

    Anyways, what's the deal with the .pdf download? First off it's /.ed, second... isn't that what the webpage is there for in the first place?

    1. Re:Hope I'm not trolling too hard... by winkydink · · Score: 2, Interesting
      Actually, it didn't. A lot of those retards hung on to their jobs while good people got canned.

      The biggest thing that changed and has not changed back is that before the boom, people went into IT because they liked it, the money was secondary. Now, there are many people in IT for the money and to them it's just a job, not a passion.

      --

      "I'd rather be a lightning rod than a seismometer." -Ken Kesey

    2. Re:Hope I'm not trolling too hard... by russellh · · Score: 3, Insightful

      The geology, etc., majors I knew were awesome programmers. The morons I knew were computer science majors who were just in it for the money. I remember them in class. Most of my CS classes seemed to be full of them (1990-1994 - before the boom). I was shocked by this since I became a CS major out of a pure love of programming. the liberal arts and science people that I knew who were programmers had the true hacker ethic.

      --
      must... stay... awake...
    3. Re:Hope I'm not trolling too hard... by alan_dershowitz · · Score: 2, Insightful

      He was talking about the "Geology majors" who were in it for the cash, not the Geology majors who just plain loved programming. Given a choice between non-CS moneygrubbers and CS moneygrubbers, I'd rather have at least the formally trained moneygrubber.

      You could get hired without a degree, so a bunch of people ditched lower paying jobs to start programming by demonstrating basic skills. Compared to them, even the people who got a formal CS degree _for the money_ were better programmers than these other goofballs, primarily Visual Basic jockeys.

      Sorry if I offended any VB programmers out there...Most VB programmers aren't idiots, but most idiot programmers program in VB.

    4. Re:Hope I'm not trolling too hard... by Ginnungagap42 · · Score: 2, Interesting

      I am in violent agreement with what you say. However, in 20 years of programming, the singular worst code I ever saw was written by a guy who had a MS in Computer Science from Virginia Tech who shall remain nameless because I'm a nice guy. Not only was his code at the Bubble Sort level, he got the wrong answers for the problem set! He was much better at marketing his own code than actually getting it to work. He ended up convincing Management that his code was the hottest thing going, and when he quit the company, the rest of us who were eventually brought in to "maintain" his code (and discovered what crap it truly was) were labelled idiots because we "didn't understand his genius."

      Of course, the software he wrote took more than 8 hours to run. When our team (dedicated hackers and code monkeys) got through fixing it, we could run it and get the RIGHT answer in about 5 minutes.

      Give me a geology major who loves to program any day!

  8. Respect your users by MarkSwanson · · Score: 3, Insightful

    By and large there is no need to demand your users trust you with full write access to their home directory, their ethernet device, and more. Consider writing your software in the Java Web Start sandbox.

    --
    Schedule your world with ScheduleWorld.com http://www.ScheduleWorld.com/ (Java Web Startable)
    1. Re:Respect your users by Leo+McGarry · · Score: 2, Insightful

      Also, your chair is too comfortable. Consider trading it in for a nice, hard piece of plywood supported by two cinderblocks.

      And it's too warm in your office. Consider turning off the heat.

      And it's too easy to type with all ten fingers intact. Consider breaking three. Any three. Doesn't matter.

      I bet there are a lot of other really good suggestions for people who are into massive amounts of pain.

      Of course, anybody who writes end-user applications in Java is also into inflicting massive amounts of pain. But that's another conversation.

  9. Law 7 by DrKyle · · Score: 5, Insightful

    All the good stuff has already been thought of, but not everyone knows they exist. Try to find really good ideas by looking back at least 10 years for a piece of software that never took off and has been abandoned and remarket it as the next big thing. Remember: Marketing people could sell blood to a turnip.

  10. Writing vs Coding by kiwidefunkt · · Score: 4, Insightful

    It seems like some of these people spend more time writing about software than actually writing software...

    --
    www.kiwilyrics.com - a wiki for lyrics
  11. pdftotext by flossie · · Score: 4, Informative

    The SIX LAWS of the NEW SOFTWARE
    GO AHEAD AND PRINT THIS. This manifesto

    continued

    is toner-friendly: the backgrounds wont print on paper and are only visible on-screen to aid readability. We recommend printing a test page as some older printers do not support this Acrobat feature.

    by Dror Eyal
    NEXT

    Not using Adobe Acrobat? Please go to http://changethis.com/content/reader

    The first wave of software is over, it is doubtful that any one company will capture the market like Microsoft or SAP did. Not because the software they write isn't better or has less functionality, they've simply arrived too late. Most home consumers have all the software they will ever need, and most companies out there already have all the basic technologies they need to successfully compete right now.
    I can hear their objections all the way down here, and I agree, your software is better designed, faster, has more features, is more user-friendly and can indeed make seven flavours of coffee. We have something similar, it isnt well designed, it doesnt have half of the features that yours has and no, it doesnt run on Service Orientated Architecture. We did however pay a small fortune for the per-seat licences, we have learnt to use it quite comfortably over the last five years and this is the system that our business runs on. This view isnt limited to us -- Northwestern University economist Robert Gordon, in a 2000 article published in the Journal of Economic Perspectives, argued that "the most important GO AHEAD AND PRINT uses of THIS. This manifesto computers were developed more than a decade into the past, not currently."

    is toner-friendly: the Its a fairly bleak view to be sure, but one that isnt unique to Mr Gordon. Many business backgrounds wont executives print on paper and are are turning away from purchasing new technologies and looking for new ways to use their only visible on-screen existing technologies effectively. Not because the new software entering the market to aid readability. We recommend printing a test page as some older printers do not support this Acrobat feature.

    isnt better, but because the functionality that they need already exists in software that was bought years ago. Budgets for software expenditure are dropping and the accountants are starting to question why the software that was essential last year needs an upgrade this year. What this means to the average software developer is that the window of opportunity for selling into the corporate market and to some the degree the home market is getting smaller than ever before. So does this mean that this is the end for the software industry? Obviously not, we will continue to develop better products, occasionally new technology will get developed and or a new idea will start a trend and software will get developed around it. Software that meets a new need will always be welcome. Who knew that we needed file sharing software before Napster turned the music industry on its ear? Or that social software and bloging tools were essential if your company was to be seen to be on the cutting edge? No, it isnt the end, but for every tool that revolutionizes the industry and strikes a path into a new territory there are several hundred software companies out there trying to build a better CRM or CMS -- the software industry equivalent of the mousetrap. Obviously it would be better if we all developed software that met a new need and created new markets, but just as obviously we cant all develop revolutionary new software. Most of the software being developed right now in studios around the world is trying to find a niche in existing and saturated markets. So how do you build software that stands out and can compete in this new environGO AHEAD AND PRINT ment? You build a tool based on new generation software laws. THIS. This manifesto
    is toner-friendly: the backgrounds wont print on paper and are only visible on-screen to aid readability. We recommend printing a test page as some older printers do not support this Acrob

    1. Re:pdftotext by complete+loony · · Score: 4, Funny

      That article didn't affect me whatsoever.
      Right I'm off to print a test page.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    2. Re:pdftotext by coopaq · · Score: 5, Funny

      Would everyone just GO AHEAD AND PRINT this already!!!

  12. The REAL 6 laws of code writing.... by Hobadee · · Score: 3, Funny

    1. Make sure it's impossible to use.
    2. Make sure it's buggy.
    3. Make sure it's unsecure.
    4. Market the hell out of it. (Making sure to state how great and secure it is.)
    5. ???
    6. Profit!

    --
    ...Had this been an actual emergency, we would have fled in terror, and you would not have been informed.
    1. Re:The REAL 6 laws of code writing.... by michaeldot · · Score: 4, Funny

      1. Make sure it's impossible to use.
      2. Make sure it's buggy.
      3. Make sure it's unsecure.
      4. Market the hell out of it. (Making sure to state how great and secure it is.)
      5. ???
      6. Profit!

      Very interesting, but you've clearly cut & pasted that from Microsoft's employees manual, in violation of your NDA.

      Prepare for a visit from the lawyers.

  13. Hint: How to avoid PDF lock-up in Firefox by QuestionsNotAnswers · · Score: 5, Informative

    Tools | Options | Downloads | Plugins

    Untick PDF.

    Now whenever you click on a PDF link you are prompted if you want to view it in Adobe PDF viewer.

    Works for me!

    --
    Happy moony
  14. The "Collaborate" Suggestion and Unix by Zergwyn · · Score: 5, Interesting
    Most of these suggestions are common sense to anyone who has a couple of serious software projects under their belt, which isn't to say that they aren't worthwhile to look through. However, one in particular made me think of an old question of mine, having to do with the way unix works vs the modern GUI. On page 6, the pdf discusses the "Collaborate Law". It says:

    "Forget enterprise systems that do everything possible within your field. They're too large, clumsy and require too much development time. Instead, create small discrete software that can collaborate seamlessly with the technology that the end users are currently using."

    This, in a nutshell, seems to be the core philosophy behind much of the original Unix. Most Unix apps (and in particular, all the 'commands' which are small applications) have the concept of standard in (stdin), standard out (stdout), and standard error (stderr). Because most commands can operate to accept stdin, do its purpose, and then send to stdout, it is both possible, intuitive, and very practical to chain together many small commands to accomplish a single task very easily. I suspect there is some terminology for this process, but as I don't know what it is I generally think of it as being a "stream centered" approach. You have many discrete components operating on a stream of information. However, I know of no similar functionality in most modern GUIs, which are all basically application-centered approaches (though Windows tends to present itself as being document-centered). Each application is a single thing that you open up, and has its own self contained operations, usage, etc. I would like to see this more object-oriented stream approach exist in more GUIs today, because it is really a very useful paradigm for many tasks. It allows developers to concentrate on doing a single task extremely well, and then allows users to chain that task in as many ways as they can imagine, which is always more then what the original developer could think of. In Mac OS X 10.4, the Automator feature sounds like it might very well be close to what I have in mind, though a lot will depend on how easily and powerfully developers can make new 'Actions' (Apple's terminology for single task apps/commands). However, these days I really think that is an old concept that is time tested and very useful and just waiting for the right re-implementation to become critical for a new generation.
    1. Re:The "Collaborate" Suggestion and Unix by mattkime · · Score: 2, Interesting

      if you go back in time a bit, there was Apple's OpenDoc. I've forgotten why it failed, but i think it had something to do with the fact that people want to buy apps, not app parts. Also, AppleScript has always been able to tie apps together, even back in the OS 8 days. (Which automated ad placement for many newspapers, drawing info from databases.) ....but people rarely use them because they're lazy.

      --
      Know what I like about atheists? I've yet to meet one that believes God is on their side.
    2. Re:The "Collaborate" Suggestion and Unix by Leo+McGarry · · Score: 2, Interesting

      Not so much "could become" as "is." Automator is based on the idea of creating ad-hoc workflow pipelines, just like the UNIX command line. Except you're not limited to textual input and output, and the workflows can be saved for later execution.

      Think of it as the natural evolution of the pipeline aspects of the command line.

    3. Re:The "Collaborate" Suggestion and Unix by starfishsystems · · Score: 3, Insightful
      to chain together many small commands to accomplish a single task very easily. I suspect there is some terminology for this process, but as I don't know what it is

      You're on to something here. The essential design principle is composability. Take Lego for example. You can make complex artifacts by assembling many existing elements together.

      A similar, but distinct, principle is extensibility. To continue with the Lego example, it allows you to invent a completely new element that extends the behavior of existing elements, a slider piece for example.

      Not to get totally pedantic, but let's have one more. The principle of modularity enables both of the above. Originally, it meant that you could replace any piece with a functionally identical substitute. But what makes it such an interesting principle is that there are different aspects of identity. Two 1x8 Legos might be replaced by a 2x4 and two 2x2s, and so on, and perhaps the substitution has different and desirable properties.

      The source of all modularity is the enabling principle of standardization. And here, if you care, is where open source comes into the picture. Because it's very hard for multiple parties to ever agree on a common standard if the candidate designs are all secret!

      So your intuition is right. There is something about Unix that gives it a fundamental advantage over proprietary alternatives. However, to debate between command line and GUI, or likewise to compare statistics on security incidents, is to focus on emergent symptoms. I get frustrated with these debates because they never really seem to converge on a clear answer.

      A clear answer does emerge when we look to deeper principles. These aren't just a matter of subjective preference, they are fundamental to the design of any complex artifact. Designs which express these principles are objectively superior to designs which don't. And I think that's worth remembering.

      --
      Parity: What to do when the weekend comes.
  15. HOWTO: Subscribe to parent's newsletter by SlimFastForYou · · Score: 3, Funny

    Step 1: Get rope
    Step 2: Tie it in a noose
    Step 3: Get a chair and stand on it
    Step 4: Tie other end of rope to ceiling fan
    Step 5: Put noose over head, snugly over neck
    Step 6: Kick chair out from under yourself
    Step 7: ???
    Step 8: Newsletter!

    *Poster does not endorce subscriptions to this newsletter.

  16. Re:HOWTO: Subscribe to parent's newsletter by Radio+Shack+Robot · · Score: 3, Funny

    Your ideas sound intriguing. How can I subscribe to your newsletter?

    --

    Beep. Boop. Beep. You have questions. I have answers and your home address.
  17. As per instructions on the error page... by Anonymous Coward · · Score: 2, Funny
    Dear webmaster@localdomain:
    Your server gave me this error:
    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    Please contact the server administrator, webmaster@localdomain and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    More information about this error may be available in the server error log.
    Apache/1.3.26 Server at www.changethis.com Port 80
    It just happened right after I submitted a link to your website from Slashdot.org
    I don't know what may have caused it, but you certainly will be able to figure it out by looking at your logs.
    Regards,
    AC
    P.S. I am sorry, I hope I did not break it!
  18. People are dumb by Anonymous Coward · · Score: 3, Insightful

    One good rule when writing software would be to assume people are profoundly retarded, thus maximising the possible market share of your software by making it really easy to use.

  19. Subliminal humor? by Anonymous Coward · · Score: 3, Funny

    I can't helpGO AHEAD AND PRINT THISfeeling that some kind of backgrounds wont print on paper subliminal message are only visible on-screen to aid readability is embedded in this This manifesto this post.

  20. manifesto? by convolvatron · · Score: 3, Insightful

    do the machinists create manifestos about their work? get over it, programming is mildly creative, but whole notion of paradigm-changing products is grossly overinflated. try doing something that has some obvious utility and dont try to ream people for it.

  21. Six Laws of Perpetual Software Contracts by saddino · · Score: 4, Funny

    /* todo: add six laws here */

  22. Sorry, but... by Anonymous Coward · · Score: 2, Insightful

    Anybody who uses "leverage" as a verb is not qualified to comment on the state of computer programming.

  23. The .com 5 laws by David's+Boy+Toy · · Score: 2, Funny

    1) Make it complex 2) Cram in every buzzword, expensive license, and strategic partnership you can. 3) You're gonna be the next Microsoft. 4) Do no releases. Software thats released gives too much away. Your ideas are too lofty to be nailed down like that! 5) Comply with irrelevant standards For example: "SuperZyzergy.com enabling a new way of doing business on the web! Oracle, Solaris, W3C compliant business solutions, enhancing the synergy of your XML framework!" Company had 40 employees, gold plated everything, a gigabit network back when that cost $$$. The lone technical member of the staff was suffering delusions regarding the wonderful possibilities of an XML enabled world, "even your car will run on XML instead of gas!". He'd recently gotten to parse a small XML file after several months of work, at a salary of $200K/year. Of course most of his time was spent synergizing about business strategy and alliances. Where Oracle would come in he didn't know yet, but he'd already spent $1M on a license deal. The company IPO party cost $5M, and his stock was soon worth $100M on paper. The stockholders saw the value of the XML enabled world, even if the customers still couldn't figure out what they where selling, or even how to buy some of it. [CRASH] As much as the crash and recession sucked, it is kind of nice that technical skill matters again. For a while programming was irrelevant as long as you could sling around long strings of buzzwords with some 'synergies' and 'enablings' thrown in.

  24. 6 laws of computing, eh. by Anonymous Coward · · Score: 2, Funny

    Why are none of the 6 "laws of computing," "The software must not, through action or through inaction, allow a human to come to harm?" People we gotta get started early if we want these to be in everything.

  25. Breaks his own laws by Captain+Kirk · · Score: 4, Insightful

    He says, correctly, that HTML is the standard for documents on the Web.

    He says stick to these standards.

    His own article is in a crappy PDF - possibly the lamest format possible for web articles.

    A case of "do as I say not as I do"

  26. Hovno! by ZurichPrague · · Score: 2, Insightful

    This was also said 15 years ago: go for vertical markets, nothing else is left. And it's good advice, unless you're ambitious. It's b*llsh*t to say all companies needs have been met. Look around you. It's called the "software crisis" for a reason. There is something huge waiting, lurking around the corner. Be there for it.

  27. Standards in the Real World by iwan-nl · · Score: 2, Insightful

    From TFA:

    HTML is a standard for the web. All software vendors who develop software that either views, displays or edits HTML comply with the standard, which means that content developed on Dreamweaver will not only be viewable on Internet Explorer but can also be reopened and reedited by Frontpage. Macromedia, who developed Dreamweaver, doesn't need to have ever tested on Microsoft's product, they both comply.

    The author is obviously lives in some parallel universe. I wish I could live there too. Not testing your html in *all* browsers is the most ignorant thing one could possibly do.

    --
    I'm trying to improve my English. Please correct me on any spelling/grammar errors in this post.
  28. Re:Not original but... by midg3t · · Score: 2, Funny

    You can save yourself the effort of rewriting it thrice by just changing the storage format, making minor UI changes, and incrementing the release number. Make sure to get marketting to create a new advertising campaign for the new release, including white care-free young couples smiling in front of the splash screen for your application. Do not take the video or photograph footage for your advertisments at any multiple of 45 degrees on any plane with respect to the orientation of the computer screen (which _must_ be a flatpanel with wireless keyboard and mouse).

  29. "Somebody has to be"... by hummassa · · Score: 2, Informative

    The point is: there will be no next Microsoft. So, it won't be you. Got it?

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  30. Why does everybody think software is different? by lux55 · · Score: 2, Interesting

    The business models employed in the software industry are no different than in other industries, yet software makers continually try to convince themselves that they are the only area of business where the only way to make it is with entirely new ideas. Perhaps those who make it do so because of things like good timing, and more knowledge about how business actually works (ie. what plans work in what circumstances, how to see the patterns into which said plans would fit, as they're emerging). The second biggest problem in software is people who continually try to publicly pat themselves on the back and call themselves "original thinkers". The biggest problem in software are the people who believe them.

  31. _Both_ generalizations are actually false by Moraelin · · Score: 2, Insightful

    The point isn't as much the degree. I think college didn't teach me too much that I didn't already knew, for example.

    The problems are (A) if you love programming, and (B) if you have the mental skills for it. At all. Yes, I've been through the "bah, programming is easy, everyone could do it if they wanted to" phase myself. Then you start to realize that things that are trivial and obvious to you, just aren't so for 90% of the rest of the people.

    For example, I've actually sat and watched someone painfully try every single of "*", "&" and nothing, on every single variable on a C program, until it stopped crashing. He just could never wrap his mind around the concept of a "pointer". Some 10 years later, AFAIK he _still_ can't. Made me realize that maybe it's not that trivial a concept as I assumed.

    And that's just one example. People just aren't built to, basically, think like a machine. They're hampered by natural language fuzziness, and by the human-to-human expectation that the other gets the basic idea and can work out the details for himself.

    And it only becomes worse when you deal with people who don't even intend to learn. They're in it just because they "deserve" to be paid a ton of money. And they're not gonna "waste" their time on such boring stuff as actually learning an algorithm, or even the basics of the language they're paid to program in.

    I've dealt with too many people whose _only_ interest is hanging around bored until the next paycheck, and their _only_ skill is marketting themselves to a clueless PHB. They can't program worth shit, and they don't even intend to learn more.

    And why would they? They get paid anyway. And in the unlikely case that the boss gets a clue and fires them, they'll just move on to another company to scam. There's one sucker born every minute, after all. Not hard to find another sucker who'll swallow a faked resume. Beats actually working and learning.

    And, yes, there are a _lot_ of clueless ex-burger-flippers who did just that. Moved into programming not even "just for the money", but "for _undeserved_ money."

    --
    A polar bear is a cartesian bear after a coordinate transform.
  32. Good points but lacking insight, wrong conclusion by JaredOfEuropa · · Score: 2, Informative
    The article makes a few good points, but they're hardly insightful stuff. Come on... most of us could have come up with these things. The article defines what a good product should be, but as we all know, a good product does not a succesful product make. And conversely, a bad product may still become market leader. Ever seen the user interface to SAP, Cognos, Agresso/Unit4? These are all popular packages around here... despite their many shortcomings.

    If you want a truly insightful essay, not on what makes a good product, but how to bring a technical product into the mainstream market, I can heartily recommend Crossing the Chasm by Geoffrey Moore.
    You're not gonna be the next Microsoft
    With this kind of thinking, Microsoft wasn't going to be the next Microsoft, way back when. Don't set up and run your company as if you're going to be a major league company, but be ready for it when it happens unexpectedly anyway. As they say: "Luck is where preparation and opportunity meet".
    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  33. Re:Not original but... by bessel · · Score: 2, Informative

    Anyone who isn't successful at writing software the first two times around failed at the requirements and design phase.

    You V3.0 people tend to dive right into writing the code before you have a clear understanding of what's needed and how to properly architect/design it. Then, say with pride "V3 is completely redesigned from the ground up". Translated: "We failed so badly the first time around, that we rewrote the same software again".

    Rules of thumb:

    1. Don't start anything until you clearly understand your problem statement

    2. Don't start anything else until you clearly understand you end user. If the problem statement is "need to get to work quickly" and your end user is a student, don't design a $75k vehicle.

    3. Create a clear and _short_ document that describes what you are going to build. Get it reviewed by many people (the more the merrier), especially your end users. Not only does this provide good feedback (e.g., "I can't use a $75k vehicle"), you might get some good, free ideas on how to build something better. At this point, consider ways to build the project smaller and still get something out the door. Yes, this is the MS philosophy of "good enough". Perfectionists have a difficult time with this stage but there is a lot to be said for good enough software. Your end users will get something in a shorter amount of time, you'll learn from your mistakes when they used the first version and you make some $$ in the mean time.

    4. If you're building a tool, especially a UI, build a prototype, let your users test it out and expect to be wrong. You'll need a few iterations to get it right. As a developer, you rarely have the same "perfect UI" as normal people (e.g., you'd prefer more technical language, more complex UI, etc).

    5. Think strategically, act tactically. Think about the future of what you're building. Can you create subcomponents that might be useful again some day? Build an architecture diagram if you're working on any significant project and have it reviewed. Think about "pluggable" components at this point. Again, think about "good enough" software.

    6. Build crisp and well design interfaces (APIs). An interface that gets a lot of use from end users will be very difficult to change in the future. Build something that has at least some level of adaptability. For example, having a "options" argument as the first argument is not a bad idea since you can change the behavior at some point in the future without changing the API. This is the time to thing about "black box testing". Based on your architecture diagram and crisp interfaces, could you pull out a component and have it tested simply by driving its interfaces? Have the interfaces reviewed.

    7. Once you have the components and interfaces designed, consider the design of each component. This is also a good time to go back to steps #1, #2 and #3 to make sure you're still building the right thing for your users and what they agreed to in step #3. Have the component designs reviewed.

    8. Build the interfaces (read: write code). Pay special attention to serviceability of these interfaces. I.e., you might want to trace what is passed across these interfaces).

    9. Build the components (read: write code). Again, pay special attention to serviceability. If something fails in these components, could you diagnose it remotely with your problem determination facilities?

    10. Unit test. Test error paths and other "rare" code paths that would otherwise not be tested by driving the external interfaces. Test your serviceability features to make sure they work.

    11. Test the externals by driving the components via their interfaces. If you have an automated test tool of some kind, get your tests hooked in. This might sound like a lot of work, but it is so good to know that if someone else's change "breaks the code" it is their fault and not your responsibility. If you don't have your code tested as part of the official methods, you'll be fixing problems that other people c