Live data from Hacker News

Pitchfork: Rack HTTP server for shared-nothing architecture

github.com

11–20 of 71 posts

Re: Pitchfork: Rack HTTP server for shared-nothing architecture

#11
I have now worked at several significantly-sized companies that ripped Ruby out of everything as they scaled, usually replaced with Go, though none as large as Shopify.

I wonder what that financial calculus looks like between these options for a large organization:

1. trying to basically reinvent the workings of an entire programming language and migrate your Ruby apps to these new tools/runtimes/typecheckers/whatever

2. incrementally rewriting critical paths to something more performant (Go/Rust) & just throwing more servers at the Ruby stuff you haven't managed to replace yet.

Re: Pitchfork: Rack HTTP server for shared-nothing architecture

#12
post #4

I’m still surprised that we haven’t seen much larger improvements in Ruby performance over the last decade given the large number of major tech companies using Rails. Yes, I'm aware of 3x3 but for the most common usage of Ruby which if for Rails apps - there hasn't been anything like the gains PHP saw from 5.x to 7.x. Especially from Microsoft, who has deep compiler/language expertise, and who owns GitHub (large Rail…

Howdy, I'm on the Shopify team that is working on both pitchfork and a few different performance-improvement projects for Ruby. There's a ton of activity around Ruby performance right now!

I think we're entering a period of increased experimentation and rapid evolution as demonstrated by projects like YJIT[1][2], improved inline caching[3][4] and Object Shapes[5] (also used by V8), and variable-width allocation[6][7], and smaller improvements like better constant invalidation[8]. Significant investments in TruffleRuby[9] are still going on by Oracle, Shopify, and other companies.

And recently, Takashi Kokubun gave a talk at Ruby Kaigi about the future of JIT compilers in Ruby that gives a peek at a whole new set of optimizations Ruby can work on (as well as some performance comparisons against other interpreted languages)[10]. You may be surprised to see how well Ruby (with the JIT enabled) performs compared to Python 3.

All of which is to say, I think there's quite a bit of performance improvement being made in recent Rubies, and that trend will likely continue for quite some time.

update And I forgot to mention that some very notable computer science researchers and their teams are working in the Ruby community now![11]

[1]: https://news.ycombinator.com/item?id=28938446) [2]: https://speed.yjit.org/ [3]: https://bugs.ruby-lang.org/issues/18943 [4]: https://bugs.ruby-lang.org/issues/18875 [5]: https://bugs.ruby-lang.org/issues/18776 [6]: https://bugs.ruby-lang.org/issues/18045 [7]: https://bugs.ruby-lang.org/issues/18634 [8]: https://bugs.ruby-lang.org/issues/18589 [9]: https://eregon.me/blog/2022/01/06/benchmarking-cruby-mjit-yj... [10]: https://speakerdeck.com/k0kubun/rubykaigi-2022 [11]: https://shopify.engineering/shopify-ruby-at-scale-research-i...

Re: Pitchfork: Rack HTTP server for shared-nothing architecture

#13
post #4

I’m still surprised that we haven’t seen much larger improvements in Ruby performance over the last decade given the large number of major tech companies using Rails. Yes, I'm aware of 3x3 but for the most common usage of Ruby which if for Rails apps - there hasn't been anything like the gains PHP saw from 5.x to 7.x. Especially from Microsoft, who has deep compiler/language expertise, and who owns GitHub (large Rail…

Howdy, I'm on the Shopify team that is working on both pitchfork and a few different performance-improvement projects for Ruby. There's a ton of activity around Ruby performance right now! I think we're entering a period of increased experimentation and rapid evolution as demonstrated by projects like YJIT[1][2], improved inline caching[3][4] and Object Shapes[5] (also used by V8), and variable-width allocation[6][7]…

Do you think Ruby will ever be able to catch up to PHP in raw web performance? If so, when (months/years)?

https://benchmarksgame-team.pages.debian.net/benchmarksgame/...

Please don't take my comments as unappreciation for the hard work going into Ruby.

Re: Pitchfork: Rack HTTP server for shared-nothing architecture

#14

I have now worked at several significantly-sized companies that ripped Ruby out of everything as they scaled, usually replaced with Go, though none as large as Shopify. I wonder what that financial calculus looks like between these options for a large organization: 1. trying to basically reinvent the workings of an entire programming language and migrate your Ruby apps to these new tools/runtimes/typecheckers/whateve…

Probably not a financial decision.

Tobias (Founder/CEO) was an early Rails core contributor. So Ruby on Rails is in Shopify DNA.

Re: Pitchfork: Rack HTTP server for shared-nothing architecture

#15

I have now worked at several significantly-sized companies that ripped Ruby out of everything as they scaled, usually replaced with Go, though none as large as Shopify. I wonder what that financial calculus looks like between these options for a large organization: 1. trying to basically reinvent the workings of an entire programming language and migrate your Ruby apps to these new tools/runtimes/typecheckers/whateve…

A lot of the time, I ask myself, "why don't we seem to have a tool with robust source-to-source transformation?" You could call it "cross-language refactoring". I wouldn't be surprised if someone with the code-base the size of Google has some internal tool. Maybe this is just wishful thinking. The closest thing I've seen is in academic research, e.g. [1].

[1]: Koppel, Solar-Lezama - Incremental parametric syntax for multi-language transformation (2017) - https://dl.acm.org/doi/10.1145/3135932.3135940

Re: Pitchfork: Rack HTTP server for shared-nothing architecture

#20

Earlier quoted context omitted.

Howdy, I'm on the Shopify team that is working on both pitchfork and a few different performance-improvement projects for Ruby. There's a ton of activity around Ruby performance right now! I think we're entering a period of increased experimentation and rapid evolution as demonstrated by projects like YJIT[1][2], improved inline caching[3][4] and Object Shapes[5] (also used by V8), and variable-width allocation[6][7]…

Do you think Ruby will ever be able to catch up to PHP in raw web performance? If so, when (months/years)? https://benchmarksgame-team.pages.debian.net/benchmarksgame/... Please don't take my comments as unappreciation for the hard work going into Ruby.

Which part of raw web performance? These don't seem like web performance benchmarks. IOW I'm not sure how calculating digits of PI impacts serving HTML.

Seems like we need benchmarks for actual web workloads. :)

Post reply on HN