For Startups, My Two Cents on Programming Languages

Php, Perl, Ruby, Java, or .Net. Many startups kickoff with one or two engineers and will often pick 'the best' technology stack, or just the one that they want to work on. The latest greatest framework.

It's my blog, so I get to be biased. I've seen about two dozen different startup environments. Not a huge number, but not a small number either. So my opinions are largely based on what I've seen these startup environments morph to after one or two years of development.

First, if you're building a product that's interfacing with native Windows systems, then you should probably be looking at a .Net architecture. Otherwise, my preference is the open source languages because of the infrastructure and licensing cost savings.

I vote a thumbs down on PERL as a web development framework. The language is very powerful, particularly for small projects, scripting, data processing, and even lightweight analytics. However, for web applications that tend to have larger code basis, I think there are better platforms. I've seen very large PERL code basis on the order of 1M lines of code. Ugly. That's all I can say. If you're strong enough to do PERL, then move over to Java and follow a framework so that others have a chance to build off your programming.

Ruby? Quite honestly, I haven't reviewed enough large sites using it to weigh in on this relatively new language. If you're a fan of Ruby, make sure you have a good understanding on where you'll find other Ruby programmers.

Python has been around awhile, but I know relatively few programmers that list Python as their top language. Same rule applies to Python as Ruby.

My general preference is Java (more on this next), but if the startup team is more design oriented and not from a traditional programming background, then I would recommend Php. Java is great for software programmers but if the development team doesn't have a strong Object Oriented background, then the resulting code will probably be a mess. A design oriented team might as well stick with a RAD environment like Php.

Why Java then? I could list several reasons; a very powerful IDE (Eclipse), a choice of app servers (open source and commercial), lots of web development frameworks to choose from based on your application needs.... But the most important reason is scalability, not processing scalability - I mean resource scalability. Most startups begin development work with a very small team and often with one (or a few) really fast experienced programmers. These developers pick frameworks that enable them to do rapid, agile development. When they need to add new development resources, they can find people that are familiar with the chosen frameworks and the new programmers can use the frameworks as a guide to learn the application specific presentation, logic, and data access patterns.. When the Founders need to upgrade their implementation in a specific functional area, they can apply standard refactoring methods to the appropriate areas of code.

This is not to say that this can't be done in other programming languages. It can. But in my experience, the combination of the OO background of Java architects, and the tools, frameworks, and standards in Java facilitate resource scalability.
continue reading "For Startups, My Two Cents on Programming Languages"

Choosing A Development Platform For Your Startup

Are you a Linux guy or Windows? Java, .Net, or LAMP? Or are you a Ruby gal?

These questions dominate the early discussions in a startup's technology. Yes, this is a very important question because once you start investing in a development platform it becomes costly and complex to switch or even upgrade. So for a startup, choosing the development technologies is pretty much a permanent decision unless or until the startup matures and needs to or can afford to do major technology upgrades.

Some (very) basics on platform choice:

1) When the Business Entrepreneur or VC selects its first technologist, they are pretty much selecting the Startup's technology platform. For the most part, technologists will choose platforms based on their expertise.

2) The Startup CTO should give some thought on technology platforms for the simple reason that technologies that they have expertise in may not be what's best for the business.

3) Picking the wrong technologies can inhibit growth. Startups that choose to be early adopters of a technology platform (including frameworks, libraries, etc.) may lose critical development cycles dealing with 'beta' issues. Picking outdated approaches may inhibit the Startup's ability to release competitive features.

4) Startups need to keep thinks simple (KISS). Too much technology can slow you down.

Most *unbiased* technologists today will tell you that most web based applications can easily be developed in any of the platforms I listed. Under certain circumstances, some of these platforms will have inherit advantages. Open source platforms tend to have lower startup licensing and hosting costs. Web applications that need to integrate with native Windows systems/applications are probably better built in .Net. Some will argue that developers can produce applications faster using LAMP (PHP, PERL, or Python) or with Ruby. Object Oriented purists that want to be 'vendor neutral' opt for JAVA. These are complete generalizations and I can point to many examples that counter them.

So how important is the development platform then?

My simple answer is - it is very important - but not from a pure language dialect, performance, or ease of development perspective. Talk to an expert in a platform and they will have an arsenal of reasons why their language of choice is superior and how to avoid or circumvent any deficiencies.

On the other hand, the choice of development platform is very important in terms of the overall product development process and operational management of the company. I will elaborate in an upcoming post.
continue reading "Choosing A Development Platform For Your Startup"
Share

About Isaac Sacolick

Isaac Sacolick is President of StarCIO, a technology leadership company that guides organizations on building digital transformation core competencies. He is the author of Digital Trailblazer and the Amazon bestseller Driving Digital and speaks about agile planning, devops, data science, product management, and other digital transformation best practices. Sacolick is a recognized top social CIO, a digital transformation influencer, and has over 900 articles published at InfoWorld, CIO.com, his blog Social, Agile, and Transformation, and other sites. You can find him sharing new insights @NYIke on Twitter, his Driving Digital Standup YouTube channel, or during the Coffee with Digital Trailblazers.