Six Laws of the New Software 313
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."
In a nutshell (Score:5, Informative)
Keep it small
You're not gonna be the next Microsoft
Do many releases
Comply with relevant standards
Re:In a nutshell (Score:5, Funny)
Re:In a nutshell (Score:5, Funny)
That's 5 laws... What's the sixth?
Profit?
Re:In a nutshell (Score:4, Funny)
Re:In a nutshell (Score:5, Funny)
Re:In a nutshell (Score:2)
Re:In a nutshell (Score:3, Insightful)
Re:In a nutshell (Score:4, Interesting)
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.
Re:In a nutshell (Score:2)
Re:In a nutshell (Score:2, Insightful)
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))
Re:In a nutshell (Score:3, Informative)
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
Re:In a nutshell (Score:3, Insightful)
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.
"Somebody has to be"... (Score:2, Informative)
Re:In a nutshell (Score:3, Informative)
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.
Good points but lacking insight, wrong conclusion (Score:3, Informative)
If you want a truly insightful essay, not on what
Re:In a nutshell (Score:2, Insightful)
Do you mean the $3.400.000.000 profit they made in the last quarter of 2004?
In the end of last century... (Score:5, Insightful)
19th century, that is (Score:2)
Re:In the end of last century... (Score:5, Insightful)
Re:I was going to say how... (Score:2)
HOWTO: Subscribe to parent's newsletter (Score:4, Funny)
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.
Re:HOWTO: Subscribe to parent's newsletter (Score:3, Funny)
Re:HOWTO: Subscribe to parent's newsletter (Score:2)
Re:HOWTO: Subscribe to parent's newsletter (Score:2)
Re:HOWTO: Subscribe to parent's newsletter (Score:2)
Your ceiling fan will likely not support your own weight, and you'll just crash to the floor with a fan on top of you.
If you have to hang yourself (say, no sharp objects around), You need to exploit leverage. Find a tree and throw a rope over it, and attach it to something heavy at the other end. In a pinch, you can always do this from another angle -- Wrap the rope around a bedpost(Futon style works bes
Here's another law to add (Score:5, Insightful)
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.
Re:Here's another law to add (Score:5, Insightful)
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.
Re:Here's another law to add (Score:2, Informative)
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.
Re:Here's another law to add (Score:2, Informative)
Yes, disable it, and use a quick and functional third-party PDF viewer like this one. [foxitsoftware.com] Acrobat in an ponderous, bloated abomination, kind of like Mothra in larval form.
Re:Here's another law to add (Score:3, Informative)
Re:Here's another law to add (Score:2, Informative)
Just now I searched for a free PDF viewer. I found Foxit PDF reader [foxitsoftware.com], which is a free lightweight PDF reader.
It opened the same document very fast.
Re:Here's another law to add (Score:3, Insightful)
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).
Re:Here's another law to add (Score:4, Informative)
Re:Here's another law to add (Score:3, Informative)
Re:Here's another law to add (Score:2)
Also nice, you could suspend (SIGTSTP) a plugin to stop it using the CPU. I hate when I have a bunch of tabs open and most of the CPU is used up by animated Flash advertisements on pages that aren't even showing.
Re:Here's another law to add (Score:2)
http://sewatch.com/searchday/article.php/3456481
Re:Here's another law to add (Score:2)
Re:Here's another law to add (Score:3, Informative)
Boy, that's for sure. And you're not the only one who thinks so; see Jeff Jarvis' [buzzmachine.com] and Doc Searls' [weblogs.com] rants on the subject, which prompted a response [typepad.com] from ChangeThis' founder, Seth Godin:
Re:Here's another law to add (Score:2, Insightful)
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..
Re:Here's another law to add (Score:2, Flamebait)
Don't use a plug in. Use XPDF instead.
Firefox will launch it for you but not auto-magically. I don't believe in auto-magic applications anymore. They bloat, they crash, they generally aren't free.
First law of software, if it isn't free it's crap. There's nothing out there that I can't get for free and do what I NEED to do today. Nothing.
As far as the next Microsoft. It's dead. Not because of ingenuity, but because the business model is dead. No one will ever pay as much for software again.
Re:Here's another law to add (Score:2)
You mean the Adobe Reader 7 (Linux) Beta that Adobe pulled off their website [adobe.com]?
Re:Here's another law to add (Score:2)
On the Mac, nobody uses Acrobat unless they have a specific need for it. We all use Preview.
Given that the PDF specification is wide-ass open to anybody who wants to implement it, why hasn't any clever programmer put his big ol' brain to the problem of writing a good PDF display program for Windows and Linux and whatever the hell else, so y'all who are still using 20th-century computers can quite your whining about PDF?
I use PDF for practically everything. It's fan
Re:Here's another law to add (Score:3, Funny)
Re:Here's another law to add (Score:5, Informative)
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
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
Virtual +1 informative to you (Score:2)
Re:Here's another law to add (Score:3, Insightful)
For screen it's total shit because the page doesn't resize appropriately like in a browser.
The first law of new software... (Score:4, Funny)
The second law of new software is...
C'mon, somebody had to say it.
Re:The first law of new software... (Score:2)
Direct link (Score:4, Informative)
Be careful, it locks up Firefox until it loads.
Hint: How to avoid PDF lock-up in Firefox (Score:5, Informative)
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!
Re:Direct link (Score:2)
No it doesn't. I have it loading right now as I am writing this. I disable the Adobe Plugin and have Firefox open PDF files directly in Adobe itself. I hate having a PDF open in my web browser, be it IE or Firefox. (Go to Tools -> Options -> Downloads then click the Plug-Ins button and uncheck any Adobe item) I personally hate having most content open in a browser other than embedded movies like you see on Apple Trailers [apple.com].
I always hated how IE would open up M
Re:Direct link (Score:2)
Hope I'm not trolling too hard... (Score:3, Insightful)
Anyways, what's the deal with the
Re:Hope I'm not trolling too hard... (Score:3, Interesting)
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.
Re:Hope I'm not trolling too hard... (Score:2)
It's quite hard to find good people still on the market these days, though, unlike 2-3 years ago (in Austin). Conclusion: Good people may have gotten canned, but by and large they've since been reemployed.
Re:Hope I'm not trolling too hard... (Score:2)
They used to be willing to take a chance on you because they needed people so badly.
Re:Hope I'm not trolling too hard... (Score:2)
Re:Hope I'm not trolling too hard... (Score:3, Insightful)
Re:Hope I'm not trolling too hard... (Score:3, Insightful)
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 go
_Both_ generalizations are actually false (Score:3, Insightful)
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
Respect your users (Score:3, Insightful)
Re:Respect your users (Score:3, Insightful)
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. Bu
MOD PARENT UP (Score:2)
Law 7 (Score:5, Insightful)
Re:Law 7 (Score:2)
What if no one cared about it then and for the same reasons won't care about it now?
I'm sure someone, *somewhere* has done a 3D spreadsheet that sold about 50 copies then went bust.
Reviving the concept doesn't mean it would sell any more now though, even if marketed better.
Still, you could be right - there could be really good ideas that just didn't make it because the GUI was bad or
Writing vs Coding (Score:4, Insightful)
pdftotext (Score:5, Informative)
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
Re:pdftotext (Score:5, Funny)
Right I'm off to print a test page.
Re:pdftotext (Score:5, Funny)
Subliminal humor? (Score:3, Funny)
Re:pdftotext (Score:2)
And it doesn't work on my system anyway.
The REAL 6 laws of code writing.... (Score:3, Funny)
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!
Re:The REAL 6 laws of code writing.... (Score:5, Funny)
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.
Number 5 is.... (Score:2)
The "Collaborate" Suggestion and Unix (Score:5, Interesting)
"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 [apple.com] 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.Re:The "Collaborate" Suggestion and Unix (Score:2)
Instead of a CLI approach like:
funkyimageprocessor *.tif | morefunkyeffects > ~/processedimages/
It becomes a drag & drop thing for real GUI apps... Interesting stuff. I'm going to have to find out more about the Automator.
Re:The "Collaborate" Suggestion and Unix (Score:3, Interesting)
Think of it as the natural evolution of the pipeline aspects of the command line.
Re:The "Collaborate" Suggestion and Unix (Score:3, Interesting)
Re:The "Collaborate" Suggestion and Unix (Score:2)
Apple had just come out with several new technology initiatives that required or would have required significant new investment by third party developers which ultimately were dropped by Apple. I point to things like Dylan, Publish and Subscribe, Quickdraw GX, Power Talk, AOCE, and a host of other things.
So, having been burned several times, Apple comes out with this OpenDoc thing and wants people to develop "parts" of an applic
Re:The "Collaborate" Suggestion and Unix (Score:3, Insightful)
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
Re:The "Collaborate" Suggestion and Unix (Score:2)
OLE/ActiveX/COM
Java Beans
Bonobo
DCOP
CORBA
Now a lot of people are going to respond about how these aren't as simple as unix pipes. That's because the data comming from GUIs isn't as simple as the data comming from simple unix text apps. All of the unix apps you could stream into/out of expected one directional constant flow data. In fact any time you have a unix console app that's at all interactive you can't do anything with its output (thin
Re:The "Collaborate" Suggestion and Unix (Score:2)
Garbage In, Garbage Out!
As per instructions on the error page... (Score:2, Funny)
Your server gave me this error:
It just happene
People are dumb (Score:3, Insightful)
*bzzt* wrong (Score:2)
See for example ESR's relatively recent rant (it was on the Slashdot front page too) about his frustrating efforts to configure CUPS on a simple home network. I dunno if you'd consider ESR a retard, but I'd say he's not quite clueless about Unix. Or at least way above the level of an average home user. Yet it took him... what? Several hours?
That was the perfect example of the kind of GUI made not to actually help the user, but simply based on "gah, we must
manifesto? (Score:3, Insightful)
Re:manifesto? (Score:2)
Musicians discuss who and how makes instruments, and I'm sure machinists get into their own technical arguments comparable to the ones that happen here. So why wouldn't they also create manifestos?
You make it sound as if programmers were the only people discussing this stuff, and the rest o
Six Laws of Perpetual Software Contracts (Score:5, Funny)
Not original but... (Score:2)
Time and again this one seems to prove itself true!
Re:Not original but... (Score:2, Funny)
Re:Not original but... (Score:2, Informative)
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 yo
Sorry, but... (Score:2, Insightful)
The .com 5 laws (Score:2, Funny)
6 laws of computing, eh. (Score:2, Funny)
Breaks his own laws (Score:5, Insightful)
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"
Re:Breaks his own laws (Score:2)
Following which they demanded an email address from me in order that I could download a broken PDF where the "this PDF is toner friendly" notice regularly obscures chunks of the page.
Whatever else it does, it does not inspire me to trust their judgement on other areas of software.
Hovno! (Score:2, Insightful)
Standards in the Real World (Score:2, Insightful)
From TFA:
The author is obviously lives in some parallel universe. I wish I could live there too. Not tes
Why does everybody think software is different? (Score:3, Interesting)
Next time I'll check the link better. (Score:5, Informative)