Scaling?

lol I posted this to a message board talking about which language is better for scaling an application, PHP or Java? I posted this reply, and wanted to copy it here before the message board and time washed my wisdom away.

Whoops! No one reads this blog, either …so mission failed. Oh, well. 😉

Ahem.

It has always stuck me that scalability has several dimensions, and we tend to concentrate on the “scaling to load” dimension. But there’s also the “scaling to complexity” dimension. As a system matures, it will gain more features and complexity, and my feeling is that Java has an edge there, because of features like “programming to interfaces” and type-safety: the compiler will enforce code contracts and help you manage the system as it scales in complexity.

Another dimension that @Desmond mentions is scaling the size of your team — my feeling is also that it’s easier to have a larger team working in a statically-typed language because of the compiler guarantees. …That said, you can write bad code in any language.

On the “scaling to load” question, as long as you’re adhering to good architectural principles like avoiding server affinity and allowing replication and horizontal scaling, the question of which language is more neutral. Then it’s just a matter of how many dollars does it take to build out hardware, or buy software licenses for supporting infrastructure, and I admit I don’t have a good feel for the numbers on that.

My experience is that scaling your persistence layer for load is a much harder problem than scaling your application layer.

Advertisements

Leave a comment

Filed under computer architecture, opinionizing

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s