decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Trying to explain APIs (and the Wikipedia API page) | 270 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
API size
Authored by: SLi on Friday, April 20 2012 @ 09:39 PM EDT

API size, as discussed by Bloch, would essentially be "how complex it is to operate this device" (e.g. the car). One way in which it could be unnecessarily complex is if you could turn the tires separately, instead of just using the steering wheel to turn them in sync.

Another curse that causes complexity is "feature creep"; if your car not only lets you drive from one place to another, but also lets you toast bread because someone somewhere thought that it would be nice, that would be an example of feature creep. Having five different types of brakes for different purposes would be another (in modern cars I think the ABS brakes do have different modes of functions, but the API has been kept simple by putting all that behind at most one button to toggle ABS on or off and making the car intelligent enough to make decisions on what is the best way to brake).

The API of a fighter jet is likely to be much more complex than that of a car. That is unfortunate, but it also enables much more fine-grained control and exposes more functionality than the API of a car. For a fighter jet, good API design is crucial; you really want to give the pilot all relevant information, and only relevant information. Similarly you want to give the pilot highly relevant (to the task of flying it) ways to control the plane, yet keep it as simple as possible.

In the space shuttle Columbia disaster one factor was, in a sense, API design: The only indication given to the astronauts that the shuttle used thrusters to compensate for structural damage was an indicator light that was on when the thruster was used. Because it was one more blinking light in a vast sea of information, that information simply got drowned. Was the API usable? Yes. It could be used to accomplish all the tasks that were required. But was it as easy to use as possible? How should it be designed? That's API design.

[ Reply to This | Parent | # ]

Trying to explain APIs (and the Wikipedia API page)
Authored by: Anonymous on Saturday, April 21 2012 @ 04:19 AM EDT
Thank you. For some reason, I've had a hard time trying to understand this (but
then again, I wouldn't say that my programming skills are at an advanced level,
and I've not messed with java all that much, either.)

So what you are saying is that when I "#include<iostream>" in a
.cpp, I am invoking the API dealing with the most basic in/out functions of
C++?

If this is the case, then how can Oracle get away with saying "Java is a
language that is free for all to use" and then turn around and say
"you're not allowed to use any of the java commands?" What is a
language without commands?

Am I still not understanding something, or is Oracle really trying to pull this
off? This seems about as intelligent as saying that the English language is
free to use so long as you don't use any words out of an English dictionary.
What is a language without words?

Bah! This is right up there with the very confused Darrly saying "And
C++... Yeah... We own that too!"

I suppose that since we didn't get to see SCO-folk in orange jumper suits, we
probably won't see Oracle-folk in them either? Too bad! This nonsense needs to
get nipped in the bud!

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )