The statement that a technology deserves respect strikes me as weird. Respect is the basis for civilized interaction between people. It isn’t uncivilized to state a technology’s flaws.
On the other hand, we should remember that technologies are used by people, who might have different priorities from yours. A flaw that you consider a deal-breaker might not be such a big deal for someone else. By all means disagree with other people’s technological choices, but do so with respect. :-)
The definition of respect according to https://www.google.com/search?q=respect is
a feeling of deep admiration for someone or something elicited by their abilities, qualities, or achievements.
Which is equally valid for a technology as it is for a person.
[Comment removed by author]
So, some definitions of the word “respect” apply to technology, others don’t. I don’t see the issue. One can safely assume that the author meant the applicable definitions, not the non-applicable definitions.
You are correct. But nothing in the expanded definition changes my point. It is still just as valid to apply it to technology as people.
I’m not sure i understand what I’m supposed to get from this post. Yes, PHP exists and is in use all over the place. Yes, Windows exists and is all over the place. They share an interesting common feature: they are the defaults. Most computers you buy, unless you’re going out of your way for something specific (anything Apple or a deliberately linux-first box), Windows is what you get. Last i checked, PHP is/was a default thing on most server distros, and/or you got it along Apache. So, what, accept the defaults? I don’t know that i can agree with that.
Now, i think that if you pound it hard enough on your problem, we have proven that almost any tool you can come up with can reasonably be used as a solution. Is that necessarily for the best? Unlikely. So what’s the point of the post, then?
There’s an interesting bit about backwards compatibility; I’m not sure it is the reason why the two products gathered such an impressive following, although it is pointless to debate over the importance of backwards compatibility.
So, build products with stable apis, retain backward compatibility, and acknowledge defaults? O_o
PHP has some virtues that made it, in the infancy of the Web, incredibly easy for basically anyone to pick up. You don’t really have to worry about resource management, types, and other stuff that are a varying degree of hard depending on the language/platform you pick. Also it was pretty much the king of shared hosting for a long while because it is simple® to manage from a hosting provider’s perspective. Add to that prohibitive licensing costs for Windows servers, and of course it’s gonna become ubiquitous.
Note to readers, most, if not all of the above, is a mixture of opinion and pure conjecture.
The hosting point is great. Thinking about it now, shared hosting pretty much only had server-side includes or PHP. Perl was available on quite a few but SSI was simplest and PHP halfway between.
It’s not the way to be “for the best”. It’s the way to be dominant. I can think of plenty of examples over the years where people are frustrated that technology X is not becoming dominant despite its “obvious superiority”, yet they fail to recognize that it’s missing at least one of those three qualities, which puts it at a huge disadvantage. So it’s good to remind people of the overwhelming power of those qualities occasionally.
I fully agree with everything in your intervention except for the conclusion. Why is it useful? The fact that X technology dominates a given field by being the most common one by an overwhelming factor is hardly a thing i can do something about. I can like it, or hate it, but it’s going to be very complicated for me to ignore it, let alone be unaware of it; this leaves me to question the purpose of the original post. While the author is not wrong (at least in principle), i am hard pressed to find something in the text that makes me grow as a professional.
As a professional, everything you do is in the service of some business goal. If your business goal is to produce a technology with a hope of becoming dominant, or requires choosing a technology that will not quickly fade away (a weaker criterion), it is very important to be aware of the factors that lead to those results, and weight them accordingly in your decision-making.
It sounds like you are sufficiently enlightened not to make the mistake of focusing on novelty, elegance, ease of use, and other such factors to the exclusion of the less pleasant but often stronger factors of compatibility and stability. In my experience there are plenty of developers who could stand to have that message repeated.
As a professional, everything you do is in the service of some business goal.
If everything was subservient to business goals, a lot of very illegal and evil things could be justified.
As a professional, everything I do is in the service of both maintaining the standards of my profession and keeping myself happy and fed.
I do the same, but i somehow doubt that the article’s subtext is about the integrity of the craft. I think he’s right, too. There’s a way to do the things you do in an ethical and mature manner, but at the end of the day, the paycheck you will cash will have been paid for services rendered, scumbag or not. But yeah, definitely beyond the article. Both in scope and enlightenment potential.
This author didn’t research Windows history if they’re saying stuff like this:
“While it can be tremendously exciting and freeing to “move fast and break things”, a slowly-built institution can (sometimes) have a momentum and a longevity that would be the enviable by most flash-in-the-pan “disruptive” technologies.”
Windows dominance came from a combination of “move fast and break things,” monopolistic deals with IBM, monopolistic deals with OEM’s, maintaining compatibility with prior API’s each step, and lock-in strategies at technical level. They got DOS from a 3rd party then threw it on IBM’s stuff to win by default. They threw Windows together on top of DOS & running DOS apps to quickly rip off Apple. They had Cutler of OpenVMS fame throw together a similar OS in a hurry for time to market to rip off IBM also running DOS and OS/2 apps. During all this, they accumulated more and more users with their legacy apps. They used copyright or patent suits against people trying to get them off that. As did IBM. Now, people and businesses are often stuck with them.
I wonder if the PHP story will be as interesting. I think it will probably be a case of Gabriel’s Worse is Better effect in action. Author should read those essays, too, as it’s probably enough to explain PHP. I don’t have its history for testing my hypothesis, though. It and its ecosystem just look a lot like “half-assed tech that was good enough to get job done by more people with snowball resulting.” Like VB6 and COBOL before it.
<tangent>I may have to accept that certain things exist and are not going away anytime soon but I refuse to respect something just because it’s existed for a long time. Whether it be PHP or religion.</tangent>
You should respect them, even if you don’t like or agree with them. PHP and religion that is. If you insist on believing there is nothing worthwhile in either, you are only blinding yourself to wisdom you might otherwise have. Many organized religions blind themselves by refusing to acknowledge, understand, or respect outside ideas. Your personal religion against PHP, and ironically religion, blinds you in the same way.
Maybe I’m attributing views to you that you don’t have, but I’m merely responding to how you present yourself in this comment, and from experiences with other people who have presented the same way.
One should respect the power of popularity - if only for the harm it can potentially do to you. And one should be open to finding wisdom anywhere. But it’s not at all true that something popular necessarily contains wisdom. Some things really are just accidents of history, and it’s eminently possible to examine something popular in detail and conclude that it contains nothing of value. Sometimes a fence is just there because some idiot built a fence for no reason.
I’m going to fall back to the dictionary definition I am using for “respect” (as it was not defined anywhere else and I was assuming a shared definition), then based on that you can see whether you still believe I should respect it or not.
The definition I am using is:
So, why should I feel a deep admiration for PHP? Certainly I can look at things it as accomplished and appreciate them or make use of them. But I don’t have any sense of admiration for PHP.
As for your statement:
Many organized religions blind themselves by refusing to acknowledge, understand, or respect outside ideas. Your personal religion against PHP, and ironically religion, blinds you in the same way.
I never said I wouldn’t “acknowledge” or “understand” PHP. I said that I won’t deeply admire it and I, especially, won’t deeply admire it because someone told me what I should.
When you are respectful to a waiter, are you showing them deep admiration for their abilities, qualities, or achievements? That definition is narrow.
Even so, I never said you have to like or use the language. But yes, I do think you should have some admiration for PHP based on its abilities, qualities, and achievements. If you don’t respect PHP for those, you certainly don’t understand it. Or you hold absolutely no value for things like productivity, ease of use, extreme accessibility to beginners, excellent documentation, thriving friendly communities, and so on and so forth.
For example, the obviously named and trivial to use function file_get_contents. My dad writes PHP, and I guarantee you he does not care about fopen, fread, or fclose. He’s not a coder, he doesn’t care about computer science, he just wants to get stuff done, and so PHP provides. He wrote PHP for years without knowing how to define his own functions and still got a lot done in that time. Millions of others have done the same. To me, that’s incredible.
That situation would fall under definition 2 in Google:
due regard for the feelings, wishes, or rights of others.
Which I, personally, have a difficult time applying to inanimate things.
Or you hold absolutely no value for things like productivity, ease of use, extreme accessibility to beginners, excellent documentation, thriving friendly communities, and so on and so forth.
This assumes that I find PHP to be any of these things (I cannot speak for the community, I haven’t been there in awhile). I wrote a lot of PHP back in the day, I moved off of it because I was more productive elsewhere. I’m not all that interested in beginners. The documentation is decent but I have found just-as-good-if-not-better elsewhere, etc etc. Maybe this is a list of reasons that you respect PHP but that doesn’t mean they apply to me.
I’m not all that interested in beginners.
Well if you can’t respect or appreciate something because it doesn’t benefit you directly, then we have a fundamental disagreement between us that can’t be reconciled.
PHP may very well be easy or productive for certain people, but it’s definitely not that for me. Ultimately that comes down to familiarity and predictability to a degree, and I have long since lost any familiarity I had with PHP, and find it anything but predictable.
In the situation you’ve given with your father, it’s not PHP that deserves any amount of respect, it’s your father for using the tools he has available to him to build whatever it is he’s building. PHP is the tool he’s decided to learn and if it works for him it works for him. That doesn’t make PHP any better or more deserving of respect than any other language.
Sure it deserves some respect for becoming so popular, partly because it is easy for beginners (disregarding what it also teaches about security or coding style) and partly because of integration/availability/de facto standard.
I disagree since these tangents are rooted in the idea that popularity or tradition equals logc. Most of these things started with little-researched personal needs and emotional responses that were justified by logic after the fact. The default of human nature. If it’s popular, I’m less likely to default on respect. I’m going to get extra skeptical as herd mentality might have taken over.
Some things are popular or long-lasting for logical reasons. I still explore popular things to identify those. I learn from those. Far as IT, almost all of the best stuff in any attribute you can think of isn’t popular. It’s a niche or died off. In many cases, the popular stuff refuses to modify itself to pull in whatever advantage was discovered due to inertia. At best, they approximate it in anywhere from a pale imitation to 90% of it with caveats. Occasionally, something does get widespread use in good form but usually cause it was forced in by central authority for their own reasons.
Quick example. Clusters of Linux machines with fancy, modern SCM’s and containers are popular today. I’ve seen many stories on HN about them losing availability or an app-level mistake trashing all their files. They always do write-ups explaining how it’s normal for services to go down due to mistakes they understood & are rectifying. How many times did you hear VMS admins say that happened to their mission-critical clusters with versioning built-in to their filesystem? A few features at the OS level deployed in the 80’s that most popular stuff still doesn’t have which prevents or facilitates recovery of serious problems they regularly have. “Our preacher told us we don’t do it that way.” (rolls eyes)
The link you posted doesn’t actually say anything about respect. But even with that, I feel confident I understand PHP enough to know why it’s there so I don’t see any reason to respect it.
To give a less snippy response, I do think it is important to understand something that has a large impact even if it’s the stupidest idea ever. I just don’t agree that the word for that is “respect”. Homeopathy is a huge industry and it’s all nonsense, why should I respect that? Or Dr Oz is a very successful charlatan, I have no respect for him. I take the time to read about and understand both of those, though. Maybe I’m just using a version of “respect” that other people do not.
I don’t mind Windows, and I don’t really have dealings with current PHP, but I understand where both have come from, how they’ve developed, and how it’s not so easy to change things so entrenched. I guess, in those regards, I respect them. I don’t think that’s such a big stretch of one’s character to achieve, so I don’t think this article is asking a whole lot of its readers. Maybe it is? I’m sure some primo devs will weigh in.
What I’m more interested in is respecting them as in don’t be a particular asshole over it, like criticizing software and technology is obviously okay but bashing and jokes and memes are elitist, as well as old and uninteresting. Some people built this, some people are happy with this, some people are taking their baby steps with this, some people only have access to this right now, et cetera, so chill.
This meme about Windows being super focused on backward compatibility has really taken hold. I’ve seen it mentioned in half a dozen blogs in the last week. It’s also horse shit. Windows is not exceptionally backwards compatible. It only seems that way because in the last decade the big tech companies like Google have taken on this attitude of breaking stuff is just fine, so you have things like Angular 2 happening. Maybe it’s because of a generation of kids weaned on game consoles which are usually not backwards compatible with the previous generation?
That is not the norm for computing history. The standard was always not to break backwards compatibility when you are working on a platform where your customers have built their own products and systems on top of it.
I wish these people writing these blog posts would stop for a minute and re-examine their understanding of things, but instead they keep regurgitating these memes.
To get back on the PHP topic; PHP is not some crazy paragon of backwards compatibility. PHP 7 actually (finally) removes the deprecated mysql_* functions that have been around forever. It’s actually a miracle the author’s site didn’t break when switching to PHP 7. I would wager most PHP sites in existence will break switching from PHP 5.x to 7.
Considering the massive architectural changes it has gone through, and the amount of effort expended to keep thousands of third party applications running for years (even the horribly buggy ones), I think it’s fair to say that Windows is “exceptionally” backward compatible. What other platform even has that many things to be backward compatible with?
It’s only the massive financial success of the platform that enabled Microsoft to afford to do it—which is of course the virtuous cycle that is the whole point of the exercise.
Every other operating system has been the same story. It’s just that Windows is one of the few operating systems still standing in 2016. OS X maintained compatibility layers for old System 8 programs, but because Apple is Apple did eventually drop them.
Also don’t over-state how backwards compatible Windows 10 is. It’s not like you can run most DOS programs under Windows 10 without issues. DOSBox exists for a reason.
I think that’s called “begging the question”. :) Why is Windows one of the few operating systems still standing? And yes, after thirty years they’ve relaxed a bit on DOS compatibility.
Why is Windows one of the few operating systems still standing?
Because Microsoft used illegal business tactics to ensure it was the only OS option from all PC manufacturers for 20 years.
First mover advantage, installed by default, and lock-in tactics. The result is that most competitors went out of business, most people were brought up on Windows (stay with what they know), most software (esp cheap) was written for it, most business might face loss of operations if they try to ditch all the stuff they built on it, and copyright laws Microsoft partly pays for ensure it can sue clones w/ improvements into non-existence if they ever threaten it (see IBM vs Hercules spin-off).
With IBM using the same tricks, you could’ve just as easily said there must be something magical about COBOL on a $5-20 million dollar cluster of mainframes that makes so many stick around. Yet, you can do more transactions a second with five nines in a safer, modern language for a fraction of that cost. Must be something keeping them on it given the heavy financial and technical disadvantages. It’s [also] called lock-in. ;)
Even first movers installed by default for which a lot of software is written will die off without backward compatibility, because lock-in doesn’t work without it. As you say, businesses will fail if they ditch their existing software, so if you ask them to do that, it’s a hard road.
It’s not “magical”, it’s just part of a successful strategy for making your technology dominant.
I agree with wrs in that it’s amazing how much old stuff can run vs about any other platform outside mainframes. There is truth in your statement if we’re talking about the fads they create. Mainly development stacks. They have a tendency to push something on their developers, force all kinds of legacy code to be created for it, and then dump it later in favor of something else. The critical stuff at OS level tends to remain compatible to some degree, though. They’re also supporting virtualization solutions which can be a fallback option for that.
But then you visit the control room of a plumbing fixture manufacturing plant where the computers are all running a Windows-based control program purpose-built for just this one industry, an application which had its last major update in the Windows 95 era, costs $10,000 a seat, and which has sold fewer than a thousand licenses over its entire lifetime.
I suspect that the “Windows 95 box in the corner” will slowly die once a few Stuxnets happen in the private sector. It’ll be hard for even a small shop to ignore this once their production line is held hostage by Georgian teenagers.
Possibly. It’s more likely to be virtualized with some sort of pricey, security appliance or tech put in front of, underneath, or around it. That’s how the legacy stuff goes. As an example, the company behind NuVax keeps the U.S. government’s VAX applications going with their emulator. That way the system controlling testing of Minuteman missiles can continue to do its thing without any risk from changing the app nobody understands. Lots of similar systems in big business from mainframes to OS/2 boxes to Windows 95.
I grew up programming Data General NOVAs and was recently surprised to find there’s a viable business in providing software emulations of them. Apparently they were quite popular as industrial automation controllers and it’s easier for some installations to just keep running the old software on a PC emulation. It doesn’t seem too long ago that I saw a DG Eclipse at SFO still running the automated noise measurements.
I forgot about those. The picture in the upper-right looks what a Redbox kiosk might have if done in the vinyl days. What you think? Haha.
Wow, only $4,000? I didn’t realize they were that cheap. Well, $8,000 with the RAM but still cheap. Just a few microseconds on memory access. I can see why some people doing acquisitions for factories would’ve used them. Like with the VAX, the only real problem for these kinds of things is replacing the parts. NuVAX’s customers said they were getting stuff off eBay that was older than their existing parts. Accurate emulators knock out part of the cost and all of the risk. No surprise there’s money to be made there.
Maybe some kind of virtualization would have allowed them to achieve their goals without causing so much harm.
PHP hasn’t really had this happen yet; but Microsoft did have a period where the snowball ran over them, with Vista/Windows 8/I-can’t-remember-what-it-was-called.