FAQ - Frequently Asked Questions

What platform?

Something that'll run and run. Basically, there's not too much difference in raw performance between the major players, but most large web sites seem to run on FreeBSD. Yahoo and even Microsoft's Hotmail use it..


For corporate use, Windows NT4, or 2000 for the client, and maybe server too, although you can use FreeBSD with Samba (http://www.samba.org) so that the clients can access it.


What server?

We need a serious web server - what would you reccommend?

for software - http://www.apache.org.

for hardware - http://www.terasolutions.com


What database?

Faircom have produced one of the best 'programmer friendly' database systems for years. Although it's not SQL (although they have ODBC drivers now) it is extraordinarily fast, powerful, and runs on more platforms than can be imagined.



Why not write in Visual Basic or other interpreted language?

Basic is good for quick simple applications that are to be used 'in-house'. Any interpreted language such as Basic always incurs the overhead of interpretation before execution of the 'code'. It's a bit like reading passages from a book in one language and translating them into another on the fly every time.

Languages such as C/C++ and Pascal are compiled to a form that is exactly what the target processor expects to see before they're distributed - therefore, they're always in the processor's 'language' (machine code). They will typically execute many many times faster.


Why not use CGI?

CGI is great for requests that take time to process, and where the requests are seldom. CGI's great failing is that a small application (the query) has to start, execute, and end on the server for each request. Very often, the application's initialization code is greater that the execution code, and the application can't 'remember' anything from a previous execution. Simple FastCGI works much in the same way as CGI, except that it puts the execution phase within a loop, and executes this again and again for each request.


Why not use the web server's API?

Because you're tied to that API from then on, and you can't execute your application remotely via named pipes or sockets.