25 years later and I've decided to finally stop pfaffing around with silly things like 'careers', 'family' and other non-essential things, and taken my first steps into becoming a 'game developer'.
My first port of call was here: http://www.gamedev.net/reference/start_here/
Basically a website devoted to everything you need to know about getting started, what tools you need, and how to go about it. I've never been good at learning from home, so decided to take a more structured route.
So I'm doing the following:
a) Access to Computing course, 1 year, 16 hours a week, enough to get me into University.
b) BSc in either Software Engineering or Computer Science OR something else computer releated, there's loads of degreees now so I'm still deciding which one is the best to go for if I want to go on and develop games in later years.
c) Learn a programming language.
Step c) is the fun one :) I've decided to go ahead and learn C, as it's a good basis from which to later learn C++ and Java which will probably come along in whichever degree course I finally end up on.
So I went and bought Microsoft's Visual C++ .NET 2003 edition, and after several hours of configuring and installing finally produced my first ever C progam. And yes, it was helloworld.c (ok, it was helloworld.cpp but that's a technicality).
For anyone thinking of learning to program, Microsoft's Visual C++ .NET 2003 seems to have everything you'll ever need, and probably a great deal of stuff you'll never use as well. The only drawback I can see (apart from the whopping 3 Gigs it takes up on my hard-drive), is that it does everything the Windows way. But I figure as long as I remember it's 'just a compiler' for now, I won't get too brainwashed.
Today: "Hello, World!"
Tomorrow: Something a bit more useful, hopefully...
More, as it happens, later.
Especially diving into the delights of Winsock.
> I don't really see the point of the .NET infrastructure myself. What
> they've essentially done is to rearrange two languages (VB and C++)
> so they march to the beat of the same drummer and added a third for
> good measure (C#). Because all the languages work the same way,
> components and libraries written in one language can be used in
> another without and COM or CORBA nonsense.
Sorry to labour the point, but the more i read, the more im impressed and excited about the .Net idea and the more i think its an important step in ide development.
At this stage everyone is pretty much aware of the idea behind the .Net framework - different languages within the framework using the same common runtime libraries.
So whether the application is written in VB.Net, C#.Net or a combination of both, once compiled they all translate into the same runtime language. Marvellous.
But where does that leave other languages... Well heres something...
After reading various websites i cant find a language that isnt already translated into .Net or in the process of being translated.
the list goes on and on. So the idea isnt purely for the M$ fans in the programming community, its more global than that. And thats why i think .Net has a future. You can, in theory, take the good bits from various languages, compile them and produce one application with the minimum of fuss. In practise it might be more of a case of choosing the right language for the job. But you now have the option.
Of course this is only a small part of the .Net idea. The M$ website is actually worth a read. It tells you about simplified portability between platforms with .Net. It tells you about web services via XML with .Net. All programmers know that integration is the toughest point of a project - getting the components talking and interacting with each other. Its a pain. All .Net is trying to do is simplify the process. And i reckon theyre onto something.
The .NET framework is what Sun have been doing for years. All M$ are doing is evolving C++ and mixing it with java to create C#. C++ isnt going anywhere. Its very good at its job. But it cant do everything.
Ive been out of uni for a good while now, and all my work is either developing client/server apps or web services. VB, java, DBA - ive a lot of experience at this stage. And none of the projects or companies i have worked with have used C++, and there are less and less who are using VB - its all java these days. With the internet becoming a more important part in how business is conducted, there is more of a need for a web service, rather than a number-cruncher or a client/server app. So C# isnt trying to poach the C++ programmers, its the java coders its after.
So M$ are loosing ground. And they needed to do something about it. Enter .Net...
By having a framework that shares a common library makes everything fit together so nicely. The point of a tool is to enable you to complete a task as easily as possible. There are many ways to dig a hole, but a spade does the job better than a trowel. Doesnt mean that you have to use the spade all the time. And the .NET framework is a tool. It enables you to complete a task. And if Sun redesigned its Swing component (its shockingly bad) and introduced a database application then there would be an alternative, but with M$ supplying a complete package, with the ability to swap components in and out of the development environment, and the ability to have a group of coders with different skills all working together, makes it a very attractive package to architects and designers.
All .Net is doing is evolving and improving on the existing M$ applications. Until now, they have been missing all the good bits of java. Object orientation, inheritance, automatic garbage collection etc etc. Technology is evolving. Business is evolving. There is nothing wrong with development tools evolving too.
The point of having two different languages in the first place is to fulfill two different needs. If you wanted to slap a basic UI on the screen with the minimum of heff in the past you used VB, whereas if you wanted more performance, functionality and headaches you chose C++. Now they're both the same under the .NET platform. How...pointless. Why do Microsoft have two different languages doing the same job and then felt the need to go out and invent a third? Why not just have one? Saying that VB programmers would find C++ too tough and C++ programmers would die of embarrassment writing VB is NOT a good enough to invent a new language - if you're not trained or competent to use a tool, that's your fault, not the fault of the tool.
I've enver used C# before, certainly not in any large projects, so I'm just going on what I thought was well informed advice.
C# was developed by M$ to enable programmers from a C++ background to program and integrate easily with the .NET framework. Its not a subset, but a seperate entity in its own right.
And this is why the .NET framework will (in my opinion) become so powerful. In one word - integration.
By evolving VB into VB.NET, ASP into ASP.NET, SQL SERVER into SQL SERVER.NET and adding the C# suite, M$ have made a developers life (in the overall project-wise perspective) so much easier. Whatever the project and whatever the skill set of the developers, it is now possible to deliver a project, large or small, with minimal effort. All made possible by introducing a 'common language runtime library'.
I have worked on projects before where the programming is the easy bit. Its when you try and for example get the frontend ASP talking to the midtier oracle database as well as various other external applications or services, the real problems are highlighted. And i think this is the issue M$ are trying to address.
With the .NET framework you can have ex C++ programmers working along side VB programmers and they are able to step through and reference each others code with no hassle or fuss what-so-ever. When you debug code and step through it, you can physically watch the debugger step from VB to C# to the SQL SERVER stored procedures and back again. and that (again, in my opinion) rocks.
Its true, there are similarities between C++ and C#, but its not a case of which is better, its a case of which language suits the job in hand.
And no, i dont work for M$.