The left wing talks about how how everyone else is brainwashed at the hands of corporatists, that, your side is right if we could only "know the whole story". You people talk like you are in a cult. The left wing IS propaganda without logic. You are the worst kind of kooks!
For example, look at the debate over the Alaska refuge. It's in the ARCTIC, nobody in their right mind would live there, and your side is crying over a few deer getting killed in order to stop 500 billion buckazoids from rolling into the USA. Now you want to tear down all of the dams in the USA to protect a few fish, you want to shut down all the power plants to protect the air, and I guess, yeah, at the end of the day, you really just want to tear down everything.
And you call us thick fingered corporate vulgarians crazy? The American people are making their choice - choose your point of view and freeze to death naked in the winter and have nothing because possessions and buildings disrupt the environment, or, have a shot a giant house with a Pontiac GTO parked in the driveway, capable of going 0-60 in 5.4 seconds, sporting 350bhp.
Our side wins, every time, because we promise better and deliver more.
Hello left wing, Americans do not want to live in caves to commune with mother nature. Nature sucks and must be conquered and kept tame at all times.
It's just a statement of fact.The English and the Irish have traditionally not gotten on, but, it's been over 150 years since the Famine, but half that since World War II. So feelings in China about Japan are much, much stronger.
Saying the Japanese and Chinese are like the English and the French is the understatement of the year. Japan invaded China to open World War II and killed nearly 30 million Chinese people.
Re:Bring back procedural languages
on
Holub on Patterns
·
· Score: 1
I guess I'm just going to have to write the language to show you.
Need to understand motivating factors
on
Holub on Patterns
·
· Score: 1
The problem that I have with OOP is that it is a religion to too many people that take each of its precepts as an excuse to not actually solve problems. I've seen a lot of developers balk at solving a problem, throwing out all of the precepts of OOP as complexities that make it harder to design. You hand someone a problem these days, and they will give you a beautiful class hierarchy of sorts that is beautifully polymorphic, data hidden, and doesn't do a damn thing that the customer wants and certainly took too long to do.
Yet it's difficult to make a good OOP design, and oftentimes, many developers are just good enough to make OOP designs of very simple systems, but can't actually connect the dots and make complex systems using OOP because they simply cannot do the designs. And, ask most OOP activists about real language shortcomings, like, how most OOP languages are crippled for lack of dynamic dispatch, and they will just draw blanks or worse, roll out with a design pattern that is merely a workaround for a language failure. A solution yes, but an intellectual refusal to admit something could be better.
We say OOP is good because it lets you implement good abstraction, but its become a cliche and I think that with all the CPU power we have, we might break up abstraction and reexamine the motivating problems that lead to its adoption, in light of modern hardware, widely available graph theory.
Why, for example, do we have polymorphism? I say that it is a convenient way of arranging code in graphs to reduce decision logic. You factor if-then into class hierarchies? But why not other branching logic as well? And why just branching logic? Why not let one dimension hierarchies of code based on any common language construct!
Why do we have strong data typing? Strong data typing makes for expensive designs and developers usually f--- this up. We have no automatic translation of types except by base class, or in some languages, by matching method syntax - C++ templates or C# generics. What if you could allow automatic conversions to take place? That's a run time check, but could you not avoid that by having iterate decision points in your code as part of a post-compilation but pre-execution step? It's just walking a tree.
Why data hiding? We want to hide complexity, but then, we also don't. I had a C# problem the other day that could only be resolved, ironically, by looking at the mono source for the framework. So much for data hiding and black box code! Why not some way to filter chunks of code and or data streams on demand or at least in various cases.
And finally, why are will still using imperative languages when everyone who ever fires up Excel to do a quick calculation rather than write a C# or Java program implicitly agrees that functional programs are easier to write!
Admittedly, OOP, properly employed, will help us get to that "next step", whatever it is. That new language / paradigm will no doubt be implemented in an OOP language. But those people that think OOP is "the shit", well, I think they are just stupid.
Re:Bring back procedural languages
on
Holub on Patterns
·
· Score: 1
Not confused at all. Table in your case could mean comma delimited file all the way up to some mini rdbms server.
The properties are in a table. The table consists of these fields:
The functionality of switching between properties is the selection of a row on table. This is in code. Also, the behavior of each of the property widgets is in code. In Windows you could, in C world, say that property type specifies the Window class.
The user interface is initialized by loading data out of the table. Your message loop handles the obvious keystrokes.
If you are smart, you could put the widget code in the property type table as well. But that would mean that your widget u/i layer would have to be in an interpreted language. Code is just a way of expressing a tree of execution, and there's no reason you can't map an OOP to a relational model, and the relational model is can be more flexible if implemented by the right software.
Re:Bring back procedural languages
on
Holub on Patterns
·
· Score: 1
Actually it is a multilayered OOP design.
From bottom to top:
layer 0 is the server memory mapped file access layer layer 1 is the memory mapped block allocation layer layer 2 is the memory mapped skip list layer layer 3 is the profile engine layer layer 4 is the profile task layer. this is the vm implementation layer 5 is the socket listening layer and multithreaded job scheduler.
then, on the client
layer 6 is the socket layer layer 7 is the compiler parse thread layer 8 is the compiler tokenizer thread - yes, virginia, I put the tokenizer and lexer into separate threads on the client layer 9 is the data tier layer 10 is lightweight browsing / chart control tier - internally the new release of commodity server u/i has a mini browser. this is actually separated into two layers, the block rendering / page engine, and its window container. I also wrote my own chart control which has several views and really sweet date zooming. layer 11 is the user interface itself.
It's a long time in the making and I'm pushing out the next big release soon. The reason for my memo was because during the course of the development of commodity server as well as a fairly big project at work, I've discovered that oop dogma for dogma's sake gets in the way. you have to keep in mind that oop was designed by the military and funded by big corporation as a way to get repeatable coding results out of idiots so that labor costs could be reduced and projects managed more smoothly and outsourced more easily. the emphasis of oop is not on individual productivity, but team productivity, and, as a lone developer, during the development of c/s, I've been gathering cons of oop languages towards the end of solo development. like, design a language that is good for a small team of no more than three or four people, and excels at individuals.
Re:Bring back procedural languages
on
Holub on Patterns
·
· Score: 1
Yeah, this is a common pattern, and I've done it a lot myself, but do you see what you are really doing is just using your object hierarchy as -data-. If you put those relationships into a database of some sort, rather than in code, then adding a new thingy as you describe takes place in seconds and without a code redployment. Every good OOP design is just a bad use of a database.
Bring back procedural languages
on
Holub on Patterns
·
· Score: -1, Troll
I think OOP is the biggest waste of money ever to visit computer science in history. We spend bazillions of dollars to build these giant hierarchies, and then, have to throw them away periodically because they are too rigid. OOP fails and will always fail because it attempts to anticipate the future at design time, and that's just plain silly.
Every time I sit down to a piece of "bad" old code, I notice just how much easier it is to maintain. I add an "if-then", but the OOP guy is screaming factor-factor-factor so much that you have to shlep the whole thing off to india to because that's the only way you can afford the thousand programmers to sort out.
At the end of the day, OOP is just bunch of code layered upon layer like a homeless guy's clothes, with nothing underneath. It's dogmatic, mechanical, dull witted, and stupid.
The essence of an encylopedia is research over things which have already occurred. Open source, on the other hand, builds something new. The value of the the thing open source builds is measured by its efficacy and utility. The thing that an encyclopedia builds is measured by its accuracy.
The skillsets for both are different. You can learn to be a better builder of things, if you work at it. You can sit in your room and program ever better, all the time. In a hot environment, strong peer review can improve you still. But, there's not "practice" to history in the sense of perfecting a skill, there's the sheer acquisition of accurate knowledge.
I married an artist, BFA and all. From her I learned how color works, about negative space and positive space and a million other things that these "non-scientific" people know that make art as much as a science as programming is an art.
Saying the Maginot line was a failure in 1940 is a vast oversimplification. Most of the French mistakes were social and tactical, not technological or even industrial. France going into World War II had more tanks, more planes, and certainly a better navy than the Germans. French equipment, on paper, was at least as advanced as their German counterparts, although Germans had radios in their tanks.
But where the Germans shined was in tactics. They concentrated their firepower at weak spots and sought to encircle armies. They attacked throught the low countries with one arm, and then, with another, smashed through with a bold drive straight to the sea, which did a few things - they captured channel ports, they cut off the British from the French, and they surrounded the French Army outside of France. So in one fell swoop they forced the British to leave France and killed the French Army. There was some final fighting by the French but they were overcome. Really, once the Panzers reached the channel ports, the war was over for the French.
German morale was high going into the battle of France. They had conquered Poland the previous year, and badly mauled the Allies in Norway not long before. On the other hand, France was filled with defeatists and morale was abyssmal.
Later in the war the allies would come to cope with German tactics. The Russians would learn to withdraw to avoid encirclement, or, use their salients as a base to attack German weak spots of their own. Americans greatly improved communications, the idea of dialing in fire missions - so the whole air and artillery could be placed at the behest of the ground units. And the Germans could never quite counter the allied round the clock strategic boming campaign.
I don't understand why you were modded down for a really good point.
Ohio law, as you describe, is ridiculous. My better half was in the hospital. Of the many things that flashed through my head, as I was filling out the forms, was that, if I was gay and she was my gay lover, that I wouldn't be allowed to see her. As much as I don't like gay politics, I do think gay people love each other as much as some married couples do, and I think it inhuman, and yes, unamerican, to deny them the same sort of legal protections that married couples have. I just think they could use another word, but with the same -legal- standing, as marriage, so that, straight people are married, and gay people are something else, so if I someone saw my wedding ring, I could say that I was married, and they would know that I'm not gay.
Ten years ago, we used to say, "we are angry at this or that issue." Now, we say, "we are frustrated". The entire idea of trying to reduce our language to assertions of logic is silly because as soon as we do so, we immediately try to change the definition of one of the composing elements in order to get out of it.
Here's the biggest problem with the web. Most people that have web sites have them to sell stuff, and they DON'T WANT their stuff to be easily searchable and diced and sliced. All this interoperability and data exchange stuff XML, Web Services, Internet Tools, even old COM Objects and CORBA objects and even older RPC all failed, has failed, and will always fail because people don't want you to make it easy to compare you against someone else. It's not a question of cost.
It's just stupid to do it. What, I'm going to pay someone to make it easier for customers to choose someone else for any product? That's the most retarded thing in the world.
If you wanted to make the next big web, make one where people CAN'T compare content from your site to someone elses and have zones of it be franchized off for exclusivity. Like, I'd make a browser where every page sent is just a giant bitmap, and that way, it couldn't be scraped at all.
Not allowing a nation to claim a section of space has completely made going there pointless. If I were President, I'd put a human on the moon and claim the son of a bitch for the USA. Then you'd immediately see every nation on the planet going up there to claim their piece, and suddenly space flight would be as common as a boat ride.
If you get all of the legal rights, why is such a big deal for gays to be called married? Why can't there be another word to describe gay unions that describes exactly what it is, and confers no less legal rights? I'm saying, let gays have every legal right of union that heteros have, from wills to divorce, etc, but, it's -not- marriage. Is it too hard for liberals to think up another word?
I'm in favor of getting the state out of the marriage business altogether. But why do we have to absurdly claim that the a gay relationship is the same as a hetero one. Right off the wheel, a hetero couple is going to most likely make babies, whereas gays won't. The emotional interplay between a man and a woman, especially if she's pregnant, is completely different than what a man and a man or a woman and a woman is, and so gay unions should be called something else. It's like, an apple is an apple and a PC is a PC. Sure, extend gays every legal right to partner up, but don't call it marriage, because its not.
Of course, if you want to use that logic that two people kinda together is married, well, then, why not also add the logic that someone that shows up at college graduated?
The notion of intellectual property cannot be reversed so long as there is free trade. For a rich nation to give up intellectual property when her workers are paid a great deal relative to the rest of the world is total economic suicide.
In order for there to be a genuine open source, you have to get rid of free trade. I think this is a move that is long overdue. Each nation would produce the goods it needed, but all information between nations would be allowed to be free. In this way, you don't have ridiculous sitations like the third world being held back because its own engineers are not allowed to construct a plant.
To make this model work, though, you need to have a kind of software that can guide a developing nation into manufacturing the kinds of things it wants - it needs to be able to schedule education, natural resources, etc. So that way you can let the third world build its own cars using the latest western technology, including fuel cells, etc, but at the same time third world wages won't throw richer nations into brutal social turmoil and poverty.
At today's oil prices, the Alaskan oil reserves are worth roughly 500 billion dollars. We should drill in Alaska and use that money to build a bunch of nuclear power plants, powering hydrogen electrolysis generation, and hydrogen filling stations, and transition to a fuel cell economy. Yeah, the Elk take a hit in Alaska, but when we're all done, we wind up with a much, much cleaner overall form of engine. I'd take the risks of a few hundred centralized nuclear facilities over the constant mess of spilled hydrocarbons leaching everywhere, not to mention NOX, SOX, (speaking of which, when is Europe going to kick the NOX/SOX habit?).
The left wing talks about how how everyone else is brainwashed at the hands of corporatists, that, your side is right if we could only "know the whole story". You people talk like you are in a cult. The left wing IS propaganda without logic. You are the worst kind of kooks!
For example, look at the debate over the Alaska refuge. It's in the ARCTIC, nobody in their right mind would live there, and your side is crying over a few deer getting killed in order to stop 500 billion buckazoids from rolling into the USA. Now you want to tear down all of the dams in the USA to protect a few fish, you want to shut down all the power plants to protect the air, and I guess, yeah, at the end of the day, you really just want to tear down everything.
And you call us thick fingered corporate vulgarians crazy? The American people are making their choice - choose your point of view and freeze to death naked in the winter and have nothing because possessions and buildings disrupt the environment, or, have a shot a giant house with a Pontiac GTO parked in the driveway, capable of going 0-60 in 5.4 seconds, sporting 350bhp.
Our side wins, every time, because we promise better and deliver more.
Hello left wing, Americans do not want to live in caves to commune with mother nature. Nature sucks and must be conquered and kept tame at all times.
And you can screw up paper trails. Paper trails succumb to the "counters" themselves. Paper can be lost, marked up, altered.
It's just a statement of fact.The English and the Irish have traditionally not gotten on, but, it's been over 150 years since the Famine, but half that since World War II. So feelings in China about Japan are much, much stronger.
One big advantage of having the car drive is that you can just kick back and fire down a few cold ones.
It might also be that the Japanese build better products than the French. Any thought of that? The French couldn't even build an aircraft carrier.
Saying the Japanese and Chinese are like the English and the French is the understatement of the year. Japan invaded China to open World War II and killed nearly 30 million Chinese people.
I guess I'm just going to have to write the language to show you.
The problem that I have with OOP is that it is a religion to too many people that take each of its precepts as an excuse to not actually solve problems. I've seen a lot of developers balk at solving a problem, throwing out all of the precepts of OOP as complexities that make it harder to design. You hand someone a problem these days, and they will give you a beautiful class hierarchy of sorts that is beautifully polymorphic, data hidden, and doesn't do a damn thing that the customer wants and certainly took too long to do.
Yet it's difficult to make a good OOP design, and oftentimes, many developers are just good enough to make OOP designs of very simple systems, but can't actually connect the dots and make complex systems using OOP because they simply cannot do the designs. And, ask most OOP activists about real language shortcomings, like, how most OOP languages are crippled for lack of dynamic dispatch, and they will just draw blanks or worse, roll out with a design pattern that is merely a workaround for a language failure. A solution yes, but an intellectual refusal to admit something could be better.
We say OOP is good because it lets you implement good abstraction, but its become a cliche and I think that with all the CPU power we have, we might break up abstraction and reexamine the motivating problems that lead to its adoption, in light of modern hardware, widely available graph theory.
Why, for example, do we have polymorphism? I say that it is a convenient way of arranging code in graphs to reduce decision logic. You factor if-then into class hierarchies? But why not other branching logic as well? And why just branching logic? Why not let one dimension hierarchies of code based on any common language construct!
Why do we have strong data typing? Strong data typing makes for expensive designs and developers usually f--- this up. We have no automatic translation of types except by base class, or in some languages, by matching method syntax - C++ templates or C# generics. What if you could allow automatic conversions to take place? That's a run time check, but could you not avoid that by having iterate decision points in your code as part of a post-compilation but pre-execution step? It's just walking a tree.
Why data hiding? We want to hide complexity, but then, we also don't. I had a C# problem the other day that could only be resolved, ironically, by looking at the mono source for the framework. So much for data hiding and black box code! Why not some way to filter chunks of code and or data streams on demand or at least in various cases.
And finally, why are will still using imperative languages when everyone who ever fires up Excel to do a quick calculation rather than write a C# or Java program implicitly agrees that functional programs are easier to write!
Admittedly, OOP, properly employed, will help us get to that "next step", whatever it is. That new language / paradigm will no doubt be implemented in an OOP language. But those people that think OOP is "the shit", well, I think they are just stupid.
Not confused at all. Table in your case could mean comma delimited file all the way up to some mini rdbms server.
The properties are in a table. The table consists of these fields:
property name, property type, property default value.
The functionality of switching between properties is the selection of a row on table. This is in code. Also, the behavior of each of the property widgets is in code. In Windows you could, in C world, say that property type specifies the Window class.
The user interface is initialized by loading data out of the table. Your message loop handles the obvious keystrokes.
If you are smart, you could put the widget code in the property type table as well. But that would mean that your widget u/i layer would have to be in an interpreted language. Code is just a way of expressing a tree of execution, and there's no reason you can't map an OOP to a relational model, and the relational model is can be more flexible if implemented by the right software.
Actually it is a multilayered OOP design.
From bottom to top:
layer 0 is the server memory mapped file access layer
layer 1 is the memory mapped block allocation layer
layer 2 is the memory mapped skip list layer
layer 3 is the profile engine layer
layer 4 is the profile task layer. this is the vm implementation
layer 5 is the socket listening layer and multithreaded job scheduler.
then, on the client
layer 6 is the socket layer
layer 7 is the compiler parse thread
layer 8 is the compiler tokenizer thread - yes, virginia, I put the tokenizer and lexer into separate threads on the client
layer 9 is the data tier
layer 10 is lightweight browsing / chart control tier - internally the new release of commodity server u/i has a mini browser. this is actually separated into two layers, the block rendering / page engine, and its window container. I also wrote my own chart control which has several views and really sweet date zooming.
layer 11 is the user interface itself.
It's a long time in the making and I'm pushing out the next big release soon. The reason for my memo was because during the course of the development of commodity server as well as a fairly big project at work, I've discovered that oop dogma for dogma's sake gets in the way. you have to keep in mind that oop was designed by the military and funded by big corporation as a way to get repeatable coding results out of idiots so that labor costs could be reduced and projects managed more smoothly and outsourced more easily. the emphasis of oop is not on individual productivity, but team productivity, and, as a lone developer, during the development of c/s, I've been gathering cons of oop languages towards the end of solo development. like, design a language that is good for a small team of no more than three or four people, and excels at individuals.
Yeah, this is a common pattern, and I've done it a lot myself, but do you see what you are really doing is just using your object hierarchy as -data-. If you put those relationships into a database of some sort, rather than in code, then adding a new thingy as you describe takes place in seconds and without a code redployment. Every good OOP design is just a bad use of a database.
I think OOP is the biggest waste of money ever to visit computer science in history. We spend bazillions of dollars to build these giant hierarchies, and then, have to throw them away periodically because they are too rigid. OOP fails and will always fail because it attempts to anticipate the future at design time, and that's just plain silly.
Every time I sit down to a piece of "bad" old code, I notice just how much easier it is to maintain. I add an "if-then", but the OOP guy is screaming factor-factor-factor so much that you have to shlep the whole thing off to india to because that's the only way you can afford the thousand programmers to sort out.
At the end of the day, OOP is just bunch of code layered upon layer like a homeless guy's clothes, with nothing underneath. It's dogmatic, mechanical, dull witted, and stupid.
The essence of an encylopedia is research over things which have already occurred. Open source, on the other hand, builds something new. The value of the the thing open source builds is measured by its efficacy and utility. The thing that an encyclopedia builds is measured by its accuracy.
The skillsets for both are different. You can learn to be a better builder of things, if you work at it. You can sit in your room and program ever better, all the time. In a hot environment, strong peer review can improve you still. But, there's not "practice" to history in the sense of perfecting a skill, there's the sheer acquisition of accurate knowledge.
Then we can eliminated the cockroaches along with ourselves.
I married an artist, BFA and all. From her I learned how color works, about negative space and positive space and a million other things that these "non-scientific" people know that make art as much as a science as programming is an art.
What's the market like for Linux Shareware?
Saying the Maginot line was a failure in 1940 is a vast oversimplification. Most of the French mistakes were social and tactical, not technological or even industrial. France going into World War II had more tanks, more planes, and certainly a better navy than the Germans. French equipment, on paper, was at least as advanced as their German counterparts, although Germans had radios in their tanks.
But where the Germans shined was in tactics. They concentrated their firepower at weak spots and sought to encircle armies. They attacked throught the low countries with one arm, and then, with another, smashed through with a bold drive straight to the sea, which did a few things - they captured channel ports, they cut off the British from the French, and they surrounded the French Army outside of France. So in one fell swoop they forced the British to leave France and killed the French Army. There was some final fighting by the French but they were overcome. Really, once the Panzers reached the channel ports, the war was over for the French.
German morale was high going into the battle of France. They had conquered Poland the previous year, and badly mauled the Allies in Norway not long before. On the other hand, France was filled with defeatists and morale was abyssmal.
Later in the war the allies would come to cope with German tactics. The Russians would learn to withdraw to avoid encirclement, or, use their salients as a base to attack German weak spots of their own. Americans greatly improved communications, the idea of dialing in fire missions - so the whole air and artillery could be placed at the behest of the ground units. And the Germans could never quite counter the allied round the clock strategic boming campaign.
I don't understand why you were modded down for a really good point.
Ohio law, as you describe, is ridiculous. My better half was in the hospital. Of the many things that flashed through my head, as I was filling out the forms, was that, if I was gay and she was my gay lover, that I wouldn't be allowed to see her. As much as I don't like gay politics, I do think gay people love each other as much as some married couples do, and I think it inhuman, and yes, unamerican, to deny them the same sort of legal protections that married couples have. I just think they could use another word, but with the same -legal- standing, as marriage, so that, straight people are married, and gay people are something else, so if I someone saw my wedding ring, I could say that I was married, and they would know that I'm not gay.
Ten years ago, we used to say, "we are angry at this or that issue." Now, we say, "we are frustrated". The entire idea of trying to reduce our language to assertions of logic is silly because as soon as we do so, we immediately try to change the definition of one of the composing elements in order to get out of it.
Here's the biggest problem with the web. Most people that have web sites have them to sell stuff, and they DON'T WANT their stuff to be easily searchable and diced and sliced. All this interoperability and data exchange stuff XML, Web Services, Internet Tools, even old COM Objects and CORBA objects and even older RPC all failed, has failed, and will always fail because people don't want you to make it easy to compare you against someone else. It's not a question of cost.
It's just stupid to do it. What, I'm going to pay someone to make it easier for customers to choose someone else for any product? That's the most retarded thing in the world.
If you wanted to make the next big web, make one where people CAN'T compare content from your site to someone elses and have zones of it be franchized off for exclusivity. Like, I'd make a browser where every page sent is just a giant bitmap, and that way, it couldn't be scraped at all.
Maybe a lot of people -liked- what happened in the Bush administration.
Not allowing a nation to claim a section of space has completely made going there pointless. If I were President, I'd put a human on the moon and claim the son of a bitch for the USA. Then you'd immediately see every nation on the planet going up there to claim their piece, and suddenly space flight would be as common as a boat ride.
If you get all of the legal rights, why is such a big deal for gays to be called married? Why can't there be another word to describe gay unions that describes exactly what it is, and confers no less legal rights? I'm saying, let gays have every legal right of union that heteros have, from wills to divorce, etc, but, it's -not- marriage. Is it too hard for liberals to think up another word?
I'm in favor of getting the state out of the marriage business altogether. But why do we have to absurdly claim that the a gay relationship is the same as a hetero one. Right off the wheel, a hetero couple is going to most likely make babies, whereas gays won't. The emotional interplay between a man and a woman, especially if she's pregnant, is completely different than what a man and a man or a woman and a woman is, and so gay unions should be called something else. It's like, an apple is an apple and a PC is a PC. Sure, extend gays every legal right to partner up, but don't call it marriage, because its not.
Of course, if you want to use that logic that two people kinda together is married, well, then, why not also add the logic that someone that shows up at college graduated?
The notion of intellectual property cannot be reversed so long as there is free trade. For a rich nation to give up intellectual property when her workers are paid a great deal relative to the rest of the world is total economic suicide.
In order for there to be a genuine open source, you have to get rid of free trade. I think this is a move that is long overdue. Each nation would produce the goods it needed, but all information between nations would be allowed to be free. In this way, you don't have ridiculous sitations like the third world being held back because its own engineers are not allowed to construct a plant.
To make this model work, though, you need to have a kind of software that can guide a developing nation into manufacturing the kinds of things it wants - it needs to be able to schedule education, natural resources, etc. So that way you can let the third world build its own cars using the latest western technology, including fuel cells, etc, but at the same time third world wages won't throw richer nations into brutal social turmoil and poverty.
At today's oil prices, the Alaskan oil reserves are worth roughly 500 billion dollars. We should drill in Alaska and use that money to build a bunch of nuclear power plants, powering hydrogen electrolysis generation, and hydrogen filling stations, and transition to a fuel cell economy. Yeah, the Elk take a hit in Alaska, but when we're all done, we wind up with a much, much cleaner overall form of engine. I'd take the risks of a few hundred centralized nuclear facilities over the constant mess of spilled hydrocarbons leaching everywhere, not to mention NOX, SOX, (speaking of which, when is Europe going to kick the NOX/SOX habit?).