---
title: "VB.Net is diverging from C#. That can't be bad, or can it?"
url: "https://osherove.com/blog/2004/4/22/vbnet-is-diverging-from-c-that-cant-be-bad-or-can-it.md"
canonical: "https://osherove.com/blog/2004/4/22/vbnet-is-diverging-from-c-that-cant-be-bad-or-can-it.html"
published: "2004-04-22T20:39:00"
updated: "2004-04-22T20:39:00"
tags: [".Net Original"]
author: "Roy Osherove"
description: "It's interesting to see how VB.NET is slowly but surely diverging itself into a whole different language and toolset. The most notable of these changes to me right now is the “ My” language addition , available in…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# VB.Net is diverging from C\#. That can't be bad, or can it?

By Roy Osherove April 22, 2004 In [.Net Original](https://osherove.com/blog/category/net-original)

**Historical article** · Originally published April 22, 2004; technical details may be outdated.

It's interesting to see how VB.NET is slowly but surely diverging itself into a whole different language and toolset. The most notable of these changes to me right now is the “[My” language addition](http://msdn.microsoft.com/msdnmag/issues/04/05/VisualBasic2005/default.aspx), available in VB.Net only in the next version of VS.Net (2005).

This feature is pretty frigging' cool. It basically is an “alternate” object model, a simpler object model with shortcuts to lots of frequently used .Net functionality, which also simplifies lots of the calling conventions for many activities such as read/write files, printing, reading comm ports and so on. This is indeed a good feature, and is a welcome addition to vb.net.

But it has a not so good side. It means VB.Net programmers will be learning and using a simpler, but most importantly \*different\* object model for many tasks, than the one used by C# developers. That would lead to difficulties in migrating between these two languages and developing/maintenance of shared code bases with these two languages intertwined. Basically, a vb.net dev who wishes to write in C# would have to “re-learn” the same “different” object model used by C#. This effectively overturns lots of the statements going on right now that say “if you can develop in \*this\*, you can develop in \*that\*“. No. The learning curve just grew when switching sides. At least it only grew when switching from one of those sides to the other. A C# dev can still use the same programming object model they are used to in VB.Net, barring small syntax changes. A VB.Net dev who only used to work with “My” will have quite a learning curve to go through.

So how do you solve this? I'd say go ahead and add the “My” feature to C# as well. I don't see any other way around it. Well, there is another way though quite impractical - when you teach VB.Net - teach it using the C# object model, not the simplified one (assuming you want the devs you teach to be able to work in both languages in the future)

More stuff this could cause: the return of the VB coder myth (a.k.a “Mort”). Maybe it can even convince vb coders to leave C# alone afraid of the learning curve.

In conclusion, I'm not trying to diss this feature. In fact, I think it is so important, it should be in both languages, or it will make \*too much\*  of a difference and create an invisible, yet remarkably familiar "wall" between the two old camps.

## More in .Net Original

[All posts in .Net Original](https://osherove.com/blog/category/net-original)

- Apr 25, 2004

    ### [Test Driven Development Workshop is a go!](https://osherove.com/blog/2004/4/25/test-driven-development-workshop-is-a-go.html)

- Apr 23, 2004

    ### [Hands on Test Driven Development - class resources needed](https://osherove.com/blog/2004/4/23/hands-on-test-driven-development-class-resources-needed.html)

- Apr 21, 2004

    ### [\[Coding Contest\] Most Useful/Innovative VS.Net Add-in/Macro (and some huge prizes)](https://osherove.com/blog/2004/4/21/coding-contest-most-usefulinnovative-vsnet-add-inmacro-and-s.html)

- Apr 21, 2004

    ### [Ack! My DataTable magically grew a new data column. Here's why.](https://osherove.com/blog/2004/4/21/ack-my-datatable-magically-grew-a-new-data-column-heres-why.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
