According to the TIOBE index you’re more likely to overhear a Java, PHP, Python, Perl or Ruby developer riffing on an idea for a new web startup, than, let’s say, a PL/SQL developer.
Programming languages are developer community argots. To me, the lesser-known lexicon of Oracle’s PL/SQL has been a subject of study for quite some time. I love it. Far beyond its corporate pedigree, I’ve seen it being used to build an online music store, course search database and microblog.
Perhaps I’m partisan, then again, perhaps so are you. But, despite being part of disparate developer communities, we are all united by a common thread — something worth considering when you’re thinking about creating an internet startup. Let me explain.
Every time you submit a form, or load a WordPress blog for example, text is inserted into or loaded from a database.
Regardless of which programming language we speak, we generally conform to three major data storage and retrieval systems: MySQL, Oracle and Microsoft SQL Server. There’s the NoSQL movement, but while we watch its ebb and flow, relational databases are still king. Adam D’Angelo from Quora even ventured that NoSQL is a “fad”, while others such as Twitter’s Kevin Weil and Instagram’s Mike Krieger have lauded databases such as HBase, Cassandra and CouchDB for certain usecases.
This article isn’t about NoSQL versus SQL though, but if you’re interested in reading more about the debate, this is a good place to start.
If you’re wondering about which database to choose, a relational database such as MySQL, Oracle or SQL server will probably be perfect — put thinking about NoSQL on ice, at least until scale demands you have a closer look at it.
Web startups usually go the Open Source route with MySQL. It’s a cost-effective solution and with some effort can be scaled to the size of Wikipedia, who in 2008 were receiving over seven billion page views a month on MySQL installs.
When should a startup invest in Oracle or SQL server — more complex, feature rich databases that scale better? Simply, if it can afford to. Oracle licenses are expensive and so are its developers and database administrators. An Oracle license starts at US$5 800 per number of CPUs on the server. Enterprise Edition starts at US$47 500. There’s also Oracle XE, a free starter edition to play around with, but it has limitations. If your company growth eventually conflicts with its limitations, you’ll have to shell out for the paid versions.
What do you pay for? Support, features and analysis tools you’ll probably only need when your database grows to be really, really large. Some features are deal-breakers though. Unlike MySQL for example, Oracle is big on data integrity and enforcing data relationships through foreign keys by default.
Perhaps my history as a database developer means I’m biased, but picking a database is an important decision. It’s right up there with choosing your hardware platform and hosting service.
Pick a language, any language
These days you can bootstrap your startup with many great CMSes. Depending on which you choose, you will be forced to work with a particular platform. Choose WordPress and you’ll work with PHP and MySQL. Choose Plone and you’ll be using Python and a NoSQL database.
What if you’d like to start from scratch? Which language should you use then? One you’re comfortable with. Chances are it already employs hooks into one of the major relational databases. I’ve used PL/SQL and PHP with both Oracle and MySQL and have dabbled in using Ruby (on Rails) with MySQL.
There’s definitely a database bias with each language. PHP and MySQL goes together like peanut butter and jelly. ASP and SQL Server are two sides of the same coin. Java? Some say Oracle, some say SQL Server. Keep this in mind, as developer support is often more readily available for popular combinations.
The Oracle Corporation owns Oracle, MySQL and is developing a NoSQL solution, so you’re in good hands when choosing one of its databases. If you’re all about Microsoft, SQL Server should be right up your alley.
1. Choose a database. 2. Choose a hosting platform. 3. Code in a language you love.