[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ADTPro beta available
In article <1152753763.236501.32100@35g2000cwc.googlegroups.com>,
mdj <mdj.mdj@gmail.com> wrote:
> Paul Schlyter wrote:
>
>> I never claimed scriptig languages are platforms. Therefore I don't think
>> Perl, Python, Ruby, or Javascript are platforms.
>
> Perl and Python at least, can be compiled into a bytecode
> representation. Does that change anything?
>
> Javascript is an interesting one - while Javascript itself isn't a
> platform, many would consider a web browser to be a platform.
I could agree on that one: writing a Javascript for e.g. Firefox will
enable you to write a program which runs on Windows, Macs, Linux, etc
computers. So that Javascript program is "platform independence" in
the same way as a Java program is.
>>> Very true. This is actually the whole point. If you can guarantee a
>>> datatype is always the same, your code becomes more portable. Less
>>> efficient? Perhaps. That in other languages the definition of data
>>> types can and does change is one of the issues with those other
>>> languages.
>>
>> That's not the way I define portability. Of course code is easier to
>> port to an environment where the data types don't change representation,
>> but that's almost like saying it's easier to not port code than to port
>> code.
>
> So by your definition, writing code yourself to get around portability
> issues is cross-platform, but leveraging someone elses already written
> solutions isn't?
Precisely! Doing the latter is "passing the bucket" of cross-platform
development to someone else so you don't have to dabble with it. Or
to be more specific in the case of Java: the Java program is single-
platform (runs only on the JVM), while the JVM itself is cross-
platform (there are several versions of the JVM, which runs on
different platforms).
>> The JVM itself (which is written in C btw....) is indeed an example of a
>> successful portable application. But a lot of effort has been spent at
>> making it as portable as possible.
>
> Indeed, the effort goes in there, so you don't have to expend the
> effort yourself. It's rudimentary abstraction, nothing more.
Yep -- so you don't have to spend the effort making your program cross-platform.
>>> Of course not. However this code inherits the cross-platform benefits
>>> of Java.
>>> I would agree that such libraries, once compiled, are locked into the
>>> Java environment and only usable with it, but really, the *only*
>>> effective solution to this problem is source level access, as the open
>>> source community is proving.
>>
>> True - the only alternative would be several binaries, one for each platform.
>> The JVM itself is a good example of this - there are several versions,
>> for Win32, for Linux, for Solaris, for AIX, .....
>
> Yep, they do the work so you don't have to.
Precisely! Therefore, the burden of writing a cross-platform application
does not fall on your shoulders.
>
>>> :-) I find the distinction frankly a little silly. Both my statement
>>> and yours are in essence correct. I agree with you, in theory, however
>>> it's practice I'm interested in :-) I write Java program, it runs on
>>> basically anything. I write .NET program, it only runs on Windows. Not
>>> Macs. Not Linux boxes.
>>
>> That's due to practical circumstances, not principles. The CLI runtime
>> could be ported to other platforms as easily as the JVM (in either case
>> a lot of hard work is of course involved). But since Microsoft owns
>> both the CLI runtime and its host platform Windows, .NET programs runs
>> only on Windows (although I believe there are efforts to make a .NET
>> CLI runtime for Linux as well). If Solaris had been as dominant as
>> Windows, the situation with Java could have been similar and there
>> could have been a JVM available only for Solaris.
>
> The CLI itself is quite easy to reimplement, and has been many times.
> The API on the other hand, is quite difficult to port, since it relies
> heavily on Windows functionality. This is the biggest barrier to having
> a completely non-MS .NET implementation. The Mono guys are plugging
> away at it though :-)
>
> <snip>
>
>> I just browsed through Sun's download page for Java SE, and from the list
>> of OS'es, Windows CE and Windows XP Embedded were both absent. Yes, they
>> are both 'current' platforms, and neither seem to have any JVM. No, XP
>> Embedded does not run everything which runs on XP Home or XP Professional.
>
> http://java.sun.com/j2se/embedded/offerings.html
>
> :-)
OK, I found XP Embedded there -- but I still miss Windwos CE.... :-)
>> I agree with you about the practical stuff. What I'm discussing is the
>> terminology. Java's solution to the portability problem isn't "platform
>> independence", it's rather "platform hiding", by providing an interface
>> layer which looks the same on different host platforms. In essence
>> this creates a new, uniform, platform - even though you don't want to
>> call it a platform.
>
> Ha! how can you be independant of platforms without hiding differences?
By dealing with the differences of course.....
>
>> Now, if we could have .NET running on other OS'es besides Windows, and
>> also get other languages than Java running on the JVM, things could get
>> quite interesting.... what about e.g. Java running on .NET, or C#
>> running on the JVM?
>
> Well there's Mono which is a decent implementation of the CLR, but much
> of the framework needs to be written.
>
> You might however find this interesting:
>
> http://www.ikvm.net/
>
> Matt
Interesting ... now if we could get .NET for the JVM, we coudl stack
JVM-.NET and IKVM on top of one another any number of times.... :-)
--
----------------------------------------------------------------
Paul Schlyter, Grev Turegatan 40, SE-114 38 Stockholm, SWEDEN
e-mail: pausch at stockholm dot bostream dot se
WWW: http://stjarnhimlen.se/