Slashdot Mirror


J#

fuze writes: "It's basically a way for Java developers to migrate their Java apps to .NET.... even provide a 'convenient' migration tool... check it out on MSDN." News.com has a story describing Microsoft's plans to suck Java into .Net, and some commentary saying basically, "No one will use it".

15 of 337 comments (clear)

  1. Evil Ploy Alert! by Gnight · · Score: 5, Funny

    And in other news Microsoft has publicly announced plans for the following projects:

    1. GNU#.net (RMS finally gave up and was hired my MS)

    2. OSX.net (Steve jobs has now finally ground his teeth all the way off)

    3. .org (DON'T even ask what it is)

  2. Initial reactions by Rogerborg · · Score: 5, Informative

    Microsoft are still strongly implying (at least) that Visual J++ is Java. Uh, wait, didn't a court tell you to stop doing that?

    • "Visual J# .NET enables Microsoft Visual J++ customers and other Java-language programmers"

    Tsk, tsk, Bill. There's no "other" in that sentence.

    The focus seems to be on J++ developers, not Java developers. But personally, I will use J# iff:

    • It compiles Java completely and correctly.
    • It compiles to a native .NET executable that gives a significant speed advantage over VM bytecode on a .NET platform.
    • I have to make exactly zero changes to my Java to have it compile to both VM bytecodes and to a .NET executable.

    Basically, I can live with loading J# and hitting compile once for each of my Java projects. If it's any more hassle than that, I agree, it's not worth my while.

    However, I'm keeping an open mind. Microsoft's decision to not include a JVM in WinXP concerns me, as does the increasing size of the Sun VM. I love Java and want to keep using it purely, but I'm not going to cut off my nose to spite my face. If Microsoft and Sun collude to make it hard to use Java and easy to use J#, I could be swayed. I hope not though.

    --
    If you were blocking sigs, you wouldn't have to read this.
    1. Re:Initial reactions by GreyPoopon · · Score: 5, Interesting
      How can it be evil for MS to INCLUDE a browser / media player / etc in XP, viciously anticompetitive and so forth, ...

      and...

      simultaneously evil for MS to EXCLUDE a JVM in XP?

      Actually, there's a pretty simple answer to this. Both of these actions kill competition.

      Microsoft owns the browser, media player, etc that it bundles with XP, so they can eliminate competition by including them and making them impossible or extremely difficult to remove. The problem is that most people will not know enough or be motivated enough to switch to a competing product. So, since Microsoft owns the OS, they can be reasonably certain that people will use their integrated browser, media player, etc. By doing this, they can also be reasonably certain that companies who develop content for these products will be inclined to purchase Microsoft products to aid in the development of that content.

      Java is a slightly different story. Microsoft does not own the Java technology. They have to play ball with Sun in order to use it. They have to follow Sun's rules. But more importantly, there is quite a bit of competition for Java development environments. Supplying a JDK or JVM with their OS does not in any way motivate developers to use their development environment, unless they can add proprietary extensions or other changes to the language to make their development products attractive. They attempted this with J++ and have been told they can't. So, since they can't make any money from J++, they decide to develop their own environments and languages, and bundle THOSE with their OS instead of Java. That effectively kills competition by sending a message to developers: "Do you want your application to run without hassle on 95% of desktop systems? Use .NET."

      Try and remember that these tactics are only questionable because Microsoft has a MONOPOLY. That is the defining factor. Otherwise, they'd be considered good business practices. If Microsoft had only 30% of the desktop market, bundling the browser, media player, .NET technology and other things with XP would only help them to be certain that most of that 30% would be using their technology and their tools. They would be forced to make their tools operate on other desktop environments in order to increase market share. This would put them on an even playing field with their competitors. However, since they currently dominate the desktop market, the game is way too easy for them. Tricks like inclusion / exclusion just help cement their monopoly in other areas of the market. It is illegal to use a monopoly in one market segment to stifle competition and increase market share in other segments. Both of these tricks accomplish this. You really have to look at the end results.

      --

      GreyPoopon
      --
      Why is it I can write insightful comments but can't come up with a clever signature?

  3. Re:Of course "no one" will use it by jilles · · Score: 5, Interesting

    Even as a migration tool its use is limited to projects using the partial jdk1.1.4 API MS supports. Basically any serious Java project nowadays is written using the Java 2 (i.e. 1.2 and upwards) API. And if they are written to the 1.1 API they likely use jdk1.1.8 rather than 1.1.4.

    So basically it is a migration tool for J++ applications. Considering that is a MS product, it makes you wonder if this is the best MS can pull of after all the sole reason migration is needed is because MS decided to drop Java support (so they already screwed you once).

    And even for J++ it is limited since it only allows you to compile source code, you lose information stored in e.g. forms, project files and so on. In addition, Java objects tend to be closesely tied to the Java API and reusing them basically means you are using the Java. So you might as well go for the real thing (including richer API, better performance and so on) and use the com bridge to communicate with the objects.

    In any case, if this is just a migration tool, MS is going through a hell of a lot of trouble to present it as a Java alternative.

    Some advise to people considering to use it:
    - After 'migration' it is still Java code you are using. It won't be much faster and you will still have to maintain it.
    - MS is not very Java friendly, they might drop support for the migration tool at their convenience. The long term strategy is C# (if it ever takes of), not J#.
    - Migration to real Java is probably much easier unless you heavily rely on MS specific APIs
    - There are ways of letting Java objects talk to COM objects (and consequently also .Net objects) that don't require recompilation.

    --

    Jilles
  4. Re:GTK# by Lars+Arvestad · · Score: 5, Funny
    Bah, that ain't clean. This is clean:
    echo 'Hello world!'
    or if you are into elisp:
    (message "Hello world!")
    For further discussion, I refer you to the (almost) definitive resource on hello-world programming: Hello World! Thank you.

    --
    Reality or nothing.
  5. Re:.NET by jonnosan · · Score: 5, Informative

    This is the perspective of someone with a couple of years experience in "enterprise" development, i.e. apps that have a UI that is probably a bunch of data entry forms, a database at the back, and a "business logic" layer that looks at the input, massages it, acts on it, sends it to the db, etc.

    These sorts of apps are not very sexy compared to writting an OS or a game or something, but they're what 90% of developers in the world work on.

    A typical enterprise app will need to have a bunch of different front ends (e.g. web interface, a simple gui for data entry clerks, a bunch of reports) etc. Also, you'll have lots of people working on different bits and peices, and lots of changes going on all the time, e.g.say a sales manager comes up with a new promotional scheme that gives volume discounts you need to update your app to handle the calculations.

    So with all these people working on apps that are evolving rapidly, you can end up with spaghettii code pretty quickly. If you want to have something that's maintainable, you really need to use OO and come up with an object model that seperates the user interface, the business rules, and the data layer.

    The problem with this is that it is hard to have an object model that works well over distributed systems, and hard to have an object model that can be used by developers using multiple languages.

    COM is a start to allowing objects to be used from multiple objects, and over distributed systems, but it has limitations, largely related to the fact that different languages don't have the same idea of basic data types.

    .NET solves this by making all languages share a virtual machine that defines a bunch of basic data types, and a base 'object'. This means that any object created in one .NET language can be accessed by another .NET language.

    So you can have a your web front end people write ASP (VB) pages that interact with business logic written in c# without having to compromise your object model.

  6. Re:Well by sql*kitten · · Score: 5, Insightful

    There is always the fact that Java is being natively excluded from Win XP.

    Uhh, hello? Didn't Sun just sue Microsoft? Aren't a bunch of other companies, including AOL and Real arguing with MS right now over bundling of products? It's not as if MS are saying that you can't run Java, they're just saying that it's a piece of third party software, you have to install it yourself, just like you have to install, say, WinAmp if you want it, or Photoshop.

    Sorry, but I think Microsoft are doing the right thing here, or at least they are doing the least-worst thing.

    Isn't it all supposed to be about choice? A world where Java is the only language (and we all know how responsive Sun have been to the wishes of the community, can you say ECMA standard?) would be a poorer world than one where Java/J2EE and C#/.NET have to compete on features and quality.

    There's one way out of this for the Anti-Microsoft camp: get Java to be like C, SQL and FORTRAN, an ANSI standard. Until we see that, this battle isn't one for the engineers, it's marketeer vs marketeer.

  7. Re:This is good news... by Lars+Arvestad · · Score: 5, Insightful
    The ability to write in your favorite language C#, C++, VB, JScript, etc and now Java is a huge improvement over locking a project into one language only and missing out on all the other shared libraries because your project is in Java or Objective-C or Python etc.

    I'll admit that I have never done any large scale programming, but this statement about language lock-in seems entirely false to me. I have done programming for research purposes and combined C with C++, C with Scheme, and used tools mostly written in C call Fortran libraries. I have seen and used examples of Perl and Python programs accessing common C libraries.

    Where is the lock-in?

    --
    Reality or nothing.
  8. Re:Corporate Thinking or Public Service? by sql*kitten · · Score: 5, Insightful

    I ask the question :- if you were a director/shareholder of a company like Microsoft would you

    a) play to your strength and leverage your current market domination and try to eliminate competing standards while creating new "standards", eg .NET that ultimately play back into your desktop Windows (XP) market, or

    b)go open source, support Java, employ open standards, go cross platform, etc etc and risk losing any market dominance you have now?


    Legally, you would have no choice at all. If a director fails to act in the interest of shareholders, the penalty can be a jail sentence and a ban from ever running a company again, at least under UK law. Yes, that's right, you can go to jail for doing the "right thing". Unless you could prove that it was in the best interest of shareholders - who will tear you apart if you miss your quarterly earnings target - there is no option for you but (a).

    The reason corporations put profit before everything else is because the law - created by the governments, who represent the taxpayer - have decreed that they must do so. It would be a little hypocritical to criticize a thing for acting in accordance with its nature.

  9. Re:Corporate Thinking or Public Service? by Zico · · Score: 5, Insightful

    Well, I understand that as a self-described "rabid Slashdotter," this might be news to you, but your entire premise is pretty wacked.


    - your grip on the server market appears to be slipping


    Hate to break it to you, but Microsoft's server market share has never gone down since NT first came out.


    great companies such as google.com are proving that you can grab web market share fairly quickly with a better product


    Well, seeing how Microsoft/MSN gets around 7 times the number of unique visitors that Google gets, and that they hang around the site around 25 times longer than Google's, you tell me how concerned they are.


    technologies such as Linux, VM Ware, WINE and Java are threatening to nibble away your desktop market


    They are? Funny that Microsoft's desktop market share, just like its server market share, went up over the past year. Guess they better be on the lookout for OS/2 and Amiga, too.


    having some spectacular white elephants such as MSN on record


    See above about MSN.


    I think that the shareholders of Microsoft would be pretty relieved that it's one of the best performing stocks this year. Oh, and they're probably happy as Hell that they don't listen to Slashdot hype, otherwise they might've traded all their Microsoft shares for stock in VA Linux, Red Hat, and Sun, thus watching their kids' college funds go *poof*!

  10. Re:Corporate Thinking or Public Service? by Anonymous Coward · · Score: 5, Funny

    >Well, seeing how Microsoft/MSN gets around 7 times the number of unique visitors that Google gets, and that they hang around the site around 25 times longer than Google's, you tell me how concerned they are.

    considering that google is a search engine , and msn is just a mess, I would consider your statement to be a glowing endorsement of google. People get what they need 5 times faster!.

    And it's true because you said it!.

  11. Re:It's about debugging. by MillionthMonkey · · Score: 5, Insightful

    The main advantage is here: development is faster in a team where every programmer can use the language he/she likes the most.

    .NET people love to say this and it makes me laugh. It's so naive. It's like saying that development is going to be faster once you let all the programmers use the bracing and indent styles that they personally prefer.

    "Welcome to the team. I wrote the C# parts of the application. John writes in Eiffel, Paul here likes C++ and uses that, and George over there prefers to use VB because he really likes its type system. You'll be sitting at this desk here, and you'll be in charge of the code that Ringo was working on before he left. None of us really knows how it works because we don't know INTERCAL."

    I submit that development is faster in a team where all the developers are using the same language and can at least read each other's code. I work with a bunch of guys on a successful Java-based scientific application. We have to go into each other's code and change things all the time. They're all smart guys- and I have real respect for them, because 1.they're very productive and 2.might be reading this. But they're physics PhDs with no formal CS training, and they write fiendishly clever code that is really hard to read. The best of them writes huge amounts of complex-flow infrastructure that is riddled with "historical" stuff that gets coded around everywhere. Another one writes impenetrable clockwork mechanisms. A third delights in purposeful obfuscation (so he handles the licensing validation code). If any of them were on a plane that got hijacked, the company would be in serious trouble! Their code is pretty hard to read, but I can usually figure it out because I'm used to deciphering uncommented Java. The mere idea of these guys running around writing different parts of the code in their favorite languages makes me shudder. (The clockwork mechanism guy likes OCaml, for example, and naturally the obfuscator would prefer C.)

    The idea of everyone coding in their favorite language only works well if each developer is going to be entirely responsible for his/her own domains of the code, and nobody will need to cross boundaries too often into other domains. If there is more coupling than that, then soon everyone has to learn everyone else's favorite language. This sets up a language holy war. It also makes it difficult to reassign responsibility for parts of the code because now you have to worry about who knows what language.
    This might be useful for more loosely coupled development teams. As in, your project in language X could really use this nice new library that someone wrote in language Y. But you can already use language bindings that are already available for that purpose. If you encounter a bug in a library do you normally debug it yourself? If you're like most people, you either send a nasty email to the guy who sold you a buggy library, or you dig through a mailing list archive to find out what the problem is. If you use a debugger at all, it's to get a general idea of what's going on so that you might get an idea for a workaround to put in your client X code. But you can usually just pull that off if you just have the source! It is kind of neat that you can step into a different language, but it's unlikely to be of much critical importance for reasons that have more to do with humans than computers.

  12. increasing size of sun VM????? by jilles · · Score: 5, Insightful

    I keep reading about this on sites like this. It should be pointed out that even the JRE (java run-time environment) for jdk 1.4 is well below 10 megabytes (mainly depending on the platform). Of course if you download the full jdk you have a bigger download, mainly because that includes, among others, various tools and the source code for most of the API. But even then we are talking about 30 or 40 MB.

    Go check out Opera or netscape, both have an optional download for the JRE 1.3.x. I think it was about 6MB. The JRE includes everything you need to run Java applications. It is hardly bigger than MS jvm and does a lot more.

    Incidently, there is currently a beta of an enhanced 1.3.1 JDK that includes an activex component that fully replaces microsoft's JVM. Yes that's right, you can now run all your applets in IE using jre 1.3.1. Of course it doesn't support the MS specific extensions of the JVM.

    --

    Jilles
  13. Competition never hurts. I welcome J# completely. by javabandit · · Score: 5, Interesting

    First, a disclaimer, I am not a Microsoft advocate. Those guys can stick it up their ass. That being said, I will do what it takes to do my job and get paid.

    The issue here is that *many* Java developers have been trying to code quality front-end applications on Windows using Java -- and have failed (or fallen very short). *I* am one of those people who have done so. I know many other Java developers who have failed to meet their expectations reasonably when coding on Windows.

    If I know that my target platform is only going to be Windows, but I can't use any of the Windows libraries... what good is Java? Its not. So I have to go back to C++. But C++ is a horror in its own ways.

    Too many in the Java community are zealots about what Java should and shouldn't be used for. The idea that if it isn't WORA (Write Once Run Anywhere) then it shouldn't be written in Java is completely ludicrous, IMHO.

    Some Java developers want the elegance of Java with an easy way to utlitize Windows native libraries without having to write convoluted JNI interfaces all over the place.

    The answer is J#. However, I was perfectly happy with the idea of C#. C# has some compilation advantages and syntax advantages over Java that I really love.

    I have extensive experience with Swing (Java GUI libraries), and they just simply don't cut it for serious front-end application development. The more complex controls such as JTable and JTree are full of bugs, they are difficult to use, and complicated. If you want less complicated controls, you have to buy a proprietary vendor's API and use those, instead. The Windows 'look and feel' does NOT look and feel like Windows. Because of the MVC design, you have to import practically every single class in Swing into your programs.

    AWT was much more compact and easy to use. It also was pretty snappy; however, it suffered from lack of GUI controls.

    I don't see anything wrong with J#. If it works for you and serves your purpose, use it. If it doesn't, then don't.

    But a little competition in the Java marketplace (or any marketplace) never hurts. Maybe it will light a fire under Sun's ass and get them to contribute more to the front-end side of Java -- which has been ignored for far too long.

    Better yet, maybe they will open-source Java, instead. Even better.

  14. Open source non-Swing Java tree and table Java by jonabbey · · Score: 5, Informative

    Actually, if you are looking for less complicated tree and table components, check out the ones included with Ganymede.

    I wrote them because I needed them for Ganymede development, and Swing hadn't quite come along yet. I kept them because they are simple to use, they are pretty high performance, and you can do fancy tricks like node dragging ihttp://www.arlut.utexas.edu/gash2/doc/javadoc/arl ut/csd/JTable/baseTable.htmln the tree with little-to-no effort.

    You can read the Javadocs on them here and here.

    They are licensed under GPL, along with the rest of Ganymede.