Slashdot Mirror


Microsoft to Take on Java Again With J#

CptnKirk writes: "Many people liked Visual J++ as an IDE. The settlement with Sun, following it's Java suit, pretty much stopped this development. Apparently Microsoft is back at it again, with another attempt to bring Java development back to the Windows platform. J# (Jay Sharp), will be part of Visual Studio .Net, and provides "an implementation of the Sun Java spec". It however has IMHO some very severe limitations. It's not actually Java(TM) compliant, doesn't product bytecode, or read Java raw bytecode, or run in a VM. It also doesn't support Java runtime features past 1.1.4. The InfoWorld article is here. As a Java developer, to me creating a product that is supposed to be some sort of Java tool that doesn't support any of Java's useful features or even latest language spec, doesn't cut mustard. I liked VJ++, it was a solid IDE and if it supported JDK 1.4 I'd be all for it. I wish Microsoft would just produce a good IDE, and not screw with the language."

49 comments

  1. Download by VA+Software · · Score: 2, Informative
    --

    ---
    http://slashdot.org/moderation.shtml
  2. Why? by Ardax · · Score: 2, Insightful

    Why do this? Why bother coming out with a castrated, nearly unusable product that only supports an obsoleted version of the product that they're trying to kill? Especially when it's going to be competing for developer mindshare with the language that they really want to push to kill Java (C#, if you've been under a rock for the past year or so)?

    I mean, maybe MS is hoping that people will try to use it so that they get pissed off at Java and go with C#? Do they really think that developers, even Windows ones (-: j/k, I'm a Delphi guy myself), are too stupid to look up non-MS Java information? What do they think will happen when those developers realize that they're getting the shaft to try to push them away from Java?

    Anywho... Makes me wonder...

    --
    Pax, Ardax
    1. Re:Why? by CptnKirk · · Score: 3, Interesting
      You've got me. This seems a lot like GCJ, only dumber.

      Actually I think their reason is this. Microsoft would like to treat Java as a programming language, nothing more. Sun would like Java to be a platform, including language, VM, cross OS platform compatability and so on. I assume that if Microsoft were to implement various Java 2 features they'd have to comply to the Sun JCK, which they of course do not want to do. If you treat Java as a language you can add to the language and aren't bound to what Sun thinks Java2D (used in JFC) should look like.

      I think that Microsoft could implement the platform if they felt like it, but this doesn't gain them anything. By adopting what they consider to be the language itself, they can use this to beat the platform which Sun has built.

      I personally don't think this will happen, but I think this is what Microsoft is after.

    2. Re:Why? by ameoba · · Score: 2

      Maby Microsoft just figures if they put out yet another lame Java implimentation, they'll be able to say "We support Java, why would we try replacing it?".

      --
      my sig's at the bottom of the page.
    3. Re:Why? by babbage · · Score: 3, Interesting
      Why do this?

      Easy -- developers want to be able to code in Java, but Microsoft is legally forbidden to develop a newer, noncompliant version of the language environment due to their settlement with Sun a few months ago. Result?

      "You want Java syntax, fine, our .NET framework can do that, and you'll even get to take advantage of all the benefits .NET has to offer."
      "Yeah, but what about the JVM? Why not keep up with the spec? Java is past 2.0 now, and you're trying to get me to use 1.1.x..."
      "Eh? Pardon me? Didn't quite catch that, sonny." *wink*

      If MS can't ship a full fledged version of Java, I don't think trying to support the syntax (or a crippled version of it) is such a bad idea on their part. Developers with Java experience will be able to quickly get up to speed with .NET, and can then be encouraged to migrate over to C#. It's not good for Sun, but then hey that's not MS's job.

      They didn't get to be the borg by being morons, guys...

    4. Re:Why? by TimSneath · · Score: 1

      I've been playing around with J# for a little while now (http://msdn.microsoft.com/visualj/jsharp/beta.asp ) and it seems a capable development tool. It's absolutely true that it doesn't generate JVM bytecode, nor does it support Java 2 features. But that's not Microsoft playing with the standards, as far as I can see - more due to the terms of their settlement with Sun.

      The good thing about J# is that it allows Java developers to target yet another platform (.NET) without needing to throw away all the existing code. Use it, or ignore it - it's up to you.

    5. Re:Why? by Anonymous Coward · · Score: 0

      Because it was easy. The C# syntax is so similar, there's gotta be hardly any difference in the front-ends.

  3. There's something completely unmusical about by Anonymous Coward · · Score: 0

    the name J#. Whatever happened to J++?

    What if sales of J# are flat?

    Do they have some product naming obfuscator that they pump through a focus groupie algorithm to arrive at these things?

  4. All they want is by patazathoth · · Score: 1

    to allow any developper to work on their .Net framework. The .Net and C# are really close to each other.

    But what they did, IMHO, is they allow people to use another SYNTAX to code in the .NET framework. You can use Cobol if you want to, does Cobol is object orienter? No? But the .Net will support they cobol syntax and create object under the hood somehow.

    So they are not supporting Java, but they are supporting the Java like syntax.

    Pat

  5. We shall see by CactusHack · · Score: 3, Insightful

    So much speculation and nothing has been proven yet. The best way to cut through this hype is to wait and let the .NET platform (along with all the #'s) prove itself...if it can. When I see a full scale application running on Unix, I'll take it seriously. I'm still waiting to see an enterprise scaled (stable!) application using COM, MTS, or COM+. For the time being, I can't see J# making much of an impact. If someone is going to write an application using Java syntax, why would they not gear it for the proven JVM rather than something that has done nothing and could fall to the same fate as J++? I agree MS can make quality IDEs. I personally find Vi to be the most efficient place to write code, but can see how a good IDE would go far.

    1. Re:We shall see by Anonymous Coward · · Score: 0

      I'm still waiting to see enterprise scalable software written in Java.

    2. Re:We shall see by CactusHack · · Score: 1

      Well, wait no longer: I will only give examples of those which I have seen first hand.

      Ford Motor company has standardized on Java and runs many high profile applications for it's business.

      Medtronic runs almost it's entire IT infrastructure using Java technology along with Weblogic application server. Several internal applications serve an average of 23,000 users per day.

      Dell computer has written many of it's business applications using the Java, not to mention after trying very hard to write enterprise applications using Microsoft technologies and finally opting for a more stable and more robust Java platform.

    3. Re:We shall see by tradervik · · Score: 0, Offtopic

      I'm still waiting to see enterprise scalable software written in Java.

      I think Bin Laden said the same thing.

    4. Re:We shall see by TimSneath · · Score: 1

      The "proven JVM" - is that as in "proven to be slower than a one-legged caterpillar"? Why is there not a single benchmark on the TPC performance site that includes Java technology? However, if you want to see an "enterprise scaled application using COM, MTS, or COM+" there are a legion of examples on the site...

    5. Re:We shall see by CactusHack · · Score: 1

      Thank you for the interesting link. However, it could be looked at many different ways. If you look at the non-clustered benchmarks, it is, quite certainly dominated by applications based on the Java platform, running under IBM Websphere and BEA application servers. One could generalize that the COM+ applications require many more CPU's than the Java applications to maintain good performance. For a per CPU comparison, Java based applictions seem to actually come out on top. People don't seem to understand that once a Java application is first loaded into memory, it is converted to binary code. This may cause a small delay in stand alone application, but works very well for server side apps that are going to be up and running for a long time. tpc.org seems like an interesting site, however, it doesn't seem to cover things like uptime and memory management. It's focus appears to compare the top transaction performance of a system's entire infrastructure not just the language platform.

    6. Re:We shall see by Anonymous Coward · · Score: 0

      I don't know about Ford and Medtronic, but there are lots of case studies about Dell using COM+ rather than Java.

  6. This makes sense to me by Anonymous Coward · · Score: 0
    Boot your new shiny WindowsXP and fire up Softice (crtl-d), now disassemble the kernel. Wow, what's there? A JVM! Yes people, WindowsXP is written 90% in a JAVA-esque languaje, probably C#, so running C# on XP will be zero overhead. This also makes XP really portable, so you will see it soon running on UltraSPARC hardware replacing that shitty Solaris crap.

    Sincerely, Mike Bouma

    1. Re:This makes sense to me by Anonymous Coward · · Score: 0

      Mike,

      Theoretically, there won't be any overhead using the .net framework. The .Net intermediate language is actually compiled to native at run time, kind of like .jsps are compiled to servlets. So you only take a performance hit the first time you run the application.

    2. Re:This makes sense to me by Shimmer · · Score: 1

      Not one of your best trolls. Try again.

      -- Brian

      --
      The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
    3. Re:This makes sense to me by flipper28 · · Score: 2, Insightful

      Windows.NET will, XP is just Windows 2000 with a modified UI and additional support applications. In fact the kernels (2000 vs. XP) are surprisingly similar - XP's version number is 5.1 (2000's is 5.0).

      Microsoft probably uses a "custom" C/C++ compiler (not the old VC++ one) - I'm not sure if you remember, but before .NET, there was a language called COM+ (not the COM mananger they shipped) which was never released (although there are two articles in msj now msdn).

      For years microsoft has had the ability to target multiple platforms - they've had the "MSIL" for years - read "debugging the development process".

      Microsoft will move to other platforms, but to do so developers will need to make their code portable, which is where .NET comes into play.

    4. Re:This makes sense to me by malxau · · Score: 1

      Remember, m$ released Windows NT 8 years ago as being a cross-platform OS. Their basic philosophy appears to be that all platforms are supported in all languages (so long as they're running Windows and can't be recompiled to anything else.)

    5. Re:This makes sense to me by flipper28 · · Score: 1

      I think they are still trying to do that - the only problem is that all the object code is tailored for the x86. I think once .NET takes off, and it will, we'll see windows on other architectures - either native or as a hosted os.

    6. Re:This makes sense to me by malxau · · Score: 1

      One other thing - M$ and Intel have always been really, really close. This has always been an advantage for both of them. But if M$ follows the WinCE 'other processor support' with more desktop OS support, does this mean that Intel's RedHat investment wasn't just to prevent RedHat distributions on Solaris etc, was there a real commitment to Linux? And more importantly, is M$ really committed to other architectures - NT has always supported other processors, but M$ won't even compile its own applications for them - let alone anybody else. For one, I can't build an NT app on say, Alpha, without an Alpha PC - something I can't cost-justify. Increasingly, as Windows and other apps have grown with non-assembler languages, the proportion of the code that's Intel-specific has to be pretty small by now. I just can't see M$ being serious about more diverse architectures - they haven't been in the past.

    7. Re:This makes sense to me by flipper28 · · Score: 1

      who makes the procs? Intel, Sun (TI), IBM/Motorola, HP (not for too much more), Compaq (dead), AMD (will they keep up), and transmeta (dying) - there's a few more. The only way for microsoft to gain power is to spread it's software grip to other systems, but cost effective.

    8. Re:This makes sense to me by jbuilder · · Score: 1
      That all sounds pretty cool. My only issue is that *why* would I want MS Winbloat choking my Sparc or PowerPC CPU when I can use Linux and Java, or JavaOS and Java, or Windows on Wintel and Java... or... Get my point? Now if someone wants to write a tool for other OS's that takes that MS bytecode and lets' me run it outside of Windows -- THAT would be interesting to me. I'd still not use C#, but at least it would now be interesting to me.

      Still, based on what I read here, creating languages that compile to an intermediate code and then are interpreted/recompiled at the OS-level sounds like a good approach for MS. But.. I can't help but think I've heard of this approach somewhere before.... hrm.... Could it be... Java and Hotspot??? ;)

      --
      Polymorphism -- It's what you make of it.
    9. Re:This makes sense to me by flipper28 · · Score: 2, Informative

      forget about C#, Java, VB, C++, etc - these are just the "tools" - I written code in assember, c, c++, java, perl, vb, basic, etc for years - too many people worry about the language and not the solution.

      We need to look at microsoft differently - we see them as "Windows" when in fact they're more than that - Microsoft makes most of it's money from applications like office, exchange, sql, vc++, vb, vstudio et al. Microsoft needs to move away from the OS to grow (home appliance, large systems, etc) - windows is the common platform, just the way ".NET" will be the platform beyond windows.

      Think of it this way, if microsoft can abstract it's applications to "virtual" platform, it can then start moving across platforms - very different from Sun's java. The JVM method is cool, but application based - ".NET" is a platform, whether it's on windows or not. As much as I disagree with microsoft's policies, they do understand application (not os)development more than most others. With .NET micorosft could target solaris, linux, mac, x-box, mobile devices with the same code base, the same wide application support. COM will die, Java will run in .NET with .NET wrappers to the .NET platform os, Linux will be a great server OS but have limited desktop support.

      Does this make sense?

    10. Re:This makes sense to me by rfmobile · · Score: 1

      flipper28 said "I'm not sure if you remember, but before .NET, there was a language called COM+ (not the COM mananger they shipped) which was never released (although there are two articles in msj now msdn)."

      COM+ is an architecture, not a language. You can write COM+ apps in C++, VB, and now C#. COM+ has
      been made part of dot-NET along with MTS and
      MSMQ. If you have Win2K or XP, you've got COM+. There are client installations available all the
      way back to Win95 as well.
      Next flipper28 said, "Microsoft will move to other platforms, but to do so developers will need to make their code portable, which is where .NET comes into play."Yeah, Microsoft gave up trying to assimilate Java and came out with their own virtual machine environment. They're reinventing stuff folks like IBM developed about 30 years ago though much more nicely packaged.

      -rick

    11. Re:This makes sense to me by flipper28 · · Score: 1

      search old issues of MSJ (now msdn magazine) for COM+ - it was not originally an architecture, it was an extension to C++ - Microsoft changed this when Java went south. If you can't find the article, I'll find it for you.

      I agree with your comment about IBM - like Xerox, Sun and all the big hardware guys have real problems comercializing technology - companies like microsoft hire them an spin off their inventions.

  7. Its not THAT bad... by Anonymous Coward · · Score: 2, Insightful

    For all the conspiracy theorists, there is a very good reason for J#... porting existing J++ code over to .Net. Also, as a side benefit(!?) you can port most Java code over to .Net. Some bright person in our organization decided that we were going to move to .Net going forward, and our port has saved us weeks of development time.

    Personally, I would NEVER use it as a primary development language. There are quit a few issues with it, but its a life saver for people porting.

    1. Re:Its not THAT bad... by David99 · · Score: 1

      People porting? Is that like where you replace deadwood with shell scripts?

      --
      -- Welcome to nowhere fast / nothing here ever lasts.
    2. Re:Its not THAT bad... by malxau · · Score: 1

      I don't get it. Why port a proprietary, m$ piece of code from one m$ compiler to another? If you wanted to port code, you'd probably want to port it to a ~different~ platform. Try porting it to JDK (This may involve removing several thousand lines of Win32 APIs, but it's worth it.)

  8. J# is broken. by Martin+S. · · Score: 1, Troll

    Whenever somebody referes to J# as Java, simple repond tha J# is broken, it is not Java! Management are capable of understanding this simple truth, without explaination.

    Remember: In English, the # symbol is a hash, to hash something means to bodge or fcuk it up.

    1. Re:J# is broken. by 10.0.0.1 · · Score: 1

      Remember: In English, the # symbol is a hash,

      It's also an "octothorpe" making C# "Coctothorpe" (which the Micros~1 rep did not appreciate when I brought it up at a recent .NET function.)

      They must beat their people in Redmond, regularly.

      MS rep: "I let someone make fun of Micros~1 today."

      Evil Bill: "Here's your beating"

      MS Rep: "Thank you. May I have another?"

      --
      forth ?love if honk then
  9. what the fuck? by mickeyreznor · · Score: 1

    isn't C# supposed to be what J# is going to be used for? what the hell is going on?

  10. And the difference between C# and J# would be...? by wrinkledshirt · · Score: 1

    Let's be frank. C# was designed to replace Java. It's got a C-like object-oriented syntax that allows package importation and that, through .NET, is compiled and delivered in binary form throughout the internet, right?

    What I want to know is what the heck the point is of continuing J++ as J#, which I assume also has a C-like object-oriented syntax that allows package importation and that, through regular Java compilation, is delivered in binary form throughout the internet?

    Is the J++ user-base so large that it's profitable to help them migrate to .NET?

    --

    --------
    Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...

  11. Javaesque Language? by MacGabhain · · Score: 1, Troll

    Yeh. It's called C++.

  12. Re:And the difference between C# and J# would be.. by selectspec · · Score: 2

    Yeah, I'm confused. I thought C# was basically MS's replacement for Java. Why would developers work with J# since its just another Java look alike that is not Java?

    --

    Someone you trust is one of us.

  13. Re:And the difference between C# and J# would be.. by Anonymous Coward · · Score: 0

    From what I have heard, "real" Java coders are not even looking at C##, hence the M$ resurrection of J++ via J##. The trades I've read is that it's mostly VB coders (and to a much smaller degree VC++ programmers) taking a peek at C##.

    I still do some coding with VB. I'll admit, although my JSPs, servlets and Java apps run on Linux, the M$ J++ runs pretty nicely on a 32MB or 64MB Win95 machine. The pop up syntax helper is a huge plus. Set your classpaths right, even 1.3 comes up. I've tried Forte and JBuilder on one of my 640MB dual processor P533 Linux systems via X/Win, but those IDE's are just too sluggish. I find myself writing the code in VJ++ but doing the compiling and testing via SSH or an X session on one of my Linux servers.

    J## may be M$ attempt at keeping all of their bases covered just in case C## flops, and nobody wants to write vb.net code.

  14. The only thing this would be good for... by spike2131 · · Score: 1

    Is porting real Java to windows binary, for distribution to people who are too lazy or scared to download and install a JVM on their new Java-Free XP boxen.

    --
    SpyDock: Scientific Python in a Docker container
  15. How many developers will use it? by zaphod123 · · Score: 1

    Given MS's loss to Sun with Visual J++ and the knowledge that MS wants to push C#, how many Java developers will actually bother with this one?
    Obviously, MS's marketing people have a good track record, but maybe a Java to C# conversion tool would have been a better choice...

    --
    :q!
    1. Re:How many developers will use it? by Anonymous Coward · · Score: 0

      Microsoft has $36 billion in the bank. Sun is laying off people. Resistance is futile.

  16. I think I figured this out! by Da+VinMan · · Score: 3, Insightful

    Besides allowing the J++ developers to port their code to .Net, this leaves the doors wide open and make it easy (easier anyway, they are massive) for a third party to implement the Java APIs (e.g. the J2EE family on top of .Net. To my way of thinking, that could have a lot of value.

    To use a hockey analogy:
    So Microsoft isn't allowed to score with the Java puck on the Sun goal anymore. But are they prohibited from making an assist? Nope.

    Also, there is the idea that they may simply be trying to lure Java developers as a whole into .Net by making sure the language syntax isn't a barrier. Sure C# isn't all that far from Java, but now the language is no excuse at all. (The API learning curve may be a barrier but Microsoft has made that easy to get into through Intellisense, wizards, etc.)

    You know it's funny.. I just went to the MS DevDays conference this last week and no mention was made of J#. Hmm....

    --
    Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
  17. J#, C#, VB#, perl#,...whatever by MobyDisk · · Score: 2

    My only confusion with J# is that it looks the same as C#. C# is Java with a few keywords modified. What is different between the two? From looking at a page of code, I couldn't tell you which is which! They've even made VB look the same. Why would anyone prefer one over the other?

    1. Re:J#, C#, VB#, perl#,...whatever by jiheison · · Score: 2

      I would assume that the prefernce would be based on whatever language you used before migrating to whatever#. Seems like their ultimate goal might be to create a single standard development language (controlled by M$, of course).

  18. .NET has it's own architecture by hughk · · Score: 3, Interesting
    First, this is not intended to be either a troll or flamebait. Please differentiate between MS and the technoly where there is an open alternative.

    Microsoft compiles output from C# and J# to an intermediate code that is given, in turn to a JIT compiler. There is no virtual machine, but what the code is allowed to do is well defined (you can only make certain defined calls to a special environment. You can not self modify the code or execute data so calls outside the box are prevented.

    There is no particular advantage to this approach as opposed to the JVM/JIT compiler combinations used for Java except that the execution environment is a lot friendlier to Windows type programs.

    J# is just a way to lever Java code onto .NET, the same with COBOL# and FORTRAN#. As the C# language spec, the intermediate code and the execution envionmrnt spec is being passed to ECMA, I begin to feel more comfortable about this side of .NET (see also the Mono project). Hailstorm sucks big, but that is just BillG's normal attempt at world domination. The architecture doesn't need Hailstorm and some OS developers like what they see.

    Of course, the reason behind .NET was to fight SUN, however, SUN openned themselves up to this by not properly opening up Java quickly enough. Frankly, SUN doesn't have the muscle to run the Java project by itself (having lived with the bleeding edge of Java betas, I see that). MS is no better but by giving it to ECMA, the standards are under public control/scrutiny so it is difficult for them to embrace/extend.

    --
    See my journal, I write things there
  19. Does # have trouble with scripting langs? by Tablizer · · Score: 0


    What about Python#

    LISP#?

    That would be interesting. Some say that # does not do scripting very well. Any opinions on that?

  20. After all this time by cyberbob2010 · · Score: 1
    After being on slashdot for almost 2 years I have finally decided something. I want to code. It may sound dumb to some to not know where to go for coding help, but starting today I want to know something beyond my simple HTML and QBASIC. Now, for the big question, where can I go to learn how to code and what should I learn first? I've been told by many to learn PERL or JAVA first but I figyure where could possibly be better to ask tahn slashdot? PLEASE HELP!!!!


    an asspiring scripot kiddy

    --
    We seldom regret saying too little but often regret saying too much.
  21. "does Cobol is object orienter" by Anonymous Coward · · Score: 0

    'nuff said! ;)