Adventures in a disconnected world
Last few days before I start my new job and I think I am getting a little confused.
It is a long time since I have blogged and part of that is because I have been acting in a play but also because I decided to change jobs.
I had interview today, so reading Scott's set of .Net questions was rather topical.
For the first time in my career I am having to look for a new job because of a change in the strategy of the company where I work means that my skills are no longer required. It is a scary situation as the IT market is still a difficult one.
I really need to post a lot more. I have got it the habit of reading more than writing. 2004 was a strange year. It was a year where many people in IT serious started wondering whether they had a career that would take them through to retirement or even through the next few years. In terms of software development it was a time where projects where increasingly developed in lower cost countries and where business analysis and project managment skills became more and more important than being able to develop software.
I have been a very prolific blogger recently as I have been very busy working on a project. We all want to work on glamourous projects but this was one of those bread butter jobs which really wants to work on but it pays the bills.
Where I work, we manage the outsourced IT services of a global company. Last Friday, I was helping out on the helpdesk and we received an email from a site in Brazil who could not print production orders on a printer located in Brazil. I took the call and openned a call to HP who manage their SAP servers. I had to talk to their call centre in Bratislava, Slowakia so that they oould detmine the cause of their problems in their data centre in Swizerland. I then rang Brazil to tell them that I had openned a call with HP, to be told they were all at lunch for the next hour. This was 17:00 on Friday afternoon in Switzerland. It got to 18:00 and so I told the HP call centre to talk directly to Brazil.
Not bad, I am in Switzerland, the problem is in Brazil, the Call centre in Slowakia and the computers are located in Swizerland.
Also I had to talk to Equant about a problem in Italy and spoke to their call centre in Cairo.
It is a weird world
I have been thinking about writing about this subject for a while. However, the posting by Jason Sales prompted me to actually write a blog entry.
When I started in computing there were no PCs, just mini computers and mainframes. The UI was mostly a green screen on a dumb terminal. As all the processing was actually being done on the main computer, you got very used to checking how many concurrent users were logged in to the system.
Eventually, the PCs came along and it was possible to build form based applications, some application processed data that was stored locally or on a mapped drive and some clients accessed data stored in a central database. However, now you no longer had to worry about how many users were logged in to the system as all the processing power was local. This meant you got used to providing the best interface for the user, all the power was local so you did not have to worry about other users. I got very used to building forms based applications and the design metaphor used by RAD tools such as VB made the task very simple, some people would say too simple especially if you look at some of the code produced.
This gave way to the Internet and the ability to build applications that ran on a server and provided an interface to the user within the browser. In some ways it was like going back to the world of the green screen dumb terminal apart from this time it was more colourful. Like the world of the mini computers you had to worry about how many concurrent users were using your web application. I remember having conversations around that time with people asking me what is a concurrent user and why it was important. If you came to computing during the windows form phase, you had no experience to look back on from the mini and mainframe phase of computing.
Interestingly enough, people who came to computing during the "Internet age", tend to have started computing by building web interfaces.They have no experience of building windows applications. However, I have also seen the down side of people not having experience of the mini/mainframe period as they do not always think of the number of concurrent users. However, in many ways they are programming mini/mainframe applications but without the security of owning the connection. However, I think with web applications we sacrifice ease of use and gain location independence.
I suppose it still find it much easier for me to sit down and put together a rich client app than it is to put together a web application. I feel that I have freedom with a rich client app and that I am restricted writing a web application. However, I tend to build my components first which means I can decide later stage which presentation layer to use.
In conclusion, I think whether you are happier building web applications or rich client application is largely influenced by when you entered the computing industry. However, what worries me is that some of the lessons of windows forms development have not been learned. There are still loads of web applicatons out there which have all there business and datalayer code built right into the web forms. That is certainly true of PHP, ASP and probably a lot of JSP.
The most expensive part of any project is maintaince. You think everything is working well and suddenly you get a phone call and you need to resolve a bug in the application. The trouble is the application was written with an earlier version of the .net framework, for example v1.0 but you using Visual Studio 2005. This means you can open the project but if you compile it using Visual Studio you can only compile against the latest version of the framework which in this case is version 2.0. Which means the small change in the code might end up meaning you also have to distribute the v2 framework. The same problem exists with Visual Studio 2003 which can only compile applications to run on top v1.1 of the .Net framework.
Over the weekend I had some spare time, so I thought I wonder if you can use the Mozilla rendering engine(Gecko) within a .Net application as easily as you can IE ? This could be important in areas where people have concerns about using IE. It turns out it is as simple as a download, add COM component to the toolbar and if required adding a reference to the project. Even the intereface has been modelled on the IE model to make it simple to use. It is of cause unmanaged code but it works.