Article View: borland.public.jbuilder.java.api
Article #2073Re: Confused about terms.
From: Rich Wilkman
Date: Tue, 05 Jun 2001 15:42
Date: Tue, 05 Jun 2001 15:42
150 lines
7801 bytes
7801 bytes
John: Looks like you get an A on his homework. ;) -Rich "John McGrath [TeamB]" wrote: > > On 5 Jun 2001 00:26:32 -0700, Randall Raus wrote: > > > Below are six terms that I thought I understood, but recently > > have heard used in ways that are different from my > > understanding. They were used by people who seemed to be > > very knowledgeable. > > I think you have a fairly good understanding of most of these terms > (except "syntax"), but you are expecting them to be a little better > defined than they are. Usage of these terms varies somewhat, and in > some contexts the implications are a little different than in others. > > > 1. Platform: > > > > The way I've understood this concept, is that a platform is the > > combination of a computer and an operating system, i.e. a PC > > running Windows is a platform, a PC running UNIX is a platform, > > a workstation running Unix is a platform. At one of the Borland > > conferences, one of the platform seminars was about Java. Has > > the ability of Java to run on any platform meant that it has > > become a platform? Java can't run a program written in C. > > Perhaps a better description of "platform" is the foundation upon which > a body of software is built, and which it is tied to. That could be > just the computer if you are writing low level assembly language code. > > In many cases, it refers to the operating system. If you write a > Windows program, it is built on (and tied to) Windows, not Intel. > There have been Windows implementations that ran on the DEC/Compaq > Alpha, and a Windows program would run on Windows running on either. > > Java programs run on the Java platform, which consists of a Java > Virtual Machine and the core Java classes. Most Java programs are > not tied to any particular operating system or hardware, so they > are not part of the platform. > > Of course, the Java platform is a body of software, and it runs on a > platform of its own. Sun supports implementations of the Java platform > that runs on Windows, Solaris and Linux. So those are the platforms on > which Sun's Java runs. > > > 2. Syntax: > > > > I also heard an operating system described as having the > > ability to run applications (development tools) of different > > syntaxes. I thought a syntax was something like ASN.1. Would C++ > > on a Windows platform be described as having a different syntax > > from C++ on a Linux platform. > > Syntax refers to the specific tokens that makes up a language, without > regard to their meaning (the semantics). This covers > > The C++ standard defines a syntax, and some implementations of C++ > accept a slightly different syntax than the standard. For example, the > MS implementation of C++ has a few of its own specific keywords, so it > is different than the > GNU implementation. In general, implementations are compatible with > the standard, so if you write to the standard, your program should work > with different implementations. > > > 3. Application: > > > > Also, the way I've understood it is that a development tool (see > > second line of above paragraph) is a utility that is used to > > create an application, i.e. Jbuilder 4.0 can be used to create a > > Java application. In other words, the final product is the > > application, not the development tool. > > Yes. But be aware that in different environments, there are different > implications of the term "application". In many cases, calling a > program an "application" implies that it is something that will be > perceived as a separate piece of code by the user. Sometime the term > "applet" is used to refer to a piece of code that will run in the > context of another program. > > In Java, it generally refers to a program that has a main() method, as > opposed to other forms of programs such as Applets, Servlets, etc. On > a Macintosh system, an "application" is a program that is linked in a > specific way, and interacts with the operating system in a given way. > Other platforms may use the term a little differently. > > > 4. Operating system (interface): > > > > I didn't know that an interface is almost synonymous with > > operating system. > > An operating system provides an interface (or interfaces) which > programs use. See notes on platform and API. > > > 5. Portability: > > > Wouldn't the operating system also have to be portable, and > > even then, wouldn't it also have to capture or find a sizable > > market niche to do anything? > > A program is portable to the extent that it can be used in many > different environments. If you write code using only an appropriate > subset of the Windows APIs, it should run on any Windows system. If > you write code that uses only the Java APIs, it will run wherever Java > is supported. If you write a program using Posix Unix APIs and X11R6, > your program should run wherever that is supported. > > Programs can also be "portable" in that they can be "aware" of the > environment in which they are run and adapt to that environment. For > example, I have a "portable" Java program that has a bit of code in it > that launches a web browser. While most of the code in the application > does not concern itself with the environment, that part does. It uses > different code to launch the browser under Windows that it does under > Unix. > > Most real world portable programs I have dealt with contains some > code that is a little more aware of the environment than the "ideal". > This is not especially a bad thing, but it is good to limit the amount > of code that is environment-aware. > > It may be that the platform that your code runs on is in itself > entirely portable, but that is seldom the case. Sun's implementation > of the Java Virtual Machine is written using C, and much of that code > is completely portable, while some is environment-aware. > > > 6. API: > > > > Finally, what is an API? I thought that an application program > > interface (API) was the methods and data of a class or interface > > that was included in the Java SDK, or Java Beans. In other > > words each class or interface (in the library) had its own API. > > Recently I've heard API referred in the context of a whole > > package, like Java Beans, (e.g. the Java Beans API), or even in > > the context of a browser, i.e. Netscape, providing an API. > > The term is used differently by different people / organizations. I > have seen some refer to entire libraries as an API and others refer to > a single function call as an API. > > -- > Regards, > > John McGrath [TeamB] > > --------------------------------------------------- > Before sending me e-mail, please read: > http://www.JPMcGrath.net/newsgroups/e-mail.html
Technical Details
Message-ID:
<3B1CFDE3.E80218AE@formlessvoid.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!dnewsReferences:
<3b1c89a8_2@dnews> <MPG.15866b0b269f037698a263@forums.borland.com>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1089d0,3ad0d3f326530616 X-Google-Attributes: gid1089d0,public X-Google-ArrivalTime: 2001-06-05 08:46:05 PST Message-ID: <3B1CFDE3.E80218AE@formlessvoid.com> Date: Tue, 05 Jun 2001 08:42:27 -0700 From: Rich Wilkman <richw@formlessvoid.com> X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 Newsgroups: borland.public.jbuilder.java.api Subject: Re: Confused about terms. References: <3b1c89a8_2@dnews> <MPG.15866b0b269f037698a263@forums.borland.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 208.236.69.60 X-Trace: dnews 991755745 208.236.69.60 (5 Jun 2001 08:42:25 -0700) Lines: 150 Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!sn-xit-02!supernews.com!nntp-relay.ihug.net!ihug.co.nz!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!dnews