Saturday, April 28, 2007

PROGRESS V4.0: is marketing the worst enemy of Progress?

[This is my forth article on progress -- tune back in for more! The first article is here.]

Fashions come and go. It seems so natural, there are dress fashions, health fashions, diet fashions, so why not software fashions too?

Well, actually, we have seen in the last article why not. A better question is, are fashions "natural", and how do they start?

Well, I can't say how a dress fashion starts. None of my outfits are concerned with fashion in the least, they are concerned with placing things that I need to carry with me in places that don't annoy me while walking or working.

I can tell you, though, how fashion in software starts. It starts with a hype.
Now, of course, the hype doesn't come from no-where.

Remember Java? It was the hype of the time when I was just starting to discover the internet. It was started not by a community of developers, or researchers at a university, or anything like that. It was started by SUN, an enormous hardware, software and service company. Just as, about ten years later, Microsoft tried to jump on the same bandwagon with .NET. Both of those "hypes" were generated and pushed by the Sales/Marketing divisions of those companies.

Another fashion is XML. This one is a very different kind of fashion, since it, from all I can see, started out from W3C creating XML to use as a standardized replacement for HTML. It was a free text markup language backwards-compatible with HTML and extensible, too. It is very good in that role. However, I can't quite find out who's idea it was to use it for pure data. It wasn't obvious, since better formats exist since 1985 (if libraries for ASN.1 would be as widely available as those for XML, it's perceived complexity would not be an issue). Nor is it difficult to design a better format for that purpose, text-based or binary.

But one of the most frequent sentences said at the beginning of the XML hype was "if all applications can XML, they can all exchange data with each other!". Which, as you probably know by now, is neither so, nor does it make sense, since there is no way in XML itself to assign any intrinsic "meaning" to a tag, an application doesn't know whether a tag "p" stands for paragraph, person, parity or pound, neither is there a way to declare meaning like this in the underlying schema documents (though this might eventually evolve, but so it could with any other hierarchical(-lish) extensible language).


The sentence, though, was marketing. Not of the big companies for the consumer, mind you, back then, he was unlikely to encounter XML anywhere but as XHTML on a web page. But: enough people who invest into IT don't actually understand it, as you could nicely see during the bursting of the .com bubble. And they bought shares in new and promising buzzword startups, thinking, "Yey, now we can invest into companies making programs that can understand everything!". Some of them actually survived and made money. But so do the top levels in a pyramid scheme (which, as you probably know, generates no additional value
whatsoever)

In all three cases there would have been prior, superior alternatives with existing infrastructure to invest into, and extend. You know, progress. And the only reason it didn't happen, was marketing.

Which lets us conclude: marketing is not a friend of progress.

But the marketing division doesn't just go out there and start promoting things, either. Neither is it a mere coincidence that marketing buzzwords are parts of startups' business plans. What is the reason for marketing? Is there maybe an even bigger enemy of progress lurking in the background? The answer -- in the next article!

Sunday, April 22, 2007

PrOgReSs v3: Is fashion the worst enemy of progress?

[This is my third article on progress. The first article is here. More is coming, including the promised "sales department" part.]

What has fashion to do with computers? Well, that's easy. When my grandfather was programmer ( ; ), COBOL and LISP were "in". The day before yesterday, C/C++ was hip. Yesterday, Java was cool. Today, Dot-HET is "dah coolest evah", and "java suxxorz". Tomorrow, it will be something else.

"But wait", you'll say, "this is progress!"

Erhm... is that a fact? Entire software development suites exist written purely in LISP. LISP has a byte-compiler, just like Java, and would be just as cross-platform (not to mention that it is much easier to parse for computers, and looks not any worse then XML does, except for less text. And XML is "in" now, isn't it?) In C/C++ you can do everything you can do in Java, with less text. Dot-nyet's C# is a weird mix between Pascal (!), C++ and Java with some "novel" concepts most of which you easily can replicate using C++. The idea to have a set of standard libraries for "everything" on a platform is also not that new. The C/C++ libraries are somewhat limited, I agree, but I remember standard GUI libraries being used on AMIGA (integrated in it's ROM), in 1992, and you could access them from the AMIGA's assembler really easily. (In fact, the source code of an AMIGA program opening a pop-up box in assembler is about as long or even shorter then the same program written in Java -- so much for "high level"). I'm sure, someone out there remembers an older example.

If you sit down and compare the features, you will find out that the capabilities of most high-level and/or object-enabled languages, old and new, are very similar, not to say, almost the same. Which is why many people still use LISP, and C/C++, and, well, COBOL. (The latter is probably being phased out of active use, mainly because no-one can program it any more.)

The same is true not just for programming languages, but also for other technologies. Just look at how popular technology buzzwords change overtime (I wanted to give a link to the google keyword popularity comparison here, that I've seen in December 2006, but I can't seem to find it any more in April 2007. I guess that was also a thing of fashion...).
For those of you who have a long-term memory though, just remember the technology buzzwords from ten, five and one year ago. How many of them are still there?

"But what's so bad about this?" you might ask, "isn't fashion what's keeping the industry alive? They can sell new things!"

That might well be. But we are looking at progress now. As in, what brings our knowledge and our technology forward. And "new things" that are created this way don't:

Remember my first post? The same problem as with the perfectionism applies to fashion: software is built on other software. Just like in science, where theories are built on other theories.
If people don't buy or finance projects that are based on the most current, the most hip library, it doesn't really matter how many projects you finish: you will never bring a project past a certain point. It is like trying to build a house where every time you want to build a second floor, somebody says "but we have a better material for the first floor now, let's tear it down and build it out of that": the second floor will never be built. You are just doing the same thing over and over again. That's not progress, that's marching in one spot.

But why do people keep doing that? Why do we switch programming languages, libraries, technologies? Why does this fashion-thing exist in the software world -- is it a matter of tastes, or is there something else in play?

The answer, as always, is in the next post. Incidentally, it will also be a continuation of the last post.

Sunday, April 15, 2007

Progress v2: Is the Pareto Principle the worst enemy of Progress?

[This is my second article on Progress. The first article is here. Keep tuned in for more. It is coming. Really!]

As we've seen in my last post, perfectionism doesn't do well in the face of the rapid progress of the current software-internet-turbo-world. So how does the industry ever finish any projects?

The short answer is, by using an interpretation of the 80/20 rule, also known as the Pareto Principle.

The used interpretation differs from one company to the other. Unfortunately, in the software industry (spell m-i-c-... etc) the interpretation in question is, "You can achieve 80% of the intended result by investing 20% of effort".
The corollary of that interpretation is, to achieve the remaining 20% of the intended result, you need to invest the other 80% of effort. And business don't play that.

Which often enough results in released products ~80-90% ready, because it simply doesn't pay off to invest more effort to make the product "more ready".

Since later software almost always relies on previously created software-libraries, or tries to stay compatible (often even bug-compatible) to already existing software, the application of the 80/20 rule results in "progress" being made at the cost of quality, and also, the bugs of every product built on top of an existing buggy product compound, the end product becoming progressively worse. (The same is also true for other forms of modular technology, e.g. computer hardware.)

Also, unfortunately, the final 80% of the effort in the "traditional" software development methodology (as opposed to the agile software development) is debugging, which also explains the quality of some software products out there.

With this in mind, the Pareto principle can be easily converted into a weaker form of Sturgeon's Law - at least 80% of everything we produce in the name of Progress is crap.


But then, if nothing is ever perfect, it is easier to sell something new by claiming that it is better. And that's why, next time, we'll see how the sales department deals with the notion of progress.

Saturday, April 14, 2007

Progress v1: Is Perfectionism the worst enemy of Progress?

[This is the first entry in a series that deals with the notion of Progress. There will be more. I promise.]

Most of us grew up with the notion, that the world is moving forward. Developing. Progressing.
Progress is good. New developments are good. Good for business, good for our living standard.

Software, too, is progressing. Ever new development models, languages and components are invented. Software is built on those. Software is built out of that software. And then rebuilt, using newer components, because newer is better. And then rebuilt again, using still newer components. And then...

Oh wait. Is that still progress we are talking about?

I don't know about other software developers, but I have, from time to time, met the point, where I have built a large and complex piece of software with the resources and tools I had available at the point, and it took me so long to develop that by the time I was done, it was technically obsolete because now there were newer tools and resources I could have used.

Now, the piece of software is done. Theoretically, I could sell it. Or, because I am a perfectionist, I could re-build it using the newer technologies. But by the time I'm done rebuilding it, there will be even newer tools and resources... Should I sell it then, or should I re-build it using those?

Or rather...
- am I ever going to be done with it and sell it?
And a corollary:
- does perfect and up-to-date software really exist, and who makes it?

Cheers,

Your Fly

And next time we are going to look at what the industry does with Progress. Because, well, industry isn't perfect ;-)

Wednesday, April 4, 2007

Adobe: a license to spam?

For all of you who expect a news article, or an abstract, here is what this article is about:
  • Adobe has turned to spamming in an attempt to advertise their newest product.
  • It is something that many monopolists do, and indeed, Adobe is now a monopoly in the commercial segment of the field.
  • spamming is illegal in many parts of the world, and rightly so. It is also a really bad idea.
  • It is an especially bad idea, if there are free alternatives to your really expensive product.
  • And there are. And I will show you where.
And here is the long version.

I always thought, spam should be illegal. I mean the electronic variety (though I wouldn't mind the "IMP" (Inedible Meat-like Product) to go the same way).

In fact, in some countries, like Germany, where I live, it is illegal (since 2004), and every US-Bill that I know of, that the spammers usually quote in a fashion similar to "this spam message is legal according to ..." hasn't actually passed into law. (And, can anybody tell me what happened to this US Bill?)

I always thought, no self-respecting large company manufacturing good software will go out there and spam.

I also always thought, a legit company doesn't need to spam, because all spam does to a company with a reputation is to damage it.

Today, though, I've got an email with the title, "Today, everything will change".

And suddenly, it did.

That particular mail contained clear indications of being spam -- including but not limited to
  • web links with the encrypted ID of my email address
  • the lack of a personal address or even my first or last name anywhere in the mail,
  • the form,
  • and the notorious "If you'd prefer not to receive e-mail like this from us in the future, please click here" text so well known from opt-out mailings -- which are illegal in Germany, and which are also known to mark your e-mail address as a better target for spam if you click on them, because now you've proven that it is a valid e-mail address.
It also was sent to an e-mail address at a German mail provider that I never use for anything but potential spammer websites.

That email, though, was in English, and it was from "Adobe Systems Inc.".

At first I thought, it was a phishing scam. But no, all the www links point to http://direct.adobe.com/r?bmZmdWJ5cmZAbnFib3IucGJ6
(the code is changed so you don't accidentally register me)

Notice the "direct", for "direct marketing" as in "unsolicited email", adobe.com as in THE Adobe Systems Inc., and r, as in "register"?

I abstain from posting the full text, since that would be just more marketing for Adobe anyway. I should just say, that the email was about their new, horrendously expensive piece of software with the proposition:

Creative license
Take as much as you want.

They say it as "Complete creative freedom to work in any medium". After taking a look at the amount of products in the bundle, and recalling all the acquisitions by Adobe in the last years, it suddenly became clear to me: Adobe isn't just planning to monopolize the entire (commercial) graphics and video industry, it already did.
The "freedom to work in any medium" is just very carefully wrapped new-speak for "now all the software you'll ever need for web design, video or content creation, you'll either have to buy from us in a bundle that costs more then you earn in a month, of which you only will ever want one piece anyway, or write yourself".

After having seen similar "campaigns" from Microsoft and Apple before, I think I can safely paraphrase the above slogan as

Creating monopolies
We spam as much as we want.

Well, there is also good news for the graphics artists out there:

You can get Gimp for free, even on the Mac.

You see, Adobe forgot a teeny-tiny thing. They don't like open source, they don't endorse open source, and they close their eyes in the hopes that if they ignore it long enough it will go away. How 'bout we go away instead. From Adobe. Somewhere more pleasant.

For example, instead of going to the Adobe's "all young artists are belong to us" conference, why not attending Libre Graphics Meeting (http://www.libregraphicsmeeting.org/) instead, and learning of the newest and best in free graphics applications.

Also, Knoppix live DVDs contain many of the free graphics tools in one package. You don't even need to install them. Just download the disk image, burn the DVD (or buy it from a store near you, for example from on-disk for $5.99,* pop it into any computer that can read it, and go. The boot process is lengthy, but it will normally not ask you any technical questions, detect all your hardware automatically, and it doesn't install anything on your hard disk, allowing you to just play with the software at will. If there's nothing you like on the disk, just throw the DVD in the garbage (or erase the rewriteable) and never think about it again. It had cost you $6.

Unlike buying into a medium-size cattle farm called CS3, where you will have to pay for an upgrade every time they build a shinier fence, and also can't give it back once it's open. Which does sound suspiciously like a can of spam. Except, that, too, can be had at a much lower price.

Which reminds me: I know that every wannabe "direct marketing" company out there and many short-sighted small IT corporations that benefited from the original increase in public awareness will try to convince you that I'm wrong. A couple of studies though (for example "The effect of direct advertising to the dearly departed" ) show that spam is indeed not all roses. Most of the IT recognizes spam as a problem. 80% of all the email traffic is spam. And yes, we do pay for it. Even if you don't pay per time or per bulk any more, it is still included in the cost of your "flat rate" and prevents your provider from offering you a better price.

And also... When was the last time you heard somebody say that he was happy to receive a spam mail?

So what is the morale of this little story? Things have changed. Adobe just commited something that in parts of the world constitutes a crime, and waved "all your base..." in our faces. I just lost my last bit of respect for a company that at some point did manufacture quality software, after wasting half a day bitching about it, and added it to my spam filter. And you, my dear reader, might discover a bunch of powerful, new and free tools. Benefit for Adobe so far? Zero.

Case closed.

* - If you order the Knoppix-DVD, watch the version -- the newer, the better / the latter versions of the graphics software you'll usually get. It should be minimum Version 5.1.1 (as of the 4. of April, 2007).
- If you download the disk image, look that it fits to your architecture.(32 or 64 bit, etc).
- If you have trouble with Knoppix, try Ubuntu.
- If you already use Debian, or another linux distribution you can install many of the free tools using your package manager, e.g. aptitude on Debian. Just look through the "graphics" package :)

PS: Useful information about spam (the electronic variety) and how to deal with it, can be found here: www.stopspamhere.ca