Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One aspect of chess that's really interesting is UCI which stands for univeral chess interface. It's a simple protocol that all engines "speak" and almost all pieces of chess software support. Chess players tend to collect engines that are good at certain things and then use whatever UX they are most comfortable with. At least in the past before Stockfish became so dominant.

The chess community in general is pretty technical. lichess.org is an absolute marvel of a website. It's full of brilliance and it's all open source. Interestingly it's computer analysis feature went through a notable progressions of approaches:

First it was server sided stockfish. Later they compiled stockfish via emscripten to .js so that analysis could run locally. This recently became PNACL for speed and finally even more recently WebAssembly for portability. Pretty cutting edge for the community of such an old game!



It's a community that knows low level CS/AI well. The chess programming wiki [1] is quite the knowledge hole for everything from bit twiddling hacks to obscure search algorithms.

[1] https://chessprogramming.wikispaces.com


Interesting, lichess server-side is written in Scala, but client is straight js/jquery. I'd think they'd switch to Scala.js at some point, but if it works as is maybe no need to change anything...


I'd be surprised if they did use Scala.js. It's not even at 1.0 yet and I imagine the ecosystem surrounding it is a tiny fraction of vanilla JS.


Scala.js has been stable for quite some time (0.6 is effectively 1.0 but author has been holding off on giving the 1.0 blessing). Ecosystem is indeed tiny compared to vanilla JS, but aside from Typescript what alt-js project's ecosystem isn't miniscule?

The value proposition of Scala.js, GHCJS, Bucklescript, etc. are static types, 2-way interop, and all the features of the host language representable in javascript (which is incredible).

Lichess' approach works quite well, I have no issue with jQuery on the client while doing the heavy lifting on the server; not everything needs to be a 20MB SPA.


Wow, WebAssembly! I knew that Stockfish was really technical, and I spent some time looking at its source. But I did not know (even though I used to regularly use it) that lichess was also open source and that the chess community was also bleeding edge.


UCI is undocumented for the most part... Or was that the ICS protocol? No clue, it's been a while. Everyone learns it by taking to other people.



It was ICS, not UCI, oops.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: