Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I would like experts to explain for me how can I compare between web development tools or technologies in order to be able to choose the right one. I'm tired from searching always in the regular way: X Technology vs Y Technology. I'm tired from peoples' biased opinions and usually I don't find a fair comparison.

I have decided to put my question here about how can I compare them so you may identify to me the main standards for comparisons so I can compare them by myself and becoming able to choose the technology that is appropriate for the project I will develop.

Note: in web development technologies I mean server side languages (e.g. PHP).

  • One important requirement for me that can be defined as major one is cost efficiency and I mean that I don't care about the cost in the near future or the current cost, but what is more important for me is the cost in the future. If, for example, the site becomes one of the most 100 visited sites.
     
    So, how can I compare the cost of different technologies for a future status of a site (such as being very famous site) so I can scale my option easily without missing a good technology like what happened with some sites when they chose not the most effective tool.
share|improve this question
1  
You may be interested in Dan McGrath's answer to the "best programming language for web development": programmers.stackexchange.com/a/35893/32008 –  Jalayn Jun 1 '12 at 8:15
    
Don't forget to list your requirements : do you have background computations ? Is the team able to understand parallelization logic ? What kind of data will you handle ? What will be the load ? Is there a complex logic server side ? Those questions could easily reduce the list of choices. –  dystroy Jun 1 '12 at 8:21
    
+1 for passing the slippery recommendation type question with flying colors. "...don’t ask us what you should buy — ask us what you need to learn to tell what you should buy..." –  gnat Jun 1 '12 at 8:42
    
possible duplicate of Best Programming Language for Web Development –  Doc Brown Jun 1 '12 at 8:44
    
What are you building? Comparing technologies is impossible if you don't give us at least a high level overview of what you're building. –  Yannis Rizos Jun 1 '12 at 10:29
add comment

closed as not a real question by gnat, Walter, Glenn Nelson, GlenH7, StuperUser Jan 16 '13 at 17:25

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

2 Answers

up vote 6 down vote accepted

You don't.

The choice of a language is essentially both subjective and related to the context. When you read an article of a person who says that PHP is bad, it's an opinion in a first place. This means that some people will find it very valuable and very true, because it matches their opinions, whereas others, who have opposite opinion and experience, will think that most things said by the author are false.

Of course, it's not only about opinions. Some people are just not knowing what they are talking about. When a person tells that PHP websites are faster than websites written in compiled languages, because there is no time wasted for compiling the code, well, it's not an opinion, but just a plain ignorance of the subject. In the same way, if I'll write an article about C# vs. Java, while I've written no more than fifteen lines of Java in my life, the article will not be very valuable.

When you make a choice, you:

  • Evaluate the context. You don't write embedded software in PHP, and you don't write business applications in Ada. Some languages are better for a particular use, and you easy know that just by watching what other people are using mostly.

  • When there is no preference, in a given context, between two languages (for example C# vs. Java for a business application), the choice will be obviously subjective, since the languages are so close, that no one has a huge strong point compared to others. In this case, the choice is based mostly on experience and personal preference of the developers in a team. If nine of ten developers of your team love open source and hate Microsoft, don't force them to use ASP.NET.

Make your own opinion

Since "<language 1> vs. <language 2>" articles are at best not very helpful, at at worst, totally misleading, make your own opinion. If you believe that you will have to choose one day between C# and Java, learn both, and by learning, I mean spend two years writing real apps in each language. Once done, you'll have enough arguments yourself to be able to pick one language or another for a particular project, according to your preferences and the context.

Don't stop after one week of learning. If you've spent last seven years developing C# applications and start to learn Java, chances are that the first days or weeks, your opinion will be strongly biased, and you'll scratch your head, asking yourself why you can't do in Java something which is so easy in C#. After a period of time, this biased opinion will decrease and maybe disappear, enabling you to see that C# has something that Java lacks, but C# lacks some Java features too.

What about cost efficiency?

This is a good point to use when selecting one language over another. Sadly, it's too complicated to use, for two reasons:

  • There are too many factors.

    PHP developers are cheaper than ASP.NET developers, because PHP is easy to start with, and lots of people can write PHP and call themselves developers. But an inexperienced developer will write spaghetti code, and the refactoring will be very expensive. How to asset this?

    Windows PCs are less expensive compared to Apple devices. If you're building a new company with hundreds of desktops, you may pick Windows vs. Apple. Now what about the cost of user support, downtime due to the problems, etc.?

    Visual Studio (non-Express) licenses are very expensive. What about using Mono and some freeware IDEs? But most C# developers are familiar with Visual Studio: how much it will cost for them to become equally productive with a freeware IDE like they were with Visual Studio 2010 Ultimate?

    etc.

  • The cost is not very different.

    For example recently, I was asked by a customer to see if her particular solution will be cheaper to host in Windows Azure or an ordinary, non-cloud hosting provider. The cost was exactly the same.

    The same comes for open source vs. Microsoft stack. If you use hosting providers, you'll find that the price is very similar for LAMP and for Microsoft (Windows, IIS, ASP.NET, Microsoft SQL Server) stack. If you're building your own datacenter, the cost will often be similar too, even when we are talking about the Microsoft SQL Server licenses sold at $30,000.

    Imagine if one solution would be obviously cheaper than another one on a market. Why would anyone use it? How it would become popular on a competitive market?

share|improve this answer
5  
In case you haven't seen it already, here's the amazing retort to the blog post you linked to. –  Yannis Rizos Jun 1 '12 at 11:04
    
"because it matches their opinions, whereas others, who have opposite opinion and experience, will think that most things said by the author are false" cannot agree with that. The article states number of facts, which cannot be dismissed as "just an opinion", and people cannot think it's false if anyone can check on their own that it's true... –  vartec Jun 1 '12 at 11:42
    
Do you have anything to back up your statement about building a Microsoft data center being approximately the same cost as a Unix data center? If that's true, then why does every single cloud hosting provider charge more for Microsoft hosting vs Linux hosting? Clearly there is some additional expense they are passing on to the customers. –  Jordan Jun 1 '12 at 19:14
    
@Jordan: no, I don't, except my personal observation, which doesn't count. It would be interesting to see some detailed studies/statistics on this. –  MainMa Jun 1 '12 at 19:18
add comment

Bottom line, go with what you understand and can implement the best.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.