|
Main Articles Portfolio Downloads Testimonials Hire Max ! Forum Resume Contact About Me Trash Russian version |
Choosing the Development ToolsAfter you composed the specs you together with consultant should choose programming language, database and operating system that will be used to create the new system. We say "together" because there is a lot depends on your decision, and this decision will affect a lot of things in the future. For example this will affect how easy can you move your system from one hosting provider to another (if you ever have to do that), and also system performance, maximum number of simultaneous users etc. Many commercial products cost a lot of money, and your choice will determine possible future expenses (for example the ones for the vendor support). On the other hand the tools that are available very depend on the hosting provider of your dream. If you have already decided what hosting provider do you choose, tell the developer about that. He figure out the set of tools are available at it and will be able to perform a choice. Nowadays the world of operating systems is divided by parts. One part represent the Windows systems and another is UNIX ones. Available tools are dictated by the type of operating system (it is not always a rule though). There are hosting providers who offer both Windows and UNIX accounts. In the case of Windows system the typical choice is the following:
Currently the most popular are UNIX hosting accounts with the Apache/PHP/MySQL installed. There are many reasons and the benefits of this. First, these products are free and hosting provider does not include part of its cost in the service price. Second, these products much more reliable and have better performance than their commercial competitors. Next, the waste majority of Internet servers use this software and this determine its presence at the hosting. Its drawbacks is lack of guaranteed support from the developers side, however this is compensated by the guaranteed hosting support and huge amount of thematic forums and mailing lists. Actually, MySQL offers its technical support. Few words about why PHP has more benefits than Perl, and why MySQL beats PostgreSQL. PHP was developed from the very beginning as the Web-application language, while Perl was created as a language for text processing. This affects its usability for web development very much. The main PHP benefit is that its code is embedded directly to the HTML document, and this simplifies the development process very much. At the same time Perl cannot be used in such a way. Usually Perl scripts should be placed in a special server directory called cgi-bin. This applies even more restrictions, because it is impossible to serve both HTML documents and Perl (or any other) scripts in the cgi-bin directory. All tricks that were invented to workaround this issue (like embedded Perl) are not such effective as PHP. This Perl misfeature makes web development with it quite complex and expensive. However there are a lot of excellent Perl software for web and neither less terrible one written in PHP. Main PostgreSQL drawback is a large number of critical bugs in it. Once when I have a few PostgreSQL-driven applications the most part of my time was wasted to fix the problems produced by this database. PostgreSQL is claimed to be a transactional database, and this means that your data should be safe in the case of software crashes. It is still possible that you will loose your data with PostgreSQL, because of bugs in it. MySQL have no transactional support in its standard distribution (although it has transactional support with extended distribution called mysql-max). However I've never seen data loss with MySQL even with often power-offs, when the system was shut down uncleanly. PostgreSQL is an example of excellent idea and poor implementation. It has much more functions and tools than MySQL and had the transactional support from the start of its development. Moreover, PostgreSQL transaction concept is more powerful than MySQL one (multiversioning vs. table/page/row-level locking). Unfortunately all this cannot be regarded because of lack of reliability. Additionally, MySQL is much faster database and has better performance than PostgreSQL. That's why MySQL is more popular than its competitor. On the contrary, MySQL has attracted a huge number of users during its lifetime. It is very reliable. It gained a lot of functions that are associated with the commercial databases (transactional support, full-text search, replication). Most part of these functions are absent in the PostgreSQL. All the said above makes PHP and MySQL the best choice for almost any web application. By the way both of these programs are available on any platforms including Windows. Choosing the Hosting ProviderIt could be quite difficult to choose the right hosting provider. There is a large variety of prices and hosting services available on the Net. First, the services and features available on the hosting account should satisfy your needs. Usually there are few kinds of accounts called plans on the hosting provider. Once you bought the starting plan you always can upgrade to more advanced one in the future. Almost all providers include in all their plans extended email tools like unlimited number of email boxes, forward and catchall accounts, auto-responders, access to email via browser. When choosing the plan you should select only services that are required by your application and as little as possible extra. The shell access service (telnet or ssh access) usually is a must. This service is not always included in starter plan, therefore you must pay attention to it. It is very hard to support a site without shell access. The second requirement is cron jobs availability. Cron jobs is a way to execute programs by schedule without human interaction (actually it is a batch tasks). It is a good way to automate maintenance routines, and cron availability or absence will define site maintenance cost. In the case of complex applications it may be necessary to have control over Apache or Sendmail (web and email server software respectively). Virtual Servers available at the advanced providers like Verio could help. Virtual server is a full imitation of full-featured UNIX server where you are the single master. At the same time there could be a large number of such virtual machines on a real computer. The benefits are clear - you can do whatever you want, and there are no restrictions on the tools available. You can extend its abilities by installing any additional software. It is ten and more times cheaper than dedicated server with the same number of tools (maybe you will pay for this by a slightly worse performance). The second important criteria for the hosting is a quality of technical support. You certainly will need it even if your consultant is excellent professional and is able to solve most problems himself. It's easy to check the support quality - just write them a message and ask questions that you need to get cleared. If their answer comes late, the answers are too common or they do not answer at all, do not buy their services, this is a bad hosting. You will run into trouble with such a support. Do the same trick with measure of their feedback speed by the phone. Call them at night (I'm not kidding, the most part of problems happen in the night). These are the hosting providers that I have a deal with. All of them have
excellent support: |
|
| © 2002-2005 Max Rudensky Disclaimer | ||