With all the different technologies out there; .asp/.cfm/.jsp/.php/.xml/ and .anything else I may have overlooked;
what is the fastest most cost effective way of creating dynamic pages.
Also, what kind a web server and platform should I be considering.
Any help anyone can offer would be much appreciated.
One idea I'll share. If the amount of content allows it, keeping your entire database in RAM will likely give you the greatest speed bump. Likewise, having dynamic request stored in memory cache will also speed things up a lot.
As to databases, others here with hands on experiences will likley have more real world advice, but FWIW I would consider a database that offers good maintenence functionality. ACID compliance is something to consider, especially if you will be doing e-commerce.
Consider PostgreSQL too maybe.
Language wise, again, those with more real world experience will likley have more real world advice, but I do think the maintainability and ease of making changes weigh heavily in your choice -- not just raw execution speed. You can get a speed up by cacheing in memory or web balancing or whatever.
Get a box with LOTS of fast RAM, keep as much in memory as you can, and that will go a long way toward giving you what you want.
Hope the above is helpful in your deliberations. I'm new to web dev stuff. But ahve a large system background, so I understand the concepts youa re dealing with.
Best wishes,
Louis
So, mySQL is indeed a good choice. but PostgreSQL, I hear also in the fore-front. (I have no experience with PSQL.)
The advantage of using mySQL for me, instead of commmercial packages is the fast deployment, low cost, and finaly, portability. Despite all the commercial vendors claims, I have never been able to move Oracle to MS SQL or backwards without modifications. mySQL ports will work without a hitch to both.
Having mySQL does not dictate your dynamic page development language. You can talk to a mySQL server with all the languages you listed.
I personally prefer PHP. The language is easy to understand, extendable with external modules, and can be easily translated to other languages.
In general I only use PHP, JavaScript and on occasion for server side processing Perl.
The speed I get from the equipment with the above languages on Un*x OSes is exponentially more valuable then the trade down for speed, but "easy" interface of a point-and-click development language.
Are you actually familiar with C++? I learned C++ and if you aren't already familiar with it then I would recommend php instead. Imho c++ is much more difficult to learn than php.
I am obviously php biased but I do have a good amount of experience writing c++ for software apps (no web) and I think php would be a much better choice. I also agree with all of Tapolyai's reasons as well.
I personally think the fastest language to use to get up and running is ASP, but you need a Microsoft server. JSP is too complicated for a quick ramp-up, and I haven't worked with PhP at all.
VB is a simple language to pick up, and the ASP syntax is also quite easy to learn and understand.
Depends on the size of the data, the type of site, and mostly the application. Speed isn't everything, it's the only thing. If you can get away with sticking to the traditional file system, it will be faster, easier to backup, more reliable, and easier to transfer data to new apps when they come along. The moral, is that it is significantly faster to load a disk file and let the fully optimized file system work it's mojo, than it is to go to an external database app such as SQL. One good reason, is that the file system is better at caching than a database will be.
That's nice if you can do that with smaller dbs, but for larger dbs's, then a good variant on SQL is the choice. One thing to keep in mind is that most "databases" are really collections of databases. It's rare to run into a huge single purpose data set. It's more the norm that you'll have a wide range of data types that end up being handled by different dbs/tables and heaped together into a unit you call a database.
For custom aps, the langauge you choose should be the lowest level language you are comfortable working with. In increasing order of speed preference: Basic, (juicy center: Python/PHP/Perl/Shell Scripts) C/C++, Assembler/ML (nice work if you can get it).
The more robust higher level languages such as perl and php, have deep support with off-the-shelf aps cheap or in some cases free. That support can cut development time of new features over c/c++ significantly, but you pay for it in a slower site over C or Assembler.
Server Choice:
This last winter after the fallout from Nimda had settled down, I got into one of those friendly arguements with a friend. He gave me 50 websites to surf and with nothing more than a browser and a page view. I was to guess which server the sites were running on.
I guessed 42 of 50 right without using any tools or tricks other than viewing the site in a browser. How? It can be done based on feel and look. The slower and more unusable the site, the more likely it is to be running on a Microsoft server - no joke.
If I can spot that high of a percentage, how many in the general public get that same impression without knowing what *it* is? I would almost garantee that if you take 75-90% of the sites hosted on MS servers and move it to an Apache server, page views will go up within a couple of weeks. I've done this on over 100 sites over the last four years. We simply move the client out off the MS server to an apache/linux server and results increase. We've never suffered a single decrease in page views by doing it. The per-page viewing by a user increase and the number of repeat visitors also increase. Additionally, within a few months, referrals from search engines will also likely tick up from barely noticeable to significantly depending on the site.
Platform:
*nix without hesitation. Why?
- More reliable. How long has your windows box been up and running? Surf the web for linux stories on uptime. There are legends on the net where linux has been up and running for several years without a reboot. That's *years* - that's reliable. If you can go more than a few days without a windows reboot - you are doing good. There is no substitute for reliability.
- Security. Linux based open source tools have never had a major virus out break. MS on the other hand has redefined insecurity. The security problems with microsoft products has not been one or two excusable faults here or there, it has been hundreds and the problems have been occuring repeatidly for years. The Microsoft record on security is beyond shameful, it is incompetent, to bordering on negligent.
- Speed. A Linux apache combo will out perform any comparable Microsoft system on the web. It's one of the prime reasons you can spot a MS box easily. It's gotten better in recent years, but not necc due to MS, but due to faster cheaper boxes.
- Intangibles. MS based sites are prone to use MS development tools. Those tools carry their own unique set of hazards. You are much more likely to encounter errors and problem sites with MS dev tools. Slow code, incompatable code, bloated code, errored code, proprietary code, and simple unoptimized code are the hallmarks of MS dev tools. This is the easiest way you can spot a MS site. More-than-likely, they will higher error rates, slower to load, and have a propensity for unnessesary code. All that leads to a lower per-page-views.
The above is based on 22 years of computer work. I'm no linux desktop lover - I run 98, but would not consider it for an important site. Too risky).