An application programming interface (API) is the specification for which software is meant to be used by other software.
279
votes
34answers
61k views
How do I create my own programming language and a compiler for it
I am thorough with programming and have come across languages including BASIC, FORTRAN, COBOL, LISP, LOGO, Java, C++, C, MATLAB, Mathematica, Python, Ruby, Perl, JavaScript, Assembly and so on. I ...
61
votes
10answers
4k views
What's the difference between an API and an SDK?
I was looking through various APIs and SDKs, when I realized that I couldn't really tell the difference between something called an API and something called an SDK. Both of them are, conceptually, a ...
45
votes
4answers
1k views
Why were Java collections implemented with “optional methods” in the interface?
During my first implementation extending the Java collection framework, I was quite surprised to see that the collection interface contains methods declared as optional. The implementer is expected ...
43
votes
13answers
17k views
Why aren't more desktop apps written with Qt?
As far as I know and have understood in my experience with Qt, it's a very good and easy to learn library. It has a very well designed API and is cross-platform, and these are just two of the many ...
29
votes
10answers
2k views
How can I write a set of functions that can be invoked from (almost) any programming language?
I'd like to find a way to write an API that can be accessed from any other programming language via language bindings (or some other framework). Is it possible to do this? If so, which programming ...
27
votes
3answers
1k views
What's so bad about the DOM?
I keep hearing people (Crockford in particular) saying the DOM is a terrible API, but not really justifying this statement. Apart from cross-browser inconsistencies, what are some reasons why the DOM ...
22
votes
1answer
605 views
Why have hardware-accelerated vector graphics not taken off?
I'm working on an app that involves real-time manipulation of vector paths at 60fps, and I'm very surprised by how little information there is on the subject. At first, I tried to implement my idea ...
21
votes
9answers
1k views
Interface naming: prefix 'Can-' vs suffix '-Able'
It's common to use '-able' as a suffix for interfaces e.g.
Serializable
Printable
Enumerable
Drinkable
Shootable
Rotatable
I was thinking that 'Can-' might better because it may be more descriptive. ...
21
votes
2answers
915 views
What does it mean to expose a C++ code publicly as a C API and what are the advantages of doing it?
I often hear people say that C++ programmers should expose their library's/product's public API as a C API.
What does that mean and what are the advantages of that?
19
votes
8answers
1k views
“Public APIs are forever: Only one chance to get it right”?
In an OS book I just read that, "Public APIs are forever: Only one chance to get it right". Is it true? Is it applicable only in APIs of Operating Systems or other APIs too? For example, will this be ...
17
votes
2answers
825 views
Should a website use its own public API?
I am starting to write a webservice, and I've built with nodeJS and a RESTfulish approach.
From what I gather:
The advantage is that you don't have to duplicate code.
The disadvantages are that ...
16
votes
11answers
2k views
Is it a really required skill to program without API documentation?
I barely passed my Java programming exam today. I had to answer some general questions about threading which I did well and to write a little threaded program which was worse. I had to connect my ...
14
votes
3answers
408 views
Does decoupling trump DRY in REST?
I am building a REST API to expose most of functionality of an existing Java API. Both APIs are for internal use within my organization; I do not have to design for external use. I have influence ...
14
votes
4answers
7k views
Web api authentication techniques
We have a asp.net MVC web service framework for serving out xml/json for peoples Get requests but are struggling to figure out the best way (fast, easy, trivial for users coding with javascript or OO ...
12
votes
7answers
706 views
How do you remember numerous API?
I don't come from programming background, I mean I am not a hard core developer. Whatever language features I have learnt are attributed to Selenium test tool (my reasoning is not enough to justify ...
11
votes
4answers
411 views
Using natural language grammar in fluent API
I'm tinkering with a query abstraction over WebSQL/Phonegap Database API, and I find myself both drawn to, and doubtful of, defining a fluent API that mimics the use of natural English language ...
11
votes
4answers
1k views
What do you think of Android API design?
When I got acquainted with Android platform my first impression was WOW, that's must be a super awesome thing. But when I started developing for it I felt that its learning curve could be simpler. ...
11
votes
6answers
453 views
How do you learn a language's standard framework/API/functionality?
I understand how to code. I know how to get around the basics of the languages I use regularly. I know how to write slightly-above-basic regular expressions, I can talk to databases, I can accept ...
11
votes
2answers
3k views
How should an API use http basic authentication
When an API requires that a client authenticates to it, i've seen two different scenarios used and I am wondering which case I should use for my situation.
Example 1. An API is offered by a company ...
9
votes
3answers
649 views
Joda Time vs Java Time
Although Joda is feature rich and more sophisticated than standard Java time, it may not always be the best thing to use. How do I decide if I should use Joda Time or Java Time in any Java code?
Is ...
9
votes
6answers
2k views
Are Java's public fields just a tragic historical design flaw at this point?
It seems to be Java orthodoxy at this point that one should basically never use public fields for object state. (I don't necessarily agree, but that's not relevant to my question.) Given that, would ...
9
votes
4answers
5k views
Difference between Web API and Web Service?
I have heard about Web Services and Web API's a lot, is there any difference between them or are the same?
9
votes
2answers
6k views
How do web API's work?
I have heard of many web API's like that of Facebook, Twitter, etc., which helps third party access data and manipulate it. I would like to know how a web API works. What are the basics of a web API?
...
9
votes
4answers
881 views
Evolution of the Win32 API
Has the Windows 32 API changed much over time? Does the Charles Petzold book "Programming Windows, 5th Edition" from 1998 still contain relevant information, or is most of it obsolete/outdated?
What ...
8
votes
3answers
135 views
How to document experimental or incomplete APIs like @deprecated?
Is there a good term that is similar but different than "deprecate" to mean that a method or API is in the code base but should not be used because its implementation is not complete or will likely ...
8
votes
8answers
598 views
Examples of Java APIs that demand an action sequence
As part of a research I'm working on, I'm looking for public APIs that only work correctly when you apply a certain sequence of actions on them.
For example, the java.nio.channels.SocketChannel ...
8
votes
4answers
566 views
How are undocumented functions discovered?
I've always wondered how do you find undocumented / private API ?
Example the Apple undocumented / private API, Play Station, Windows Phone 7, Win32 Kernel, Windows API, hidden callback, etc...
...
8
votes
3answers
316 views
How to do external API testing (blackbox)
Assume you are using APIs from a vendor, how to make sure their API is working as expected?
My main concern is sometimes the vendor pushed the changes to their code and break the API, we want to have ...
8
votes
5answers
849 views
Internal and external API architecture
The company I work for maintains a successful SaaS product that grew "organically" over the years. We are planning to expand the line with a suite of new products that will share data with the ...
8
votes
1answer
478 views
What API design for storing generic data in a more specific format?
for In the project I am working on we send messages about widgets over message queues, serializing them onto the queues as XML. The XML schema contains tags for properties that are common to all types ...
7
votes
6answers
342 views
What core principles would you want in a library?
Theres talk about what syntax and feature you like in a programming language; i'll now ask what core principles or feature would you like in a library in your favorite (or any) language?
An example ...
7
votes
5answers
554 views
Why use services (REST/SOAP) instead of a library?
Let's say you're looking at breaking up your applications into services. Are there any good reasons to adopt a SOA approach vs. just creating a library API that can be loaded by the applications that ...
7
votes
2answers
1k views
What ever happened to the Google AJAX Search API
I am looking to query the main Google search however all references including stackoveflow point to the Google AJAX Search API.
The odd thing is that it does not seem to exist any more not even a ...
7
votes
2answers
415 views
is there any point learning win32 in 2011?
I am 17 years old and have been programming in c# for around a year. I have some basic understanding of c but the whole win32 api is confusing to me at the moment. At this point in my life, do the ...
7
votes
1answer
238 views
How To Handle Login For An Unofficial API?
I am building a tool to access some data on a site (Fitocracy) and I would like to turn it into an unofficial partial API, as no official API exists.
If you are not logged in, you cannot get access ...
6
votes
8answers
420 views
What do programmers want in a web API?
I'm currently building a web API for popular piece of forum software (XenForo). What kind of things do developers find important in a web API? Are there certain architectures (REST, SOAP, etc.) that ...
6
votes
4answers
418 views
Should functions of a C library always expect a string's length?
I'm currently working on a library written in C. Many functions of this library expect a string as char* or const char* in their arguments. I started out with those functions always expecting the ...
6
votes
6answers
375 views
Should I continue teaching old Java input methods alongside the new ones?
I've been imparting a Java introduction course for several years. Some slides explain how to read from files and keyboard using BufferedReaders, InputStreams, FileInputStreamReaders etc.
I'm adding ...
6
votes
3answers
189 views
Does a mobile app need more access than the public API of a site?
I have a site with a public API, and some mobile app developers have been brought in to produce an iPhone app for the site. They insist they need to see the database schema, but as I understand it, ...
6
votes
6answers
3k views
How to learn an API
When I find some interesting project (e.g. on GitHub) I often would like to use it and try it out to see how it works, but if there isn't a good documentation or some kind of tutorial it's hard to ...
6
votes
2answers
246 views
REST API Library Conventions
Most API libraries define one method for each endpoint. If there is an endpoint for getting user information, you might have a method like:
getUserInfo(userId);
That simple method is often a ...
6
votes
4answers
172 views
best language/api for generating tones at a given frequency?
I'd like to write a simple keyboard program that plays in Just Intonation. I'm an experienced programmer, but I've never delved into writing an instrument before. In my (admittedly naive) thinking, ...
6
votes
2answers
140 views
event listener pattern in api - what should adding the same listener twice do?
In designing an API that provides an event listening interface, it seems there are two conflicting ways of treating calls to add/remove listeners:
Multiple calls to addListener will only add a ...
6
votes
1answer
283 views
Generate commerical license key for web service
Background
I have a business question regarding web-based software licensing. A number of web sites offer software as a service for various APIs. A good example is Google's Custom Search API. The ...
6
votes
3answers
539 views
Balancing dependency injection with public API design
I've been contemplating how to balance testable design using dependency injection with providing simple fixed public API. My dilemma is: people would want to do something like var server = new ...
6
votes
4answers
1k views
How best do you represent a bi-directional sync in a REST api?
Assuming a system where there's a Web Application with a resource, and a reference to a remote application with another similar resource, how do you represent a bi-directional sync action which ...
6
votes
2answers
308 views
Are there any C API explorers/browsers out there that include the GNU C Library methods and data structures?
I am looking for something similar to the Java API documentation, but for the GNU C Library.
I am trying to develop a simple server/client Sockets program but I keep getting lost in the different ...
6
votes
2answers
867 views
Good examples and best practices for writing Python wrappers around C APIs
I have an internal API, written in C, which I'd like to write a Python wrapper around it. The API is well structured: it has a few data structs and functions for each kind of struct, like this:
...
6
votes
1answer
189 views
REST API rule about tunneling
Just read this in the REST API Rulebook: GET and POST must not be used to tunnel other request methods.
Tunneling refers to any abuse of HTTP that masks or misrepresents a message’s intent and ...
6
votes
5answers
422 views
Learning about the Facebook Platform [closed]
I'm looking to learn more about the Facebook platform but I can't say I've found the IRC channel, the Facebook Developer Forum, or the online documentation very helpful.
Has anyone else recently been ...
