mrjoelkemp
And we haven't even spoken about an app-aware repl that lets you manipulate/inspect your running app (even in prod). There are so many game-changing layers in this stack. It's hard to beat once you've explored it.
Very happy customer here.
In high-traffic environments, that ignorance punishes you. I've always felt Java and the JVM are of the mindset that you need a Ph.D. to even understand how it works or how to configure it, and if you can't get it, then you're just a bad programmer.
You need to know if you're blocking threads, if there's memory contention, and if libraries you pull in are using the forkjoin common pool (which you're likely using as a default threadpool). And when something blows up, finding the reason (even for any of the above issues) is really tough. You can use flight recorder, heap dumps and gc logs all day, but good luck navigating it all unless you're a genius. I've seen too many devs end up shrugging and hoping the issues are transient.
Even figuring out proper threadpool usage isn't straightforward. Look at the number of concurrency abstractions just to model concurrency in your system: https://www.youtube.com/watch?v=yhguOt863nw. It's ridiculous.
Lots of large tech companies "seem" to "make it work." But if my experience is at all similar, they're just relying on a handful of Ph.D.'s to hold the hands of the rest of the company when it comes to troubleshooting.
Part of the reason I fell in love with Elixir/Erlang and the BEAM is that it provides a simple (actor) concurrency model (with a single concurrency primitive, a process) and guardrails (time-slice scheduling) to prevent libraries from shooting you in the foot. OTP's observer makes finding bottlenecks a breeze.
For the web, taming concurrency feels way more important than any cpu-crunching perf gains the JVM can give you. I'm too stupid for the JVM; I'll stick to tools that take away numerous categories of complexity and get me closer to mastering my system.
And compared to Node, the BEAM is a godsend in terms of its non-blocking process scheduling and fault isolation. A single uncaught exception in Node and kaboom. Plus, if you do anything cpu intensive with Node, your app stalls. In the BEAM, infinite loops are even fine due to time slice scheduling.
Open source actually hinders teamwork
Giving better code reviews
This has been fixed. Thanks for trying linklink.
Show HN: LinkLink – deep link to almost any website
Ask HN: Why do you star GitHub repos?
Serious question. Issuing a star means different things to different people: bookmarking, encouraging, doing a favor for a friend, publicizing, and more I'm sure.Why do you star?
YA: A no-hassle, front-end build tool
JavaScript: An Exploration of Prototypal Inheritance
OSX open current terminal directory in finder
In the terminal, type 'open .' to open the current directory into a finder window.
Backbone.js Declarative Events
ShowHN: Facebook style mentions for Backbone apps
Large-scale JavaScript: A monolithic service layer
Developers vs. Engineers
I think the end of your comment should be shared with others; for those that are eager to try, but not fully aware of the consequences of client-side rendered apps.
I'd like to include your statement somewhere in the post to further emphasize the point; I hope that's okay. Thanks!
I had the rare opportunity to re-imagine the profile app in the context of another app that was being built from scratch and went with the server-rendered approach.
The phantomjs approach is totally valid. Thanks for reading!