The problem is not with the person learning the new input UI, but with those that end up having to use your computer with zero training. I remember trying to help out a coworker that decided to buy a kinesis keyboard, and then set it up to dvorak: Not only I had to remember to switch layouts every single time I had to type something, and managed to miss 15% of my keystrokes due to its strange button placement, but then space, enter and backspace are all wrong, and right next to each other: It was just a horrible experience. I can only imagine what would happen with a chorded keyboard.
Depends on management: You can easily swamp the most productive developers just fine by just assigning them more tasks than to everyone else. Whether you have extra time for side projects or not comes down to how much sandbagging you do. I've seen extremely good developers that, when facing a project they were uninterested in, would hand completely spurious estimates that make sure they don't work for more than 4 hours a week on their official project, and spend the rest of the time on other things. I've also seen expectations go up in such a way as to make sure no good code could come out of a team. On either case, the end result comes down to politics. Some people have enough political capital to ignore their project. Other times, entire teams leave in a matter of 6 months.
Skill as a developer is only really relevant to a developer's ability to do unofficial work in the sense that in some places, skill quickly translates into political capital.
I keep hoping for an augmented reality navigation system. Not only would it make sure I don't have to listen to some automated voice that can't pronounce street names, but it'd make sure my son stops complaining about how he can't see any bears to our left or right, no matter what the navigation system says.
Now that I think of it, instead of an arrow, the system could display a very realistic grizzly bear in whichever lane I am supposed to use to get to the highway's exit.
Why wouldn't they? The cost of informing yourself is extremely high for the advantages that it provides if all you do is vote. The only way to get your effort's worth is to have quite a bit of money and find a topic where lobbying is easy. It's simple game theory.
If we want something else, we have to change incentives so that it's really in the voter's best interest to really be informed.
So how is Obama to blame for QE? That's done by the Fed. And both inflation and NGDP growth are still very low, despite QE. It's Bernanke that is to blame for ignoring macro 101 and his own research from before he became fed chairman.
Now, if you want to complain about economic policy that is all pro-banker, complain about interest on reserves. Now that's one that doesn't help the general public at all.
It's not hard to find people arguing the opposite. For instance, Scott Sumner, a rather conservative economies who rues the fact that modern Republican and Libertarian ideas about the economy don't make much sense, especially where it comes to monetary policy. In his view, what would be considered a libertarian, yet educated look at economics is just not represented in American politics at all. He claims that Obama has very little to do, one way or the other, with our economic conditions. Instead, it's mainly on the fed, who managed to deliver policies that allow for both employment an inflation way under target. Instead of what the Pauls say about too loose a monetary policy, or what Krugman said, about not having enough fiscal stimulus, the problem is that monetary policy has been too tight.
The NCAA does its best to make sure it enriches itself and the colleges that participate in their competitions without giving the athletes a dime. The kid's output is what brings in all that revenue, and it's not that they are not getting their fair share: They are not getting a share, at all.
If you look at their balance sheets, you'll find that some universities are not places of learning that happen to host sports: They are professional sports franchises that happen to provide some higher education for cover.
A programmer with no talent that is a hard worker will still have tons of trouble doing anything new. And if the work is not new, do I really want someone to write more boring code?
Now, there's such thing as a developer that spends the entire day goofing off, and those won't do any good. But after you pass a very basic level of dedication, it's the smart developers that have a clear advantage.
If there's anything that the question is missing, is social skills. A very good developer that sits by himself is valuable, but if he can help others be better, and can communicate with users and people in other disciplines properly, he'll be far more useful.
Except for something like that to work, you need connections, and said connections require laying large amounts of fiber. Who is going to build a line that crosses an ocean, or even one that links two major cities?
And there's also the equipment: Even if I have a fiber line heading to Chicago, and a bunch of local people that connect to my hardware, then I need to have the hardware to route their packages to the line. I doubt I can do that with some old linksys router running tomato. I'd need a whole lot of hardware to manage all that much traffic, and a lot of electricity spent to keep it running. At that point I better be charging, or I won't be able to afford it. At that point, I am a provider of a big fiber line, and all the people that don't have a long, valuable route coming out of their place are not.
Even if in a network, all members are theoretically peers, there'll be some that are far more important than others. All you have to do is peer into a few important ones. Not to mention that you can't really run a system for flagging nodes not to use without major risk of sabotage. If some people can gant up together and send a post to -1 because they do not like it, imagine the damage you could do by taking off a few key nodes on a grid.
Yeah, and extra 22k can get you a much nicer car. You can say that of pretty much every car on the road. For that, you can also trade in my son's bicycle for a new car.
There's a certain well known Linux distro that starts with a disabled su command, because root prompts are evil. You can, however, use sudo, to run one command at a time.
Like, for instance, sudo bash.
You can provide a single API to let your user do what he wants. it's called admin access.
You know genetically identical monocrops came way before GMOs right? This is especially easy for trees, where very old techniques let you make trees that are genetically identical to one you bred normally.
It's a bit harder with annual plants, but that's how any seed seller operates: Genetic modification is way too expensive and low yielding to be a key part of seed production. What the industry does today is helped by genetic sequencing, so that you can actually tell if a plant is as inbred as you want, but after you figure out your base inbreds, turning a few bags of seed into thousands that are practically identical is something that can be done very easily.
Now, if instead of clones, you are only worried about too big an extension of land using the same crop, you can mix those up regardless of whether the seeds come from your garden or from big agrobusiness.
Well, some do. The breeding used to make a tomato more productive and easier to bring to market from afar also made it suck. It's no different than dog breeds that have problems brought along with the traits that the breeder wanted.
There's plenty of effort today towards making tastier tomatoes. The best thing we can do is just refuse to buy shitty tomatoes.
More than reacting to C#, they seem to be reacting to other JVM languages that are just more attractive for any shop with experienced people.
The JVM is often used to write large amounts of business crud: Take a parameter, query a database, process a list. Make a service call, transform the result into a slightly different list, merge the results with a different service, then return. You could write that kind of computation in a functional way using Groovy or Scala in half the number of statements. And if there's one rule for programming productivity is that the less statements you need to write, the faster the job can be written, and the less bugs you get.
When the people using your virtual machine start migrating to other languages you do not control, you are at risk of having the people building the language just porting the language away to a different one, and poof, Java becomes obsolete. Therefore, Oracle just has to improve Java.
Every expression must be surrounded by three parenthesis, and followed by a semicolon. Also, when you reach 5 levels of depth, the last element of a list of parameters becomes the function, instead of the first.
An adaptation that tries to be close to a Heinlein book will flop: He makes about as much sense as Rand. The Starship Troopers movie is a hundred times more palatable than the book, mostly because it makes fun of Heinlein. The only way Stranger In a Strange Land can be filmed is as a porn caricature: Strippers in a Strange Land.
Modern JVM languages already do that for you: In Groovy and Scala object.property is really calling the object.getProperty() under the covers, which is autogenerated when you define the property. If you create a getter manually, the code will call it automatically without polluting it all with getters.
There's so much syntactic sugar in those languages to give anyone type 2 diabetes. Bad for our health, good for the codebase.
There's also the Evil Oracle Magic that lets you change query plans on the db directly, if Oracle itself is unable to come up with the best plan. In Postgres, the database is expected to figure everything out based on costs and statistics, which works well most of the time, but will kill you for specific kinds of queries. For instance, if you have 4 where clauses in different tables, postgres' static analysis will have no idea of whether each extra clause is any more or less selective than it'd be vs the entire dataset. If this is not the case, Postgres can make very wrong assumptions about how many rows you'll fetch, and thus come back with very silly query plans.
In Oracle, you have a chance of being saved by the fact that the optimizer learns from this kind of mistakes, or, in the worst case scenario, the DBA can just assign a very specific plan to your query on the fly, which leads to great performance gains without having to change code. Postgres keeps getting better in every release though, and Oracle's licenses are not getting any cheaper.
Ah, you didn't know? It was all an experiment. You were teaching Functional Programming savants, so of course they couldn't understand how a variable works!
There's this game called Team Fortress 2, that has sold more than the Half Life series. Also, I'd not say that they bought portal and left 4 dead. They mostly bought the talent. Yes, that's how valve works: A whole lot of senior hires, very few entry level hires. Experienced hires tend to bring their game ideas with them. Just look at the hiring of IceFrog: Here, see a tech demo of your warcraft mod, made by our own developers. How about you make the game stand alone, and stop having to muck around with the limitations of WC3, which was never built around your game in the first place?
While in this case the answer happens to be right, using W3 schools as a reference for anything is like getting all your international news from Hugo Chavez's ghost.
The people that made Skies of Arcadia are known for pushing their games on the least successful platform available. After betting on the gamecube, they released Valkyria Chronicles in the PS3 (Back when it was a billion dollars). Then, when it started becoming popular, they released the sequel on the PSP!
At this rate, I expect their next game will be released for the Ouya and the N-Gage.
I guess that they are not expensive for what you get in the same way that a fighter jet is not expensive for what you get. Most people should just not buy one at all.
It's amazing how many companies are there paying an arm and a leg for Oracle installs when the same work would work just fine in Postgres for $0.
The only real difficulties come from early windows 95 games, back when people wrote different drivers for different video cards. DosBox handles 99% of everything earlier than that, and most things after that just work.
And again, what is wrong with PC virtualization? Nobody gets mad if I run a virtual dos install. Ask nintendo how they feel about images of n64 or gamecube games running on emulators.
It makes everything very hard to read, and has burned thousands of newbies over the years. Heck, I've seen experienced Java developers screw up ExecutorService tasks plenty of times. This happens so much I've seen multiple annotation based systems trying to hide this from newbies in a few shops.
Assembly language makes it much easier to see what is going on than VMs that use garbage collection, but only of you know 20 times as much, and don't value being able to glance at code to see what it does.
I write 20 times more code for a JVM than for.NET, but on this, I'd definitely have to give the nod to C#. The language is just moving far faster than java is. The Java ecosystem's saving grace is the three languages that are actually doing something interesting: Scala, Groovy and Clojure. Every time I have to write 10 lines of code that can be done in a single line in C#, F# or Scala, it hurts a little bit more.
The problem is not with the person learning the new input UI, but with those that end up having to use your computer with zero training. I remember trying to help out a coworker that decided to buy a kinesis keyboard, and then set it up to dvorak: Not only I had to remember to switch layouts every single time I had to type something, and managed to miss 15% of my keystrokes due to its strange button placement, but then space, enter and backspace are all wrong, and right next to each other: It was just a horrible experience. I can only imagine what would happen with a chorded keyboard.
Depends on management: You can easily swamp the most productive developers just fine by just assigning them more tasks than to everyone else. Whether you have extra time for side projects or not comes down to how much sandbagging you do. I've seen extremely good developers that, when facing a project they were uninterested in, would hand completely spurious estimates that make sure they don't work for more than 4 hours a week on their official project, and spend the rest of the time on other things. I've also seen expectations go up in such a way as to make sure no good code could come out of a team. On either case, the end result comes down to politics. Some people have enough political capital to ignore their project. Other times, entire teams leave in a matter of 6 months.
Skill as a developer is only really relevant to a developer's ability to do unofficial work in the sense that in some places, skill quickly translates into political capital.
I keep hoping for an augmented reality navigation system. Not only would it make sure I don't have to listen to some automated voice that can't pronounce street names, but it'd make sure my son stops complaining about how he can't see any bears to our left or right, no matter what the navigation system says.
Now that I think of it, instead of an arrow, the system could display a very realistic grizzly bear in whichever lane I am supposed to use to get to the highway's exit.
Why wouldn't they? The cost of informing yourself is extremely high for the advantages that it provides if all you do is vote. The only way to get your effort's worth is to have quite a bit of money and find a topic where lobbying is easy. It's simple game theory.
If we want something else, we have to change incentives so that it's really in the voter's best interest to really be informed.
So how is Obama to blame for QE? That's done by the Fed. And both inflation and NGDP growth are still very low, despite QE. It's Bernanke that is to blame for ignoring macro 101 and his own research from before he became fed chairman.
Now, if you want to complain about economic policy that is all pro-banker, complain about interest on reserves. Now that's one that doesn't help the general public at all.
It's not hard to find people arguing the opposite. For instance, Scott Sumner, a rather conservative economies who rues the fact that modern Republican and Libertarian ideas about the economy don't make much sense, especially where it comes to monetary policy. In his view, what would be considered a libertarian, yet educated look at economics is just not represented in American politics at all. He claims that Obama has very little to do, one way or the other, with our economic conditions. Instead, it's mainly on the fed, who managed to deliver policies that allow for both employment an inflation way under target. Instead of what the Pauls say about too loose a monetary policy, or what Krugman said, about not having enough fiscal stimulus, the problem is that monetary policy has been too tight.
The NCAA does its best to make sure it enriches itself and the colleges that participate in their competitions without giving the athletes a dime. The kid's output is what brings in all that revenue, and it's not that they are not getting their fair share: They are not getting a share, at all.
If you look at their balance sheets, you'll find that some universities are not places of learning that happen to host sports: They are professional sports franchises that happen to provide some higher education for cover.
A programmer with no talent that is a hard worker will still have tons of trouble doing anything new. And if the work is not new, do I really want someone to write more boring code?
Now, there's such thing as a developer that spends the entire day goofing off, and those won't do any good. But after you pass a very basic level of dedication, it's the smart developers that have a clear advantage.
If there's anything that the question is missing, is social skills. A very good developer that sits by himself is valuable, but if he can help others be better, and can communicate with users and people in other disciplines properly, he'll be far more useful.
Except for something like that to work, you need connections, and said connections require laying large amounts of fiber. Who is going to build a line that crosses an ocean, or even one that links two major cities?
And there's also the equipment: Even if I have a fiber line heading to Chicago, and a bunch of local people that connect to my hardware, then I need to have the hardware to route their packages to the line. I doubt I can do that with some old linksys router running tomato. I'd need a whole lot of hardware to manage all that much traffic, and a lot of electricity spent to keep it running. At that point I better be charging, or I won't be able to afford it. At that point, I am a provider of a big fiber line, and all the people that don't have a long, valuable route coming out of their place are not.
Even if in a network, all members are theoretically peers, there'll be some that are far more important than others. All you have to do is peer into a few important ones.
Not to mention that you can't really run a system for flagging nodes not to use without major risk of sabotage. If some people can gant up together and send a post to -1 because they do not like it, imagine the damage you could do by taking off a few key nodes on a grid.
Yeah, and extra 22k can get you a much nicer car. You can say that of pretty much every car on the road. For that, you can also trade in my son's bicycle for a new car.
There's a certain well known Linux distro that starts with a disabled su command, because root prompts are evil. You can, however, use sudo, to run one command at a time.
Like, for instance, sudo bash.
You can provide a single API to let your user do what he wants. it's called admin access.
You know genetically identical monocrops came way before GMOs right? This is especially easy for trees, where very old techniques let you make trees that are genetically identical to one you bred normally.
It's a bit harder with annual plants, but that's how any seed seller operates: Genetic modification is way too expensive and low yielding to be a key part of seed production. What the industry does today is helped by genetic sequencing, so that you can actually tell if a plant is as inbred as you want, but after you figure out your base inbreds, turning a few bags of seed into thousands that are practically identical is something that can be done very easily.
Now, if instead of clones, you are only worried about too big an extension of land using the same crop, you can mix those up regardless of whether the seeds come from your garden or from big agrobusiness.
Well, some do. The breeding used to make a tomato more productive and easier to bring to market from afar also made it suck. It's no different than dog breeds that have problems brought along with the traits that the breeder wanted.
There's plenty of effort today towards making tastier tomatoes. The best thing we can do is just refuse to buy shitty tomatoes.
More than reacting to C#, they seem to be reacting to other JVM languages that are just more attractive for any shop with experienced people.
The JVM is often used to write large amounts of business crud: Take a parameter, query a database, process a list. Make a service call, transform the result into a slightly different list, merge the results with a different service, then return. You could write that kind of computation in a functional way using Groovy or Scala in half the number of statements. And if there's one rule for programming productivity is that the less statements you need to write, the faster the job can be written, and the less bugs you get.
When the people using your virtual machine start migrating to other languages you do not control, you are at risk of having the people building the language just porting the language away to a different one, and poof, Java becomes obsolete. Therefore, Oracle just has to improve Java.
Every expression must be surrounded by three parenthesis, and followed by a semicolon. Also, when you reach 5 levels of depth, the last element of a list of parameters becomes the function, instead of the first.
An adaptation that tries to be close to a Heinlein book will flop: He makes about as much sense as Rand. The Starship Troopers movie is a hundred times more palatable than the book, mostly because it makes fun of Heinlein. The only way Stranger In a Strange Land can be filmed is as a porn caricature: Strippers in a Strange Land.
And Ringworld? Nothing happens in Ringworld.
Modern JVM languages already do that for you: In Groovy and Scala object.property is really calling the object.getProperty() under the covers, which is autogenerated when you define the property. If you create a getter manually, the code will call it automatically without polluting it all with getters.
There's so much syntactic sugar in those languages to give anyone type 2 diabetes. Bad for our health, good for the codebase.
There's also the Evil Oracle Magic that lets you change query plans on the db directly, if Oracle itself is unable to come up with the best plan. In Postgres, the database is expected to figure everything out based on costs and statistics, which works well most of the time, but will kill you for specific kinds of queries. For instance, if you have 4 where clauses in different tables, postgres' static analysis will have no idea of whether each extra clause is any more or less selective than it'd be vs the entire dataset. If this is not the case, Postgres can make very wrong assumptions about how many rows you'll fetch, and thus come back with very silly query plans.
In Oracle, you have a chance of being saved by the fact that the optimizer learns from this kind of mistakes, or, in the worst case scenario, the DBA can just assign a very specific plan to your query on the fly, which leads to great performance gains without having to change code. Postgres keeps getting better in every release though, and Oracle's licenses are not getting any cheaper.
Ah, you didn't know? It was all an experiment. You were teaching Functional Programming savants, so of course they couldn't understand how a variable works!
There's this game called Team Fortress 2, that has sold more than the Half Life series.
Also, I'd not say that they bought portal and left 4 dead. They mostly bought the talent. Yes, that's how valve works: A whole lot of senior hires, very few entry level hires. Experienced hires tend to bring their game ideas with them. Just look at the hiring of IceFrog: Here, see a tech demo of your warcraft mod, made by our own developers. How about you make the game stand alone, and stop having to muck around with the limitations of WC3, which was never built around your game in the first place?
While in this case the answer happens to be right, using W3 schools as a reference for anything is like getting all your international news from Hugo Chavez's ghost.
The people that made Skies of Arcadia are known for pushing their games on the least successful platform available. After betting on the gamecube, they released Valkyria Chronicles in the PS3 (Back when it was a billion dollars). Then, when it started becoming popular, they released the sequel on the PSP!
At this rate, I expect their next game will be released for the Ouya and the N-Gage.
I guess that they are not expensive for what you get in the same way that a fighter jet is not expensive for what you get. Most people should just not buy one at all.
It's amazing how many companies are there paying an arm and a leg for Oracle installs when the same work would work just fine in Postgres for $0.
The only real difficulties come from early windows 95 games, back when people wrote different drivers for different video cards. DosBox handles 99% of everything earlier than that, and most things after that just work.
And again, what is wrong with PC virtualization? Nobody gets mad if I run a virtual dos install. Ask nintendo how they feel about images of n64 or gamecube games running on emulators.
It makes everything very hard to read, and has burned thousands of newbies over the years. Heck, I've seen experienced Java developers screw up ExecutorService tasks plenty of times. This happens so much I've seen multiple annotation based systems trying to hide this from newbies in a few shops.
Assembly language makes it much easier to see what is going on than VMs that use garbage collection, but only of you know 20 times as much, and don't value being able to glance at code to see what it does.
I write 20 times more code for a JVM than for .NET, but on this, I'd definitely have to give the nod to C#. The language is just moving far faster than java is. The Java ecosystem's saving grace is the three languages that are actually doing something interesting: Scala, Groovy and Clojure. Every time I have to write 10 lines of code that can be done in a single line in C#, F# or Scala, it hurts a little bit more.