I have extensive experience designing and developing applications using C++. I know Java, but I have not make any use of it in terms of real-world solution.
I often see job descriptions that ask for Java and its various tools. Many of these descriptions emphasize client/server application. I know C++ and its capability for client/server applications.
- Is Java a better solution for client/server solutions? If yes, what makes Java a better solution for client/server solution?
Based on my experience, Java does not give developer the kind of control that C++ provides. Why are companies going wild over it?
Thanks,
Kuphryn
bob44
February 27th, 2004, 04:19 PM
I have worked with both C++ and Java. One big reason that companies seem to go wild over it is that, once you have compiled a Java application into Java Byte Code, it will run on any machine that has the JVM installed without having to be re-compiled. It is also easier to make the user interface appear identical on different platforms.
ferox
March 11th, 2004, 03:54 AM
Java has two advantages over C++.
1. Platform Independecy
2. Rapid Development
Java has 5x10e12 disadvantages over C++.
Why you go for Java is a real question to be asked. :)
You go for +2 -5x10e12
Andreas Masur
March 11th, 2004, 04:12 AM
Originally posted by ferox
Java has two advantages over C++.
1. Platform Independecy
2. Rapid Development
Well..these became less important since Microsoft has introduced its .NET framework...
Originally posted by ferox
Java has 5x10e12 disadvantages over C++.
Why you go for Java is a real question to be asked. :)
You go for +2 -5x10e12
Well...you should always choose the language based on your actual project requirements...it can be Java, C++, Visual Basic etc. :cool:
Andy Tacker
March 11th, 2004, 04:25 AM
Originally posted by Andreas Masur
Well..these became less important since Microsoft has introduced its .NET framework...I wonder... you can't even install your .NET app on UNIX/LINUX, without the .NET Framework.
ferox
March 11th, 2004, 06:05 AM
I wonder... you can't even install your .NET app on UNIX/LINUX, without the .NET Framework.
Yes and we wonder whether the .NET Framework would ever be available for UNIX based operating systems. Microsoft won't do it. I bet.
Andreas Masur
March 11th, 2004, 06:53 AM
Originally posted by Andy Tacker
I wonder... you can't even install your .NET app on UNIX/LINUX, without the .NET Framework.
Well...yes you can since the Mono (http://www.go-mono.com) project... :cool:
Andreas Masur
March 11th, 2004, 06:54 AM
Originally posted by ferox
Yes and we wonder whether the .NET Framework would ever be available for UNIX based operating systems. Microsoft won't do it. I bet.
See my previous reply... :cool:
ferox
March 12th, 2004, 01:31 AM
Well...yes you can since the Mono project...
Thanks for the information. :) I'll follow the link to get more information about it.
Andreas Masur
March 12th, 2004, 03:59 AM
Originally posted by ferox
Thanks for the information. :) I'll follow the link to get more information about it.
You are welcome...I did not check the status for a while, however, some months ago, there were still some (many) things missing...
Sam Hobbs
March 12th, 2004, 04:43 PM
Originally posted by Andreas Masur
Well..these became less important since Microsoft has introduced its .NET framework...So is VC and VB in .Net platform-independent or is it only the C# language that is?
Originally posted by Andreas Masur
Well...you should always choose the language based on your actual project requirements...it can be Java, C++, Visual Basic etc. :cool: Many things can be done in many different languages and the best choice depends on what the organization has chosen. Yes, I know that seems to contradict what has been said in the past about which language is best, but there are no easy answers to the question of what is best eventhough people asking such questions expect easy answers.
Originally posted by Andy Tacker
I wonder... you can't even install your .NET app on UNIX/LINUX, without the .NET Framework. You can't even run a Java program on UNIX/LINUX without installing the Java VM and such.
Sam Hobbs
March 12th, 2004, 04:54 PM
Originally posted by ferox
Yes and we wonder whether the .NET Framework would ever be available for UNIX based operating systems. Microsoft won't do it. I bet. I don't know much about .Net and C# but I thought that C# was being standardized and the language was going to be non-proprietary whereas Java is proprietary.
Something else that I think has not been mentioned is that there is a difference between a language and the environment. Also, in the case of Java, there is the virtual machine. Is the .Net Framework only the equivalent of the Java Virtual Machine? Or does the .Net Framework not include that? The Java Virtual Machine is definitely proprietary, correct? Whereas it is my understanding that the C# execution environment is not. Am I also correct that the Java environment is more than just the language and the virtual machine?
bob44
March 12th, 2004, 06:51 PM
I suppose you could say that Java is proprietary, insofar as Sun Microsystems retains ownership of it. Sun keeps the ownership so that no one else can create a slightly different version with "improvements" that cause incompatibilities.
In just about every other sense, I would not call it proprietary. Sun does accept recommendations for improvements, and they implement the improvements where they believe it makes sense.
The Java Virtual Machine is FREE. Anyone can download it and install it on their machine.
The Java 2 Standard Edition (J2SE) software development kit is also free. You can go to java.sun.com and download the J2SE without cost. In that respect, it is very easy for someone who wants to learn java to do so without having to plunk down a lot of cash.
If you are learning Java, you're better off staying away from the integrated development environments. They just add unnecessary complexity, and get in the way of your gaining an understanding of how java works. Once you learn Java, then you can go ahead an buy a development environment ( Sun sells one, Borland sells one, and there are others). The development environments help a programmer to be more productive, but they just get in your way and confuse things when you are learning the language.
For learning, you can use a simple text editor (even notepad will do). I like Edit Plus (www.editplus.com). You can download it for a 30 day trial. If you like it, it only costs about $30.
Sun's website also has quite a bit of documentation and tutorials on it. If you're like me, though, you'll probably want a book to help you learn. There are several good ones available. One that I happen to like is Ivor Horton's Beginning Java 2.
With the J2SDK, a simple text editor, and perhaps a book, you can be off and running learning java at practically no cost!
I used to program in C, then in C++. Now, however, I have really come to like Java. That's just my personal opinion.
I have not tried C#, is there a free version of C# available?
Sam Hobbs
March 12th, 2004, 07:51 PM
Originally posted by bob44
I suppose you could say that Java is proprietary, insofar as Sun Microsystems retains ownership of it.Is it not true that Microsoft is legally prevented from providing us with their version of a Java Virtual Machine? Is it not true that Microsoft is not selling Windows 95 anymore because it includes their version of a Java Vitual Machine?
Originally posted by bob44
Sun keeps the ownership so that no one else can create a slightly different version with "improvements" that cause incompatibilities.Yeah, I am not surprised they would say that. Apple has used the same excuse for use of proprietary hardware. Note however that the Unix system would not be anywhere nearly as successful if it was entirely developed by Bell Labs. All of Unix except the kernel was developed outside of Bell Labs. Unix probably would have only been used by Bell Labs if it was not for the tremendous development that occured outside of Bell Labs.
Is Java standardized by an international standardizing organization such a ECMA? ECMA I think is the current organization responsible for the C/C++ language. Microsoft has applied for standardization of C# by ECMA and as far as I know it might now be a standard. However as far as I know, Java is not standardized. If Sun is sincere about Java being designed as well as possible, then they would get it standardized using an organization that explicitly involves experts from outside of Sun.
There are things I don't like about the way that C++ has been standardized, so I sure don't say that Java must be standardized by ECMA.
Originally posted by bob44
In just about every other sense, I would not call it proprietary. Sun does accept recommendations for improvements, and they implement the improvements where they believe it makes sense.However they control it, and will take legal action if anyone else tries to improve it.
Originally posted by bob44
The Java 2 Standard Edition (J2SE) software development kit is also free. You can go to java.sun.com and download the J2SE without cost. In that respect, it is very easy for someone who wants to learn java to do so without having to plunk down a lot of cash.I tried to install the Java development environment back in the days of Windows 3.1. I sure tried to get it to work. I got the impression that Sun did nto care about Windows. Since then I have not spent much time trying to get it to work but I get confused just trying to determine what I need to install.
khp
March 12th, 2004, 10:42 PM
Originally posted by Sam Hobbs
Is it not true that Microsoft is legally prevented from providing us with their version of a Java Virtual Machine?
Oh god no, Microsoft is quite welcome to provide their own implementation of java, as long as it complies with Suns java specifications. The problem with Microsofts socalled 'java' implementation was that it did blatantly disrespected Suns Java specifications.
Originally posted by Sam Hobbs
Is it not true that Microsoft is not selling Windows 95 anymore because it includes their version of a Java Vitual Machine?
Well I would think the primary reason for MS in not selling Windows95, is that it's way way outdated, can you give me any examples 9 year old products that microsoft is still selling ?. In any event it could not possible be that difficult to remove java from Windows95.
Originally posted by Sam Hobbs
Yeah, I am not surprised they would say that. Apple has used the same excuse for use of proprietary hardware.
Ehh, can you me an example of a platform that doesn't rely on proprietary hardware ?
Originally posted by Sam Hobbs
Is Java standardized by an international standardizing organization such a ECMA?
No.
Originally posted by Sam Hobbs
Microsoft has applied for standardization of C# by ECMA and as far as I know it might now be a standard. However as far as I know, Java is not standardized.
If Sun is sincere about Java being designed as well as possible, then they would get it standardized using an organization that explicitly involves experts from outside of Sun.
Does MS applying for ECMA standardization, mean that anyone outside MS will get any kind of control over C# ?
Originally posted by Sam Hobbs
I tried to install the Java development environment back in the days of Windows 3.1. I sure tried to get it to work. I got the impression that Sun did nto care about Windows. Since then I have not spent much time trying to get it to work but I get confused just trying to determine what I need to install.
You need the Java JRE, or SDK (if you want to write your own apps) both comes as single installable exe files, it doesn't get any simpler than that.
Sam Hobbs
March 12th, 2004, 11:21 PM
Originally posted by khp
Oh god no, Microsoft is quite welcome to provide their own implementation of java, as long as it complies with Suns java specifications. The problem with Microsofts socalled 'java' implementation was that it did blatantly disrespected Suns Java specifications.I think you are misinformed but I am not sure so I will leave this for others to answer.
Originally posted by khp
Well I would think the primary reason for MS in not selling Windows95, is that it's way way outdated, can you give me any examples 9 year old products that microsoft is still selling ?. In any event it could not possible be that difficult to remove java from Windows95.I agree that it should be easy to remove the Java from Windows 95 if it was important enough but I am nearly certain the reason given for discontinue sales of Windows 95 was a court settlement preventing Microsoft from providing their own implementation of Java.
Originally posted by khp
Ehh, can you me an example of a platform that doesn't rely on proprietary hardware ?
Absolutely, definitely I can; the IBM PC. There was very little about the IBM PC and DOS that was proprietary to IBM. IBM intentionally contracted with Microsoft to develop DOS so that the IBM PC operating system would not be proprietary to IBM. The only part of the IBM PC that was proprietary was the BIOS; all harware was either commonly available already from other vendors and/or other vendors were free to make it.
Originally posted by khp Does MS applying for ECMA standardization, mean that anyone outside MS will get any kind of control over C# ?Of course; as much as anyone can get control of C/C++ and many other languages.
khp
March 12th, 2004, 11:58 PM
Originally posted by Sam Hobbs
Absolutely, definitely I can; the IBM PC...
The PC is proprietary just like any other platform, the x86 instruction set for starters, is owned by Intel, noone except Intel, AMD, IBM, and one or two others can use it.
khp
March 13th, 2004, 01:19 AM
Originally posted by Sam Hobbs
I think you are misinformed but I am not sure so I will leave this for others to answer.
Ahh, you are right (at least im part :)).
MS had a licence to produce a Java compliant virtual machine, but that licence was terminated in 2001, when Microsoft refused to just make it java compliant. Microsoft is currently under a temporary licence to distribute their own java compliant vm. I was under the impression that MS would be able to continue this indefinetly but apparently it will end in 2008.
cf here
http://java.sun.com/lawsuit/
Andreas Masur
March 13th, 2004, 05:17 AM
Originally posted by Sam Hobbs
So is VC and VB in .Net platform-independent or is it only the C# language that is?
Well...it is only the C# language (and the CLI) that got standardized by ISO. That basically means that other compiler vendors can provide such an implementation on other platforms.
The Mono project ported the .NET framework as well as a C# compiler to the Linux and Macintosh world, thus, providing the ability to develop and run .NET applications. Furthermore, there is ongoing development for other languages like Visual Basic .NET, ADO.NET and ASP.NET...
Andreas Masur
March 13th, 2004, 05:28 AM
Originally posted by Sam Hobbs
I don't know much about .Net and C# but I thought that C# was being standardized and the language was going to be non-proprietary whereas Java is proprietary.
Yes...the CLI (Common Language Infrastructure) and the C# language were standardized by the ISO. However, although Java is not being standardized (yet) in the common sense, I would not really call it proprietary. It is owned by Sun, nevertheless, there does not exist several versions etc. of the Java language itself (at least not since Microsoft has dropped its own Java implementation.
Originally posted by Sam Hobbs
Is the .Net Framework only the equivalent of the Java Virtual Machine? Or does the .Net Framework not include that?
The .NET framework consists of several pieces, e.g.:
A runtime
Some predefined routines
A defined set of ways to store these information
Originally posted by Sam Hobbs
The Java Virtual Machine is definitely proprietary, correct?
Well...I am not sure about that...there used to exist several virtual machines as far as I remember, thus I would not necessarely say that it is proprietary...
Originally posted by Sam Hobbs
Whereas it is my understanding that the C# execution environment is not.
At the end, I woud classify it not just like the Virtual Machine of Java...see my previous point.
Originally posted by Sam Hobbs
Am I also correct that the Java environment is more than just the language and the virtual machine?
So is the .NET framework...
Andreas Masur
March 13th, 2004, 05:29 AM
Originally posted by bob44
I suppose you could say that Java is proprietary, insofar as Sun Microsystems retains ownership of it. Sun keeps the ownership so that no one else can create a slightly different version with "improvements" that cause incompatibilities.
In just about every other sense, I would not call it proprietary. Sun does accept recommendations for improvements, and they implement the improvements where they believe it makes sense.
And furthermore, at the moment they are discussing to release it as Open Source...
Andreas Masur
March 13th, 2004, 05:33 AM
Originally posted by bob44
I have not tried C#, is there a free version of C# available?
You still can download the .NET framework which consists of a C# command-line compiler at Microsoft (http://msdn.microsoft.com/netframework/technologyinfo/howtoget/default.aspx)...
Andreas Masur
March 13th, 2004, 05:42 AM
Originally posted by Sam Hobbs
Is it not true that Microsoft is legally prevented from providing us with their version of a Java Virtual Machine?
Well...no...they are legally prevented from providing a version which is incompatible with the Java specification due to proprietary extensions...
Originally posted by Sam Hobbs
Is it not true that Microsoft is not selling Windows 95 anymore because it includes their version of a Java Vitual Machine?
Well...I would rather say, they are not selling Windows 95 anymore, since they dropped the support for it as they usually do with every operating system after pre-defined time steps...
Andreas Masur
March 13th, 2004, 05:44 AM
Originally posted by khp
Does MS applying for ECMA standardization, mean that anyone outside MS will get any kind of control over C# ?
Yes...they did...and they already got the ISO recognition as being mentioned in my earlier post. That is the reason, why the Mono project provides a C# compiler as well... :cool:
Andreas Masur
March 13th, 2004, 05:47 AM
Originally posted by Sam Hobbs
I agree that it should be easy to remove the Java from Windows 95 if it was important enough but I am nearly certain the reason given for discontinue sales of Windows 95 was a court settlement preventing Microsoft from providing their own implementation of Java.
Although being right, that was not only limited to Windows 95 but rather to every existing Windows system (and was more of a big deal for the Windows XP system - resulting in not having a Virtual Machine any longer)...and that is why they dropped their implementation of the J++ compiler etc.
bob44
March 13th, 2004, 11:29 AM
About four years ago (that was before .NET), I purchased the Microsoft Visual Studio, Enterprise Edition. It included C++, Visual Basic, and Microsoft's version of a Java Compiler which they called J++.
The main problem with J++ was that Microsoft added a few "improvements" to the Java language in J++. As a result, If I wrote a program in Microsoft's Java, there was a strong possibility that it would not work on another Java platform (like UNIX or LINUX, etc.) My understanding is that is the reason that Sun sued Microsoft to prevent them from departing from the Java specification and still call their product "Java".
I believe that Sun's point made sense. Their objective was to insure that any program written in Java anywhere, on any machine, would run on any other platform.
It was about a year or two later when .NET came out. Is it possible that C# is descended from Microsoft's J++ after Microsoft was not permitted to call the product "Java"?
It's pretty clear that Microsoft would prefer that programmers not use Java, and Sun would prefer that programmers not use Microsoft's languages. It's healthy competition.
Some programmers prefer Microsoft products, and don't want have anything to do with Java. Some programmers are devotees of Java and don't want to have anything to do with Microsoft's languages.
Other programmers, like myself, believe that there is a place for all languages, and make the choice of which one to use based on the task at hand and based on numerous personal and job related criteria. I programmed for years with C, then later with C++, and then with Java. Currently, I lean more toward Java because it seems to make it so much easier to write one program which will run on Windows, UNIX, LINUX or the Mac.
For server side programming, I prefer PHP (www.php.net), a completely open source programming language. I think it is much easier to program websites and web services with PHP than with either Java or any of the Microsoft languages. (That's just my personal opinion.) Currently at my job, I create programs for the Web with Java (J2EE), but for my personal Web Sites I use PHP.
Some other programmers appear to like languages like Python or Jython. I have not tried either of them yet, but those who have seem to like their dynamic typing and believe they make the job of programming much easier. Jython (www.jython.org) makes use of the Java Virtual Machine. Although I have not tried it, Jython appears to be an excellent illustration of the JVM supporting other languages than just Java.
Sam Hobbs
March 13th, 2004, 06:55 PM
Originally posted by khp
The PC is proprietary just like any other platform,You misunderstand the meaning of proprietary in this context. When the term proprietary is used in this manner, the implication is that the hardware and/or software that is the subject of discussion is all proprietary to the same company. In other words, for example a company might make floppy drives that only work with their computers and their computers could not use any other kind of floppy drives. If the company making the computer also controlled who can make the floppy drives then that is what is meant when we say that the floppy drives are proprietary to the company the computers.
Originally posted by khp
the x86 instruction set for starters, is owned by Intel, noone except Intel, AMD, IBM, and one or two others can use it. Exactly. IBM has never had control of the x86 instruction set. At the time the IBM PC was developed, and for many years after that, IBM got no profit from the x86 instruction set and was not legally authorized to make the processors.
Yes the x86 instruction set is proprietary to Intel, but not to IBM.
Sam Hobbs
March 13th, 2004, 07:02 PM
Originally posted by Andreas Masur
Well...it is only the C# language (and the CLI) that got standardized by ISO. That basically means that other compiler vendors can provide such an implementation on other platforms.Notice that this is a response to my question "So is VC and VB in .Net platform-independent or is it only the C# language that is?". I don't understand how the response is relevant to the quote. I don't see an answer to the question whether VC and VB in .Net are platform-independent.
However thank you for supporting what I am saying about the C# language being available to anyone to develop compilers for without control from Microsoft.
Sam Hobbs
March 13th, 2004, 07:27 PM
Originally posted by Andreas Masur
Yes...the CLI (Common Language Infrastructure) and the C# language were standardized by the ISO. However, although Java is not being standardized (yet) in the common sense, I would not really call it proprietary. It is owned by Sun, nevertheless, there does not exist several versions etc. of the Java language itself (at least not since Microsoft has dropped its own Java implementation.Proprietary is a fancy word for owned. In MSN Encarta - Dictionaries - Proprietary (http://encarta.msn.com/dictionary_/Proprietary.html), the words owned, owner and ownership are used.
I don't understand how the number of versions of Java is relevant to whether it is proprietary.
Sam Hobbs
March 13th, 2004, 07:39 PM
Originally posted by bob44
I believe that Sun's point made sense. Their objective was to insure that any program written in Java anywhere, on any machine, would run on any other platform.That same purpose can be acheived by standardizing the language in the manner that many other languages are standardized.
Originally posted by bob44
It was about a year or two later when .NET came out. Is it possible that C# is descended from Microsoft's J++ after Microsoft was not permitted to call the product "Java"?Yes, C# is intended to serve the purpose that Java does. That is nt secret. To the extent they are intended to serve the same purposes, it is expected that there will be similariities of the langauge design. They are both designed based on C++. I think the question of how much of the C# compiler and IDE is from J++ is not important.
khp
March 14th, 2004, 09:14 AM
Originally posted by Sam Hobbs
You misunderstand the meaning of proprietary in this context. When the term proprietary is used in this manner, the implication is that the hardware and/or software that is the subject of discussion is all proprietary to the same company.
But that is not the case for, neither the mac or the pc. You can use hardware produced by other manufactures, than apple, on most newer macs, and you can run linux on the Mac too.
And of course it makes very little difference who owns the 'keys' to pc platform, as long as someone is claiming ownership of vital parts of the platform.
Sam Hobbs
March 14th, 2004, 10:30 AM
Originally posted by khp
But that is not the case for, neither the mac or the pc. You can use hardware produced by other manufactures, than apple, on most newer macs, and you can run linux on the Mac too.I said nothing about the Mac. I said Apple, and I meant the Apple computer. Hardware and software for the Apple computer was more expensive than compararble items for the PC.
Originally posted by khp
And of course it makes very little difference who owns the 'keys' to pc platform, as long as someone is claiming ownership of vital parts of the platform. It makes an immense difference. The reason the IBM PC architecture has been so successful is that the hardware and software is and was originally available from competitors. The important point is the opportunity for competition.
To restore this discussion to the topic, competition can improve development tools such as Java. Control of Java by Sun (somewhat) protects Java from being corrupted, but it also interferes with improvements.
As for corruption, the type of corruption being discussed here only is incompatibilities. Standards solve incompatibility problems. Prior to something becoming standard, incompatibilities nearly always are the result of valid improvements and/or a useful variation.
Sun is inhibiting improvement of Java.
khp
March 15th, 2004, 09:12 AM
Originally posted by Sam Hobbs
Control of Java by Sun (somewhat) protects Java from being corrupted, but it also interferes with improvements.
I disagree, Suns control of java has been absolutly essential in keeping all java implemntations compatiple. Microsoft has already proven this, I don't belive any standarization body would ever, have been as tough with Microsoft as Sun was. As an example try taking a look at XML, Microsoft's XSL implementation has a number of incompatibilities with W3C specifications, designed of course to make it harder to switch between MS and non-MS implemantations. What have W3C done about this ?.
Originally posted by Sam Hobbs
As for corruption, the type of corruption being discussed here only is incompatibilities. Standards solve incompatibility problems. Prior to something becoming standard, incompatibilities nearly always are the result of valid improvements and/or a useful variation.
Ahh so what you are saying here, is that we should just let every one do their own version, and let the one with the most marketplace muscle set the defacto standard. I'am sorry but think that is a bad idear.
Originally posted by Sam Hobbs
Sun is inhibiting improvement of Java.
How so ?, anyone who has suggestions for improveing java is welcome to do so, and Sun will listen.
You seem to be under assumption, that the best way to develop a language, is to have some stadarization body do it. I strongly disagree with that, when several independent parties has to agree what goes into a language, making changes will quickly become political issues rather than purely technical ones. By working alone Sun can make sure, that any changes will be judged purely on their technical merits. And by working alone I would expect that Sun will also be able to make Java evolve faster than a Standarization group would have.
codeguru.com
Copyright Internet.com Inc., All Rights Reserved.