Over the years dynamic languages such as Python and Ruby have become cherished by startups. As for .Net it is more rarely heard to be used by startups. That’s interesting indeed, because this platform is definitely bigger than most of the popular ones.
So I wonder why a platform as widely adopted and supported as .NET isn’t more visible in startup culture. Let’s try figuring out the main arguments in favor and against making .Net a startup technical choice.
1. Community culture
Some people say the main reason is the culture of the .NET community itself, not anything specific to the platform. Being centered mostly around the needs of enterprise market .NET developers’ concerns are often regarding supporting legacy systems, building enterprise architectures, large systems for supporting business processes. This implies solving problems which are not so relevant for startups at least at their initial point.
As for members of the startup community, they fuss over different issues – concurrency, experience design, supporting multiple clients and browsers, etc.
As a result the startup community and the .NET community don’t overlap as much as they do for other technologies. That’s why startup founders don’t get much exposure to .Net and don’t think of it as an applicable tool for their purposes. The same way many .Net developers who want to work for hot startups don’t have as many opportunities to do so unless they abandon the platform for a more startup-friendly one or start a company themselves.
So platform doesn’t always dictate its use – that’s people who make the choice. Enterprise and startups aren’t mutually exclusive – they’re just different stages in the evolution of software, and there’s no reason why the startup community shouldn’t look at .NET as an attractive starting point for a new business.
2. Startup tech compatibility
A startup is a risky venture with no guarantee of success. So tech startups seek advantages in order to succeed. Hence startups take what big enterprises consider risky bets on technology. This objective can be achieved by using technology that is popular in startup environment.
Many features of .NET, facilitating the productivity of big companies, are not always useful to startups. There is too much choice of implementation methods. If anything, web startups are looking to have this choice taken away – their technology choices come from the subset that is built for the web.
Also it is said that innovation is quicker with other ecosystems which have a bigger set of libraries and tools. As for .Net there are a few open source projects however most of them are pretty much an implementation of concepts that have already been implemented for a while in the Java world, for example.
3. Open source vs proprietary
Although many startups don’t mind paying for tools and services, most of them still pick things based on cost. For a long time the “enterprise” level tools, services, databases, etc were hardly affordable by startups. That’s why startups adopt so much open source.
It’s also hard to justify the use of proprietary software from a business perspective. If you want to be acquired it is wise to develop your product using an open stack rather than Microsoft’s.
However luckily for many startups Microsoft saw a huge value in giving their stuff away to startups and startups have benefited greatly. Microsoft has been running their Bizspark program for several years, which eliminates most of the startup costs normally associated with employing a .NET framework. To get into the BizSpark program you just need to get checked by BizSpark team if your startup is eligible (developing a real product). Then you’ll get free licenses to basically every product they make, including SQL Server, and a free MSDN gold subscription, for 3 years. They figure 3 years is long enough for you to get going so after that they want you to pay for new licenses. The great part is that they let you keep the licenses you’re already using. So Microsoft has basically taken the cost factor completely out of the equation for new startups.
4. Velocity vs performance
Some people say that it’s all about the velocity. If you agree with an assumption that a startup goal is to find a niche vs build a product, then the goal of a startup is to learn about the market, customers, and product needs as quickly as possible. Python, Js, Ruby, etc allow you to iterate quickly without a lot of infrastructure and boilerplate. However a company that has already has a market has a little different goal, for them the objective is to build a stable product that they can maintain.
Some people say that .Net is not suitable for quick changes. This is a pretty outdated view of C# these days, it’s actually fairly easy to write extremely terse code with. As an added bonus refactoring is so incredibly easy compared to JS, Ruby, Python, etc. that it’s ideal for rapidly switching directions in code as you can refactor so fearlessly without being slowed down by massive amounts of tests. Unfortunately what’s bad about .Net is the tooling and the supporting ecosystem.
Python is much better suited to quick prototypes that can be fleshed out into a reasonably reliable product without too many headaches. The key difference comes when you have to change features mid-stream. The lack of strict typing and interfaces means you can add, change, and remove features much quicker than C# for example. On top of that, you just write fewer actual lines of code to get the same thing done, although sometimes readability can suffer if you get too concise. There is a price to be paid with Python and Ruby though and performance is the biggest one.
5. Team and project size
The team and project size always matters. So when the solution is being built with a small team, then it is easier to use something like Python. Obviously the goal is to be fast to develop in and have a bunch of libraries to be used. On the other hand when building something with a big team, you feel like using something like C#. In this case it keeps it safe to develop in and easy to catch mistakes. Any optional documentation provided by a developer is incomplete. On the contrary the quality level of the available .Net documentation is outstanding.
However if the company is starting as very small at the initial point, it hopefully grows and builds up quite a sizeable codebase by some point. Python, JS & Ruby are fine for small programs but anything more than that and they become their own enemies because the programs they make are quite brittle.
The common opinion is that .Net scales well.So, if your startup does make it, you’ll probably have a much easier time scaling the .Net stack than you would with say Ruby or PHP.
Conclusion: it’s all about stereotyping
Eventually, I found different opinions on my question of .Net being not so popular with startups such as “platform lock-in,” “no open standards,” “licensing costs.” Sure, these are issues preventing many developers from adopting .NET in the startup space, but not enough to bar all of them from using it. Most of the arguments are just stereotypes that can be dispelled under closer examination.
All languages have strengths and weaknesses. For a startup, you need to do due-diligence and research what the right language to use for your idea will be because recoding in a different language can get costly.
So do you use .Net in your startup projects? Please share your feedback and experiences with us.
Here’s a simple answer – open source has cheaper developers. In general, open source is easy to learn and cheap (free) for a beginner programmer to start with. Cheaper programmers are attractive to small businesses that don’t understand the development process, even though they usually get burned one way or another.
The problem is, learning a programming language is not the same as learning to build software. Experienced software developers are more expensive, and out of the reach of most small businesses.
.NET has a steeper learning curve than most of the open-source software used in small businesses, and thus has a higher percentage of high-priced programmers than open-source.
I’m not putting down open-source – I’ve done plenty of it myself. There are a lot of good open-source programmers, it’s just that the lower-priced programmers tend to go with open-source as a quick, affordable way to get into programming. Therefore, businesses who want cheap programmers tend to get open-source software.
This is based on 20 years of consulting with all sizes of business, and is what I’ve seen over and over again.
That is a very good observation. I never noticed that before. A very good and valid points.
I believe that licensing costs are a major worry. Microsoft has created many programs to make .net more attractive to startups (dreamSpark, webSpark, etc…) but even cloud hosting is cheaper when it’s not Microsoft. IMHO, the other factor do not have a big impact (at least not as much as license cost!).
.NET and Java are the main teaching languages in most parts of the world, so getting cheap/inexperienced coders with those two stacks is not a problem.
The problem with these two “Enterprise” languages is productivity is also quite low when you don’t have a lot of experience with the platforms they run on and the many frameworks you will get into contact with.
MS is trying to fix this with ASP.NET VNext, but right now .NET is a bad choice unless your startup is directly build on top of some form of MS product already.
Then last but not least is the whole licensing questions, you do get 3 years for free, but what happens after that, where the only thing that is for sure is that it’s complex and it very quickly gets very expensive.
I’m a Bispark member and currently does most of my development in .NET(MVC/Web API) and Java the resent years, but have also worked a lot with Perl and PHP.
“The problem with these two “Enterprise” languages is productivity is also quite low when you don’t have a lot of experience with the platforms they run on and the many frameworks you will get into contact with.”
Low productivity based on a lack of experience is not unique to .NET. Actually, with MVC and Database First models, you can scaffold your way through a CRUD-style app in an afternoon; throw in your favorite Bootrap theme, deploy to either AppHarbor or Azure, and be on your way.
Also, Microsoft has recently announced plans to bring the .NET stack to Mac OS X and Linux in 2015, and they have already released Visual Studio Community edition (which allows you to use add-ins just like Visual Studio Premium).
We don’t really know yet how will opensourcing .NET attracts tech startup companies in general. It may take years to see the effect.
Hi nicee reading your post