Why Python is perfect for startups | Opensource.com

Why Python is perfect for startups

Posted 12 Dec 2013 by 

Rating: 
(12 votes)
Python for startup and small businesses
Image by : 

opensource.com

submit to reddit

So you have a great business idea for a wonderful IT product or service, and you want to build your high tech startup around it. Having the idea is a great start, but you will have to build an IT solution/service to get your business off the ground; be it a website, software solution, social network, or mobile app. Which programming language to choose to write these IT products is always the question to get the startup going on a reasonable budget.

The truth is, you can write a great product in any language, if you know what you are doing. And when users are looking at a great product they really don’t know which language was used to create it, or how much code it took, nor do they care. But when it comes to time and budgets, there are unique situations, like getting a startup off the ground, where the choice of a programming language can make a difference between success or failure.

Startup Specifics

How are startups different from other projects? Startups at the beginning of their journey are usually broke. Fifteen to twenty thousand dollars are budgets they often work with, but in the world of IT that may not be always realistic, unless you pick Python. The second standout feature is that startups don’t have a lot of time on their hands to convince partners and investors in the potential of the project. Third, they have to start making the product work immediately in order to survive and make their first money. And, as you will learn next, startups are almost always complex undertakings, adding fuel to the fire.

Real Life Example

OpenERP, an open source enterprise resource planning software is written in Python. Because of the simplicity of the language, it helped drive the costs down and make the product attractive to small and medium startups. Modules are developed around editing Python files, which makes them easier, more flexible, and faster not only to develop but to use. Because of Python’s succinct nature, the download size of OpenERP’s distributive archived is only 6MB. As you can see, an irresistible product was created which soon gained popularity with many users.

Complex Projects

Typical startups like media streaming projects or social networks are almost always web-based, and the web is driven by big data, be it video streaming of horror flicks or social networks for dog whisperers. Python is the language to tackle complexity. It is also ideal for web solutions. Integrating two systems together would usually take a lot of effort, but the simplicity of Python’s philosophy helps overcome this issue. This language is also a winner when it comes to scalability. For startups, it is important to catch the wave of success while it lasts and if you can grow the business as you please, it can spell out good things for years to come.

Proof of Concept and Working Prototypes

Python offers ready solutions for big projects. Sometimes it is easier to write something in Python and rewrite it later in another language, if necessary. This give the startups the most valuable gift they require: time. Often trying to make a startup work is like being stuck in limbo—you are heading to a really good place, but you are not there yet. So the faster the startup reaches the other end of the rainbow, the better. Python is a language that is great for writing prototypes. It doesn’t require much time and the working prototype is already there, while other programming languages can take too long to do the same. Through a prototype, it is easy to see whether the business idea really works or not, and can really save the startup a lot of trouble further down the road.

Real Life Example

Dropbox, a famous file hosting service, was started by Drew Houston because he kept forgetting his USB memory stick as a student. He began the project for his personal needs but because the product was so good, others began using it. Dropbox is written in Python, so a prototype was created instantaneously, and soon funding was secured. In October 2011, Dropbox had 50 million registered users. In November 2012, the number of users reached 100 million.

Easy Code, Small Team

Python is an effortless language that allows programmers to write proof of concept 'with their eyes closed'. You don’t have to gather a huge team of designers and developers to have a solid product on your hands. This gives startups a chance to try different ideas and see them work in action. A working prototype is something that can give them a great boost of confidence, and a passion to move forward, despite the exhaustion.

Real Life Example

Sometimes great projects begin when people are disillusioned with an old way of doing things. Similarly, Adrian Holovaty and Simon Willison were fed up with using PHP for building large websites, and became passionate about Python through a book Mark Pilgrim called Dive Into Python. Python tools for web development did not satisfy them either though, so they created their own, which later became the foundation for Django, a well-known free, open source web app framework that is easy-to-use and developer-friendly.

Easier Investments

When you have a working system, all you have to do is fix bugs later and get investment quickly. Startups are nothing without investors and their donations, so it is extremely important to show them what the product is all about. No matter how big a gap in the make you find or how loud the online buzz you create becomes, if you don’t have the investors on your side, the project will stay where it’s at. 80% of the time proof of concept is only used to convince investors and is not used further in business. So the less you spend, and the faster you get it, the better.

Real Life Example

Other very different, yet excellent products written in Python include BitTorrent, a peer-to-peer file sharing software; Cocos2d, an open source 2D game framework; Reddit, a social news and entertainment website; MyPaint, a free, open source raster editor for digital painters; MoinMoin, a wiki engine for creating public wikis (used by Ubuntu and Apache, among others); Mercurial, a cross platform, distributed revision control tool for software developers; and many others.

Read more in this summary of Jessica McKellar's presentation on Python in the enterprise.

Faster First Money

With startups, you have to get to the market and start making money quickly, otherwise the project may flop. Because Python is as fast as lightning, the profit return is faster if you also develop and support your startup in Python. The profit will also be bigger, because the initial spending was lower.

Good Support Team

Python was created and is driven by enthusiasts. Good custom support allows the product to be of stable high quality, and you know how detrimental even a small flaw or a crash can be. If you chose Python support, you will enjoy quick response rates, fast resolutions of technical issues, open mindedness and passion of professionals who are the biggest fans of their product.

Once I needed a consultation on PythonWin. I wrote to Mark Hammond, the creator of the PythonWin add-on, without much hope for an answer. To my surprise, it took Mark just a few hours to answer and his comments allowed me to realize interaction between C++ and Python with the help of COM. That’s what they call democracy!

Why Python for Startups

Startups are the kinds of enterprises that have to strike while the iron is hot, because the competition is fierce and your moment to shine will not last forever. Python allows you to have a working, complex product in one or two months, with the help of a team of one or two people. You spend 15-20 K, and can get proof of concept or even a working prototype straight to investors to get the funds you need so desperately. You can start making money now and build the reputation of your business with the help of excellent support. Learning from the success of other startups that have gone global can also help you find the best solutions for your project.

 

© 2013 Vadim Nareyko. All rights reserved. Published with permission.
submit to reddit

20 Comments

robinmuilwijk
Open Sourcerer

For anyone interested in Python, I can recommend http://fullcirclemagazine.org/, a free online PDF magazine about Ubuntu, but includes a beginner Python course.

Great post Vadim, I especially like the real life examples.

Vote up!
6
Vote down!
0
atodorov
Open Minded

Good post Vadim,
I'm also using Python (with Django) and I can confirm that one or two man team can put up a working product in under two months. Btw I was a Django beginner when I created Difio.

IMO any rapid prototyping language and framework are good for startups. Can you compare Python to Ruby for example and tell us why choose it, instead of something else?

Vote up!
8
Vote down!
0
Vadim Nareyko
Open Enthusiast

Alexander, I have replied in the main thread. :-)

Vote up!
0
Vote down!
0
shawnhcorey
Open Minded

More Python-fanboy hype. Any modern language can do the same.

Vote up!
0
Vote down!
-2
Matthew Lenz

As someone who has been programming in various languages for the last 20 years I can honestly say that I actually ENJOY using python and I don't get to use it anywhere near as often as I like.

Vote up!
8
Vote down!
0
Vadim Nareyko
Open Enthusiast

Shawn, I have posted the answer in the main thread. And there is a question to you. :-)

Vote up!
0
Vote down!
0
Vadim Nareyko
Open Enthusiast

Alexander, personally I dislike to compare languages. The main issue is an insufficient correctness for such comparisons.

Nevertheless, let me check what I can do. ))
--

Vote up!
6
Vote down!
0
Vadim Nareyko
Open Enthusiast

Shawn, I totally agree with you.

If you are an expert in any modern language, you can create any product. There are some limitations but they are not serious for experienced specialists.

However, if you compare total cost of ownership and some management’s risks, you may have real difference.

Could you share your experience in this topic?
--

Vote up!
10
Vote down!
0
Josh

This is an idiotic post, I would say the complete opposite holds true, look towards either node/jvm/rails/go when building for scalability

Vote up!
0
Vote down!
0
Vadim Nareyko
Open Enthusiast

Josh, for any glass half-empty person this article has nothing interesting.

It would be great if you write similar post with examples for other languages. Could you do it?

Vote up!
0
Vote down!
0
atodorov
Open Minded

Scalability has nothing to do with language. Example Disqus which is built with Django. See their presentation here http://blog.disqus.com/post/1083759994/scaling-disqus (you have to search for the video of this talk b/c I can't find it right now).

Vote up!
0
Vote down!
0
Josh

I slightly take back what I say but this post is pretty generic and would be trivial to do for other languages, and scalability doesn't have to do with language? that is completely false, maturity, tooling and libraries all help with scalability, some newer languages lack all three

Vote up!
0
Vote down!
0
Josh

I slightly take back what I say but this post is pretty generic and would be trivial to do for other languages, and scalability doesn't have to do with language? that is completely false, maturity, tooling and libraries all help with scalability, some newer languages lack all three

Vote up!
0
Vote down!
0
yes

Yes python is just for small businesses. Don't expect that your business will upgrade to bigger business. It's impossible. :)

Vote up!
0
Vote down!
0
Unidentified

I totally disagree with your comment. Do you know Google makes use of Python more. Do you also know that Blogger is built singly with python? If the Google a global giant uses python more how then will you say "...Don't expect that your business will upgrade to bigger business. It's impossible".

Vote up!
0
Vote down!
0
Unidentified

That's not how you spell lightning.

Vote up!
0
Vote down!
0
Jason Baker
Open Source Sensei

Good catch; it's now corrected!

Vote up!
0
Vote down!
0
dncnmckn
Open Minded

Nice article. I'm not a programmer, but I'm learning Python because it is a great tool to help enhance open source design software like Inkscape and Blender. Plus, it's fairly clear and logical and easy for somebody like me to use / learn.

Vote up!
2
Vote down!
0
Annie

"Modules are developed around editing Python files, which makes them easier, more flexible, and faster not only to develop but to use."

s/Python/x/ where x = { Perl, PHP, Ruby, etc }

I fail to see how this sentence helps support the idea that Python saves trouble.

Vote up!
0
Vote down!
0
tuxninja

Interesting ignorance on this thread :-) I code many languages and it always comes down to the right tool for the job. However, Python is a superior language for it's readability. Point blank. If you don't understand the critical significance of that simple principle, then god help the programmer who takes over your obfuscated code !

Vote up!
1
Vote down!
0

During a 20-year career successfully applying different methodologies of managing software and information systems development projects, I’ve got 10 years of experience in Agile, with the focus on Scrum and Extreme Programming. I’m a Certified Scrum Master and Certified Scrum Product Owner. Currently I’m holding the position of Head of Software Development at Itransition (http://www.itransition.com), where I’ve been recently promoted to the position

Reader favorite