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

Cloudflare

In case anyone is wondering how highly performant / scalable LuaJIT is - Cloudflare was built on top of LuaJIT for the first ~10 years of it's existence and it's only been in the last couples of years they have begun to use Rust.

https://blog.cloudflare.com/tag/lua/



and they don’t now for good reason. Lua and LuaJIT are terrible to work with.


> "LuaJIT is a cool thing. Helped us a lot. But not everything remains the right thing forever."

Posted only 11 months ago by Cloudflare CTO

https://news.ycombinator.com/item?id=32869567

Cloudflare was already operating a scale and as public company, when they were running LuaJIT.

Chances that you'll operate at Cloudflare scale is like 1:Billion.

Sounds like Cloudflare was quite happy with LuaJIT.


Of course they would. It’s called saving face.

They got lucky, choosing a niche language and a massive amount of tech debt as their primary technology stack.

But in the end, Cloudflare is one company. Who gives a what they did?


I don't know about you but a 3x performance increase going from a scripting language with fast iteration times to a programming language that has long compilation times plus a borrow checker is hardly worth the risk of a rewrite to the average company.

Add on top the fact that one of the performance problems was interfacing nginx with luajit, aka there are two unnecessary memory copies.

When I think about these things, I'm thinking cloudflare was lucky enough to outgrow lua rather than being lucky to have gotten away with luajit.


I like Lua the language, but why is it and LuaJIT terrible to work with in your experience?


I haven't looked at LuaJIT, but Lua is written in this weird bastard language using the C preprocessor. All of the terseness of Lisp, with no type system (since it's the C preprocessor), and the added fun of pointer arithmetic.


Would you mind elaborating on this? I'm perusing the source to try to make sense of this comment and all I see is... C.



Are you referring to Lua, the language?

Or its implementation details (written in C)?

If the later, how does that make Lua, the language, bad?


I'm criticizing the implementation.

I have no complaints about the language (other than arrays starting at 1). I'm just salty because other people have said the implementation was really clean C, so I decided to spend a week porting it to C#, and I gave up. I could not figure out how closures were actually implemented, and I spent a day trying to understand it.


That weird bastard language is called C. It's really easy to hack on the lua codebase, either adding stuff to it or using it as the base for other languages. Provided you can read C, anyway.

Luajit has a really complicated build process. I'm more nervous about changing that codebase.


I would be more concerned about the high percentage of assembler than the build process.


Your opinion is not universal.




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

Search: