Acre - Frequenty Asked Questions

What scripting languages does Acre support?

The only language supported by the Acre platform for server-side scripts is Javascript, running in an environment that contains the standard Javascript APIs plus Acre-specific APIs.

Why Javascript? and why on the server side?

We believe Javascript to be a wonderful language for writing web applications for several reasons:

  1. most web developers know Javascript, even when they don't think of it as a powerful dynamic language. AJAXy applications, modern/powerful/fast browsers and advanced libraries (such as jQuery) are continously improving this situation.
  2. the entire Freebase web service API design is based on passing JSON objects around
  3. having a javascript environment both on the client and on the server dramatically simplifies the marshalling of data in ajaxy applications
  4. many javascript libraries can be used both unchanged both on the client and on the server (depending on the needs for the app)

Moreover, running on the server side allows applications to be crawlable by search engines or more easily mashed with other web apps, although it's entirely up to you to decide where your logic should run, if on the client or the server or both.

Will Acre support other scripting languages in the future?

There is no plan to support other scripting languages at this time.

Can I host any application on Acre?

The Acre Terms of Service prohibit the use of Acre as a general-purpose application hosting service and limit it only to applications that make use of Freebase data. Acre was designed as a way to enable the Freebase community to build data-driven application, not as a competitor to general purpose hosting services. We have no interest in providing hosting services for general-purpose apps and our platform's features and design reflect that.

Is there a limit to the amount of traffic my Acre apps can serve?

The Acre Terms of Service specify that your application can serve up to 100k requests per day. This should serve most purposes.

What language is Acre written in?

The Acre server is written in mix of Java and Javascript. The Acre App Editor is written in HTML, Javascript and CSS. The modification to the Java Virtual Machine that implements resource-limited threads is written in C. The testing infrastructure is written in a mix of Python and Javascript.

Is the code to the Acre engine open source?

No, not at this time; we are not against the idea, but we have no compelling reason to do so. If you do, let us know.

How fast is Acre compared to XXX?

Performance comparisions between different application servers is hard but our tests show that Acre can easily serve 100 req/sec trivial scripts (that just write a string to the output and exit) with 95% of them finishing under 500ms.

Obviously, performance changes dramatically the more the scripts make calls to the network and wait for the results, but our test show that under normaly operation Acre is almost always limited by network I/O.

Is there a way to make my acre app run faster?

Yes, you should version your app by clicking on the application name on the top left of the Acre App Editor and click 'add version'. Versioned apps are frozen in time and Acre is capable of executing them without having to check constantly if the files have been updated or not. When apps are versioned, Acre doesn't have to do that check for every request and perceived performance for simpler apps is considerably faster. But if your page makes a lot of network calls and urlfetches, you won't probably feel much of a difference anyway because the network I/O is what will bound the execution of your app.