# Java versus VB.Net

**URL:** https://boards.straightdope.com/t/java-versus-vb-net/304531
**Category:** In My Humble Opinion
**Created:** [May 19, 2005, 3:09am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531 "2005-05-19T03:09:55Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Nars\_Glinley](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/nars_glinley/32/8177_2.png) [@Nars\_Glinley](https://boards.straightdope.com/u/Nars_Glinley)
#### Post date: [May 19, 2005, 3:09am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/1 "2005-05-19T03:09:55Z")

</div>

I’m about to start a programming project at work that will probably require 3 developers working for about a year. /WAG All of the programmers are experienced developers with around 10 years experience. The problem is picking a toolset to use. In the past, we have been an Oracle shop and that meant using Oracle Forms. Oracle has made it pretty clear that they are done enhancing Forms and that their future is Java and ours should be too.

I have to decide which platform would be better for development, Java or [VB.Net](http://VB.Net) given that none of the programmers know either tool. I’m not really sure what questions I should be asking to make this determination. One thing that I’m most curious about is learning curve. Is one easier to become proficient at?

I’d appreciate any advice as to where to look, what to ask, anything at all.

The backend hardware will be Oracle on Unix if that makes any difference. We run PeopleSoft which will eventually become Oracle written in Java, but that could take years to happen.

---

<div class="post-metadata">

### Author: ![Imasquare](https://avatars.discourse-cdn.com/v4/letter/i/5f9b8f/32.png) [@Imasquare](https://boards.straightdope.com/u/Imasquare)
#### Post date: [May 19, 2005, 5:07am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/2 "2005-05-19T05:07:13Z")

</div>

I’m a [VB.NET](http://VB.NET) programmer. [VB.NET](http://VB.NET) syntax is much more English like than Java, but Java can be targeted at other platforms apart of Windows.

---

<div class="post-metadata">

### Author: ![Civil\_Guy](https://avatars.discourse-cdn.com/v4/letter/c/d78d45/32.png) [@Civil\_Guy](https://boards.straightdope.com/u/Civil_Guy)
#### Post date: [May 19, 2005, 5:30am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/3 "2005-05-19T05:30:32Z")

</div>

I’m an, uh, experienced amateur. Various hobby projects with Visual Basic and VBA, a few with Java, none with [VB.Net](http://VB.Net) as such.

There’s just the various things about Visual Basic syntax that annoy me, and VB seems to require an understanding that eventually makes sense, but not immediately.

For learning curve, I (with some ignorance) vote for Java.

I’ve found the docs at [Sun](http://java.sun.com/j2se/1.4.2/docs/api/overview-summary.html) to be pretty accessible and not too hard to figure out. IMHO.

---

<div class="post-metadata">

### Author: ![rjung](https://avatars.discourse-cdn.com/v4/letter/r/45deac/32.png) [@rjung](https://boards.straightdope.com/u/rjung)
#### Post date: [May 19, 2005, 6:36am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/4 "2005-05-19T06:36:29Z")

</div>

Unless there’s a specific technical reason for using [VB.Net](http://VB.Net), I’d say go with Java. It’s easy to learn, teaches good object-oriented techniques, and is a language that has an actual high-paying career behind it. 😉

---

<div class="post-metadata">

### Author: ![Sage\_Rat](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/sage_rat/32/399_2.png) [@Sage\_Rat](https://boards.straightdope.com/u/Sage_Rat)
#### Post date: [May 19, 2005, 6:38am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/5 "2005-05-19T06:38:40Z")

</div>

I’m not certain how Forms worked–so it may be that you would be more used to the code + widgetting style of VB as opposed to the code-only of Java. But beyond that, I would say that you’re best to go with Java.

If you’re going to be dealing with Sun software and are already always following all the Sun information, then you might find it easier to put stuff together that works correctly with Oracle the first time with Java–as that would probably be the language in which all the examples and helper objects will be written in and suplied for.

VB on the other hand–once one gets over the nifty factor of widgetting–I would rather have a pure code solution as it’s less dependent on the whims of the people who made my development environment (so I can split it how I want to be organised intelligently, not have to worry that the next version of the IDE will cease working with my code, etc.) So even if going .NET, I would probably recommend C# first for anything more than some quicky demo apps.

Main issue with coding in Java is the program will be slow and pretty much always just slightly wonky on every platform (though a different wonky for each!) But if slick-looking and performing GUIs isn’t a large concern, then this probably isn’t an issue.

---

<div class="post-metadata">

### Author: ![Small\_Clanger](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@Small\_Clanger](https://boards.straightdope.com/u/Small_Clanger)
#### Post date: [May 19, 2005, 8:58am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/6 "2005-05-19T08:58:53Z")

</div>

Argh! I lost my post. Here’s the short version.

I say go for C# and Windows Forms.

The .Net IDE is so much better than any Oracle tool you won’t believe it.

The tough bit will be the move to OO, not learning the new language. And that will be the case for Java or any .Net language. Using **{ . . . }** instead of **BEGIN . . . END;** is not the hard bit.

FWIW Java and C# are very similar code wise, dunno about [VB.Net](http://VB.Net) (I hate VB).

Get ready to lose base table blocks, Oracle Forms does so much for you here you might actually miss it(!).

Gotta go, I have work to do (yes it’s an Oracle form). Back if I have time.

---

<div class="post-metadata">

### Author: ![Liberal](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Liberal](https://boards.straightdope.com/u/Liberal)
#### Post date: [May 19, 2005, 10:28am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/7 "2005-05-19T10:28:12Z")

</div>

[VB.Net](http://VB.Net) is cross-compatible with all other Dot Net platforms, including C#. The biggest disadvantage of Dot Net is that its engine will have to be installed on users’ machines, and a special file is needed for non-XP environments.

---

<div class="post-metadata">

### Author: ![Shalmanese](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@Shalmanese](https://boards.straightdope.com/u/Shalmanese)
#### Post date: [May 19, 2005, 6:33pm UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/8 "2005-05-19T18:33:23Z")

</div>

If the developers have no experience in any language, then I would say go C#.NET. [VB.NET](http://VB.NET) is only really useful to VB programmers who don’t want to learn new tools.

IMHO, the .NET framework and VS IDE is far superior to anything you can get on the java side.

---

<div class="post-metadata">

### Author: ![Athena](https://avatars.discourse-cdn.com/v4/letter/a/35a633/32.png) [@Athena](https://boards.straightdope.com/u/Athena)
#### Post date: [May 19, 2005, 7:32pm UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/9 "2005-05-19T19:32:56Z")

</div>

Interestingly enough, I just started a job where they faced a similiar decision not too long ago.

We have a system written in Java. They knew it needed to be replaced, and faced the choice of Java vs. .NET. Ultimately, they went with .NET because it simply provides WAY better tools & documentation.

I’d never really done much with Java, but have spent the past month working on the old Java codebase. I can’t believe how far behind the tools we’re working with are; MS had a better IDE ten years ago. There’s simply no comparision between the two - I’m much more productive working with MS tools, and it’s not just because that’s my background.

I’ll echo what others are saying about VB vs. C# - go with C#. It’s very, very close to Java syntax, and a really nice language to boot.

---

<div class="post-metadata">

### Author: ![Capt.Ridley\_s\_Shooting\_Party](https://avatars.discourse-cdn.com/v4/letter/c/cc9497/32.png) [@Capt.Ridley\_s\_Shooting\_Party](https://boards.straightdope.com/u/Capt.Ridley_s_Shooting_Party)
#### Post date: [May 19, 2005, 11:17pm UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/10 "2005-05-19T23:17:45Z")

</div>

> [@](#):
>
> IMHO, the .NET framework and VS IDE is far superior to anything you can get on the java side.

IntelliJ IDEA blows VS out of the water, IMO. It’s a true joy to work in it.

---

<div class="post-metadata">

### Author: ![Roadfood](https://avatars.discourse-cdn.com/v4/letter/r/9fc348/32.png) [@Roadfood](https://boards.straightdope.com/u/Roadfood)
#### Post date: [May 19, 2005, 11:57pm UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/11 "2005-05-19T23:57:12Z")

</div>

> [@+MDI](#):
>
> IntelliJ IDEA blows VS out of the water, IMO. It’s a true joy to work in it.

Hey, I was going to say that. So I’ll include a link to it: [www.jetbrains.com](http://www.jetbrains.com). Idea is the only Java IDE I’ll use now. It’s very easy to learn, and it has so many features that increase my productivity without getting in the way, that it’s just amazing.

I don’t think that tool availability and features should be the priority when deciding on which technology to use, but even if they are a priority Idea keeps Java right in the running. Personally, I’d also agree with those who recommend going with Java, it’s just more versatile.

---

<div class="post-metadata">

### Author: ![Imasquare](https://avatars.discourse-cdn.com/v4/letter/i/5f9b8f/32.png) [@Imasquare](https://boards.straightdope.com/u/Imasquare)
#### Post date: [May 20, 2005, 12:01am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/12 "2005-05-20T00:01:28Z")

</div>

> [@Liberal](#):
>
> The biggest disadvantage of Dot Net is that its engine will have to be installed on users’ machines, and a special file is needed for non-XP environments.

Quite true and it is a real pain. But the same is also true for Java - the client machine must have the Java runtime environment installed to run your Java app.

A lot of C# people have been advising against [VB.NET](http://VB.NET) in favour of C#. They are correct but not for the reasons they give. Both [VB.NET](http://VB.NET) and C# compile exactly the same and run under the Common Langauage Runtime. There is no difference in run time efficiency or functionality.

But career wise it would be wise to choose C# simply because many of your colleagues (including prospective employers) are software snobs and will tend not to take you seriously as a VB programmer. That is why after many years of [VB.NET](http://VB.NET) development I am now switching over to C#.

---

<div class="post-metadata">

### Author: ![TimeWinder](https://avatars.discourse-cdn.com/v4/letter/t/bcef8e/32.png) [@TimeWinder](https://boards.straightdope.com/u/TimeWinder)
#### Post date: [May 20, 2005, 12:19am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/13 "2005-05-20T00:19:00Z")

</div>

> [@Liberal](#):
>
> [VB.Net](http://VB.Net) is cross-compatible with all other Dot Net platforms, including C#. The biggest disadvantage of Dot Net is that its engine will have to be installed on users’ machines, and a special file is needed for non-XP environments.

Let me disagree with all of this, point by point, sorry:

I’m not sure what “cross-compatible” the first sentence means – C# is a language, not a platform, and [VB.NET](http://VB.NET) code will certainly not compile in a C# compiler. Sure, you can link them together, but most languages can interlink these days. Java can be linked with [VB.NET](http://VB.NET), too.

The special file is needed on XP, too; and there are two subtly different versions of the .NET framework to support, depending on how good your customers have been about keeping up with their Windows Updates. You’re going to have to install the one you want regardless of OS.

Finally, there’s the cross-platform issue: “.NET platforms” really means only Windows. There’s the Mono project to move some of it to other OSes, but it specifically doesn’t include Windows Forms yet, which is something the OP will need.

Now my own take on it (25+ years of Software Development experience):

Java or VB will get you a job, if that’s a criteria. Java runs on effectively any operating system on earth. VB runs on one (admittedly the most popular desktop one). In my not very humble,opinion, anyone who has the choice to write in a cross-platform manner–and does not–is doing themselves and their employer a grave disservice. Sure, it’s easy to say “we don’t care about anything other than Windows” now, but will that be true in ten years? In twenty? I’ve been on any number of projects that wanted to switch to cheap Linux servers to run something, but someone had written 25K lines of code in VB or C#, and so we’re stuck with Windows licenses…again.

By all means, learn both (they’re conceptually similar languages, anyway, learn one and pick up the other in a week or so, assuming their not your first languages). But assuming that your needs in the future will be identical to your needs today violates the key tenent of Software Engineering: design for change.

---

<div class="post-metadata">

### Author: ![Nars\_Glinley](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/nars_glinley/32/8177_2.png) [@Nars\_Glinley](https://boards.straightdope.com/u/Nars_Glinley)
#### Post date: [May 20, 2005, 1:21am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/14 "2005-05-20T01:21:41Z")

</div>

I appreciate all of the comments. I hadn’t really considered C# because I just **assumed** that it was difficult to learn. I’ll look into it.

---

<div class="post-metadata">

### Author: ![Capt.Ridley\_s\_Shooting\_Party](https://avatars.discourse-cdn.com/v4/letter/c/cc9497/32.png) [@Capt.Ridley\_s\_Shooting\_Party](https://boards.straightdope.com/u/Capt.Ridley_s_Shooting_Party)
#### Post date: [May 20, 2005, 1:23am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/15 "2005-05-20T01:23:36Z")

</div>

> [@](#):
>
> I’m not sure what “cross-compatible” the first sentence means – C# is a language, not a platform, and [VB.NET](http://VB.NET) code will certainly not compile in a C# compiler. Sure, you can link them together, but most languages can interlink these days. Java can be linked with [VB.NET](http://VB.NET), too.

Pretty sure he [Liberal] was referring to the fact that [VB.net](http://VB.net) and C# both compile down to the same bytecode, highlighting the fact that both are as efficient (or inefficient) as each other so choosing between the languages is just choosing which syntax you prefer.

I could be wrong, however, and don’t wish to speak for Liberal.

---

<div class="post-metadata">

### Author: ![rjung](https://avatars.discourse-cdn.com/v4/letter/r/45deac/32.png) [@rjung](https://boards.straightdope.com/u/rjung)
#### Post date: [May 20, 2005, 7:08am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/16 "2005-05-20T07:08:53Z")

</div>

> [@KRM](#):
>
> I appreciate all of the comments. I hadn’t really considered C# because I just **assumed** that it was difficult to learn. I’ll look into it.

If you’re new to C programming and/or object-oriented programming, C# (or C or C++) is a tough way to go. I love C/C++ like a brother, but it’s not something I’d throw at a newbie – it’s a language that will merrily let you shoot yourself in the foot without a second thought.

And really, if you’re going to go with C#, why not just use C++ instead? C# is just C++ with the serial numbers filed off so Microsoft can claim it as their own (and lock you into their proprietary system for life, as **Timewinder** points out)…

---

<div class="post-metadata">

### Author: ![Shalmanese](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@Shalmanese](https://boards.straightdope.com/u/Shalmanese)
#### Post date: [May 20, 2005, 7:29am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/17 "2005-05-20T07:29:40Z")

</div>

> [@TimeWinder](#):
>
> I’m not sure what “cross-compatible” the first sentence means – C# is a language, not a platform, and [VB.NET](http://VB.NET) code will certainly not compile in a C# compiler. Sure, you can link them together, but most languages can interlink these days. Java can be linked with [VB.NET](http://VB.NET), too.

How familiar are you with the entire .NET philosophy? The notion that programming languages can interlink is utterly wrong and this is what .NET was specifically designed to address. Sure, java RMI can theoretically link with C and variants, but I would like to see you get a system running Java, Perl, C++ Lisp and Fortran running together, sharing complex data structures without hundrends of lines of spaghetti code. That is what .NET promises to do.

> [@](#):
>
> The special file is needed on XP, too; and there are two subtly different versions of the .NET framework to support, depending on how good your customers have been about keeping up with their Windows Updates. You’re going to have to install the one you want regardless of OS.

I gathered from the OP, that this would mainly be a internal type project given that they were originally considering Oracle forms. The .NET runtime is slightly larger than the Java runtime (something like 40MB vs 110MB IIRC) but more people have java AFAIK.

> [@](#):
>
> Java or VB will get you a job, if that’s a criteria. Java runs on effectively any operating system on earth. VB runs on one (admittedly the most popular desktop one). In my not very humble,opinion, anyone who has the choice to write in a cross-platform manner–and does not–is doing themselves and their employer a grave disservice. Sure, it’s easy to say “we don’t care about anything other than Windows” now, but will that be true in ten years? In twenty? I’ve been on any number of projects that wanted to switch to cheap Linux servers to run something, but someone had written 25K lines of code in VB or C#, and so we’re stuck with Windows licenses…again.

cross platform is all very well and good until you try and do anything non trivial in a real world enviroment. It depends on the real world application of the software in the end but, IMHO, the benifits of cross platform development are usually overstated.

> [@](#):
>
> By all means, learn both (they’re conceptually similar languages, anyway, learn one and pick up the other in a week or so, assuming their not your first languages). But assuming that your needs in the future will be identical to your needs today violates the key tenent of Software Engineering: design for change.

---

<div class="post-metadata">

### Author: ![Ximenean](https://avatars.discourse-cdn.com/v4/letter/x/aca169/32.png) [@Ximenean](https://boards.straightdope.com/u/Ximenean)
#### Post date: [May 20, 2005, 10:42am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/18 "2005-05-20T10:42:35Z")

</div>

> [@rjung](#):
>
> And really, if you’re going to go with C#, why not just use C++ instead? C# is just C++ with the serial numbers filed off so Microsoft can claim it as their own (and lock you into their proprietary system for life, as **Timewinder** points out)…

I would say that C# is more like a less verbose version of Java, and quite different from C++.

---

<div class="post-metadata">

### Author: ![Capt.Ridley\_s\_Shooting\_Party](https://avatars.discourse-cdn.com/v4/letter/c/cc9497/32.png) [@Capt.Ridley\_s\_Shooting\_Party](https://boards.straightdope.com/u/Capt.Ridley_s_Shooting_Party)
#### Post date: [May 20, 2005, 11:37am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/19 "2005-05-20T11:37:42Z")

</div>

C# is everything that Java should have been.

---

<div class="post-metadata">

### Author: ![Liberal](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Liberal](https://boards.straightdope.com/u/Liberal)
#### Post date: [May 20, 2005, 11:42am UTC](https://boards.straightdope.com/t/java-versus-vb-net/304531/20 "2005-05-20T11:42:55Z")

</div>

> [@+MDI](#):
>
> Pretty sure he [Liberal] was referring to the fact that [VB.net](http://VB.net) and C# both compile down to the same bytecode, highlighting the fact that both are as efficient (or inefficient) as each other so choosing between the languages is just choosing which syntax you prefer.
> 
> I could be wrong, however, and don’t wish to speak for Liberal.

Yes, that’s what I meant. Also, the special file I was refering to (MDAC 2.7) is not required by XP because XP already has it.

[Next page](https://boards.straightdope.com/t/java-versus-vb-net/304531.md?page=2)
