• BURN MEDIA
    • Memeburn
      Tech-savvy insight and analysis
    • Gearburn
      Incisive reviews for the gadget obsessed
    • Motorburn
      Because cars are gadgets
    • Jobsburn
      Digital industry jobs for the anti 9 to 5!
Coding-Primer

Primer: Programming languages & databases. Which is best for startups?

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.

Martin Carstens: Senior reporter
Martin is obsessed with technology and the future. His work life includes positions at UK based Hotcourses.com, Discovery Invest and currently, Memeburn. More

Advertisement

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.

Databases

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.

  • Kyle

    Hey, great article.
    Maybe just a small correction to your point on Stored Procedures missing from MySQL; we have them too! http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html
    Kyle

    • http://twitter.com/martincarstens martin’

      That’s rather brilliant, I see they’ve been added since version 5. I’ve amended the post,  thank you Kyle.

  • Php

    php (no framework) and mysql is the fastest development environment. use third party libraries instead of reinventing the wheel. use classes too. MVC is not essential. get the product out as fast as possible then improve it iteratively.

  • Pingback: Latest Web Programming News | Creating for the Web()