platform independence....!!
-
Eddy Vluggen wrote:
A language is not confined to it's compiler.
I don't understand this statement; how can it not be?
Eddy Vluggen wrote:
not every language is compiled,
Well, if it isn't compiled it needs an interpreter; almost the same thing.
Eddy Vluggen wrote:
Worse, you cannot even simply copy your executable to an AmigaDOS-based system. It would convert some of the bits to the encoding of it's own FileSystem, crippling the original executable.
But the whole point of platform independence is that you can copy the object (executable) to any platform and run it as is. That's why the platform has to implement some form of VM, either through software or hardware.
Eddy Vluggen wrote:
It's not the responsibility of the hardware-manufacturer or the OS-developer to embed native support for any language.
No, it's not their responsibility, but if they want to offer the facilities required by the market then it's in their interests to do it.
Richard MacCutchan wrote:
Well, if it isn't compiled it needs an interpreter; almost the same thing.
Woman and man are also almost the same thing, but I'd hate to make a mistake in discriminating between the two on the wrong occasion. A compiled executable is machinecode that's assembled for a specific architecture. You won't be able to run machinecode from the Intel platform on a Motorola machine, without doing any modifications. You might find a compiler that's able to compile the same language, but that means that you cannot use any native libraries. The second option is interpreted; you don't distribute machinecode, but sourcecode. Then the computer executes these instructions ad hoc. The third option would be to distribute something that resembles sourcecode, but is actually compiled and optimized for a generic environment. That's your VM.
Richard MacCutchan wrote:
But the whole point of platform independence is that you can copy the object (executable) to any platform and run it as is. That's why the platform has to implement some form of VM, either through software or hardware.
Words don't have goals, but meanings. You'll find that it means "not depending on the platform". A platform has no obligation whatsoever to provide various Virtual Machines.
Richard MacCutchan wrote:
The ultimate goal is that all manufacturers will have built in support for Java runtime code (or similar) on their systems.
Their goal is to make a profit, and they will serve the needs and demands of that market.
I are Troll :)
-
Dave Kreskowiak wrote:
The language is defined by its specification documents.
Yes, I understand that. However, in the context of our discussion I was stating that while you can run a Pascal program on many different platforms, you will still require the compiler and libraries, in order to create the executable. True platform independence means that you can create an executable on one platform, but run it on any other, without the need of the language compiler or libraries. Java goes some way towards this but still requires the manufacturer to provide a Java VM. The ultimate goal is that all manufacturers will have built in support for Java runtime code (or similar) on their systems.
Richard MacCutchan wrote:
Java goes some way towards this but still requires the manufacturer to provide a Java VM.
Thus making the runtime environment itself platform dependant, so, based on your view of the compilers for C/C++, is Java really platform independant? I don't think so. So far, the only "language" that I know of that is truely independant is Math. No computer language that I can think of can exist without a seperate implementation of something on each type of CPU to get the resulting code to run.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009... -
Richard MacCutchan wrote:
Java goes some way towards this but still requires the manufacturer to provide a Java VM.
Thus making the runtime environment itself platform dependant, so, based on your view of the compilers for C/C++, is Java really platform independant? I don't think so. So far, the only "language" that I know of that is truely independant is Math. No computer language that I can think of can exist without a seperate implementation of something on each type of CPU to get the resulting code to run.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009...Plain English. Write once. Run nowhere.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Richard MacCutchan wrote:
Well, if it isn't compiled it needs an interpreter; almost the same thing.
Woman and man are also almost the same thing, but I'd hate to make a mistake in discriminating between the two on the wrong occasion. A compiled executable is machinecode that's assembled for a specific architecture. You won't be able to run machinecode from the Intel platform on a Motorola machine, without doing any modifications. You might find a compiler that's able to compile the same language, but that means that you cannot use any native libraries. The second option is interpreted; you don't distribute machinecode, but sourcecode. Then the computer executes these instructions ad hoc. The third option would be to distribute something that resembles sourcecode, but is actually compiled and optimized for a generic environment. That's your VM.
Richard MacCutchan wrote:
But the whole point of platform independence is that you can copy the object (executable) to any platform and run it as is. That's why the platform has to implement some form of VM, either through software or hardware.
Words don't have goals, but meanings. You'll find that it means "not depending on the platform". A platform has no obligation whatsoever to provide various Virtual Machines.
Richard MacCutchan wrote:
The ultimate goal is that all manufacturers will have built in support for Java runtime code (or similar) on their systems.
Their goal is to make a profit, and they will serve the needs and demands of that market.
I are Troll :)
Eddy Vluggen wrote:
Woman and man are also almost the same thing
A trollism, which I will ignore.
Eddy Vluggen wrote:
A compiled executable is machinecode that's assembled for a specific architecture.
Not if it's Java, which produces an object like byte code which will run under a Java VM on any architecture. This is the whole philosophy behind the Java language. I used this extensively in the last commercial project that I worked on.
Eddy Vluggen wrote:
Their goal is to make a profit, and they will serve the needs and demands of that market.
I agree completely; and if the demands of the market are for platforms that support a Java-like implementation, then the manufacturers will fall over themselves to provide it.
-
Plain English. Write once. Run nowhere.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith
As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
-
Richard MacCutchan wrote:
Java goes some way towards this but still requires the manufacturer to provide a Java VM.
Thus making the runtime environment itself platform dependant, so, based on your view of the compilers for C/C++, is Java really platform independant? I don't think so. So far, the only "language" that I know of that is truely independant is Math. No computer language that I can think of can exist without a seperate implementation of something on each type of CPU to get the resulting code to run.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009...Dave Kreskowiak wrote:
based on your view of the compilers for C/C++, is Java really platform independant?
Well I haven't stated what my view of C/C++ is! And yes I agree that Java is still not totally independent but it is closer than anything else at the moment. The key here is not what the source language looks like but whether the object code is truly portable to every platform.
Dave Kreskowiak wrote:
the only "language" that I know of that is truely independant is Math.
I don't know what that has to do with this subject.
Dave Kreskowiak wrote:
No computer language that I can think of can exist without a seperate implementation of something on each type of CPU to get the resulting code to run.
I have never disputed this. The point is that platform independence will only truly exist when the manufacturers provide a common implementation for some object code which any source language can be compiled to. At present we have Java and MSIL, both a small step towards this goal. Whether we ever get to true platform independence for all languages is anyone's guess.
-
Eddy Vluggen wrote:
Woman and man are also almost the same thing
A trollism, which I will ignore.
Eddy Vluggen wrote:
A compiled executable is machinecode that's assembled for a specific architecture.
Not if it's Java, which produces an object like byte code which will run under a Java VM on any architecture. This is the whole philosophy behind the Java language. I used this extensively in the last commercial project that I worked on.
Eddy Vluggen wrote:
Their goal is to make a profit, and they will serve the needs and demands of that market.
I agree completely; and if the demands of the market are for platforms that support a Java-like implementation, then the manufacturers will fall over themselves to provide it.
-
Richard MacCutchan wrote:
A trollism, which I will ignore.
Not a trollism, but an extreme example to show that details do mind. The devil is always is the details :)
-
Eddy Vluggen wrote:
A language is not confined to it's compiler.
I don't understand this statement; how can it not be?
Eddy Vluggen wrote:
not every language is compiled,
Well, if it isn't compiled it needs an interpreter; almost the same thing.
Eddy Vluggen wrote:
Worse, you cannot even simply copy your executable to an AmigaDOS-based system. It would convert some of the bits to the encoding of it's own FileSystem, crippling the original executable.
But the whole point of platform independence is that you can copy the object (executable) to any platform and run it as is. That's why the platform has to implement some form of VM, either through software or hardware.
Eddy Vluggen wrote:
It's not the responsibility of the hardware-manufacturer or the OS-developer to embed native support for any language.
No, it's not their responsibility, but if they want to offer the facilities required by the market then it's in their interests to do it.
Richard MacCutchan wrote:
But the whole point of platform independence is that you can copy the object (executable) to any platform and run it as is.
That may be just one narrow definition and I don't believe it's achievable. Unless I'm mistaken... The only platform Java runs on is the Java VM.
-
Platform independence, What it actually means......?? Java is platform independent, but the word platform compromise what? Is it CPU only or is it CPU+OS? when you said java is PI, but then you have to install OS specific JDK OR JRE. Java has OS(linux, win etc) specific jre, then why cant C# have this? Now you say MONO is there, but that still under hit n try loop. Cant MS create an OS specific framework and release. it helps it to gain more users. In market people still prefers java over c#, after creating all these VS version, .net framework's, blah blah....(which only putting loads on cpu, ram etc, OS getting heavy and more heavy, every program consumption increasing) Even after all these MS OS & technologies are under heat and exploitation. Open source.....?? Is this is the new era? :confused::confused::confused::confused:
Generally, "platform" refers to the computer hardware and any software (operating system) running on it. Each layer of the platform provides an abstraction of the platform that supports it. Application Framework (VM) Operating System BIOS Hardware
Hum Dum wrote:
Java is platform independent
Hum Dum wrote:
why cant C# have this?
All high-level languages are platform independent. You just need a way (compiler/interpreter) to translate the high-level language to machine code.
-
Richard MacCutchan wrote:
But the whole point of platform independence is that you can copy the object (executable) to any platform and run it as is.
That may be just one narrow definition and I don't believe it's achievable. Unless I'm mistaken... The only platform Java runs on is the Java VM.
PIEBALDconsult wrote:
That may be just one narrow definition and I don't believe it's achievable.
Only time will tell on that. But if you consider what's achievable today compared to ten years ago ...
PIEBALDconsult wrote:
Unless I'm mistaken... The only platform Java runs on is the Java VM.
Yes as far as I know you are right. The key being that you can take a Java executable and run it anywhere that has a Java VM - which actually means quite a lot of places. All the other "portable" languages still need to be compiled and linked on the native platform. If you have ever worked on developing an application which is supposed to run on any platform you will know what a lot of work this entails. Switch to Java and you only need to have one development system.
-
Platform independence, What it actually means......?? Java is platform independent, but the word platform compromise what? Is it CPU only or is it CPU+OS? when you said java is PI, but then you have to install OS specific JDK OR JRE. Java has OS(linux, win etc) specific jre, then why cant C# have this? Now you say MONO is there, but that still under hit n try loop. Cant MS create an OS specific framework and release. it helps it to gain more users. In market people still prefers java over c#, after creating all these VS version, .net framework's, blah blah....(which only putting loads on cpu, ram etc, OS getting heavy and more heavy, every program consumption increasing) Even after all these MS OS & technologies are under heat and exploitation. Open source.....?? Is this is the new era? :confused::confused::confused::confused:
Hi, a platform depends on the product you are looking at. if you sell helicopters, a platform would be a solid surface large enough to let a helicopter take of and land; and the helicopter would be platform independent if it has normal size and weight, and no special requirements. if you sell an operating system such as Windows, it would be a PC-like piece of hardware with some mandatory peripherals; and your OS would be platform independent if an instance of your product would fit a variety of such platforms without failure. most frequently, the term is used for applications; then the platform is a computer system (hardware, operating system, and maybe some middleware such as a database or a virtual machine), and the application is whatever you choose it to be; it would be platform-independent if it could run on a variety of platforms (not all conceivable platforms, but some of quite different nature). Most applications either target a single platform, or they target a couple of platforms by offering several instances (e.g. Oracle is available for most platforms, however it is almost the same functionality rebuild and repackaged for each platform). Most applications are bound to their platform by their delivery form (it takes Windows to run a Windows EXE) and by the platform functionality they build on (e.g. the Win32 API). There have been several initiatives to ease development for multiple platforms and/or to improve platform independence. One was standardizing programming languages; one was having (some kind of) UNIX on all kinds of hardware; another one the introduction of virtual machines (most notably the Java VM). Programming languages have evolved; C was NOT platform independent, they never fixed the size of variable types (e.g. all the spec says is sizeof(short)<=sizeof(int)<=sizeof(long)); the C specification has an appendix containing a list of open specs, things to be specified by the manufacturer! More recent languages (Java, C#) did a better job at specifying the language. Operating systems have evolved; attempts to provide Windows for other than x86 architectures weren't really successful; efforts to standardize UNIX (such as Posix) were not that great either. Recent efforts such as JVM and the .NET Framework are another step to a standard platform. Platform independence is linked to standards; it takes several companies to agree on a series of things. However companies also try to make a profit, and to distinguish themselves from their competitors, so as soon as a standar
-
Dave Kreskowiak wrote:
based on your view of the compilers for C/C++, is Java really platform independant?
Well I haven't stated what my view of C/C++ is! And yes I agree that Java is still not totally independent but it is closer than anything else at the moment. The key here is not what the source language looks like but whether the object code is truly portable to every platform.
Dave Kreskowiak wrote:
the only "language" that I know of that is truely independant is Math.
I don't know what that has to do with this subject.
Dave Kreskowiak wrote:
No computer language that I can think of can exist without a seperate implementation of something on each type of CPU to get the resulting code to run.
I have never disputed this. The point is that platform independence will only truly exist when the manufacturers provide a common implementation for some object code which any source language can be compiled to. At present we have Java and MSIL, both a small step towards this goal. Whether we ever get to true platform independence for all languages is anyone's guess.
Richard MacCutchan wrote:
Dave Kreskowiak wrote: the only "language" that I know of that is truely independant is Math. I don't know what that has to do with this subject.
Out of all the languages that we have, both human and digital, Math is the only one that is truely platform independant.
Richard MacCutchan wrote:
I have never disputed this. The point is that platform independence will only truly exist when the manufacturers provide a common implementation for some object code which any source language can be compiled to. At present we have Java and MSIL, both a small step towards this goal. Whether we ever get to true platform independence for all languages is anyone's guess.
This probably never going to happen in a capitalistic marketplace. What's to differentiate one chip makers product from another? All they have to work with is architecture and instruction set differences, and that's drien as much by marketing ad by consumer demand. Those differences alone kill the idea of platform independance. What's going to make one chip run faster than the competitions if you both have to run the exact same code the exact same way? If you can't change the architecture enough to differentiate your chip from the other guys in any meaningful way, what's the point of even making the chip? And that doesn't even include the chipsets under the CPU. The chipsets themselves have the same problem. A server chipset doesn't provide the same functionality as a desktop or laptop chipset. How does each of these maintain the exact same run specifications of platform independant code while still offering different features such as power management for laptops and throughput for servers?
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009... -
Hi, a platform depends on the product you are looking at. if you sell helicopters, a platform would be a solid surface large enough to let a helicopter take of and land; and the helicopter would be platform independent if it has normal size and weight, and no special requirements. if you sell an operating system such as Windows, it would be a PC-like piece of hardware with some mandatory peripherals; and your OS would be platform independent if an instance of your product would fit a variety of such platforms without failure. most frequently, the term is used for applications; then the platform is a computer system (hardware, operating system, and maybe some middleware such as a database or a virtual machine), and the application is whatever you choose it to be; it would be platform-independent if it could run on a variety of platforms (not all conceivable platforms, but some of quite different nature). Most applications either target a single platform, or they target a couple of platforms by offering several instances (e.g. Oracle is available for most platforms, however it is almost the same functionality rebuild and repackaged for each platform). Most applications are bound to their platform by their delivery form (it takes Windows to run a Windows EXE) and by the platform functionality they build on (e.g. the Win32 API). There have been several initiatives to ease development for multiple platforms and/or to improve platform independence. One was standardizing programming languages; one was having (some kind of) UNIX on all kinds of hardware; another one the introduction of virtual machines (most notably the Java VM). Programming languages have evolved; C was NOT platform independent, they never fixed the size of variable types (e.g. all the spec says is sizeof(short)<=sizeof(int)<=sizeof(long)); the C specification has an appendix containing a list of open specs, things to be specified by the manufacturer! More recent languages (Java, C#) did a better job at specifying the language. Operating systems have evolved; attempts to provide Windows for other than x86 architectures weren't really successful; efforts to standardize UNIX (such as Posix) were not that great either. Recent efforts such as JVM and the .NET Framework are another step to a standard platform. Platform independence is linked to standards; it takes several companies to agree on a series of things. However companies also try to make a profit, and to distinguish themselves from their competitors, so as soon as a standar
Luc Pattyn wrote:
And finally, platform independence can never be guaranteed
As simple as this :laugh: :laugh:
Luc Pattyn wrote:
However companies also try to make a profit, and to distinguish themselves from their competitors
Nature of human race....!! Eats own species in race of survival :doh: Now Just today NASA declare there is water on MOON, Bad for MOON...... :) :)
-
Richard MacCutchan wrote:
Dave Kreskowiak wrote: the only "language" that I know of that is truely independant is Math. I don't know what that has to do with this subject.
Out of all the languages that we have, both human and digital, Math is the only one that is truely platform independant.
Richard MacCutchan wrote:
I have never disputed this. The point is that platform independence will only truly exist when the manufacturers provide a common implementation for some object code which any source language can be compiled to. At present we have Java and MSIL, both a small step towards this goal. Whether we ever get to true platform independence for all languages is anyone's guess.
This probably never going to happen in a capitalistic marketplace. What's to differentiate one chip makers product from another? All they have to work with is architecture and instruction set differences, and that's drien as much by marketing ad by consumer demand. Those differences alone kill the idea of platform independance. What's going to make one chip run faster than the competitions if you both have to run the exact same code the exact same way? If you can't change the architecture enough to differentiate your chip from the other guys in any meaningful way, what's the point of even making the chip? And that doesn't even include the chipsets under the CPU. The chipsets themselves have the same problem. A server chipset doesn't provide the same functionality as a desktop or laptop chipset. How does each of these maintain the exact same run specifications of platform independant code while still offering different features such as power management for laptops and throughput for servers?
A guide to posting questions on CodeProject[^]
Dave Kreskowiak Microsoft MVP Visual Developer - Visual Basic
2006, 2007, 2008
But no longer in 2009...Dave Kreskowiak wrote:
Out of all the languages that we have, both human and digital, Math is the only one that is truely platform independant.
True, but hardly relevant to this discussuin.
Dave Kreskowiak wrote:
This probably never going to happen
I agree entirely with your comments; but it's still a good aspiration.