Good idea.
Sadly, death and taxes are the only things you cannot get out of. Taxes, though, wasn't always that way. It used to be that the Constitution protected against income taxes at the Federal level, since they were direct taxes then. But, with the 17th amendment, they made income taxes indirect (therefore, allowable for the federal goverment).
Hence, we cannot get out of taxes, just like we cannot get out of death.
-Shuad
A colleague and I were talking about this very topic just the other day. I was pointing out some of the very same points that I have read in this thread. It seems clear to me that if people are given the option of using open source (free) software that is comparable to non-free software they stand a better chance of adopting it. Adoption is the key to gaining market share for the still fledgling open source movement. When was the last time your mom or grandmother used an open source program? (and for all your freaks out there who have mom on her own linux box because you still live at home - you don't count.)
Further, some of us are tied to using non-free operating systems. Show us what your free stuff can do, even though we are trapped here.
--Shuad
Clearly, there are a great many factors which could go into this decision, and really should. If we are looking purely at.NET (specifically C# and VB.NET) versus Java (J2EE), I think there are some things that we should consider.
First, what data base connectiveity is available with each of these platforms? Both.NET and Java have a myriad of tools for connecting with whatever data base flavor your project requires. (I know all the.NET haters are going to come out and say that Java is easier to connect to things, but I found that you can connect to almost anything from within.NET, with relative ease.) I see no real advantage for either choice here.
Second, what is the availability of prewritten chunks of code that you could use (even buy) to make your application development life cycle shorter?.NET and Java appear to have the same amount of commercially available controls and back end components. Again, there doesn't appear to be a winner here, with the possible exception of Java having more free components (due to the open source movement) because open sourcers hating M$. On the other hand M$ has written and tested several very helpful pieces of functionality which can be plugged into your.NET application (called Code Blocks).
Third, how hard is it to support and update your application (assuming it's an application that's not web based)? In the case of supporting, I think we also have a tie. In either case, you are going to have to see the problem, you are going to have to work on it. There is no magic bullet that let's you never have a problem in software (I don't care what language you write it in, nor what operating system you write it for). On the issue of updating your software, M$ has supplied a very powerful mechanism for programming your.NET software to update itself when it finds that something is out of date (you have it check the version number of the assembly in question, even done remotely and then download your updated assembly). Further, this functionality is encapsulated in a Code Block which is virtually "plug and play". Now, I admit my ignorance, but I don't know if Java has something similar. Please inform me so that we can have a complete disclosure before making a recommendation.
Fourth, how hard is it to secure? According to other posts, there have been some holes found in the sand box that sits around a Java application. I am sure that they will be found in the.NET CLR as well. I doubt that anything is perfectly secure. In terms of.NET, the security model is tied to assemblies, and each assembly you can lock down pretty tight in terms of who uses it, and how it is used. I would even say that it makes it a hassle for the programmer, since he has to go in and set up the permissions. I am not certain if Java has something similar to this, that is as powerful or configurable. Please let me know.
Fifth, where is this application going to be used? It seems, from the other posts that this application is most likely going to be run on windows machine, at least primarily. This gives.NET a potential advantage, since it would be running in its native architecture. Java used to be very slow on windows, I am not certain that is the case anymore. I know that.NET runs smoothly on windows.
Sixth, what is the future going to be like? All things being equal, it's clear that the future belongs to Longhorn and M$, at least in the case of large scale systems that require people with no computing ability to use them. I think this is something that/. Often overlooks, your average user cannot use anything more complicated than a microwave (and when I say that I mean, put something in, type the time, take something out, repeat ad naseum). M$ clearly has the majority when it comes to catering to less experienced users. Therefore, choosing.NET ov
Good idea. Sadly, death and taxes are the only things you cannot get out of. Taxes, though, wasn't always that way. It used to be that the Constitution protected against income taxes at the Federal level, since they were direct taxes then. But, with the 17th amendment, they made income taxes indirect (therefore, allowable for the federal goverment). Hence, we cannot get out of taxes, just like we cannot get out of death. -Shuad
A colleague and I were talking about this very topic just the other day. I was pointing out some of the very same points that I have read in this thread. It seems clear to me that if people are given the option of using open source (free) software that is comparable to non-free software they stand a better chance of adopting it. Adoption is the key to gaining market share for the still fledgling open source movement. When was the last time your mom or grandmother used an open source program? (and for all your freaks out there who have mom on her own linux box because you still live at home - you don't count.) Further, some of us are tied to using non-free operating systems. Show us what your free stuff can do, even though we are trapped here. --Shuad
Good job on the Eminem quote in your sig.
Clearly, there are a great many factors which could go into this decision, and really should. If we are looking purely at .NET (specifically C# and VB.NET) versus Java (J2EE), I think there are some things that we should consider.
First, what data base connectiveity is available with each of these platforms? Both .NET and Java have a myriad of tools for connecting with whatever data base flavor your project requires. (I know all the .NET haters are going to come out and say that Java is easier to connect to things, but I found that you can connect to almost anything from within .NET, with relative ease.) I see no real advantage for either choice here.
Second, what is the availability of prewritten chunks of code that you could use (even buy) to make your application development life cycle shorter? .NET and Java appear to have the same amount of commercially available controls and back end components. Again, there doesn't appear to be a winner here, with the possible exception of Java having more free components (due to the open source movement) because open sourcers hating M$. On the other hand M$ has written and tested several very helpful pieces of functionality which can be plugged into your .NET application (called Code Blocks).
Third, how hard is it to support and update your application (assuming it's an application that's not web based)? In the case of supporting, I think we also have a tie. In either case, you are going to have to see the problem, you are going to have to work on it. There is no magic bullet that let's you never have a problem in software (I don't care what language you write it in, nor what operating system you write it for). On the issue of updating your software, M$ has supplied a very powerful mechanism for programming your .NET software to update itself when it finds that something is out of date (you have it check the version number of the assembly in question, even done remotely and then download your updated assembly). Further, this functionality is encapsulated in a Code Block which is virtually "plug and play". Now, I admit my ignorance, but I don't know if Java has something similar. Please inform me so that we can have a complete disclosure before making a recommendation.
Fourth, how hard is it to secure? According to other posts, there have been some holes found in the sand box that sits around a Java application. I am sure that they will be found in the .NET CLR as well. I doubt that anything is perfectly secure. In terms of .NET, the security model is tied to assemblies, and each assembly you can lock down pretty tight in terms of who uses it, and how it is used. I would even say that it makes it a hassle for the programmer, since he has to go in and set up the permissions. I am not certain if Java has something similar to this, that is as powerful or configurable. Please let me know.
Fifth, where is this application going to be used? It seems, from the other posts that this application is most likely going to be run on windows machine, at least primarily. This gives .NET a potential advantage, since it would be running in its native architecture. Java used to be very slow on windows, I am not certain that is the case anymore. I know that .NET runs smoothly on windows.
Sixth, what is the future going to be like? All things being equal, it's clear that the future belongs to Longhorn and M$, at least in the case of large scale systems that require people with no computing ability to use them. I think this is something that /. Often overlooks, your average user cannot use anything more complicated than a microwave (and when I say that I mean, put something in, type the time, take something out, repeat ad naseum). M$ clearly has the majority when it comes to catering to less experienced users. Therefore, choosing .NET ov