Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Trust the World's Fastest VPN with Your Internet Security & Freedom - A Lifetime Subscription of PureVPN at 88% off. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. ×
Java Programming

Visual J# .NET Released 100

Goalie_Ca writes: "Visual J# .NET was released at the Tech Ed 2002 Europe Developper conference today. Visual J# .NET is not a tool for developing applications intended to run on a Java virtual machine. Applications and services built with Visual J# .NET will run only in the .NET Framework; they will not run on any Java virtual machine. Download it here; Microsoft J# .Net site."
This discussion has been archived. No new comments can be posted.

Visual J# .NET Released

Comments Filter:
  • Visual J# .NET

    Wow, what are the marketing people at MS smoking these days? They've obviously moved onto hard stuff. Rember the says of MS Bob? Marketing is a gateway drug.

    Friends don't let friends join Marketing!
    • Re:Market-speak (Score:1, Informative)

      by Anonymous Coward
      What the hell are you talking about?

      "Visual" - used to describe a whole range of Microsoft's developer products, due to the enhanced visual nature of the GUI, as compared to earlier efforts which were text-based (compare gdb to the visual studio debugger, for example)

      "J" - Microsoft's interpretation of the word "Java" (compare JScript to JavaScript, for example)

      "#" - as used in "C#", meaning the successor to C++. So "J#" is the successor to their "J++" product.

      ".NET" - their new virtual machine based platform. Compare to old x86-based stuff.

      It's really quite easy to decode, I don't understand why you are having such a hard time with it!
      • Not hard to decode, its just looks like they've deciced to cram the buzzword(or buzz-symbol) for everything they're working on at the moment on to the one product.
  • I don't get it... (Score:2, Insightful)

    by rickms ( 535706 )
    It's designed to run on a Java Virtual Machine but will only work on the .Net Framework.... This sounds absurd, why not just use Java? I'll admit I'm not to informed on the whole '.NET' strategy (frankly, don't care), but can someone educate me on the possible use of J#?

    • I assume it is meant as a porting tool to allow people to migrate to DotNet from Java. Why would someone want to? Who knows, smokin a lot of crack I suspect.
    • Re:I don't get it... (Score:1, Informative)

      by Anonymous Coward
      Microsoft Java had a bunch of COM interop stuff in it, which Sun Java does not have. If you happen to have a Java/COM codebase (which was recommended as 'the way' by MS for a short period of time back in 98 or so), this is your migration path.

      Of course 99% of the people who went down that path either switched to VB/COM or Pure Java. But at least Microsoft can say they didn't screw ya.
    • Well, MS Java was never terribly compatible with Sun-approved Java. That's how we got .NET in the first place -- MS didn't want to play by Sun's rules, and when they couldn't force Sun to change the rules, they went off and started their own game. That left the MS Java team with no product to work on, so they invented this nonsense to save their jobs.

      Or you can see an Evil Plan. I'm usually skeptical of Microsoft conspiracy theories, but for once its moderately plausible. Any real Java compatibility (like a Java VM implemented on top of the .NET VM) just wouldn't do. Can't create a two-way migration path! So you create a new Java-like language that compiles to .NET byte codes. This makes it easy to port existing Java software to .NET. But it's a one-way path, because nobody will use this language to create new .NET software. If they like Java-like languages, they'll use C#. Otherwise they'll use C++ or one of the other .NET-compatible compilers.

      Uhm, maybe not. If they just want to seduce Java programmers, they could just write a Java-to-C# translater. The languages aren't that different.

      Oh well, what do I know?

    • Think .NET as a set of library that is already created for you. So when you use J#, you can use these API calls in .NET. Of course for many of the methods, you can find Java equivalent, but there are some you will have to code for yourself. For example, if you need to access the Windows registry, there is no standard way in the JDK. In addition, if you create a control in another language say Perl.NET, you are able to use it in J#.
      • What I was trying to understand is the following. You have C#, which is alot like Java to begin with, no doubt created with mircrosoft's J++ method of thinking. Extent and Conquer. Now we have J#, a Java clone that will run on a JavaVM, but only with the .NET Framework. What VM would this work on other than MS's VM (which, if i remember correctly, can no longer be distributed as per the whole Java thing between Sun and MS). So I install Sun's VM on a '.NET' enabled workstation and now my Java App can use '.NET' extenstions? Why not just port it to C#, the languages are so similar? It just seems so silly to me. Apps are written in Java because of it's portability.. using J# defeates the purpose of using Java to begin with. Am I still missing something? Rick
    • Here's the answer (Score:4, Informative)

      by GCP ( 122438 ) on Tuesday July 02, 2002 @02:00PM (#3809373)
      J# isn't meant to run on a JVM. It's just one of the .Net family of languages.

      All .Net languages are compiled to the same "bytecode" that MS calls MSIL. J# is no exception. It is compiled to MSIL, not to Java bytecode.

      Whether you prefer to write your source in Java (using J#), or C#, or VB.Net, or Perl.Net, or whatever, the source gets compiled to the same MSIL.

      The MSIL code then runs on the .Net framework in a thing called the "common language runtime", which is similar to a JVM, but designed from the start to *try* to accommodate as wide a range of source languages as possible.

      After they become MSIL, they are completely interchangable, regardless of their original source language. You could grab a cool C# utility class off the Web somewhere and use Java "extends" to write a subclass in Java. If you find it easier to parse text with Perl than with Java (who doesn't?), then you could write just the text parser classes in your Java app in Perl.Net.

      The idea is that you get to work in a source language that you choose. Unlike the Java world, .Net doesn't limit you to doing everything in a single language. (However, it *does* currently limit you to Windows only, quite unlike Java, but that's changing quickly. [go-mono.org]

      The point of J# is to let Java lovers use Java to create .Net applications. When Ximian's Mono Project [go-mono.org] is fully up and running (Go Mono!), the MSIL output from J# will become executable on a Linux box. When that happens, a Java programmer who wants to deploy on Linux will suddenly have two excellent class frameworks to choose from: the Java standard and .Net.

      • Mod parent up! This is exactly what Microsoft is trying to do here. Woo Java developers by making it easy to write .NET code using Java syntax. They are trying to make .NET available to as many programmers as they possibly can, and I see this as a very helpful tool. Sometimes it is easier to tackle a particular problem using Java. Sometimes it's easier with VB, sometimes C#. But the whole reason they went through all this trouble was to make it so you can use any programming language to write the same code, and make it interoperable with code from other languages.
  • by burnsy ( 563104 )

    With Java, one language can create a program that runs on many platforms.

    With dotNet, many languages can create a program that runs on one platform.

    So what happens if MS decides to create a CLR for other platforms. Than you have many languages that can run on many platforms.

    • With Java, one language can create a program that runs on many platforms.

      With dotNet, many languages can create a program that runs on one platform.

      So what happens if MS decides to create a CLR for other platforms. Than you have many languages that can run on many platforms.

      Now, organize this information into a RDBMS model that adheres to all five normal forms
    • Microsoft said back in the late 80's they would port COM to Unix... I'm still waiting. Microsoft says a lot of things. Don't you get it?
      • Actually Microsoft did hire a German company to port COM services to UNIX. Unfortunately I've forgotten the name of the company which did the port. However, it was available for a number of years. In addition to the basic anti-MS sentiment in the UNIX community, I believe it didn't generate much interest because it became available roughly around the time the Internet was kicking into high gear (for which COM/DCOM is rather poorly suited) and the time Java was everybody's media darling. But they did deliver COM on UNIX. And yes, I get it. :)
    • Many languages have compilers which target, or interpreters which run on, the JVM. Google is your friend.
    • It's not necessary for MS to create .Net for other platforms. We're not at the mercy of MS.

      Even Java gets support for most of its many platforms from entities other than Sun.

      .Net on Linux is already well on it's way. It's called theMono Project [go-mono.org] by Ximian, the same people who created Gnome. If developers on other platforms want to have .Net support and can't get it from MS, they'll get a huge headstart from the LGPL'ed Mono code.

    • It's that simple.
  • by Dr. Bent ( 533421 ) <ben AT int DOT com> on Monday July 01, 2002 @09:23PM (#3805064) Homepage
    Microsoft released a new product today named BuggyWhip.NET, which they say will become the industry standard in "Horse Motivation Technology". A Microsoft spokesman was quoted as saying that the motivation behind this release was to prevent Visual J#.NET from becoming the most useless thing on the face of the earth.
  • I must be missing something important, because I don't see what all the fuss is about .NET. Sounds to me like the developer's analog to the 'XP' suffix, and little more. "Look, .NET is different. .NET is the greatest thing since sliced bread." .NET is just a name tacked onto every piece of software these days. Screw this J# crap, wherever Java is needed, Microsoft isn't, else we'd be using Visual Basic for that same crap.

    • Re:Why .NET ? (Score:3, Informative)

      by zero_offset ( 200586 )
      Yes, you have missed something important, and unfortunately Microsoft marketing is to blame (again). Indeed a great number of MS programmers have missed it too, so you're not alone. Remember when .NET was called Next Generation Windows Services (NGWS)? Probably not, but it was for at least two years' time. NGWS is what's important about .NET.

      This web services crap was basically smoke-and-mirrors. As someone else pointed out earlier in this topic, if MS or somebody else writes a CLR, suddenly, "Windows" programs will run on other operating systems without so much as a recompile. Given the DOJ problem which was looming large around the same time as the .NET unveiling, I think the "look at our web services" smoke-and-mirrors tactic intentionally diverted attention away from this potential portability option. Indeed, the portability concept was so important in their design phase, MS went as far as to segregate a great deal of highly-Windows-specific functionality in classes with names like Microsoft.xxxx (although this comprises only a tiny fraction of the full .NET model).

      Don't get me wrong -- I like SOAP and have pushed for it (and used it, and early derivatives) inside my company for years -- but comparing .NET to "web services" is like comparing your desktop computer to one of those e-mail appliances for the computer illiterate. Sure it CAN do those things, but it's only a small fraction of the real story.

      The .NET system object model is a top-down redesign of practically every part of the Windows API. Win32 is gone, GDI is gone, even COM/DCOM is gone (although still accessible). Instead you have this fantastically consistent MASSIVE system object model. Programming against this thing is pretty great. There are a few holes and a few decisions which strike me as stupid, but when you're talking about thousands of classes, everybody is bound to have a few pet peeves.

      Unfortunately, it's hard to put an exciting marketing spin on a great new system-wide API strategy, and as I mentioned I don't think they wanted to play up the portability aspect at all, so we end up with the vague .NET marketing-speak hype machine.

      There are other important and useful things in .NET, too, but to me the new comprehensive (and consistent) system object model is by far the most important (did I mention it was consistent?). People who compare it to Java either haven't compared them in-depth, are extremely Java-biased, or simply don't know what they're talking about. But that subject has been discussed to death in great detail all over the 'net, just search for it. (BTW, I was a professional Java programmer for over two years -- I'd say Java is merely "OK", not great -- I mention this as evidence that I'm not simply a MS-centric anti-Java nutcase, I did use it to make a living, for awhile.)

      I think if .NET fails to gain momentum, it will be a great loss. Beyond the crappy marketing spin that seems to bury anything MS manages to do well, I think Microsoft itself may accidentally kill interest in .NET by only shipping it to the Great Unwashed as part of some new DRM-nazi consumer-unfriendly Windows -- call it WinDisney.

      But from a purely technical perspective, .NET is pretty great.

      • Well she-it, you should work for M$. Thanks for the explanation, I'm actually interested now. Sounds like a solution to these migraine headaches I've been getting lately during late night hackfests.

        At first I thought all this stuff was just glorified castrated middleware; "This 100k$ library will let you ask that machine over there to run this app over here and send back the results." Now I realize that was just the most buzz-enabled portion, that which sells well to idiot managers.
      • But from a purely technical perspective, .NET is pretty great.

        That may be true, but from a business perspective, trusting Microsoft to act in your best interests is a proven losing strategy. The business risk of using .NET is enormous, it's the biggest lock-in play that's ever existed in the technical world.

  • blah (Score:1, Redundant)

    by mnordstr ( 472213 )
    That's the most stupid name I've ever heard.
  • Even though I'm an avid C fan, I cannot but wonder what this topic has to do with Java: it is not running on a Java virtual machine, and since it will only run on .NET, it is per definition not cross platform.
    Knowing Micro$oft, the syntax will not even be compliant with Java.
    So what the heck is J# to do with Java and what is the coffee cup doing in the story?

    /me votes for a specific topic "M$ FUD and misguiding (aka new monopoly) schemes"
    • Agreed. This article has nothing to do with Java -- it should not be presented as a Java article on Slashdot. Microsoft wants to confuse developers to think they are programming Java -- that has been their approach all along -- and I find it sad that Slashdot editors decide to help Microsoft in achieving this.
    • I cannot but wonder what this topic has to do with Java... what the heck is J# to do with Java and what is the coffee cup doing in the story?

      You're right; this could belong in "Developers", "Microsoft", and "Java. But certainly in "Java" and I'll tell you why... This is such an obvious attack on Java's beach head of developers that we need to keep apprised of it. We're not talking about switching to something entirely different like Python or Lisp; this J# stuff is SO conceptually and syntactically similar (but with some scary implications). Competition and alternatives to Java (especially one so obvious as this) should always be in the mind of a Java developer. Otherwise, you risk becoming an ignorant Java zealot, rather than using Java for the right reasons. And there are lots of right reasons, today, don't get me wrong!

      Java wins my vote for certain projects today, simply because it has run time environments available for everything from PDAs to pagers to phones, multiple server and workstation OSs, inside cross-platform DBs, inside cross-platform web servers, etc. But that is likely to change and I need to know what's on the horizon, lest my clients be the ones to tell me!
  • Despite the average bias here against Microsoft, the whole .NET thing could be a great thing if/when Mono and other projects come out for more support. The biggest feature I see for J# comes with speed. The Java VM for Linux & Windows is horribly slow, only the Mac OS X VM is anywhere near a full program. From all the tests I've done comparing C# and Java, C# apps have blown Java out of the water in speed. Microsoft simply did a better VM implementation than Sun. If this means my Java apps will run fast on Windows machines, and with a standard UI set (instead of the ugly Swing or almost-implemented-ok AWT), then more power to them. Sun got complacent with their VMs, hopefully this will force them to spend more time flushing out Java... Prolly not though...
    • You will find the VMs are actually very fast. It is the java compilers (except IBM's and possibly others) that produce basically no optimisation. This could be fixed for sun by a cometent programmer in a week, but they wont do it, nor will they hire CS students like me to do it for them real cheap.
      • it's really unnecessary to optimize in the compiler, the difference between optimized bytecode & unoptimized bytecode is insignificant, but more importantly a decent JIT should be able to optimize both outputs to similar native code anyway.
    • "almost-implemented-ok AWT"?

      Are you serious?

      Bill, your skirts are showing.
  • C# is so closely related to Java, that there is no need for J#. MS has already started up marketing to get Java developers to try C#. I am a Java developer, and if I was forced to use a .NET language, I'd chose C#. J# just seems like a redundant language. It makes no sense.
    • You're exactly right- most developers who use Java will use C#. The only reason they made a J# (at least in my opinion, and after talking to some of the ms prod managers) is so people that already have an existing investment in Visual J++ can easily leverage it. I'm quite suprised they even bothered, though-- especially with the whole lawsuit thing.

      I've got a free voucher for J++ in my VS.NEt box, but I doubt I'll use it :)
    • ...some people aren't as flexible as you are when it comes to languages.

      I'm with you. I think C# is Java-done-better (referring to the source languages only). It has all kinds of improvements over Java that many of us Java programmers have been asking for for years. I intend to use C# when using .Net and Java when using, well, Java.

      But a lot of people learned Java as their first and only language and will drag their heels or spout sanctimonious anti-.Net rhetoric based on little more than a secret fear of having to leave the Java nest.

      J# will help people like this (after they get comfy with J#, they'll be much closer to C#), it will help users of the old J++, and it may make it a bit easier to port various useful Java utilities over to .Net (the convenience depending on how much they rely on the Java class libs).

  • Existing J++ Base (Score:2, Insightful)

    by ctk76 ( 531418 )
    It's my understanding that Microsoft isn't trying to push J# as a new platform, but rather to support small existing J++ users to migrate to .Net.
  • Before anyone starts bashing J# to say that it should have never been created and M$ is the anti-christ and bla bla bla.. There are a few good reasons. No matter what you may think, people will accually program in .net. It's not that bad. It's accually a HUGE improvement to programming RAD apps in windows. The best RAD development for windows prior to this was VB or Delphi, and I Think C# is a good compromise between C++, Java, and VB. They tried to capture the syntax of java with the flexibility of c++ and the RAD capabilities of VB. In general it was a good idea. The reason having J# is such a good thing is i can now take the code i've already written for java, put it in a project and compile it as a windows dll. Lets say I wrote an extensive library for software in Java and wanted to port it to a windows app i'm working on a year+ down the line, then it will come in real handy. What microsoft fails to realize is that the idea of coding in J# by itself is ludicrus because The whole point of Java is it's ALREADY cross platform, and just like .NET it runs on VM. J# is for those people who have already coded in java and want to use it in a windows only project. If you just read between the lines it's Microsoft's sleezy way to try and bring more attention to Windows and .NET in general. More a convience and marketing ploy than anything people will pratically use. Worst case you could just not learn C# in general and write it all in Java, but this is mixing java and the .NET framework, which i'd rather keep separate.

A committee takes root and grows, it flowers, wilts and dies, scattering the seed from which other committees will bloom. -- Parkinson