Additional profile information on Alfred Thompson at Google+
I see that Susan Canaga is bringing her school's discussion on programming languages looking for industry opinions. This is a topic I have addressed a number of times before (most recently here) but one which never seems to be settled. In any case if you an opinionated individual and want to put in your two cents I'm sure Susan would welcome the feedback.
As I have said more than a few times I like Visual Basic. NET as a first language. The syntax is easier than the C based languages. Literally millions of programmers use Visual Basic to develop applications with significant user interface needs. So it does scale up to full scale professional development.
C# would be my second choice for a first language and my first choice for a second one. I like that it is a .NET language which means that you can learn and use the .NET Framework classes. And of course C# allows students and others to easily use the XNA Game Studio Express to create video games for both Windows and the Xbox 360. I happen to think that C# is an easier language to learn than Java. Yes I am biased but I came to that conclusion years before I came to work for Microsoft. I like the way built-in types are handled in C#. I also like using properties (an option in VB as well of course) and other features. LINQ and related features that are coming (also for VB) in the near future look like they have the potentially to really simplify handling data bases and other large amounts of data easily. That has huge potential.
C++ is a language that is not going to go away any time soon. It is still the language of choice for a lot of high performance gaming, embedded systems, and anything that absolutely has to get close to the hardware. A first language? Not if up to me. On the other hand the things one can teach using C++ makes it an important language for someone who intends to be a serious student of computer science. If it were up to me I would probably have left C++ as the language of the Advanced Placement exam. C++ is not the best way to learn object oriented programming. C#, VB and even Java are better for that. On the other hand there is power, at the cost of ease and safety of course, in C++. I like that for when it is really needed.
But of course if it were up to me no one would take AP CS as their first programming course. That's like taking AP Calculus without having Algebra and Geometry first. It can be done but it is hardly a good idea.
The Visual Studio Express editions are available for free in C++, C#, Visual Basic and Visual Web Developer editions so teachers and students have some great free options for all of those languages. If someone wants to make the case that Java is better than either C# or VB as a first language go ahead. (I've got my flack jacket on.) I feel sorry for AP teachers who have no choice but to teach it.
A recent blog post by Josh Ledgard reminded me of a book that had a great influence in my early programming days. The books was Programming Proverbs by Henry Ledgard and I still have my copy. It's one of the few computer books I bought in the mid 1970's that still has some relevance. The code examples are in ALGOL, FORTRAN and BASIC but the ideas apply to most all programming languages. Dr. Ledgard also wrote related books specifically for C, COBOL (I have that one), FORTRAN (I used to have that one but I can't find it) and PASCAL. It was quite the series.
I've been re-reading the book since last week and I am thinking about writing a series of posts about each proverb. I'm interested in seeing some discussion about how each one holds up over time. The book is over 30 years old and there is a lot we have learned about programming in that time. Or is there? Other than Object Oriented Programming what's new? Are programs today less buggy than they were thirty years ago? Actually I think they are worse many times. Perhaps we should bring more of these proverbs to people's attention? Of course many of them are being brought up but are people really paying attention? Let's discuss it.
What is the list you ask? Well here it is.
What do you think of this list? Anything you would add or drop?
Are you a keyboard shortcut sort of person? Do you like to keep your hands on the keyboard and bypass the menus? I admit that I am one of those people. So when I saw that Microsoft has made available some reference posters for Visual Studio keyboard shortcuts I knew this was something I needed to share.
There files are designed to be printed out on larger sized pieces of paper and used as references. Younger eyes than mine may find them usable on standard 8.5 x 11 (or A1) size paper but the print is a little small for me.
The links for language specific shortcut keys are:
Just the things for classroom reference especially if you have a large scale printer.