Jim Hubbard
March 12th, 2001, 11:44 AM
Before you go off coding happily into c# or "vb".net, I'd like you to do me a favor.....give me all of your source code.
Yes....ALL of it. You know that program that you've been selling for several hundred dollars per license and that free DLL you wrote for the recognition and that new code that put you in the drivers seat with that large corporation that wants to own the rights to your new faster, better widget!
Am I crazy? Not at all. For that's precisely what you'll be doing if you depend solely on c# or "vb".net to do your future coding.
Let me explain (this'll only take a second)..... With this new .net stuph, your code is "compiled" into an IL file, that is interpreted and compiled into machine language "just in time" to run. Right?
It is the nature of this scheme that outside people and companies be able to make their own programming languages sit neatly atop .net (this is really just to poke Sun in the eye over the whole JAVA thing).
In order to do so, you have to know how to write the IL code so that it is interpreted correctly by the jit compilers like the Windows CLR. Knowing this, it is a simple thing to DECOMPILE any IL so that you have the writer's source code.
But, wait! You don't need to go to all the trouble of studying how ILs are built and compiled! Microsoft has given you a decompiler! It's named ILDASM.EXE and is free with the .net SDK.
Just run any IL through ILDASM.EXE and you get to view the techniques used by the author that allow his cool widget to wiggle the way it does.
Where does this leave third party software writers? Well, they can still write DLLs in C++ or VB6 and run them as "unmanaged code" in a .net app. But, they will suffer a performance hit for this - you see, .net needs a wrapper for COM components.
You remember COM....the thing that MS said would save us all from rewriting our apps and widgets over and over? Well, .net is turning it's back on the COM specification, as is Microsoft.
And, if third party developers are discouraged from writing 3rd party controls because of this, what will make .net as widely used as VB6? Go ahead and say it...we all know it...absolutely nothing.
See, it was the 3rd party vendors, code reuse and common, every day programmers, wanting recognition of their coding skills, that developed the components that made VB6 the most successful programming language ever.
But, you may not have written many (or any) 3rd party software. Maybe you're just a programmer who does a great job at programming, and enjoys writing code. Well, the bad news doesn't stop with the 3rd party guys....
You see, by making all ILs "open source" (as the case presently is with .net - remember the decompiler ILDASM.EXE) your salaries will begin to decrease. Why? Simple. Why pay you for your skill when we can get anyone to decompile your code and copy your skills for less?
With ,net, once we have your program (your IL) we have your code.
When everyone has access to your code (read "brain"), just as with all commodities, it's worth less.
Think I'm over-reacting? Go ask Microsoft about keeping your code safe from prying eyes. They'll tell you just what they told me. "We're aware of these concerns, and we're looking into what can be done."
Problem is....if you make the IL where it could be relatively safe from prying eyes it is also safe from the CLR. Remember the CLR reads an "open" standard IL. So, nothing can be done....Microsoft just doesn't want to say so.
And, no, I'm not against "open source". It's neat. There's just no money in it. See for yourself. How many roaring software success stories has Linux spawned? Can't think of any? Me either.
.net = open source
(c# + ILDASM.EXE = source code)
open source = less money
(who buys what they can get free?)
less money = fewer 3rd party controls
(smart people go where the money is)
fewer 3rd party controls = lower MS market share
(you now have to be proficient in more languages to make the same pay)
lower MS market share = your skills are less demand
(leads to further erosion of your earning potential)
.net or .NOT?
Jim Hubbard
Yes....ALL of it. You know that program that you've been selling for several hundred dollars per license and that free DLL you wrote for the recognition and that new code that put you in the drivers seat with that large corporation that wants to own the rights to your new faster, better widget!
Am I crazy? Not at all. For that's precisely what you'll be doing if you depend solely on c# or "vb".net to do your future coding.
Let me explain (this'll only take a second)..... With this new .net stuph, your code is "compiled" into an IL file, that is interpreted and compiled into machine language "just in time" to run. Right?
It is the nature of this scheme that outside people and companies be able to make their own programming languages sit neatly atop .net (this is really just to poke Sun in the eye over the whole JAVA thing).
In order to do so, you have to know how to write the IL code so that it is interpreted correctly by the jit compilers like the Windows CLR. Knowing this, it is a simple thing to DECOMPILE any IL so that you have the writer's source code.
But, wait! You don't need to go to all the trouble of studying how ILs are built and compiled! Microsoft has given you a decompiler! It's named ILDASM.EXE and is free with the .net SDK.
Just run any IL through ILDASM.EXE and you get to view the techniques used by the author that allow his cool widget to wiggle the way it does.
Where does this leave third party software writers? Well, they can still write DLLs in C++ or VB6 and run them as "unmanaged code" in a .net app. But, they will suffer a performance hit for this - you see, .net needs a wrapper for COM components.
You remember COM....the thing that MS said would save us all from rewriting our apps and widgets over and over? Well, .net is turning it's back on the COM specification, as is Microsoft.
And, if third party developers are discouraged from writing 3rd party controls because of this, what will make .net as widely used as VB6? Go ahead and say it...we all know it...absolutely nothing.
See, it was the 3rd party vendors, code reuse and common, every day programmers, wanting recognition of their coding skills, that developed the components that made VB6 the most successful programming language ever.
But, you may not have written many (or any) 3rd party software. Maybe you're just a programmer who does a great job at programming, and enjoys writing code. Well, the bad news doesn't stop with the 3rd party guys....
You see, by making all ILs "open source" (as the case presently is with .net - remember the decompiler ILDASM.EXE) your salaries will begin to decrease. Why? Simple. Why pay you for your skill when we can get anyone to decompile your code and copy your skills for less?
With ,net, once we have your program (your IL) we have your code.
When everyone has access to your code (read "brain"), just as with all commodities, it's worth less.
Think I'm over-reacting? Go ask Microsoft about keeping your code safe from prying eyes. They'll tell you just what they told me. "We're aware of these concerns, and we're looking into what can be done."
Problem is....if you make the IL where it could be relatively safe from prying eyes it is also safe from the CLR. Remember the CLR reads an "open" standard IL. So, nothing can be done....Microsoft just doesn't want to say so.
And, no, I'm not against "open source". It's neat. There's just no money in it. See for yourself. How many roaring software success stories has Linux spawned? Can't think of any? Me either.
.net = open source
(c# + ILDASM.EXE = source code)
open source = less money
(who buys what they can get free?)
less money = fewer 3rd party controls
(smart people go where the money is)
fewer 3rd party controls = lower MS market share
(you now have to be proficient in more languages to make the same pay)
lower MS market share = your skills are less demand
(leads to further erosion of your earning potential)
.net or .NOT?
Jim Hubbard