Internet websites & web programming

Web programming

Web programming is not the production of Internet pages. It can be used to produce dynamic web pages, as they say, but is not limited to this. Web programming is something more, or better said, different.

For example, the page you are reading was not written as you see it: nowhere, on no server, there is this page as you see it. There is instead a program that generates it, that sends it to your browser in the language of your choice, placing a menu at the top, two different on both sides, the header, the same way here and on other pages, without the site webmaster had to write the same sentence twice, or to copy any header or footer once.

There is a database that maintains different types of data about visitors, customers, products, transactions of purchase and activation codes. A reserved area, which you do not see, that allows access to this informations; there are functions that send emails, generate activation codes for the programs downloaded from the site, and manage the access to the customer area and to the reserved area.

To design nice Web pages a graphic artist is required, or just an artist, in some cases. But you need a software engineer for a Web application.


Solutions

The ability to write Web programs is what has changed the Internet from a repository of text pages, no matter how important, to a tool device capable to provide services. It is not just designing and implementing dynamic pages: it is to provide services and benefits comparable to those of a program that runs on your home or office computer. In fact, big real programs are written, performing certain activities and, and these programs often, but not always, produce an output as a page that is sent to your browser.

Because we have real programming languages, and quite powerful, by the way, and powerful and complex databases, and other resources, the web programmer can deal successfully with problems such as:

  • E-commerce: you want to sell something over the internet; you have to publish a catalogue, and allow your visitors to select different items, manage a shopping cart, handle payment, get a receipt. And, of course, inform you to deliver any purchased item.
  • Manage real time bookings: for a hotel, a tourist resort, an airport car parking: everything that could be booked. Allowing you, of course, to know about the booking, while preventing two different users to book the same thing for the same time period.
  • Allow your visitors to send you email, but without showing your email address: you get enough junk, right? Your inbox is full of unsolicited advertisements about the most unlikely goods and services, right? Try publishing your email address clearly on your web site, and see what happens.
  • Allow your site to communicate with a program, for example to activate a license, or to look for an update to download; and the fact that I am an experienced computer programmer, can only help in this task: if you do not want or you can not handle alone such an interface, I can do it for you.
  • Allow your visitors to register on your site, with the appropriate credentials, and allow them to login and logout.
  • Automatically send to your registered customers, or to a selection of them, some email with news, or your advertising.
  • Manage a multilingual site, with an immediate switch to another language from page to page.
  • Automatically present your site in the same language of your visitor.
  • Create and manage a blog system, or create an mantain a page of comments from your visitors, registered or not.
  • Keep track of visits to your site, without depending on the tools made available by, for example, Google. Recognize and acknowledge googlebot when it comes to visit your site.

and much more.

Of course, for web programming, you need a programmer. A graph, as good as he or she may be, unless he or she is willing to learn the best techniques of structured and object oriented programming can't be of any help.


Operating environments and development tools

With very few exceptions (as far as I know, none), a website is run either from a Windows/IIS or Unix/Linux/Apache platform (or, sometines, Windows/Apache). From the point of view of the web programmer there is a remarkable difference.

Usually, a Windows hosting is more expensive, because the maintenance of a Windows server is considerably more expensive than a Linux one (with Microsoft products, you know, something is not working all the times, or not working properly). In addition, Windows Server software is expensive, and very expensive. Unix/Linux systems are much better performing, and a crash is much more unlikely, if ever: we can say that, once started, they go almost alone. And Linux is free.

The Microsoft HTML server software, IIS, is very difficult to install and to configure, it takes days before it works properly and reliably. Moreover, for certain operations (for example, to set password access to a directory, or to show a default document), you must ask the system administrator. This can be a problem if you do not have the server in house. The standard Unix/Linux HTML server, Apache, is free, it installs in minutes, it is immedialty up an running (even on a Windows system). It allows the site administrator (or webmaster) to gain control over individual folders, without having to ask anything to the server administrator.

The SQL Server database for non-trivial applications (and an Internet application is not trivial) is not free. Microsoft ask you money to let you install and use it. Thousands, or tens of thousands of euros or dollars. MySQL, that works much better and much faster, is entirely free.

Of course, I can develop applications on both platforms.

I have the license for the Microsoft .NET development environment, professional version (which, of course, being under the Microsoft brand, I had to pay, and I have to pay every year). This allows me to work on Windows platform for the WEB. If you insist to have pages whose name ends with asp, instead of html or php, I can manage. It will cost you a little more, of course.

I also use several PHP development tools, and more I can find, and, with few exceptions, they are available and freely downloadable and usable without charge and without license fee.

This site you are browsing is based on Linux/Apache/PHP/MySql. All of this costs nothing, works well, the documentation is complete, exhaustive, and does not count tales, like Microsofts use to (actually, the Microsoft manuals, usually difficult to understand, use to confusely describe what programs are supposed to do; what they do, this is another story). As described, from the theory, the .NET should allow the very quick developement of asp pages and documents, and the rapid developement of web sites of some complexity. The reality is a bit different. As usual.

And, while the developers community working at Linux, Apache, MySQL and PHP is open to criticisms and observations, and reacts very quickly to reports of malfunctions and errors, the Redmond behemoth is deaf to appeals, slow to respond to users needs, at least as quick it is in sending bills. The community of Linux/Apache/ PHP/MySql is active, alert, cooperative, intelligent, competent, and responsive to feedback from developers, who do not spend a penny. Microsoft is passive, slow, bureaucratic, stupid, arrogant and completely deaf to the comments of its paying customers. The only thing they really pays attention is money. Period.

In addition to the PHP standard, I install and use the Zend Framework, which is freely downloadable, and reasonably documented, and was written by the same team that implemented PHP. And it sounds good ... This framework allows me to quickly and efficiently manage the most common basic operations: sending emails, connecting to googlemaps, using captcha, json, soap, pdf, linking to different databases, et cetera.

On top of this framework I have built my classes, and I keep to build new ones all the time. Therefore, I can claim to be able to produce quickly and efficiently good and well-structured Web software, easily manageable and maintainable. Quality software, as usual.

Set Language Italiano English