Another Day, Another Invention
Monday, December 5, 2005 10:58:48 PM
Warning: This is mostly a rant for reasons that are obvious if you read the first few paragraphs.
Whether I hear 45nm or 65nm, it doesn't mean much to me. I'm not that much of a hardware fanatic.
On a completely unrelated topic, I didn't get this job I had applied for. I'm picky as to where I apply and I usually get an interview, so I don't apply to too many places. At least they called back this time and didn't send a PFO months after. Is this a new trend lately that they make candidates take tests? Anyhow, this test was so mindboggingly simple that I finished it early even though they said no one has ever finished it before. This was curious to me. But as with Murphy's law, I forgot one question. So I rush back and finish it as best I could with only minutes left. Still, much too easy of a test. But they said I scored low. Strange that I recently took a test with another company and I scored in the top 10 percentile in the world with several hundred thousand programmers having taking it. And the test I took with this company just now was brain dead easy. Which test should I trust? The one given by an independant company not related to the people hiring where they have samples worldwide to make an adequate comparison, or the test given and scored by the hiring company? Oh well. I don't know what the motivations are, but I would have appreciated a little honesty. Too much to ask? Perhaps.
I forget how the saying goes exactly, but someone who cheats you out of something or is deceitful the first time you encounter them is not someone to hold a grudge against. Instead, you should thank that person because you now know their true nature right from the beginning even if you did lose some wealth or pride. Someone who is truly despicable is someone who earns your trust and when you need them the most, turns their back on you.
So as the saying goes, at least I found out right away.
This got me to thinking as to why languages like Java may be so popular. Would you hire someone that knows more than you? I'm not saying I knew more than the person who wrote the test. I am saying that I know more than what's on the test. So is this another area where new technologies get a back seat for fear of losing your job. If you can't keep up, you get left behind. But if you have languages and tools where you can't really get that advanced, there would be no fear of this.
In the past, they would think that tools were created complicated intentionally. The reasoning went that if you understood these tools, you were pretty much assured of your job. The truth is that programmers at the time didn't know these were difficult. Nowadays, you see the opposite. They dumb down the tools so that no one can outshine you and so you get some very awful programmers in the field if you can call them programmers at all. I hear you can program in html nowadays. I've yet to see it, but these people are as adament as Java programmers. I'm not blaming the beginners. It's not their fault. It's companies like Sun who want the most people using their tools as possible. If they only get the best programmers to use their tools, well, he's already working for Sun. There wouldn't be much use for these tools. This last part isn't a jab on Java. It's actually true. No self-respecting advanced programmer enjoys Java, except for one person. And he works at Sun developing the language. The other programmers at Sun do not like Java and say it's inadequate for any of their products. Go figure. You wonder where the motivation comes from, eh?
As with this new technology that Intel has coming out. An interesting comment on OSNews by a member was that instead of using multiple cooler CPU's, they cram all the transistors ever closer and create super hot processors that require huge cooling apparatus. So this poses a question. Why does Intel do this knowing that they've been pushing multi core and multi-processor computing in the past? I think they've learned from the 286 and Itanium that new technology won't be used until software catches up and tools get ported or replaced.
Can we say that they are still coming out with single chip solutions because the software world hasn't caught up yet? Is this a conscious decision? I don't know. What I do know is that everyone protects their interests in the face of company or personal gain. The reverse is also true, they will protect their interests in the face of fear of losing what they have.
Is this a mentality that can win out? Is following the herd viable? Is keeping out more educated people and technologies the way to get ahead? I'm talking about what I hear from older people who know their craft very well. Is it smart to kick these people out simply because they are older?
In the computing world, where you'd expect things to move at a rapid pace, there are conscious efforts to uphold the status quo. They say they want to be cutting edge. But we all know this isn't true, otherwise they'd have to find someone else to replace their very own job.
Again, about using multiple CPU's instead of one heat dissipating oven... why is this not done? Obviously, the current trend in programming doesn't allow this. Java is not adequate. C++ has no builtin construct for this. In fact, I don't think there are many languages with this feature builtin. Parrallel processing also requires a different mentality. Anyone that's ever programmed software to run on multiple CPU's knows that current software tools are not adequate or if they are, then they are locked into one specific technology. But more than that, current software would suffer.
I think in the future, CPU speed won't diminish, but they'll start to level off. Not so much because Moore's law will end, but because they don't want current software to suffer while adding multiple cores and processors. So the current software can run at the speed they've always run at, but new software can take advantage of multiple cores. While Moore's law will hold, it won't hold for individual applications... unless you go multi-processor.
When multi-processors or multi-cores take hold, what language will be king? It won't be C++ or Java although they'll scramble to try and make it work. There's plenty of research in these fields. However, research departments are more interested in implementation of algorithms than in the tools. They would love it if the tools worked great. That's not their area of research though.
It's not just multi-processors. It's any new technology. What if we discovered a new kind of technology (akin to the discovery of the transistor) where computing would be done in a completely new fashion. Current tools could not possibly evolve at a quick enough pace and some tools would simply be incompatible. Are we to continue building custom tools every time? Are we to continue re-inventing the wheel of tools?
Next time you use your favorite programming tool, ask yourself this: Is the computing world a trusted friend and is it doing and releasing things like your favorite tool to advance the computing world? Or instead, is the computing world actually taking advantage of you? Who is really benefiting?
I'm just gonna quote myself because I like this quote too much:
Technology always comes in the form of hardware. So how can we become more technologically advanced if we are locked away from it?


Vorlath # Tuesday, December 6, 2005 2:00:10 AM