Just come back from holiday in Croatia, and a very nice holiday it was. Everywhere has beautiful scenery and the people are very friendly and helpful.
It has these very people that got me thinking. Croatia is mostly a tourism country and most of there economy is dependent on the tourist industry. Only the larger towns and cities manage to get though the entire year without the requirement of a good summer season. Because of the heavy tourism and the fact that the area is visited by so many people from all over Europe the Croatian people are amazing linguists. In the hotel I stayed in all signs and literature were in four languages, Croatian, English, German and Italian. Also all of the staff that worked at the hotel from reception staff to maintenance workers to maids to staff in the restaurant were all fluent in these languages.
It was this fact that depressed me a little. While I'm educated to degree level and have a reasonably good job I wouldn't be able to communicate with someone who couldn't speak English. All of this other education I have and I can't even speak to someone from another country.
For this single reason I have decided that I should stop being the typical ignorant British citizen and I should go out and learn at least one other language to the point where I would feel comfortable talking to native speakers. Time for me to find myself some language courses.
Wednesday, August 23, 2006
Croatia
Posted by
Coding Grasshopper
at
14:08
0
comments
Links to this post
Monday, August 07, 2006
C# and Singularity
While looking though some of Microsoft's research pages I came across a project they are doing called Singularity. Singularity is an operating system that has been written almost entirely in C#, using the so called advantages of "safe code".
From the videos posted it basically looks like they have looked into the security and stability issues with today's operating systems and attempted to fix those problems, and from the general information provided they seem to have done a pretty good job of it. I still have one issue with it all though and that's the use of C#.
Now they claim it's being used because it produces "safe code" which is fair enough, that's what the .NET framework and C# was designed to do, but I have to question was C# really needed in the first place?
Before I start I would just like to point out I have nothing against C#. I've played with it to see what it's like and I have to say that in many situations it makes creating software quicker and easier than in other languages. However how much of that is down to C# and how much of it is down to the .NET framework? I think if looked into you would probably find that the real advantages are coming from the .NET framework and not actually C# itself. Which is why I ask the question was C# really needed in the first place?
Most of the problems that C# and managed code address are those of safety. Which basically means the program I create isn't going to let me play with things I shouldn't be playing with. Now all of this functionality has been put into the CLR version of C++ to allow it to use the .NET framework, so all those people out there with C++ knowledge could come along and just pick up the .NET framework and use it. Seems like a great idea, I can still use C++ but now I have a safe set of libraries to use on Windows. From what I've found there isn't anything you can do using C# that you can't do using CLR C++, that's the whole point of the .NET framework, to allow applications to be written in any language in a safe way, so why did they need a new language?
Now I'll get people saying to me that it's a lot easier to use C# with the .NET framework because it interfaces in a better way and it feels more natural etc. I would say this is only because Microsoft made it that way. There is no reason why they couldn’t have just made it interface in a more natural way with an existing language.
The whole point of the .NET Framework is that you can write applications in any language you like, so surely non of the languages you use should be able to provide facilities that the others can not else they wouldn’t all be able to use the framework correctly.
I believe that it is the fact that the people in the Singularity project have looked at flawed design concepts and fixed them is what brings the most benefit. If all operating systems took ideas and concepts from this project then they could very well be improved as far as security and stability were concerned. I think in this case C# is more novelty than necessity.
Posted by
Coding Grasshopper
at
18:37
1 comments
Links to this post
Labels: Software Development
Thursday, August 03, 2006
Design
Software design is currently my nemesis. While coding something up is simple enough and the small amount of design required to make a function or class efficient and do the job well is easy enough, design, I'm beginning to find is a nightmare when it comes to large systems.
I've now been out of University for 2 years working as a software engineer and in this time I've worked on various small projects and modules to extend existing products. However now I'm working on a new system that is significantly larger than anything I've done so far and also larger than anything university prepared me for. While system design classes are all well and good and they teach the basics they don't take into account anything to do with the design problems that come up in the real world. Also they deal with relatively small systems that don't require any form of customisation on a per customer basis.
I have therefore made it my new mission to become a better more rounded software engineer by filling the gap in my design knowledge. Not only do I want to cover things like OO design, I also want to cover the design of large systems, how to best break them down into components and how to provide clean interfaces between those components so that certain parts of the system can be updated without having to update everything.
Along my way I'll try and post some ramblings on design and the way it alters my approach to coding in general. I believe that it could potentially greatly improve my productivity and the quality/reliability of my code. Only time will tell.
If you know of any good design books or websites then please post them in the comments. As I find resources I'll post them too.
Posted by
Coding Grasshopper
at
18:40
0
comments
Links to this post
Labels: Software Development


