Friday, 31 March, 2017 UTC


Summary

At Algolia, we are always pushing the boundaries of search. Today is an important day for us as it marks the official release of our 11th API Client: the CSS API Client.
CSS is an awesome language. It only takes you a few years of practice to be able to style a minimalist website in a matter of days.
Lately, we’ve seen more and more discussion about its place in regards to JavaScript. One side thinks that CSS and JavaScript have very different goals, and should be kept in separate parts of your code, to have a clearer separation of concerns. Others argue that one cannot live without the other and that CSS should be inlined directly inside JavaScript.
At Algolia, we’ve decided to take a stance to stop this never-ending debate once and for all. We came to the conclusion that both sides were wrong, and that CSS was a language so powerful that you do not actually need any JavaScript.
That’s right: we decided to get rid of JavaScript altogether.

JavaScript: 1993-2017

Look, JavaScript is an impressive language. We even considered rewriting our whole engine with it at some point. JavaScript is asynchronous, so it is fast by definition.
Unfortunately, the language is not mature enough for us. A new version of it is released every year, which shows how unstable it is. On the other hand, CSS3 was released in 1998, without any new version since then. We think it sends a clear signal that CSS is the mature and stable tech.

CSS: superiority through simplicity

CSS also has none of the features that bloats other programming languages. It has no conditions, no loops, no functions and no regexps. It is pure. You can write concise selectors like #class.id:not(:checked) + a blink:nth-child(2n+1) that clearly expresses your intent at first glance.
We’ve exposed our entire search engine using just CSS, and you can try it live.
Seriously, it actually exists. It’s typo-tolerant, handles synonyms, highlighting, faceting & more.
Try it live!

A truly offline search for your web browser

The best part of the client is that it works offline. There are no actual requests done to our servers, everything is directly handled by your browser. It means that once you’ve download the initial CSS file, you can unplug and search away. That’s what we call Offline Search!
No call to the API also means that you have unlimited operations. You can search all day long in the same 100 records, and it won’t cost you a cent. Every request being handled by your browser means that you are now using your 8 cores at their maximum potential. We’ve actually started shutting down 2/3 of our datacenters because we are anticipating a much lower load thanks to this CSS release.

One API Client to rule them all

You know the saying: “Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away”. So, we removed a lot of features.
You won’t need data instantly replicated all around the globe to reduce latency because the data now lives in your browser; you can’t get any closer than that.
At Algolia, we also take great pride in having extensive documentation and code examples for all our API clients. We’ll remove those other clients, obviously, because we know you won’t need any other API client than the CSS one.
We are so confident in the quality of this release, that it will work flawlessly, everywhere, every time, and that there will never be any bugs, that we decided it’s no longer necessary to offer support for it. This shows how committed we are.
Finally, because there are no calls to the API, we decided to remove Analytics and the 99.999% SLA from our services. It was a hard decision to make, but when we weighed the pros and cons, it was clear that we needed to remove all the features that didn’t bring any value. Instead, we added support for flexbox.

Next Steps: CSS Everywhere

This whole experiment opened our eyes on a brand new world. We’ve already starting working on our new Machine Learning processing pipeline in CSS. Stay tuned!
Try our new CSS API Client live
The post Goodbye JavaScript: Introducing our CSS API Client appeared first on Milliseconds Matter.