I am a Network Security major with very limited programming skills:
I would like to ask a general question on this forum, and I would appreciate any knowledgeable answers.
We are going to start a new company that is going to create a website that will have both static and dynamic content, and it will allow users to search for and communicate with each other via Skype (or something similar) and form groups.
I have asked everyone I can think of to recommend which platform, languages, etc. we should use. I am receiving different answers. I want to build this site in the best manner possible in order to be able to scale to perhaps 20 million users (maybe a million or two simultaneous users at certain times).
So, if you were to build a site with the aforementioned content, what would be the best way to build it?
> I want to build this site in the best manner possible in order to be able to scale to perhaps 20 million users
> (maybe a million or two simultaneous users at certain times).
IMHO:
Do not commit on a design cast in stone to start with. In the beginning, the number of users would be quite small, and that number would grow over a period of time. During that phase of initial growth, the software is at an exploratory, live prototyping stage; it ought to be rapidly respond to changing requirements that are discovered, almost on a daily basis.
I would suggest that you start with a programming language (or scripting language) that allows and encourages this kind of on-the-fly prototyping and refinement. (And be prepared to rewrite the back-end in C++ when the architecture has stabilized and performance and resource management have started becoming critical.)
Thank you! In your opinion, which programming languages provide the initial flexibility that you're speaking of? We are running windows 7 Pro 64-bit on 11 PCs (no server yet). When we roll out locally, our potential user base will be approx 50K-100K users within weeks. The site is VERY likely to attract this number of users. Sorry for the elementary questions. I learn very quickly once I have something explained. Also, would you recommend .net framework or other. Most of our potential programmers want to use Visual Studio. Which compiler would you recommend? I really appreciate hearing your advice.
> which programming languages provide the initial flexibility that you're speaking of?
I was originally thinking along the lines of something like Groovy. But on a pure Windows-IIS deployment scenario, I would stay with Microsoft.
> Most of our potential programmers want to use Visual Studio.
If your servers are going to be using Microsoft products, go with what most of your programmers are comfortable with - Visual Studio.
> Also, would you recommend .net framework or other.
Yes, .NET would be the fairly obvious choice for the front end (again assuming Windows servers running IIS). .NET can seamless interoperate with a high-performance C++ infrastructure back-end (which probably would be eventually required for operations on this scale).
> Which compiler would you recommend?
I suppose that means: which programming language? (With the development environment being Visual Studio 2013(4) Ultimate)
AFAIK, C# would be the language of choice.
Visual Basic, if your development team is full of programmers who are new to C#, but are adept in VB.