There are three separate concerns in your app.
User interface. If it's web-based, it's HTML + JavaScript, or some language that efficiently compiles to JavaScript (there are a few). The UI is likely not excessively sophisticated (e.g. way simpler than Gmail), so you can pick any framework you're comfortable with.
A web server part. This part receives HTTP requests from the UI and sends them to the engine. This is likely not very complicated, too, and can be implemented in any language you're comfortable with, e.g. JavaScript (Node) may be fine; endless options exist.
The chess engine. This part receives moves (in whatever format you consider convenient), generates moves, keeps the position on the board and time, etc. What do you need for that greatly depends on your requirements, ambition, resources at hand, etc. I'd take a high-performance, statically compiled language for that. There's a wide choice; off the top of my head, I'd consider OCaml, Go, Java, C#, Rust, D, and even C++ if I were an expert in it. All of them provide good, or at least decent, data structures for efficient computation, including some down-to-bit-level calculations you mentioned. You could consider using OpenCL or CUDA for parts of your computation that afford parallelization of such type.
If all you're looking for is a proof of concept and / or study, then Python, or any other easy-to-inspect, dynamic language might be more suitable. You will lose a lot of performance (though numpy, numba, and cython may help in certain places), but you'll have much easier time watching how the insides of your engine work. It will definitely help to write a better next version.
As you see, the three parts are all relatively independent. If I were you I'd start with the engine, with the crudest interface (reading / writing text strings), would wire it up to a web server eventually (again with the crudest, simplest possible static HTML forms), and after that would work on a nice UI.
Chances are there are nice UIs for open-source chess programs already; maybe some of them could be reused, partly or even whole. But without an engine a UI is sort of pointless. I'd not start with it.
int
will not be as fast as native 64-bit ints, even in Python 2, because of overflow checks); if your goal is performance, you will not get it with either language. To use 64-bit integers in JavaScript, it is typical to use a library which offers them.~~x
orx|0
, which JavaScript JIT compilers are very good at optimizing.