OK, let me continue then.
1) Your first reply was worthless. It attempted to be a skit, but failed miserably because you had the facts wrong. Other people knew what I meant, they answered it sensibly. Even some questioned your own comprehension of the question. Granted it could have been worded better, but the fact remains your answer was obnoxious and didn't help the question at hand. To me, it appeared as if you attempted to raise onto a little soapbox and protest as someones lack of understanding of something foreign to them.
2) By your OWN admission, and I quote, "I don't use C#, but my colleagues do." Stop there. I don't want to know. I don't want hearsay, I want answers from people who know what they are talking about. Again, fact is your professional opinion on something that you don't use is absolutely worthless to me (and anyone else that the thread may help).
3) Your answer of, and again I quote, "any of which would take less than an hour to learn, providing there is competence in other mediums." Really? So are you really saying, and choose your answer carefully, that YOU (someone who doesn't use C#) knows how long it will take someone to learn the basic fundamentals of a new language? Are you saying that my extensive knowledge of the programming fundamentals of VB.Net (Loops, events, classes, generics, serializations, interoperation, reflection, globalization, delegates, threadings [shall I go on?]) that I can learn the general syntax on handling all this WITHIN ONE HOUR - providing I'm, ahem, competent in other mediums?
Yes, I've found out that my simple:
[VB.Net]
Dim pVariable AS String = "My String"
is wrote as
[C#]
pVariable String = "My String";
I've picked that up quite well. But when I have to learn about the new syntax for loops (granted it's relatively easy), then we start to add in a bit more time for it to sink in.
When I start to add in file handling routines (and I'm not talking about ye olde dialog box, I'm talking down to the nitty gritty file handling events), then that's a little bit more to take on board.
Yes I accept that pVariable.ToString will work on VB.Net and C#, nothing much to learn there, but there's a whole world of difference between:
[VB.Net]
Dim pItem as StockItem = New StockItem
Dim ds as FileStream = New Filestream("StockItem.XML",FileMode.Open)
Dim xs as XmlSerializer = New XmlSerializer(GetType(StockItem))
pItem = CType(xs.Deserialize(fs), StockItem)
fs.Close()
Return pItem
and
[C#]
StockItem pItem = new StockItem();
FileStream fs = new FileStream("StockItem.XML",FileMode.Open);
XmlSerializer xs = new XmlSerializer(typeof(StockItem));
dsp=(StockItem)xs.Deserialize(fs);
fs.close();
return pItem;
Still say learning all this is gonna take me less than an hour? Or is my incompetence starting to show through? 15 years been a waste of my time?
4) Another quote - "Given all .NET platforms can read any of the above, no, it would take you less. 15 years experience and you can't see that?" See what? What the hell are you on about? O sorry, you're saying that all .Net platforms can read COM ports, Printers and dataset handling? Er, yes I guess you're right. Forgive my stupidity on that one. Or are you trying to impress me with your intelligence and know that the ending syntax will probably be the same, i.e., .Open()
Now, follow me to example land and let me show you something else I've picked up:
[VB.NET]
Dim pProcesses() As Process = Nothing
pProcesses= Process.GetProcessByName("explorer","machinename")
For Each pProcess As Process In pProcesses
Console.WriteLine(pProcess.ProcessName)
Next
[C#]
Process[] pProcesses =null;
pProcesses =Process.GetProcessByName("explorer","machinename");
foreach (Process ThisProcess in pProcesses)
{
Console.WriteLine(ThisProcess.ProcessName);
}
Little bit more to learn there. You agree? Thought not. Well there is for me, y'see for one I've never used a null in programming. Sure I've used it in SQL, and I know what a null is (took me 14 years to learn, but hey ho), and those funny square brackets. What are those? Quick flick in the book reveals it's an array.
foreach, that's something new. Different to VB.Net, but, yes, I understand that now (tick tock tick tock, there's the hour countdown again). Curly braces, hey they look familar, I've saved a bit of time on this magic hour by knowing about curly braces.
Yes I can see perfectly well that the commands are the same, they are, after all, .Net commands which are common throughout the framework. But the syntax to acquire the results DOES differ, and in my mind, someone who hasn't touched the language before, it's new to me.
Getting bored yet? 'Cos I sure as hell am!
Anyway...
Finally:
5) Can't be bothered to quote it all, but the "15 years experience and you can't see how trivial it is to learn a new syntax, let alone a new syntax to the same system (.NET)" again bothers me slightly.
That's EVERY post (bar one) where this "15 years experience" thing has cropped up. Why? Should I know a new language because I've had 15 years experience in VB?
I've had 36 years experience in knowing what milk tastes like, should I have found out what cranberry juice tastes like after 15? I'm confused?
Let me remind you of one important thing here. I work. I work hard, I work long and I LURVE what I do. If you want to be pedantic, I've been developing for almost 21 years now so I think I can consider myself as a bit of an old hat when it comes to developing software. But as someone said in this thread (won't mention their name as it's not fair to bring them into this), but by NOT knowing the language, it's costing me money. What is ALSO costing me money is having to take time off and learn a new language and do the research. A forum is a perfect place (or should be) to ask a question and get some feedback, ideally from (and PLEASE take note) someone who has experience with the question in hand. Whether it takes someone as high and mighty as you an hour to learn, or someone with little competence (me) a week to learn, I do NOT KNOW until I ask the damn question. I'm too busy working on a customers solution to suddenly sit back and say "Think I'll learn a new language today". I don't have the time.
So please, next time someone asks a question, irrespective as to whether you think they are competent or not or whether you think their question should be posted, then either put up and shut up or offer something constructive and helpful. Otherwise you're just going to look a [Vb.Net] nothing / [C#] null
*edit* Inquisitor - thanks for that answer - yes as I've mentioend the ending syntax will be the same, but it was the syntax for the methods that I thought would be totally different. Thanks for the way you answered though, appreciated.