I used to give demos of the Swing version of this app 15 years ago, and people would try to convince me that my app was written in C, because a Java app can't run that fast. Those were weird conversations. I'm not even that clever - I just try to write simple code.
Not for me. They're starting up long, UI is laggy. In comprasion to native IDE like Qt Creator they're really slow.
Fortunately, CPUs have caught up with Java, eventually :)
"Well, it's written in Java, so desktop app probably lags as much. So title does not lie (2001)"
I don't know how you use Firefox and Chrome (I use both in work) but they behave pretty much identically as far as I can tell, once ads and other crap have been blocked.
The only difference is Chrome is snappier on Google sites and seems to use double the memory to open the same tabs.
FF's is not.
Some optimizations are better in SpiderMonkey than in v8, some are worse. Unfortunately, whenever a web developer optimizes solely for v8/Chrome, this hurts Firefox.
I'll freely admit that i'm guilty of the "develop for chrome, test in firefox" kind of workflow, and I really want to improve on that. I feel like I have built up a kind of "intuition" about what works well and what doesn't over the years in chrome, and i'd like to start building that up for other browsers.
All I know is that I build an app as I think makes sense logically, and 100% of the time it runs faster / less hot in Chrome.
JS-heavy apps burn thru CPU cycles far more on FF than in Chrome.
I want to use FF as my daily driver, I really do. But it's real-world performance just doesn't cut it for me, and I don't think you can blame that on people "solely optimizing for Chrome", as V8 was a better engine at the moment of release, when nobody had had a chance to optimize for it.
Real-world JS was already in production when V8 was released, and it had orders of magnitude better performance at the time.
There's really no good solution to this because the kind of performance tuning we're talking about explicitly pierces veil the VM is supposed to provide. You're pretty much always going to target the internals of one particular engine. So what this means is that anyone working on a competing engine not only has to provide the same behavior but also the same performance profile because it's something that JS devs expect to be there now.