Well, on second thought, I guess it depends on how you look at it.
The fact is, indeed, that most nobles weren't some nobody who was given a fief if he signs a contract. (Or rather, swears an oath.) They were guys who had the land to start with and entered a vassalage for protection, or were forced into being vassals.
Or indeed, it was often "given" as a reward. Being knighted and given some land in exchange for military service was a privilege, not something that was freely available to anyone who wanted to enter that kind of a relationship.
From there, well, what remains is that in exchange for the warlord's or king's protection, one had to provide 1 knight per hide of land in wars. Or in "bastard feudalism" enough money to hire a professional knight instead. And could have his lands taken if he failed to provide that service.
You could see it as, well, the modern idea of private property and taxes. You know, you own X acres of land, you have to pay Y pounds or Z knights per year as taxes. And if you fail to pay them, some guys show up and take your land and title as punishment.
Or you could formalize it as having pledged your land to the overlord/king/emperor, and receiving them back as fief in return for that military or money service.
It's in the end the same thing, save for some subtle differences. They tended to formalize it as the latter, back then. I suppose it was an easy answer to such questions as, "why should I pay the king anything if it's _my_ land?" or "why should the king get it if I die without heirs? If it's mine, why can't I leave it to my drinking buddy?" Formalizing it like "yeah, well, the king owns it" was probably easier than building the whole legal and philosophical framework we have nowadays.
So, well, I can see how it looks funny if you look at it through the modern concepts. It wasn't really the noble's private property, or at least not formalized that way. And it wasn't really the king's private property either, or not in the way we understand private property nowadays. He couldn't just post an eviction notice and move another guy in your place, save for gross breach of obligations. So reading that feudalism definition through the modern terms, you know, the king owns the land and rents it to some Earls, it doesn't really work at all like you'd understand "own" and "rent" nowadays. It was formalized like that anyway, though.
I just liked the phrase, because it sums up what it really was. Its claim to being an Empire, for example, was based on a Translatio Imperii theory that placed them as legitimate successors to the western roman empire, based on the forgery known as the Donation Of Constantine. The pope simply didn't have the authority to do that, if not for that forgery.
At a quick read, and bearing in mind that I'm no authority, the summary seems to... conveniently ignore some recorded history, and make a hash of unrelated kinds of property.
E.g., yes, there was allodial property, i.e., land held as private property and without any further obligations to a lord or king, other than their general authority over their country. That's why in Germany we had the distinct title "Freiherr" (literally free lord), in parallel to Baron. The famous Red Baron was actually called, "Manfred Albrecht Freiherr von Richthofen", i.e., his family has had his lands as allodial property, not as fiefs.
But that was something that existed in parallel to feudalism. That's why we had the titles Freiherr _and_ Baron, at roughly the same level in the hierarchy.
So one isn't a counter-point to the other. It's a bit like saying that since day exists, night can't also exist and it's a lie.
The early history of the HRE is also full of such conflicts centered around:
1. Whether the fiefs granted to a bishop belong to the Emperor or the Church. The initial understanding and the reason why so many lands had been granted to the Church, was that (A) the land _is_ granted as a fief that keeps belonging to the Emperor, and (B) it was easier to get it back after a Bishop died, than from the heirs of a dead noble.
When the church suddenly claimed perpetual ownership of those, it caused quite the ruckus, because it robbed the Emperor of about half his lands in one fell swoop. I'd argue that it wouldn't have caused half as much conflict and controversy, if the understanding had been all along that the land is granted in perpetuity, as private property.
2. Nobles being simply removed or replaced from their fief by the Emperor, usually for failing to live up to their obligations. This isn't just conjecture from some law codex, but actual documented instances. E.g., duke Henry The Lion was removed from the duchy of Saxony and the duchy was divided, when he refused to follow Emperor Frederick Barbarossa into war in Lombardy.
England itself had to give explicit laws to limit sub-infeudation to such extent that it was no longer even clear or feasible to track who owed the military service for a given piece of land. Check out the statute of Quia Emptores, from 1290. I'd argue that you don't give a new law like that based on just some imaginary legal construct, but to deal with some actual problem.
Or you can look towards other places, for example Hungary, where at one point they actually had honour points like in WoW;) And awarded fiefs based on those.
I would agree though that it never was that simple as pure theoretical feudalism, though.
For a start people always tried to get into their private propertly, what was just a fief. Aiding that, you couldn't take someone's fief other than for gross breach of the obligations, so it was already _very_ hard for the liege to get it back anyway. After a few generations and given some weakening of royal/imperial power, it did become a pain in the rear to actually demand some land back. In the HRE, for example, it slid towards such decentralisation that the Emperor depended on the nobles' good will, rather than the other way around, and all land became pretty much just private property of the nobles.
In England, it quickly slid towards "bastard feudalism", where people just paid money instead of going to war for their liege. (Although, again, that was the theory they had started from.) So pretty much it (re)evolved into a money based economy instead of early manorialism. So pretty soon, yeah, you no longer had real feudalism.
But even in the beginning, the nobles, re-fashioned as dukes (from dux) and grafs (from grafein) trying to imitate the romans and greeks, were generally powerful chieftain of major tribes. Trying to transplant the Roman system of naming a provincial administrator over a province, without actually owning the province, may have worked in theory, but generally y
Thanks for the kind words, but you have to remember that I'm just a Joe Random who knows half his history from Rome Total War and Europa Universalis, and forgot the other half;) I.e., take it with a grain of salt, or ignore it completely.
That said, I haven't had a chance to read that particular book. It sounds interesting enough, though, so I'll definitely want to have a look. Thanks for the tip.
I wasn't "blaming" anyone, as you probably noticed. Au contraire, my post just pretty much said "people massacred each other without christianity just as well, and, who knows, maybe we actually massacred each other somewhat less in this christian part of the world." I.e., you know, pretty positive stuff, coming from an agnostic leaning towards atheism.
That said, it's not _that_ special in that aspect. Buddhism preaches, basically, "be nice or you'll be judged for it" too. I don't think Shintoism preaches, "be a bloody mass-murderer either". Neither of the two stopped the Japanese atrocities in WW2. So does Taoism, and they caused at least one uber-bloody revolt anyway. The Islam isn't too bad a religion either, but look at what _some_ people do in its name. (Note: I said some, not all.) Etc.
Confucianism, well, ok, it's not technically a religion, but served as the ten commandments on steroids in China, and generally it's somewhat (if imperfectly) comparable to the role organized religion had in Europe. It preached humility and obedience to an extent that most of us westerners would consider strange and offensive. According to the precepts of Confucius, you couldn't for example judge a son while his father still lived, because he wasn't even supposed to have a free will of his own at all: he had to do exactly what his father wanted, and no more. I don't think it prevented some pretty bloody chapters in the history of China.
So in a way Christianity is nothing special there. It's yet another religion which preached "be humble and nice" and which some people perverted into an excuse for murder. You know, "let's kill our neighbour because he's not as humble and nice as we are!"
Humans are... humans, everywhere.
But anyway, your religion isn't as special in that aspect as you seem to think.
And, at any rate, I wasn't talking about religion itself there, but about the influence it had on history. That also includes, sadly, all the bad things that were done in its name, and all the stupid things done in its name, and so on.
Again, same as with any other religion. Since I already mentioned Taoism, it's cornerstone are the three precepts of compassion, moderation and humility. You might recognize them as the values you praise in Christianity too. It actually preaches abstention from aggressive war, capital punishment, from trying to be "the first", etc. It also caused the bloody Yellow Turban Rebellion. You can't really separate them. It happened not just in some connection to Taoism, but was produced and led by a Taoist sect, in the name of Taoism. You can just as well lament there too that people didn't apply their religious precepts. But if you're just counting the effects and influences of some religion, you have to include the Yellow Turban Rebellion anyway.
Ah, someone who knows their history. It's always a pleasure, so thanks for the reply.
We just don't and can't know that. Sure, we wouldn't have had the HRE in exactly the same form, but some decentralized empire certainly would've been possible. The Franks converted in the 6th century; Charlemagne was crowned in 800. That's a long chunk of time.
Well, I'm certainly not arguing that the place would have remained empty, or anything. I'm just saying that it would have been a very different empire, with a very different history. Entirely too much of its history was based on its claim to being Holy. Some of the distant effects of that, we've seen as late as the 20'th century.
So briefly: _an_ empire, yes, very probably. _Someone_ had to inherit that part of the frankish empire. Just it wouldn't have been the same things happening there. A huge chunk of Europe would have had a very different history.
The Byzantines expanded westwards into Armenia because they were (in their eyes) reconquering lost territory. Armenia had been Roman, then Byzantine (with some interruptions). There were Armenian emperors. Armenia, they thought, was theirs.
That much is, of course, clear.
What I am getting at, though, is that the Byzantines also felt a need to purge (what they perceived as) the monophysite heresy of the Armenian church. That caused quite the exodus out of Armenia, including a lot of nobles, and a lot of the very troops that Byzantium had counted on to garrison the new border with the Turks. Heck, a lot of Armenians fled to the Turks, and ended up helping raid into Byzantine lands.
So basically, because of pure dogma, the Byzantines couldn't benefit from the Armenian, well, "know how" in dealing with the Turks. It was what turned a gain, into a liability.
And I'd argue that it couldn't have happened under the pre-christian Roman gods. Paganism was actually quite easy-going about minor deviations from the official dogma, and even eager to put an equals sign between gods which were only vaguely similar. But the Byzantines actually felt a need to distinguish between such positons as the dyophysites (Jesus had two natures: divine and human), or the monophysites of Armenia (no, it was only one nature), or miaphysite (they're two, but they're inseparable!) That's the kind of sticklers for details and semantics they were, when it came to Christianity.
So basically I'm not arguing that they wouldn't have attacked Armenia, sooner or later. But the outcome from there would have been very different without Christianity.
Again, I'm not saying "better" or "worse" in the long term, just that that's yet another of thousands of historical events where Christianity actually made a difference in how they went.
And the major disaster of Manzikert was not internal dissension but the loss of Anatolia, which meant a massive population loss.
That the loss of Anatolia was the big disaster, is pretty obvious and clear. No need to argue that. What I am saying is what led to the loss of Anatolia.
Anatolia was not lost directly at Manzikert. Alp Arslan did not get it in the peace treaty at Manzikert or anything. In fact, the terms of the peace he dictated there were just a return to the status quo, i.e., to the borders they had before. No more. Byzantium had not been weakened enough by that battle alone, for Alp Arslan to push his luck any further than that.
What weakened Byzantium was the internal strife that followed. That's what allowed the turks to seize Anatolia.
No there wasn't. Maybe you are thinking of the wars that brought Constantine to power, which were a feud over the succession and not religious (Constantine converted, he said, because of a vision he had *during* the fighting). Or maybe you are thinking of the reign of Julian the Apostate, who tried to convert the Empire back to paganism through what were more or less peaceful means. Or may
Yeah, and in the case of The Bible, not for the better
We'll probably never know that. It's influence wasn't just in its moral precepts (which may or may not have actually have had any influence on the people that mattered), or stuff like the Crusades.
But without the Franks converting to Christianity, for example, we wouldn't have had the Holy Roman Empire. (Which wasn't holy, roman, nor had more than a forgery as a claim to call itself an empire, but there we go.) Nor stuff like the investiture controversy later, which did decentralize that big of a chunk of Europe. We wouldn't have had the Byzantine conflicts with Armenia or with the Syriac churches, which conflict ultimately put it border to border with the Seljuk Turks and thus the disastrous war at Manzikert against Alp Arslan. (The resulting internal conflict is widely recognized as the beginning of the end for the Byzantines.) The Armenians knew how to deal with the turkish troops, Byzantium had no clue. Etc, etc, etc.
It might have also had more subtle implications for the Roman empire, and its eventual demise, as it was an anti-Empire religion of the oppressed. The crucifix as a symbol wasn't just about Christ. It was a symbol of roman oppression, recognizable by everyone. It was an execution reserved only for non-citizens in occupied territories. Eventually the Empire _had_ to adopt this new religion, or be weakened from within by it. There also was at least an internal war in the Roman Empire, east against west, based on it.
The changes and influences are too many and too far reaching, to make that kind of pronouncement.
Would history have been better without the HRE and everything? We don't really know. That one religion pretty much sent the whole history of a continent, down an entirely different trouser leg of history. So different, that we can't even guess what was ahead down the other trouser leg.
Would we have still had slavery, for example, if the Roman empire continued as it was? The transition to feudalism was largely caused by the collapse of trade, order, and the centralized state, as Rome was no longer able to control its provinces. Even in Italy itself, Justinian's disastrous war of reconquest and the plague it brought, ensured the almost total collapse and made it easy prey for a tribe as primitive as the Lombards.
Was Christianity the worst religion possible, in the long run?
Well, Confucianism in China, for example, may not have had an Inquisition, but ensured almost total stagnation past a point. The imperial examination ensured that everyone who even hoped to have any official or teaching job at any level, had to learn by heart the same norms and precepts. There wasn't much room for trying anything new, and even conquerors like the Yuan dynasty (Mongolians) or Qing dynasty (Manchu), found it easier to just continue the system than try to change it. Sometimes with disastrous results, like the actual technology and military regression during the Qing dynasty.
I'll stick to China as an example for now, just because I can't be arsed to write a tome about every single zone and religion on Earth. Some would maybe make even better examples, but, eh, bear with me.
By contrast, Christianity never had that tight a grip on everything, and had to find some way to accomodate different scientific approaches. E.g., before it could pick on Galileo in the name of the Aristotelian system, it had to accept the Aristotelian system and let universities teach it in the first place, mostly because it couldn't do much about it.
Or we look at the Crusades and other internal wars, and think "OMG, look at all the carnage that Christianity caused." Well, China had for example the Three Kingdoms period, where internal warfare, where they lost something like 70% of the population in war. Not estimate, but actual difference between census numbers. And again, 70% of the total population, _not_ of the army. Mind you, some as a result of famines and other effec
I don't know if it's going to be a scientific achievement, but if it's a Molyneux game, it will probably suck. But it's going to have REALLY nice graphics!
Actually, Fable was a very nice, if too short, game. Still, it was great fun.
That said, the guy does brag way too much, and there is a chance that this kind of self-hype will sink any game, no matter how good. For example a lot of B&W's flaws would have been easier to swallow, if it hadn't been for the hype promising the moon and the stars and everything that the game didn't actually have as released.
Or it could be just one last ego-polishing exercise. It seems to be a rather common trend that when some billionaire get near the end of their time down here, they get in a mood to blow the majority of it on such a project that says "look at how great I am!" It's not even a new phenomenon, that's how we got the Nobel prize after all.
Exactly what motivates it, I wouldn't know. Maybe it's an attempt at a last deal with (or against) the devil. You know, one last big grab for saint points, to somehow balance whatever else they have on their conscience. Maybe some just want to be remembered, so they have to attach their name to _something_. Some probably are just sociopathic enough to rather spend the money fast on something that gets them personally attention, than leave it to some heirs they never really cared about. Or whatever. Whatever the reasons, it happens.
So now look at T. Boone Pickens. He's 80. Whether oil has peaked or not, it's not like he'll actually live until he sees the bad part of it. In the short run, the oil prices going up, just means profits going up for the middlemen. It's not like there's a real alternative to using oil yet, consumption is still going up, and (assuming a similar profit margin) selling a tank gas at higher price just means more profit. Profits in the oil business may peak, maybe even soon-ish, but it's not like he's going to go broke before he dies.
No, that's not the motivation. He's pretty much the usual trolling for attention at the end. He's good to attach his name to something which to a very large number of people says, "OMG, he's a saint!"
What were the real choices? Charity? Always a choice, but it's not like he can compete with Gates or Warren Buffett. The latter alone announced giving $31 billion to charity. (In 5% increments each year. At the age of 75. Seeing a pattern yet?) Pickens doesn't even _have_ that much total. So while he'd whitewash his name a lot, it would still be lost in the honourable mentions. He'd probably just manage to edge out the over 2 billion pledged by Barron Hilton. (At age 80, pleadges 97% of his fortune to charity. Hmm.)
And even Hilton's donation only made headlines because he's essentially shafting the well known Paris Hilton out of the inheritance. If the gal hadn't been so well known, even if largely for the wrong reasons, you would have barely heard about it, in a footnote.
Enter the carbon cultists. Hmm, noone has done horribly much for those lately. There's a lot more publicity to be gained by doing something spectacular for those, than from going the charity route.
1. First of all, the game seems to be about conflict resolution on a small interpersonal scale. You know, better try to make friends with Joe, instead of punching him in the nose.
I'd say that whatever _external_ policy a military-industrial government may pursue, _internally_ they need a certain social order and people following orders. They don't want their own society to break down into anarchy, even if just because that's bad for business and bad for politics.
Plus, starting from there, you can always dehumanize your enemies and present them as the guys who don't play as nice as we taught y'all to. See, we're all nice to each other and stuff, we teach our kids in school to solve their problems peacefully and help each other, but those dastardly X don't! They're preying on us, trying to destroy our way of life, and teaching their children to do the same! Well, we'll show them that being nice doesn't mean being a helpless victim! (Where X can be muslims, jews, commies, or whatever bogeyman of the day.)
So I'm guessing this kind of game wouldn't really be unwelcome even for the most aggressive government. Now if it taught people that it's good to be nice in international politics, that might be subversive for the likes of Bush. But teaching people to play nice internally isn't really bad for any government, from Bush to China to whatever else.
2. If you want to play non-violent games, even at the international politics level, it's not like other games don't exist that drive the point home. Sometimes through melodramatic hyperbole.
E.g., in Superpower 2 even the slightest aggressive stance would eventually degenerate in global thermonuclear war. (Well, ok, so would almost any other kind of politics;)
E.g., in most of Paradox's games, although they do feature wars and conquest, one of the first things you learn is that a war and the resulting anxiety and uncertainty impacts your economy immediately, and a prolonged war builds up discontent fast. They also teach that too long an aggressive attitude _will_ make all other countries hate you. (Well, ok, after a few patches. As shipped, they usually teach that Switzerland could have conquered the world in WW2 and similar lessons;)
Etc.
Now not many people play these, when they could be zerging Crossroads with their epic gear instead, and head-shotting people in CS, and such. But then I don't really think that this game would have been a major hit with the violent-games-only crowd either. People who played peaceful games or at least games where complex diplomacy and alliances matter, will still play them, and people whose life revolved around their CS score, will still avoid them and would have avoided this one too. I don't think this one game would have made such a difference as to get any politician's panties in a knot.
Well, it didn't say it was about unsolvable problems of modern computing, but rather about annoying programs. That alternatives exist, I think for at least one of them, even ZD mentions one. I guess, if anything, the existance of those alternatives, just drives home the point about how needlessly annoying those programs are. You know, the "what the hell were they _thinking_" factor.
Some years ago, for example, sick and tired of Norton, I went and bought McAffee's anti-virus. In fact, I figured I'd go for the full monte, including firewall, "privacy" stuff, you name it. I can't be arsed to dig up the CD and find out which year it was, and I wouldn't know if it got any better in the meantime. (Though I would be surprised.)
The first funny impression was when trying to update it. As is the craze in the last decade, it couldn't just have either a URL to their download page, or a neat little downloader program. It just had to launch an ActiveX control in a browser to do the actual download and install. It launched whatever browser you had configured as default. E.g., for me it was Mozilla. It only actually worked in IE.
But wait, the patcher was more stupid than that.
I didn't have too much space left on C:, but I had vast amounts of space on my slower D: drive. So I refuse to install it to the default location, and install it to D:.
Then I run the updater. It installs the updates to the default location on C:. Literally, it was too fucking stupid to either ask, or figure out where its own installer had put those programs.
It gets funnier. Presumably because it couldn't figure out where they were, it didn't uninstall or at least disable the origina, unpatched version on D:. It just let it run too.
If you think one anti-virus is a resource and CPU hog, now picture twice that. It felt like I had downgraded back to my trusty old 486.
Now I don't know how good their virus protection was, I didn't actually have a virus. Their privacy stuff, though, now that made most sites that required a login, no longer work. And it made some schizophrenic: they thought I was simultaneously logged in _and_ not logged in. It was giving me some insight into what Schroedinger's cat must have felt;)
To cut a long story short, and skip over a few more faults, after a few days I uninstalled it.
The uninstaller, though, only got rid of the new patched copy from C:. It left the one on D: as it was, and loading itself in memory anyway. Trying the uninstaller from D: didn't seem to work either. I had to manually mess with the registry to get rid of it.
On the whole, it left me the impression that it makes malware look good by comparison. Ok, so you have to mess with the registry in safe mode too, to get rid of it, so it's a tie there. Most viruses don't use as many resources or interfere with your daily use of the computer half as much, though.
Or you could do something far better and more sensible and hook up with a cute guy.
Right. Except that, judging from the couple of openly gay guys I've met, now you'd probably be stuck with a guy who acts like a woman. And I mean so stereotypically airhead college girl, that I occasionally idly wondered whether they're genuinely wired like that, or trolling for attention, or have this mis-guided idea that they must embody a stereotype.
Admittedly, it's not even remotely a significant sample, and I don't know what they do at home. But i wouldn't be too surprised if you still ended up noding and going "uh-huh" while trying to watch the game and your cute guy tels you about how the place would look better with new curtains, and maybe you should move the couch one foot to the left and the bookcase to the other side, and all about _his_ aunt's gall bladder operation. "Huh? Oh yeah, honey, I was listening. No, honestly. Yes, those earrings look just great... Uh-huh... Ah-ha..."
And that is if you didn't get one whose stereotype is "drama queen." You know, the kind with a persecution complex, and a need to troll and bait the whole world, try to guilt trip it, and then have a sob about how they don't accept him. Apparently just because he _needs_ to feel persecuted, and if people don't volunteer to do that out of nowhere, they have to be trolled and baited until they do. Sorta like getting a whiny overweight wiccan girl, I guess, only without the big breasts that tend to come with the fat.
I like to think they're probably not the majority by any counting, so don't take it as a blanket stereotype. They do seem quite a popular role online, though, so some must exist _somewhere_.
And I figure with a girl at least you can comfort yourself with thoughts like "yeah, but I guess the guys envy me for getting a missus with big breasts." Or whatever applicable. Heck, even if it's along the lines of, "ha! Vote me 'least likely to get laid' in high school, did they? Well, me and and my cute little elephant sure showed them! Bow before The Beast Master!" Somehow I think "I hope they don't know I'm dating a guy just because I can't communicate with women" isn't quite as motivational a thought;)
Yes, but the intersection is still mis-leading. Percentage of retail _or_ percentage of over-1000 computers could say something. (If you do understand that you are talking about a particular niche, not about the company's overall profitability or market share.) But the intersection is just a narrowly crafted niche, for PR masturbation reasons.
It's like saying that Moraelin's Fairies won the most games played on a rainy Tuesday under artificial lighting. They have a whole two games won under those conditions, while everyone else has at best one win that's on a rainy day _and_ tuesday _and_ played at night. It's trivia, at best. It doesn't make it the best team in any actual category that matters, it just crafts an artificial niche to make my team look good.
And probably more importantly, a tell-tale sign of a PR masturbation exercise, is that even that niche doesn't really support the conclusion they try to feed you. ""If you don't give people a choice [in the Apple stores], people will spend more."" Really? Exactly which part of that percentage supports that conclusion? Did they compare before and after a price hike, or what? Did Apple try to have cheap computers too, and people were going for those instead?
But even that wouldn't be visible, if you only look at the over-1000 segment. You need an entirely different sample to make that point.
No, it's very likely just a PR exercise masquerading as news.
Personally I think the claim is mis-leading anyway. The category is narrowly defined as not only over 1000, but also bought retail. So it's crafted to exclude all the expensive workstations and servers bought by corporations, since they don't usually just drive a truck to WalMart to buy them retail.
It's a bit like saying that Joe is the world leader in selling over-$1000 cats by Ebay and air mail. Sure, he only sold one on Ebay, but he's the only guy who sedated the cat and sent it by air mail. The rest of the people bought their cats face to face, or had them delivered by courier in a few cases. Narrow it down to Ebay and air mail, and, bam, Joe has 100% of that market.
Better invest in Joe. In fact, this year he found two stray kittens in his backyard, and plans to sell them both on Ebay by air mail. That's 100% year-on-year growth, baby. At this rate, in 20 year, Joe will ship over 1 million cats yearly. As a savvy investor, you don't want to miss _that_ boat.
In other words, it's just a PR masturbation exercise.
_If_ that happens, then IMHO Java's own memory allocation is broken on that machine.
I can imagine stale data in the reference variable written by "getInstance()", which is (as far as I understand it at 1AM) the problem on Alphas in your link. But that's highly unlikely to be a problem, since it will then usually see a stale "null" and proceed to allocate a copy. It would take something like having only half the pointer stale, to actually have a problem. Not very likely, since it would also require a kind of alignment that's avoided by the compiler, and causes a fault on some machines. But ok, I'll concede that possibility.
Stale contents of the object? Hmmm.
Java's own memory allocation has to synchronize _somehow_, since all CPUs advance the same pointer in the heap. If that memory allocation isn't in a critical section in the JVM itself (which would be kinda required for CPU2 to see stale data in the memory taken by the object itself), then that machine has a bigger problem. Then two threads trying to allocate an array at the same time, without a cache synchronisation in between, would get the same chunk of memory. And possibly a corrupt heap, as each advances the free memory pointer by a different amount.
IMHO you'd notice that kind of malfunction very fast, with or with synchronization.
Hmm, well, on second thought, I guess it _could_ fail if any multi-cpu system is actually as broken as to need explicit instructions to re-synchronize the cache. I'm pretty sure Intel didn't need those since, oh, at least the Pentium Pro, and, again, neither did Sun's Sparc processors (at least the 64 bit ones, not sure if the earlier too), and neither do IBM's P5 or P6 systems.
Your link mentions the Alpha as one which does, which kind of surprises me. I would have expected more from those, but ok. If anyone ports Java 5 to a decade-old, defunct CPU, I suppose it's possible to have a problem.
Still, I suppose for purity sake, you have a point.
I actually do know a bit about those, I already knew about the double-checked lock problem since 2002 or so, and I'm still not entirely sure how this can fail, unless the multiprocessor system is broken. I have also seen plenty of this kind of singleton running cheerfully on Sun, Intel and IBM multi-processor machines, and none of them failed so far.
Just to clarify my previous point, the point of contention there is almost invariably the "getInstance()" method. Such tools trip over it, hard, and there's usually no way to tell them, basically, "it doesn't freaking matter if another thread or another CPU essentially bypasses the singleton and gets a different instance of a stateless class."
The actual methods of the singleton, well, you use your own head. In my logger example it works because it essentially wraps around System.out which is already synchronized, so there's no need to synchronize the outer layer again. In other cases it's really stateless and idempotent, and again it doesn't matter there either. In very few cases, they might actually need to be synchronized.
But anyway, my minor peeve there is with tools and people getting tripped by the unsynchronized "getInstance()" in a situation where it just doesn't matter. I'm not even opposed to turning it into a non-singleton, but seeing someone who should know better (or claims to know much better) spend pages in his report and _hours_ worth of meetings just over the lurking evil of that "getInstance()", just tells me they might have exaggerated their claim to greatness, ya know?
Yes, I think you either mis-understood my point, or are wrong about a subtle distinction: the case when it's a _fake_ singleton, just as a pseudo-optimization.
If it's a _stateful_ singleton (i.e., a real singleton), then yes, damn better synchronize it even on single-CPU system. No arguments there.
The problem is that there are classes which really shouldn't be singletons at all, and are a mis-use of that pattern. They don't actually _have_ any state, which could be stale on another cache. (Which actually is the least of your concerns there.)
E.g., as a trivial example, consider the following kind of singleton:
public class LoggerSingleton {
private LoggerSingleton instance = null;
/** So noone can instantiate it */
private LoggerSingleton() {
}
public void log(String s) {
System.out.println(s);
}
public void log(Throwable t) {
t.printStackTrace(System.out);
}
public static LoggerSingleton getInstance() {
if (instance == null) {
instance = new LoggerSingleton();
}
return instance;
} }
Yeah, there are better loggers available, but it's just an example. Bear with me.
The class has no state, and holds no resources. It's just a collection of idempotent methods.
It's not a _real_ singleton, it's just someone's misguided attempt at saving the (ridiculously low) overhead of a "new LoggerSingleton()" everywhere it's used. It doesn't matter if two threads get two different copies of it. Worst case scenario is, literally, one of them wasted 8 bytes on the heap, which will be garbage collected later. That's all. There is no way to malfunction because of that.
Synchronizing that, simply isn't necessary. It also defeats the whole "optimization" there, since synchronization is actually more expensive than just not making it "singleton" in the first place.
Now I'm not saying it's right to have that kind of singleton, but it's the kind of "optimization" you tend to get from people coming over from C++. They occasionally even write pools for such objects.
But ultimately it doesn't matter much.
_If_ you have plenty of time, and/or you're at architecture design stage, yeah, tell the people to not do it.
But it's kinda annoying to see an overpaid consultant insisting that synchronizing those is top-priority, and he's saving everyone from some great catastrophe with it. In a project which is already overdue and in trouble. There are better ways to use those resources, than "fixing" non-problems.
Compiler warnings, yes, at least for a decent warning level.
Going out of the way to satisfy a tool, whose only reason to exist is to flag 10 times more stuff than -Wall, I found actually counter-productive.
And I don't mean just as in, WOMBAT (Waste Of Money Brains And Time.) I mean as in: it teaches people to game the tool, actually hiding their real bugs. And it creates a false sense of security too.
I've actually had to deal with a program which tested superbly on most metrics of such a tool. But only because the programmer had learned to game it. The program was really an incoherent and buggy mess. But it gamed every single tool they had in use.
A. to start with the most obvious, some bright guy there had come up with an own CVS script which didn't let you check in, unless you had commented every single method, and every single parameter and exception thrown. Bout damn time, eh? Wrong.
1. This forced people to effectively overwrite the comments inherited from better documented stuff. E.g., if you had a MyGizmoInterface interface, which was superbly documented, and the MyGizmoImpl class implementing it, it forced you to copy and paste the JavaDoc comments instead of just letting JavaDoc pick them from the interface. So instead of seeing the real docs, now everyone had docs all over the place along the lines of "See MyGizmoInterface.gizmoMethod()" overwriting the actually useful ones there. Or some copied and pasted comments from 1 year ago, where one of the two gradually became obsolete. People would update their comments in one of the two, but let the other say something that wasn't even true any more. Instead of having them in one place, and letting JavaDoc copy them automatically.
2. The particular coder of this particular program, had just used his counter-script or maybe plugin, to automatically generate crap like:
I mean, _literally_. Hundreds of methods had "Method description" as their javadoc comment, and thousands of parameters total were described as "method parameter."
B. It also included such... brain-dead metrics as measuring the cohesion of each class, by the ratio between number of class members to class methods.
He had learned to game that too. His code tested as superbly cohesive, although the same class and indeed the same method, could either send an email, or render a PDF, or update an XML in the database, depending on which parameters they got. But the members to methods ratio was grrrreat.
That's really my problem with it:
A. Somewhere along the way, they had become so confident in their tools, that noone actually even checked what javadoc comments those classes have. Their script already checks that there are comments, hey, that's enough.
B. Somewhere along the way, everyone had gotten used to just gaming a stupid tool. If the tool said you have too many or too few class members, you'd just add or remove some to keep it happy. If it complained about complexity, because it considered a large switch statement to have too many effective ifs, you just split it into a several functions: one testing cases 1 to 10, one testing 11 to 20, and so on. Which actually made the code _less_ readable, and generally lower quality. There would have been ways to solve the problems better, but, eh, all that mattered was to keep the tool happy, so noone bothered.
That's why I'd rather not turn it into a religion. Use the tool, yes, but take it as just something which you need to check and use your own judgment. Don't lose track of which is the end, and which is merely a means to that end.
But doesn't that defeat the purpose of your first post?
Only if you mis-understood that post. I wasn't saying that you should or shouldn't go into engineering. Just why some people choose not to. They look at it as bang/buck, or rather reward/effort, and see no low hanging fruit. There's less chance for glory, less chance to be respected for it, and with everyone obsessed about cost cuts, the salaries gradually went south too. The effort to learn an engineering job is actually larger than before, and the total reward is less. So more and more don't.
I'm not saying that that's a good or bad decision. Just that it happens.
My experience has been that while in the hands of people who know what they're doing, they're a nice tool to have, well, beware managers using their output as metrics. And beware even more a consultant with such a tool that he doesn't even understand.
The thing is, these tools produce
A) a lot of "false positives", code which is really OK and everyone understand why it's ok, but the tool will still complain, and
B) usually includes some metrics of dubious quality at best, to be taken only as a signal for a human to look at it and understand why it's ok or not ok.
E.g., ne such tool, which I had the misfortune of sitting through a salesman hype session of, seemed to be really little more than a glorified grep. It really just looked at the source text, not at what's happening. So for example if you got a database connection and a statement in a "try" block, it wanted to see the close statements in the "finally" block.
Well, applied to an actual project, there was a method which just closed the connection and the statements supplied as an array. Just because, you know, it's freaking stupid to copy-and-paste cute little "if (connection != null) { try { connection.close(); } catch (SQLException e) {// ignore }}" blocks a thousand times over in each "finally" block, when you can write it once and just call the method in your finally block. This tool had a trouble understanding that it _is_ all right. Unless it saw the "connection.close()" right there, in the finally block, it didn't count.
Other examples include more mundane stuff like the tools recommending that you synchronize or un-synchronize a getter, even when everyone understands why it's OK for it to be as it is.
E.g., a _stateless_ class as a singleton is just an (arguably premature and unneded) speed optimization, because some people think they're saving so much by a singleton instead of the couple of cycles it takes to do a new on a class with no members and no state. It doesn't really freaking matter if there's exactly one of it, or someone gets a copy of it. But invariably the tools will make an "OMG, unsynchronized singleton" fuss, because they don't look deep enough to see if there's actually some state that must be unique.
Etc.
Now taken as something that each developper understands, runs on his own when he needs it, and uses his judgment of each point, it's a damn good thing anyway.
Enter the clueless PHB with a metric and chart fetish, stage left. This guy doesn't understand what those things are, but might make it his personal duty to chart some progress by showing how much fewer warnings he's got from the team this week than last week. So useless man-hours are spent on useless morphing perfectly good code, into something that games the tool. For each 1 real bug found, there'll be 100 harmless warnings that he makes it his personal mission to get out of the code.
Enter the snake-oil vendor's salesman, stage right. This guy only cares about selling some extra copies to justify his salary. He'll hype to the boss exactly the possibility to generate such charts (out of mostly false positives) and manage by such charts. If the boss wasn't already in a mind to do that management anti-pattern, the salesman will try to teach him to. 'Cause that's usually the only advantage that his expensive tool has over those open source tools that you mention.
I'm not kidding. I actually tried to corner one into;
Me: "ok, but you said not everything it flags there is a bug, right?"
Him: "Yes, you need to actually look at them and see if they're bugs or not."
Me: "Then what sense does it make to generate charts based on wholesale counting entities which may, or may not be bugs?"
Him: "Well, you can use the charts to see, say, a trend that you have less of them over time, so the project is getting better."
Me: "But they may or may not be actual bugs. How do you know if this week's mix has more or less actual bugs than last weeks, regardless of wh
Oh, I didn't say that the only "golden age" was the 1800. I'm more like saying that each domain has its own "golden age", somewhere near the beginning of it. Then it becomes mostly salary work.
So for most mechanical stuff, yeah, the time where it was "exciting" was in the 1800's. For aerospace it was in the 20'th century. For computing stuff, it lasted more or less into the 90's.
So yes, some new thing will eventually come along, and for a while it will be all exciting to be in it. Then it will become just peon work too.
Basically I'm not saying that progress has stopped, or anything. I'm saying that the motivation to go to university in that domain looks a bit like a gauss curve, sorta. The "excitement" factor of it is high in the beginning, when there's so much to do, and it looks like you too could make your own contraption or just do things better. Then that excitement dies down, most (but obviously not all) stuff in that domain has been discovered, the industry has consolidated into a few dominant players, salaries went down, and what's left is whole teams doing tweaks to already refined designs. And to the guy looking at the question, "do I pick X as a major?" it already looks a lot less exciting than in the early years. He might choose it because the salaries are still good, but not because he actually thinks any more that he'll be the next big inventor of that domain.
Take, say, airplane building. In the beginning it looked so much like everyone's game, that we even had kids building a glider in the barn without telling their father. The feeling was there that you too can make your own flying contraption, and maybe even get it better than the ones that tried before you. There's a certain "excitement" factor in being at such a beginning. Then roll forward a century or so, and you have only a handful of big players who pushed everyone else out, and you're reduced to tweaking turbine blades in a CAD program and testing them in a wind tunnel. There's about as much excitement in it as in accountancy. And unsurprisingly a lot less kids dream of having that as their future job. (Just as well, because pay and number of jobs went down too in that domain.)
Or to better explain what I'm trying to say, that last point in my original message, well, was merely about why less people rush to enroll in a mature domain. I'm not saying that progress stopped. I'm just saying that eventually it just becomes less "exciting" a job. The same people who 100 years ago might have thought "OMG, if I only could work in aeronautics, it would be sooo cool and exciting" now look at it as, meh, just another possible desk job.
A) rewards. If you're going to put 10x more work into something, then you'd expect the rewards to be worth it. That doesn't mean only salaries (though that sure helps too), but also stuff like overall job quality, social recognition of your efforts, etc. I'd say that in the west, for various reasons and to various degrees, all of those gradually declined.
We went for example from a culture which put its intellectual elites on pedestals, to a culture where being technically illiterate or even outright stupid, is cool and fashionable. In fact, if you show any intelectual interests or aptitudes, it's kinda mean of you and insensitive to your below-average neighbours/classmates/etc.
In programming alone we went from being those wizards doing high tech stuff, to being outright disconsidered. Nowadays for the average outsider it's not "I don't know how to do the things he does", it's more like "I have a life, I don't have time for that crap" or "yeah, the neighbour's 12 year old can do that kind of stuff." The idea from the 90's that you can just retrain an unemployed pizza-delivery-guy or burger flipper off the street, and he'll be just as good as those snotty CS and engineering graduates anyway, also didn't do much for recognition. It was hammered in everyone's head that you _are_ no better than him, and he could have had your job too if only he could be arsed to take one of those two-week java courses.
Now not all countries are at the same point, and not all went in that direction as fast, but that was the general direction all went slowly.
That's one reason to put in the extra effort, that went down the drain right there. For a lot of people that criterion is now actually a disincentive, since all that extra effort might actually _lower_ their prestige in the community instead of raising it.
B) Rampant age-ism also doesn't help. Back then, sure, I was young, I thought I'd never get old. When 15 years is your entire life so far, and you probably remember only 10, living another 45 years to 60 seems like a bloody eternity. No point worrying about something _that_ far in the future. Now I see perfectly competent programmers pushed aside or into a corner, because some PHB learned the mantra that only the smart young kids are any good.
If I had a kid, I'd tell him to stay well away of that field. Chances are you _will_ live to _at_ _least_ your 40's, even if you chain-smoke and get to twice your idea weight and go alcoholic too. If you want a job where you start being discriminated against as early as the 30's, heck, go into prostitution or porn instead. (And considering some bosses I've occasionally seen, prostitution might even be the more dignified job.)
C) It's also a matter of, well, excitement.
In all science or engineering domains, there was a time where it looked like there's so much interesting stuff to do or discover, and only the sky is the limit. (Or in aerospace not even the sky.)
In programming, for example, when I looked at some primitive games or programs on the old ZX-81 or later ZX-Spectrum, I thought, "I can do better." Often I actually could. Heck, I could even paint my own sprites by hand, although I'm no graphics artist, and they still looked good enough at that resolution.
Nowadays, if I look at a modern game, well, there's just not the same sensation. Duly noted, nowadays about half can be modded, so you can still tempt someone to programming that way. But for a while even that wasn't the case.
Ok, so that's only games, but the same applies to any other programming domain. At some point you could have been the guy who created the next big language, wrote the OS for some underpowered mini, or did the next great maths thing with a computer, or designed the next computer itself, or whatever. Nowadays you'll be a cog in a 20-people team writing the front-end to some database app.
Or if we move away from programming, as I was saying, the same applies to any other engineering domain. At one point we
Well, on second thought, I guess it depends on how you look at it.
The fact is, indeed, that most nobles weren't some nobody who was given a fief if he signs a contract. (Or rather, swears an oath.) They were guys who had the land to start with and entered a vassalage for protection, or were forced into being vassals.
Or indeed, it was often "given" as a reward. Being knighted and given some land in exchange for military service was a privilege, not something that was freely available to anyone who wanted to enter that kind of a relationship.
From there, well, what remains is that in exchange for the warlord's or king's protection, one had to provide 1 knight per hide of land in wars. Or in "bastard feudalism" enough money to hire a professional knight instead. And could have his lands taken if he failed to provide that service.
You could see it as, well, the modern idea of private property and taxes. You know, you own X acres of land, you have to pay Y pounds or Z knights per year as taxes. And if you fail to pay them, some guys show up and take your land and title as punishment.
Or you could formalize it as having pledged your land to the overlord/king/emperor, and receiving them back as fief in return for that military or money service.
It's in the end the same thing, save for some subtle differences. They tended to formalize it as the latter, back then. I suppose it was an easy answer to such questions as, "why should I pay the king anything if it's _my_ land?" or "why should the king get it if I die without heirs? If it's mine, why can't I leave it to my drinking buddy?" Formalizing it like "yeah, well, the king owns it" was probably easier than building the whole legal and philosophical framework we have nowadays.
So, well, I can see how it looks funny if you look at it through the modern concepts. It wasn't really the noble's private property, or at least not formalized that way. And it wasn't really the king's private property either, or not in the way we understand private property nowadays. He couldn't just post an eviction notice and move another guy in your place, save for gross breach of obligations. So reading that feudalism definition through the modern terms, you know, the king owns the land and rents it to some Earls, it doesn't really work at all like you'd understand "own" and "rent" nowadays. It was formalized like that anyway, though.
I just liked the phrase, because it sums up what it really was. Its claim to being an Empire, for example, was based on a Translatio Imperii theory that placed them as legitimate successors to the western roman empire, based on the forgery known as the Donation Of Constantine. The pope simply didn't have the authority to do that, if not for that forgery.
At a quick read, and bearing in mind that I'm no authority, the summary seems to... conveniently ignore some recorded history, and make a hash of unrelated kinds of property.
;) And awarded fiefs based on those.
E.g., yes, there was allodial property, i.e., land held as private property and without any further obligations to a lord or king, other than their general authority over their country. That's why in Germany we had the distinct title "Freiherr" (literally free lord), in parallel to Baron. The famous Red Baron was actually called, "Manfred Albrecht Freiherr von Richthofen", i.e., his family has had his lands as allodial property, not as fiefs.
But that was something that existed in parallel to feudalism. That's why we had the titles Freiherr _and_ Baron, at roughly the same level in the hierarchy.
So one isn't a counter-point to the other. It's a bit like saying that since day exists, night can't also exist and it's a lie.
The early history of the HRE is also full of such conflicts centered around:
1. Whether the fiefs granted to a bishop belong to the Emperor or the Church. The initial understanding and the reason why so many lands had been granted to the Church, was that (A) the land _is_ granted as a fief that keeps belonging to the Emperor, and (B) it was easier to get it back after a Bishop died, than from the heirs of a dead noble.
When the church suddenly claimed perpetual ownership of those, it caused quite the ruckus, because it robbed the Emperor of about half his lands in one fell swoop. I'd argue that it wouldn't have caused half as much conflict and controversy, if the understanding had been all along that the land is granted in perpetuity, as private property.
2. Nobles being simply removed or replaced from their fief by the Emperor, usually for failing to live up to their obligations. This isn't just conjecture from some law codex, but actual documented instances. E.g., duke Henry The Lion was removed from the duchy of Saxony and the duchy was divided, when he refused to follow Emperor Frederick Barbarossa into war in Lombardy.
England itself had to give explicit laws to limit sub-infeudation to such extent that it was no longer even clear or feasible to track who owed the military service for a given piece of land. Check out the statute of Quia Emptores, from 1290. I'd argue that you don't give a new law like that based on just some imaginary legal construct, but to deal with some actual problem.
Or you can look towards other places, for example Hungary, where at one point they actually had honour points like in WoW
I would agree though that it never was that simple as pure theoretical feudalism, though.
For a start people always tried to get into their private propertly, what was just a fief. Aiding that, you couldn't take someone's fief other than for gross breach of the obligations, so it was already _very_ hard for the liege to get it back anyway. After a few generations and given some weakening of royal/imperial power, it did become a pain in the rear to actually demand some land back. In the HRE, for example, it slid towards such decentralisation that the Emperor depended on the nobles' good will, rather than the other way around, and all land became pretty much just private property of the nobles.
In England, it quickly slid towards "bastard feudalism", where people just paid money instead of going to war for their liege. (Although, again, that was the theory they had started from.) So pretty much it (re)evolved into a money based economy instead of early manorialism. So pretty soon, yeah, you no longer had real feudalism.
But even in the beginning, the nobles, re-fashioned as dukes (from dux) and grafs (from grafein) trying to imitate the romans and greeks, were generally powerful chieftain of major tribes. Trying to transplant the Roman system of naming a provincial administrator over a province, without actually owning the province, may have worked in theory, but generally y
Thanks for the kind words, but you have to remember that I'm just a Joe Random who knows half his history from Rome Total War and Europa Universalis, and forgot the other half ;) I.e., take it with a grain of salt, or ignore it completely.
That said, I haven't had a chance to read that particular book. It sounds interesting enough, though, so I'll definitely want to have a look. Thanks for the tip.
I wasn't "blaming" anyone, as you probably noticed. Au contraire, my post just pretty much said "people massacred each other without christianity just as well, and, who knows, maybe we actually massacred each other somewhat less in this christian part of the world." I.e., you know, pretty positive stuff, coming from an agnostic leaning towards atheism.
That said, it's not _that_ special in that aspect. Buddhism preaches, basically, "be nice or you'll be judged for it" too. I don't think Shintoism preaches, "be a bloody mass-murderer either". Neither of the two stopped the Japanese atrocities in WW2. So does Taoism, and they caused at least one uber-bloody revolt anyway. The Islam isn't too bad a religion either, but look at what _some_ people do in its name. (Note: I said some, not all.) Etc.
Confucianism, well, ok, it's not technically a religion, but served as the ten commandments on steroids in China, and generally it's somewhat (if imperfectly) comparable to the role organized religion had in Europe. It preached humility and obedience to an extent that most of us westerners would consider strange and offensive. According to the precepts of Confucius, you couldn't for example judge a son while his father still lived, because he wasn't even supposed to have a free will of his own at all: he had to do exactly what his father wanted, and no more. I don't think it prevented some pretty bloody chapters in the history of China.
So in a way Christianity is nothing special there. It's yet another religion which preached "be humble and nice" and which some people perverted into an excuse for murder. You know, "let's kill our neighbour because he's not as humble and nice as we are!"
Humans are... humans, everywhere.
But anyway, your religion isn't as special in that aspect as you seem to think.
And, at any rate, I wasn't talking about religion itself there, but about the influence it had on history. That also includes, sadly, all the bad things that were done in its name, and all the stupid things done in its name, and so on.
Again, same as with any other religion. Since I already mentioned Taoism, it's cornerstone are the three precepts of compassion, moderation and humility. You might recognize them as the values you praise in Christianity too. It actually preaches abstention from aggressive war, capital punishment, from trying to be "the first", etc. It also caused the bloody Yellow Turban Rebellion. You can't really separate them. It happened not just in some connection to Taoism, but was produced and led by a Taoist sect, in the name of Taoism. You can just as well lament there too that people didn't apply their religious precepts. But if you're just counting the effects and influences of some religion, you have to include the Yellow Turban Rebellion anyway.
Well, I'm certainly not arguing that the place would have remained empty, or anything. I'm just saying that it would have been a very different empire, with a very different history. Entirely too much of its history was based on its claim to being Holy. Some of the distant effects of that, we've seen as late as the 20'th century.
So briefly: _an_ empire, yes, very probably. _Someone_ had to inherit that part of the frankish empire. Just it wouldn't have been the same things happening there. A huge chunk of Europe would have had a very different history.
That much is, of course, clear.
What I am getting at, though, is that the Byzantines also felt a need to purge (what they perceived as) the monophysite heresy of the Armenian church. That caused quite the exodus out of Armenia, including a lot of nobles, and a lot of the very troops that Byzantium had counted on to garrison the new border with the Turks. Heck, a lot of Armenians fled to the Turks, and ended up helping raid into Byzantine lands.
So basically, because of pure dogma, the Byzantines couldn't benefit from the Armenian, well, "know how" in dealing with the Turks. It was what turned a gain, into a liability.
And I'd argue that it couldn't have happened under the pre-christian Roman gods. Paganism was actually quite easy-going about minor deviations from the official dogma, and even eager to put an equals sign between gods which were only vaguely similar. But the Byzantines actually felt a need to distinguish between such positons as the dyophysites (Jesus had two natures: divine and human), or the monophysites of Armenia (no, it was only one nature), or miaphysite (they're two, but they're inseparable!) That's the kind of sticklers for details and semantics they were, when it came to Christianity.
So basically I'm not arguing that they wouldn't have attacked Armenia, sooner or later. But the outcome from there would have been very different without Christianity.
Again, I'm not saying "better" or "worse" in the long term, just that that's yet another of thousands of historical events where Christianity actually made a difference in how they went.
That the loss of Anatolia was the big disaster, is pretty obvious and clear. No need to argue that. What I am saying is what led to the loss of Anatolia.
Anatolia was not lost directly at Manzikert. Alp Arslan did not get it in the peace treaty at Manzikert or anything. In fact, the terms of the peace he dictated there were just a return to the status quo, i.e., to the borders they had before. No more. Byzantium had not been weakened enough by that battle alone, for Alp Arslan to push his luck any further than that.
What weakened Byzantium was the internal strife that followed. That's what allowed the turks to seize Anatolia.
We'll probably never know that. It's influence wasn't just in its moral precepts (which may or may not have actually have had any influence on the people that mattered), or stuff like the Crusades.
But without the Franks converting to Christianity, for example, we wouldn't have had the Holy Roman Empire. (Which wasn't holy, roman, nor had more than a forgery as a claim to call itself an empire, but there we go.) Nor stuff like the investiture controversy later, which did decentralize that big of a chunk of Europe. We wouldn't have had the Byzantine conflicts with Armenia or with the Syriac churches, which conflict ultimately put it border to border with the Seljuk Turks and thus the disastrous war at Manzikert against Alp Arslan. (The resulting internal conflict is widely recognized as the beginning of the end for the Byzantines.) The Armenians knew how to deal with the turkish troops, Byzantium had no clue. Etc, etc, etc.
It might have also had more subtle implications for the Roman empire, and its eventual demise, as it was an anti-Empire religion of the oppressed. The crucifix as a symbol wasn't just about Christ. It was a symbol of roman oppression, recognizable by everyone. It was an execution reserved only for non-citizens in occupied territories. Eventually the Empire _had_ to adopt this new religion, or be weakened from within by it. There also was at least an internal war in the Roman Empire, east against west, based on it.
The changes and influences are too many and too far reaching, to make that kind of pronouncement.
Would history have been better without the HRE and everything? We don't really know. That one religion pretty much sent the whole history of a continent, down an entirely different trouser leg of history. So different, that we can't even guess what was ahead down the other trouser leg.
Would we have still had slavery, for example, if the Roman empire continued as it was? The transition to feudalism was largely caused by the collapse of trade, order, and the centralized state, as Rome was no longer able to control its provinces. Even in Italy itself, Justinian's disastrous war of reconquest and the plague it brought, ensured the almost total collapse and made it easy prey for a tribe as primitive as the Lombards.
Was Christianity the worst religion possible, in the long run?
Well, Confucianism in China, for example, may not have had an Inquisition, but ensured almost total stagnation past a point. The imperial examination ensured that everyone who even hoped to have any official or teaching job at any level, had to learn by heart the same norms and precepts. There wasn't much room for trying anything new, and even conquerors like the Yuan dynasty (Mongolians) or Qing dynasty (Manchu), found it easier to just continue the system than try to change it. Sometimes with disastrous results, like the actual technology and military regression during the Qing dynasty.
I'll stick to China as an example for now, just because I can't be arsed to write a tome about every single zone and religion on Earth. Some would maybe make even better examples, but, eh, bear with me.
By contrast, Christianity never had that tight a grip on everything, and had to find some way to accomodate different scientific approaches. E.g., before it could pick on Galileo in the name of the Aristotelian system, it had to accept the Aristotelian system and let universities teach it in the first place, mostly because it couldn't do much about it.
Or we look at the Crusades and other internal wars, and think "OMG, look at all the carnage that Christianity caused." Well, China had for example the Three Kingdoms period, where internal warfare, where they lost something like 70% of the population in war. Not estimate, but actual difference between census numbers. And again, 70% of the total population, _not_ of the army. Mind you, some as a result of famines and other effec
Actually, Fable was a very nice, if too short, game. Still, it was great fun.
That said, the guy does brag way too much, and there is a chance that this kind of self-hype will sink any game, no matter how good. For example a lot of B&W's flaws would have been easier to swallow, if it hadn't been for the hype promising the moon and the stars and everything that the game didn't actually have as released.
Or it could be just one last ego-polishing exercise. It seems to be a rather common trend that when some billionaire get near the end of their time down here, they get in a mood to blow the majority of it on such a project that says "look at how great I am!" It's not even a new phenomenon, that's how we got the Nobel prize after all.
Exactly what motivates it, I wouldn't know. Maybe it's an attempt at a last deal with (or against) the devil. You know, one last big grab for saint points, to somehow balance whatever else they have on their conscience. Maybe some just want to be remembered, so they have to attach their name to _something_. Some probably are just sociopathic enough to rather spend the money fast on something that gets them personally attention, than leave it to some heirs they never really cared about. Or whatever. Whatever the reasons, it happens.
So now look at T. Boone Pickens. He's 80. Whether oil has peaked or not, it's not like he'll actually live until he sees the bad part of it. In the short run, the oil prices going up, just means profits going up for the middlemen. It's not like there's a real alternative to using oil yet, consumption is still going up, and (assuming a similar profit margin) selling a tank gas at higher price just means more profit. Profits in the oil business may peak, maybe even soon-ish, but it's not like he's going to go broke before he dies.
No, that's not the motivation. He's pretty much the usual trolling for attention at the end. He's good to attach his name to something which to a very large number of people says, "OMG, he's a saint!"
What were the real choices? Charity? Always a choice, but it's not like he can compete with Gates or Warren Buffett. The latter alone announced giving $31 billion to charity. (In 5% increments each year. At the age of 75. Seeing a pattern yet?) Pickens doesn't even _have_ that much total. So while he'd whitewash his name a lot, it would still be lost in the honourable mentions. He'd probably just manage to edge out the over 2 billion pledged by Barron Hilton. (At age 80, pleadges 97% of his fortune to charity. Hmm.)
And even Hilton's donation only made headlines because he's essentially shafting the well known Paris Hilton out of the inheritance. If the gal hadn't been so well known, even if largely for the wrong reasons, you would have barely heard about it, in a footnote.
Enter the carbon cultists. Hmm, noone has done horribly much for those lately. There's a lot more publicity to be gained by doing something spectacular for those, than from going the charity route.
Well, does it really matter, though?
1. First of all, the game seems to be about conflict resolution on a small interpersonal scale. You know, better try to make friends with Joe, instead of punching him in the nose.
I'd say that whatever _external_ policy a military-industrial government may pursue, _internally_ they need a certain social order and people following orders. They don't want their own society to break down into anarchy, even if just because that's bad for business and bad for politics.
Plus, starting from there, you can always dehumanize your enemies and present them as the guys who don't play as nice as we taught y'all to. See, we're all nice to each other and stuff, we teach our kids in school to solve their problems peacefully and help each other, but those dastardly X don't! They're preying on us, trying to destroy our way of life, and teaching their children to do the same! Well, we'll show them that being nice doesn't mean being a helpless victim! (Where X can be muslims, jews, commies, or whatever bogeyman of the day.)
So I'm guessing this kind of game wouldn't really be unwelcome even for the most aggressive government. Now if it taught people that it's good to be nice in international politics, that might be subversive for the likes of Bush. But teaching people to play nice internally isn't really bad for any government, from Bush to China to whatever else.
2. If you want to play non-violent games, even at the international politics level, it's not like other games don't exist that drive the point home. Sometimes through melodramatic hyperbole.
E.g., in Superpower 2 even the slightest aggressive stance would eventually degenerate in global thermonuclear war. (Well, ok, so would almost any other kind of politics;)
E.g., in most of Paradox's games, although they do feature wars and conquest, one of the first things you learn is that a war and the resulting anxiety and uncertainty impacts your economy immediately, and a prolonged war builds up discontent fast. They also teach that too long an aggressive attitude _will_ make all other countries hate you. (Well, ok, after a few patches. As shipped, they usually teach that Switzerland could have conquered the world in WW2 and similar lessons;)
Etc.
Now not many people play these, when they could be zerging Crossroads with their epic gear instead, and head-shotting people in CS, and such. But then I don't really think that this game would have been a major hit with the violent-games-only crowd either. People who played peaceful games or at least games where complex diplomacy and alliances matter, will still play them, and people whose life revolved around their CS score, will still avoid them and would have avoided this one too. I don't think this one game would have made such a difference as to get any politician's panties in a knot.
Well, it didn't say it was about unsolvable problems of modern computing, but rather about annoying programs. That alternatives exist, I think for at least one of them, even ZD mentions one. I guess, if anything, the existance of those alternatives, just drives home the point about how needlessly annoying those programs are. You know, the "what the hell were they _thinking_" factor.
You haven't seen some of the alternatives, then.
;)
Some years ago, for example, sick and tired of Norton, I went and bought McAffee's anti-virus. In fact, I figured I'd go for the full monte, including firewall, "privacy" stuff, you name it. I can't be arsed to dig up the CD and find out which year it was, and I wouldn't know if it got any better in the meantime. (Though I would be surprised.)
The first funny impression was when trying to update it. As is the craze in the last decade, it couldn't just have either a URL to their download page, or a neat little downloader program. It just had to launch an ActiveX control in a browser to do the actual download and install. It launched whatever browser you had configured as default. E.g., for me it was Mozilla. It only actually worked in IE.
But wait, the patcher was more stupid than that.
I didn't have too much space left on C:, but I had vast amounts of space on my slower D: drive. So I refuse to install it to the default location, and install it to D:.
Then I run the updater. It installs the updates to the default location on C:. Literally, it was too fucking stupid to either ask, or figure out where its own installer had put those programs.
It gets funnier. Presumably because it couldn't figure out where they were, it didn't uninstall or at least disable the origina, unpatched version on D:. It just let it run too.
If you think one anti-virus is a resource and CPU hog, now picture twice that. It felt like I had downgraded back to my trusty old 486.
Now I don't know how good their virus protection was, I didn't actually have a virus. Their privacy stuff, though, now that made most sites that required a login, no longer work. And it made some schizophrenic: they thought I was simultaneously logged in _and_ not logged in. It was giving me some insight into what Schroedinger's cat must have felt
To cut a long story short, and skip over a few more faults, after a few days I uninstalled it.
The uninstaller, though, only got rid of the new patched copy from C:. It left the one on D: as it was, and loading itself in memory anyway. Trying the uninstaller from D: didn't seem to work either. I had to manually mess with the registry to get rid of it.
On the whole, it left me the impression that it makes malware look good by comparison. Ok, so you have to mess with the registry in safe mode too, to get rid of it, so it's a tie there. Most viruses don't use as many resources or interfere with your daily use of the computer half as much, though.
Yes, but the intersection is still mis-leading. Percentage of retail _or_ percentage of over-1000 computers could say something. (If you do understand that you are talking about a particular niche, not about the company's overall profitability or market share.) But the intersection is just a narrowly crafted niche, for PR masturbation reasons.
It's like saying that Moraelin's Fairies won the most games played on a rainy Tuesday under artificial lighting. They have a whole two games won under those conditions, while everyone else has at best one win that's on a rainy day _and_ tuesday _and_ played at night. It's trivia, at best. It doesn't make it the best team in any actual category that matters, it just crafts an artificial niche to make my team look good.
And probably more importantly, a tell-tale sign of a PR masturbation exercise, is that even that niche doesn't really support the conclusion they try to feed you. ""If you don't give people a choice [in the Apple stores], people will spend more."" Really? Exactly which part of that percentage supports that conclusion? Did they compare before and after a price hike, or what? Did Apple try to have cheap computers too, and people were going for those instead?
But even that wouldn't be visible, if you only look at the over-1000 segment. You need an entirely different sample to make that point.
No, it's very likely just a PR exercise masquerading as news.
Personally I think the claim is mis-leading anyway. The category is narrowly defined as not only over 1000, but also bought retail. So it's crafted to exclude all the expensive workstations and servers bought by corporations, since they don't usually just drive a truck to WalMart to buy them retail.
It's a bit like saying that Joe is the world leader in selling over-$1000 cats by Ebay and air mail. Sure, he only sold one on Ebay, but he's the only guy who sedated the cat and sent it by air mail. The rest of the people bought their cats face to face, or had them delivered by courier in a few cases. Narrow it down to Ebay and air mail, and, bam, Joe has 100% of that market.
Better invest in Joe. In fact, this year he found two stray kittens in his backyard, and plans to sell them both on Ebay by air mail. That's 100% year-on-year growth, baby. At this rate, in 20 year, Joe will ship over 1 million cats yearly. As a savvy investor, you don't want to miss _that_ boat.
In other words, it's just a PR masturbation exercise.
_If_ that happens, then IMHO Java's own memory allocation is broken on that machine.
I can imagine stale data in the reference variable written by "getInstance()", which is (as far as I understand it at 1AM) the problem on Alphas in your link. But that's highly unlikely to be a problem, since it will then usually see a stale "null" and proceed to allocate a copy. It would take something like having only half the pointer stale, to actually have a problem. Not very likely, since it would also require a kind of alignment that's avoided by the compiler, and causes a fault on some machines. But ok, I'll concede that possibility.
Stale contents of the object? Hmmm.
Java's own memory allocation has to synchronize _somehow_, since all CPUs advance the same pointer in the heap. If that memory allocation isn't in a critical section in the JVM itself (which would be kinda required for CPU2 to see stale data in the memory taken by the object itself), then that machine has a bigger problem. Then two threads trying to allocate an array at the same time, without a cache synchronisation in between, would get the same chunk of memory. And possibly a corrupt heap, as each advances the free memory pointer by a different amount.
IMHO you'd notice that kind of malfunction very fast, with or with synchronization.
Hmm, well, on second thought, I guess it _could_ fail if any multi-cpu system is actually as broken as to need explicit instructions to re-synchronize the cache. I'm pretty sure Intel didn't need those since, oh, at least the Pentium Pro, and, again, neither did Sun's Sparc processors (at least the 64 bit ones, not sure if the earlier too), and neither do IBM's P5 or P6 systems.
Your link mentions the Alpha as one which does, which kind of surprises me. I would have expected more from those, but ok. If anyone ports Java 5 to a decade-old, defunct CPU, I suppose it's possible to have a problem.
Still, I suppose for purity sake, you have a point.
I actually do know a bit about those, I already knew about the double-checked lock problem since 2002 or so, and I'm still not entirely sure how this can fail, unless the multiprocessor system is broken. I have also seen plenty of this kind of singleton running cheerfully on Sun, Intel and IBM multi-processor machines, and none of them failed so far.
So, well, please enlighten me.
Just to clarify my previous point, the point of contention there is almost invariably the "getInstance()" method. Such tools trip over it, hard, and there's usually no way to tell them, basically, "it doesn't freaking matter if another thread or another CPU essentially bypasses the singleton and gets a different instance of a stateless class."
The actual methods of the singleton, well, you use your own head. In my logger example it works because it essentially wraps around System.out which is already synchronized, so there's no need to synchronize the outer layer again. In other cases it's really stateless and idempotent, and again it doesn't matter there either. In very few cases, they might actually need to be synchronized.
But anyway, my minor peeve there is with tools and people getting tripped by the unsynchronized "getInstance()" in a situation where it just doesn't matter. I'm not even opposed to turning it into a non-singleton, but seeing someone who should know better (or claims to know much better) spend pages in his report and _hours_ worth of meetings just over the lurking evil of that "getInstance()", just tells me they might have exaggerated their claim to greatness, ya know?
If it's a _stateful_ singleton (i.e., a real singleton), then yes, damn better synchronize it even on single-CPU system. No arguments there.
The problem is that there are classes which really shouldn't be singletons at all, and are a mis-use of that pattern. They don't actually _have_ any state, which could be stale on another cache. (Which actually is the least of your concerns there.)
E.g., as a trivial example, consider the following kind of singleton: Yeah, there are better loggers available, but it's just an example. Bear with me.
The class has no state, and holds no resources. It's just a collection of idempotent methods.
It's not a _real_ singleton, it's just someone's misguided attempt at saving the (ridiculously low) overhead of a "new LoggerSingleton()" everywhere it's used. It doesn't matter if two threads get two different copies of it. Worst case scenario is, literally, one of them wasted 8 bytes on the heap, which will be garbage collected later. That's all. There is no way to malfunction because of that.
Synchronizing that, simply isn't necessary. It also defeats the whole "optimization" there, since synchronization is actually more expensive than just not making it "singleton" in the first place.
Now I'm not saying it's right to have that kind of singleton, but it's the kind of "optimization" you tend to get from people coming over from C++. They occasionally even write pools for such objects.
But ultimately it doesn't matter much.
_If_ you have plenty of time, and/or you're at architecture design stage, yeah, tell the people to not do it.
But it's kinda annoying to see an overpaid consultant insisting that synchronizing those is top-priority, and he's saving everyone from some great catastrophe with it. In a project which is already overdue and in trouble. There are better ways to use those resources, than "fixing" non-problems.
Going out of the way to satisfy a tool, whose only reason to exist is to flag 10 times more stuff than -Wall, I found actually counter-productive.
And I don't mean just as in, WOMBAT (Waste Of Money Brains And Time.) I mean as in: it teaches people to game the tool, actually hiding their real bugs. And it creates a false sense of security too.
I've actually had to deal with a program which tested superbly on most metrics of such a tool. But only because the programmer had learned to game it. The program was really an incoherent and buggy mess. But it gamed every single tool they had in use.
A. to start with the most obvious, some bright guy there had come up with an own CVS script which didn't let you check in, unless you had commented every single method, and every single parameter and exception thrown. Bout damn time, eh? Wrong.
1. This forced people to effectively overwrite the comments inherited from better documented stuff. E.g., if you had a MyGizmoInterface interface, which was superbly documented, and the MyGizmoImpl class implementing it, it forced you to copy and paste the JavaDoc comments instead of just letting JavaDoc pick them from the interface. So instead of seeing the real docs, now everyone had docs all over the place along the lines of "See MyGizmoInterface.gizmoMethod()" overwriting the actually useful ones there. Or some copied and pasted comments from 1 year ago, where one of the two gradually became obsolete. People would update their comments in one of the two, but let the other say something that wasn't even true any more. Instead of having them in one place, and letting JavaDoc copy them automatically.
2. The particular coder of this particular program, had just used his counter-script or maybe plugin, to automatically generate crap like: I mean, _literally_. Hundreds of methods had "Method description" as their javadoc comment, and thousands of parameters total were described as "method parameter."
B. It also included such... brain-dead metrics as measuring the cohesion of each class, by the ratio between number of class members to class methods.
He had learned to game that too. His code tested as superbly cohesive, although the same class and indeed the same method, could either send an email, or render a PDF, or update an XML in the database, depending on which parameters they got. But the members to methods ratio was grrrreat.
That's really my problem with it:
A. Somewhere along the way, they had become so confident in their tools, that noone actually even checked what javadoc comments those classes have. Their script already checks that there are comments, hey, that's enough.
B. Somewhere along the way, everyone had gotten used to just gaming a stupid tool. If the tool said you have too many or too few class members, you'd just add or remove some to keep it happy. If it complained about complexity, because it considered a large switch statement to have too many effective ifs, you just split it into a several functions: one testing cases 1 to 10, one testing 11 to 20, and so on. Which actually made the code _less_ readable, and generally lower quality. There would have been ways to solve the problems better, but, eh, all that mattered was to keep the tool happy, so noone bothered.
That's why I'd rather not turn it into a religion. Use the tool, yes, but take it as just something which you need to check and use your own judgment. Don't lose track of which is the end, and which is merely a means to that end.
Only if you mis-understood that post. I wasn't saying that you should or shouldn't go into engineering. Just why some people choose not to. They look at it as bang/buck, or rather reward/effort, and see no low hanging fruit. There's less chance for glory, less chance to be respected for it, and with everyone obsessed about cost cuts, the salaries gradually went south too. The effort to learn an engineering job is actually larger than before, and the total reward is less. So more and more don't.
I'm not saying that that's a good or bad decision. Just that it happens.
My experience has been that while in the hands of people who know what they're doing, they're a nice tool to have, well, beware managers using their output as metrics. And beware even more a consultant with such a tool that he doesn't even understand.
// ignore }}" blocks a thousand times over in each "finally" block, when you can write it once and just call the method in your finally block. This tool had a trouble understanding that it _is_ all right. Unless it saw the "connection.close()" right there, in the finally block, it didn't count.
The thing is, these tools produce
A) a lot of "false positives", code which is really OK and everyone understand why it's ok, but the tool will still complain, and
B) usually includes some metrics of dubious quality at best, to be taken only as a signal for a human to look at it and understand why it's ok or not ok.
E.g., ne such tool, which I had the misfortune of sitting through a salesman hype session of, seemed to be really little more than a glorified grep. It really just looked at the source text, not at what's happening. So for example if you got a database connection and a statement in a "try" block, it wanted to see the close statements in the "finally" block.
Well, applied to an actual project, there was a method which just closed the connection and the statements supplied as an array. Just because, you know, it's freaking stupid to copy-and-paste cute little "if (connection != null) { try { connection.close(); } catch (SQLException e) {
Other examples include more mundane stuff like the tools recommending that you synchronize or un-synchronize a getter, even when everyone understands why it's OK for it to be as it is.
E.g., a _stateless_ class as a singleton is just an (arguably premature and unneded) speed optimization, because some people think they're saving so much by a singleton instead of the couple of cycles it takes to do a new on a class with no members and no state. It doesn't really freaking matter if there's exactly one of it, or someone gets a copy of it. But invariably the tools will make an "OMG, unsynchronized singleton" fuss, because they don't look deep enough to see if there's actually some state that must be unique.
Etc.
Now taken as something that each developper understands, runs on his own when he needs it, and uses his judgment of each point, it's a damn good thing anyway.
Enter the clueless PHB with a metric and chart fetish, stage left. This guy doesn't understand what those things are, but might make it his personal duty to chart some progress by showing how much fewer warnings he's got from the team this week than last week. So useless man-hours are spent on useless morphing perfectly good code, into something that games the tool. For each 1 real bug found, there'll be 100 harmless warnings that he makes it his personal mission to get out of the code.
Enter the snake-oil vendor's salesman, stage right. This guy only cares about selling some extra copies to justify his salary. He'll hype to the boss exactly the possibility to generate such charts (out of mostly false positives) and manage by such charts. If the boss wasn't already in a mind to do that management anti-pattern, the salesman will try to teach him to. 'Cause that's usually the only advantage that his expensive tool has over those open source tools that you mention.
I'm not kidding. I actually tried to corner one into;
Me: "ok, but you said not everything it flags there is a bug, right?"
Him: "Yes, you need to actually look at them and see if they're bugs or not."
Me: "Then what sense does it make to generate charts based on wholesale counting entities which may, or may not be bugs?"
Him: "Well, you can use the charts to see, say, a trend that you have less of them over time, so the project is getting better."
Me: "But they may or may not be actual bugs. How do you know if this week's mix has more or less actual bugs than last weeks, regardless of wh
Oh, I didn't say that the only "golden age" was the 1800. I'm more like saying that each domain has its own "golden age", somewhere near the beginning of it. Then it becomes mostly salary work.
So for most mechanical stuff, yeah, the time where it was "exciting" was in the 1800's. For aerospace it was in the 20'th century. For computing stuff, it lasted more or less into the 90's.
So yes, some new thing will eventually come along, and for a while it will be all exciting to be in it. Then it will become just peon work too.
Basically I'm not saying that progress has stopped, or anything. I'm saying that the motivation to go to university in that domain looks a bit like a gauss curve, sorta. The "excitement" factor of it is high in the beginning, when there's so much to do, and it looks like you too could make your own contraption or just do things better. Then that excitement dies down, most (but obviously not all) stuff in that domain has been discovered, the industry has consolidated into a few dominant players, salaries went down, and what's left is whole teams doing tweaks to already refined designs. And to the guy looking at the question, "do I pick X as a major?" it already looks a lot less exciting than in the early years. He might choose it because the salaries are still good, but not because he actually thinks any more that he'll be the next big inventor of that domain.
Take, say, airplane building. In the beginning it looked so much like everyone's game, that we even had kids building a glider in the barn without telling their father. The feeling was there that you too can make your own flying contraption, and maybe even get it better than the ones that tried before you. There's a certain "excitement" factor in being at such a beginning. Then roll forward a century or so, and you have only a handful of big players who pushed everyone else out, and you're reduced to tweaking turbine blades in a CAD program and testing them in a wind tunnel. There's about as much excitement in it as in accountancy. And unsurprisingly a lot less kids dream of having that as their future job. (Just as well, because pay and number of jobs went down too in that domain.)
Or to better explain what I'm trying to say, that last point in my original message, well, was merely about why less people rush to enroll in a mature domain. I'm not saying that progress stopped. I'm just saying that eventually it just becomes less "exciting" a job. The same people who 100 years ago might have thought "OMG, if I only could work in aeronautics, it would be sooo cool and exciting" now look at it as, meh, just another possible desk job.
It's also a matter of
A) rewards. If you're going to put 10x more work into something, then you'd expect the rewards to be worth it. That doesn't mean only salaries (though that sure helps too), but also stuff like overall job quality, social recognition of your efforts, etc. I'd say that in the west, for various reasons and to various degrees, all of those gradually declined.
We went for example from a culture which put its intellectual elites on pedestals, to a culture where being technically illiterate or even outright stupid, is cool and fashionable. In fact, if you show any intelectual interests or aptitudes, it's kinda mean of you and insensitive to your below-average neighbours/classmates/etc.
In programming alone we went from being those wizards doing high tech stuff, to being outright disconsidered. Nowadays for the average outsider it's not "I don't know how to do the things he does", it's more like "I have a life, I don't have time for that crap" or "yeah, the neighbour's 12 year old can do that kind of stuff." The idea from the 90's that you can just retrain an unemployed pizza-delivery-guy or burger flipper off the street, and he'll be just as good as those snotty CS and engineering graduates anyway, also didn't do much for recognition. It was hammered in everyone's head that you _are_ no better than him, and he could have had your job too if only he could be arsed to take one of those two-week java courses.
Now not all countries are at the same point, and not all went in that direction as fast, but that was the general direction all went slowly.
That's one reason to put in the extra effort, that went down the drain right there. For a lot of people that criterion is now actually a disincentive, since all that extra effort might actually _lower_ their prestige in the community instead of raising it.
B) Rampant age-ism also doesn't help. Back then, sure, I was young, I thought I'd never get old. When 15 years is your entire life so far, and you probably remember only 10, living another 45 years to 60 seems like a bloody eternity. No point worrying about something _that_ far in the future. Now I see perfectly competent programmers pushed aside or into a corner, because some PHB learned the mantra that only the smart young kids are any good.
If I had a kid, I'd tell him to stay well away of that field. Chances are you _will_ live to _at_ _least_ your 40's, even if you chain-smoke and get to twice your idea weight and go alcoholic too. If you want a job where you start being discriminated against as early as the 30's, heck, go into prostitution or porn instead. (And considering some bosses I've occasionally seen, prostitution might even be the more dignified job.)
C) It's also a matter of, well, excitement.
In all science or engineering domains, there was a time where it looked like there's so much interesting stuff to do or discover, and only the sky is the limit. (Or in aerospace not even the sky.)
In programming, for example, when I looked at some primitive games or programs on the old ZX-81 or later ZX-Spectrum, I thought, "I can do better." Often I actually could. Heck, I could even paint my own sprites by hand, although I'm no graphics artist, and they still looked good enough at that resolution.
Nowadays, if I look at a modern game, well, there's just not the same sensation. Duly noted, nowadays about half can be modded, so you can still tempt someone to programming that way. But for a while even that wasn't the case.
Ok, so that's only games, but the same applies to any other programming domain. At some point you could have been the guy who created the next big language, wrote the OS for some underpowered mini, or did the next great maths thing with a computer, or designed the next computer itself, or whatever. Nowadays you'll be a cog in a 20-people team writing the front-end to some database app.
Or if we move away from programming, as I was saying, the same applies to any other engineering domain. At one point we