Function Another_C# _Versus_VB_Article(Byval verdict As Boolean
) As Boolean
'IMPORTANT: This article is in response to an article written by Nigel Shaw with title: Not Another C# Versus VB Article.
Dim myComment As New Article
Dim refArticle As Article = Not_Another_C#_Versus_VB_Article
myComment.content = "After reading Not Another C# Versus VB Article , I found it necessary to remark on the article.
First of all, the author seems to criticise the VB culture a lot.
Secondly he seems to give recommendations, apparently inclined to favour C# developers more than VB developers because of prevailing cultural differences.
(Hope I am not wrong on the above statements.)
A programming language culture has no influence on the value of that language. It comes rather from background training. Programming is so close to mathematics. You may read all maths books, follow all guidelines but if you don't have some intuition and an atitude to let your thoughts run free at times, you will never figure out to solve certain mathematical problems. The concept of 'pre-knwoledge' or clever foresight in maths (difficult for me to explain) are some special skills acquired with time, alongside thought and experience; e.g. solving some complex integrals.
Anyway, mathemathics is not my concern here and frankly,I wish to lay out the opinion that it is not the concept of culture that matters, but a passionate,appreciative, disciplined approach to programming. Generally programming is a beautiful creative process - this fact is even echoed by Niklaus Wirth and many experienced guys on the job who share the joy of programming.
By the way, I am a VB (VB6.0, VB.NET, VB 2005) programmer. Although I do admit the first versions of VB shielded VB programmers from the rich elements of programming, they nevertheless served a very important purpose of breaking the barrier to software development. Newbies got a simpler view of the murky, much-feared field of programming. That's the reason the base language was called BASIC. I also wish to inform him that prior to practising in VB, my language of choice was standard Pascal. Yes, standard Pascal with a few tuning from the Turbo Version. My former Computer Sciences professor was a diehard of UNIX and traditional systems but despite his attempts to cast the prieceless virtues on us, it took rather some time for us( his students) to understand Pascal and programming concepts. Ironically, VB helped me understand Pascal so much that I decided to adopt Computer Science as my way of life, rather than Physics (which I had previously chosen). Funnily, most of my university mates, who made good grades at computer sciences exams, nonetheless lacked common skills to asbtract real world problems to the programming world later admired me because I knew more of the practical side of programming... Well too much rambling on my past is not the main purpose here.
So, is the VB culture responsible for the laxity and inefficiency of certain 'programmers' who created any piece of hacked code in the name of programming? Well here is the difference the author of Not Another C# Versus VB Article. to see: A money-minded/sloppy/unskilled VB programmer did not acquire his bad reputation as a consequence of language culture - rather such a developer got this from the moment he made a wrong decision to become a programmer, because he was pursuing the wrong dreams. Such a programmer did not take into account the discipline required when it came to writing down some useful code. Aha! I guess the the author of Not Another C# Versus VB Article. will say trends point to most VB programmers...Good! It is quite normal that humans always seek the easier path (including me)when solving a problem. Therefore it was quite natural for a sloppy fellow to knock the doors of the easier programming language(VB 6.0 at that time), when searching for a place in the dark 'mysterious' world. But this does not imply that culture was VB - it was just a manifestation of taking an opportunity when everyone dreamt of glory even for less work done. C++ and any other language-oriented followers could also show same tendencies if they worked only for show and economic gain, rather than for a passionate, work-oriented attachment to the whole idea of developing nice solutions.
Nevertheless, there comes C#, a new powerful language (surprisingly, it is a 'newbie language')though it is heralded as a powerful language. I may also add that if a Java-diehard read Not Another C# Versus VB Article. , he will spontaneously dismiss both VB.NET and C# as Microsoft languages! I will however disagree with the Java guy because parallel-wise, C# seems more like a twin to Java and I feel it is even better than Java. Furthermore, the C# culture is so identical to C++ and Java, so why is VB.NET not included in the game? Oho... As well as a culture has been assigned to VB, so is the C-based culture also prevalent. The culture of scorn - mocking at VB as a baby language and at its programmers. So great is this scorn such that, when telling most people you meet, that you are a VB.NET programmer, their reaction is always almost similar; they look down on you and even fail to realise the difference of VB.NET from its predecessors. They ask you if you are know C++ or Java(guess even pure amateurs will alawys ask these questions to you). If they are Microsoft-friendly and updated on recent changes, they would tell you to dump VB.NET and take up C# (as if there is a functional advantage gained by switching between the languages!)
Everything is style-based and it should be noted that the syntaxes of programming languages and algorithms were implemented because no speech-language could best describe processes, because of apparent ambiguity and possible misunderstandings of human languages. This development led to a creation of styles in programming languages that have evolved for ages. While certain people find flavour in liking highly compact code, some (like me) prefer more human-language friendlier code. This suits our different tastes and makes us develop a culture around languages( but with no advantage of a culture over the other). I personally like writing code in a strutured manner (variables declared at the top,intuitive nesting of data types...) but the hell with adding a ";" always at the end of line! This however plays no role in using this as a factor of defining the VB culture as being better. What matters is a good vision, a good algorithm and hence a good program. No culture teaches one to disrespect rules and create a mess of a language, or to hack pieces and celebrate a birth of an explsoive buggy program.
Hmmm... there is really much I wish to add here but I guess a very long article here may seem to be a sermon and may tend to be tedious (if not already boring)... I would just like to round off by making some remarks:
- Ever since the face of VB was relifted and reshaped(it is quite OOP-based now. Hey C-based guys accept this fact!), a good VB.NET (or a good VB 2005 or even a good VB 6.0 programmer),a good C++/Java/ C# programmer deserve the same amount of respect. Anyone good with any language is good enough and there is no culture that encourages or supports misuse or sloppiness or irresponsibilty in programming
- To VB.NET programmers switching to C#: If the switch is based either on industrial demands or curiosity or personal style in writing code to take on the unidentical twin of VB.NET, then the move is OK. However if the switch is intended as a means of disapproving of VB.NET, then the former BAD VB.NET programmer will become a BAD C# programmer because it proves he is unable to master his former language.
- To old VB 6.0 programmers: I implore on them to take on VB.NET. Of course it is sometimes painful to rewrite libraries of old code and upgrading, but the tradeoffs of adapting to the .NET version outweighs using obsolete features. The world keeps changing and I think the era of the old VB is gone (please I'm sorry if this hurts you).
- To C# programmers, I say hello and lets keep to our styles. I learnt VB.NET from Microsoft Press books and I am quite familiar with C# code (remember I also studied Pascal. I have neither observed any major difference between the languages nor see a clash bewteen their cultural identities. As described on Wikipedia, each language implements the same core features except for certain purposes. If I desire a certain C#-available-only-feature, then I will tap on fellow C# fellow's back to do me a favour, while also offering him the options which he may lack from our VB box. By the way rarely do programmers implement all the features of a language.
To the author of Not Another C# Versus VB Article : I accept your advanced apology for writing your article in a manner that seems to downplay the importance of the VB culture(I also apologise if my article criticised C-based culture). It has been interesting getting a view from the other side of the same river(.NET). We are both neighbours(VB.NET and C#) to the same river, which have almost the same homogenous banks. I am proud of the VB culture and you ought to be proud of the C# culture because variety is the spice of life. Finally, a long hearty goodbye..."
First Build: 1.0.0
12/09/2006 07:00 PS: I wrote this article at 06:00 am with hardly sleeping through out the night because I did a mistake of drinking coffee over a programming bug. Please debug for grammatical and spelling errors and send the trace file to me :-D
Minor Revision: 1.0.1
12/09/2006 13:45. Just woke up from bed. Greeted by comments on the article. Made some changes to grammar and spelling. Also removed direct named references (as a sign of respect) to Mr. Nigel Shaw - the author of Not Another C# Versus VB Article.
Please also note I write using the standard British English language notation For instance colour = color,flavour = flavor and maths = math.
I still appreciate your comments and hope this article serves as a food for thought.