Coffeehouse Thread

13 posts

Java and .Net Convergence

Back to Forum: Coffeehouse
  • User profile image
    aza

    After reading the press release and Eric Rudder's blog on the Sun Microsoft matter it appears that life may get a bit easier for us developers.

    The following is extracted from the press release:

    "Future Collaboration for Java and .NET: Sun and Microsoft have agreed that they will work together to improve technical collaboration between their Java and .NET technologies."

    I appreciate it's early in the piece but does anyone have any ideas what this "collaboration" is going to look like? (C# compiling to Java byte code would be a very, very nice scenario!)

    As a non-technical aside there is currently a perception problem in the bureaucratic machine of the EU that Java is open source and .Net is not (in reality neither of them actually are since they can't be directly influenced by a public community). 

    This argument appears to be a front to favour Java as a development platform over all other options; the real reason for this favouritism is probably more to do with the current anatagonism between the EU and Microsoft rather then anything to do with open source. 

    Participating at the technical end of things this therefore presents a frustrating predicament. .Net may be the best development platform but it is being ruled out for political reasons. Since Microsoft appears to be in a concilatory mood I wonder if they could include the EU as well and save me a Java port Wink.

    aza

  • User profile image
    sbc

    The main appeal of Java is that it is 'write once, run anywhere'. i.e. program on a Mac and it will work on Windows. The problem with VB.NET and C# is the code only really runs on Windows - which worry people if they decide to move platforms. You don't get this problem with Java.

  • User profile image
    JerryP

    I guess (hmmm hope) that it means they keep J# at the current level of JAVA. Its cool to import the JAVA code into J# and have it running in .NET - but JDK support remains frozen at Java 1.1.4

    And I like the Idea of having a shared code base - but still be able to implement the cool nice windows GUI instead of having some slow old JAVA GUI.

  • User profile image
    aza

    The platform issue will disappear in the near future.

    Mono
     - Linux, Solaris, MacOS
    DotGNU - Linux, BSD, Cygwin, Mac OS X, Solaris, AIX

    The current problem with J# is that it requires an additional download to the .Net runtime. In addition the past rhetoric seemed to indicate that J# was a way to transition Java developers to C# and was not really going to be an equla partner to C#.

    I don't think the issue is J# or C# I think the issue is compilers that can target BOTH the CLR and JVM or even better CLR + JVM => TOVM (The One Virtual Machine).

    The impetus for convergence is not so much technical, Java and .Net are both good solutions, it's political. Organisations are aligned on one or the other and developers get caught in the middle. Dual code bases are not fun! 

    aza

  • User profile image
    SMac

    I'm really happy that both those organizations are aiming to "port" .net to other OS's..


    Really clams up the Java people when they do the "well I'm multiplatform bit" and I reply so is .net.. got here or here (just not well yet)..


    Disclaimer: Java is good for a heck of alot of things.. some more applicable than .net is, however, alot take the stance that there is only Java when, just like buying a car, you should consider your options...... also I believe .Net, with it's multiple languages really should be considered alot more...


  • User profile image
    Rafa®

    About the the third part implementations about .Net... I knew about the Mono Project before... But the DotGNU was new to me, so I decided to know more about...

    I love the initiative of these communities... Soon, we will have platform options... Our projects could be ported to Linux or MacOS without so much effort...

    But what, I keep asking myself is why, why these people from Linux/Free Soft communities are so stupid? There's a section in the DotGNU site named "Don't get caught in .Net"... When I read that, I start to laugh out...

    What these people think they are? It's always the same history, they talk about the MS like an evil, and they are the save, your rescue from that evil.. Come on... This is the stupid part of this Free Software community that I hate... If they're so concerned about what they're doing, why they keep annoying around MS-stuff? Just don't use that... Even dislinking linux and free software, I don't waste my time triying to convince people that the platform I use is the Best...

  • User profile image
    Rafa®

    Sorry, this second post is the same as the previous...
    I posted twice accidentally...

  • User profile image
    Jeremy W

    Java isn't actually "write once, run anywhere". That's a fairly common misconception. Unless you're tying into common components to every JVM (unlikely) you do end up with separate builds for many OS's, including for different Linux distros.

    It's certainly better than .NET is right now (by several measure of magnitude), but it's far from the marketing pitch.

  • User profile image
    sbc

    Jeremy W. wrote:
    Java isn't actually "write once, run anywhere". That's a fairly common misconception. Unless you're tying into common components to every JVM (unlikely) you do end up with separate builds for many OS's, including for different Linux distros.

    It's certainly better than .NET is right now (by several measure of magnitude), but it's far from the marketing pitch.

    It has that potential though and I'm sure there are some programs that work on any system.

    For real cross-plaform stuff you use wxWidgets or GTK and program with Python (which has wxPython). Both very stable GUI toolkits. Of course, you may still have to code and compile for a certain platform, but the code generalyl stas the same.

    .NET could work cross-platform too (but only likely if Open Source OS's can use it). Imagine being able to program in any language and have it work on any platform? That would be good. Only .NET has the potential to do that at the moment.

    I wonder if XAML can ever be cross-platform, or is it tied in too much with Avalon? As it is XML-based, it could work anywhere (the individual platforms handle the rendering).

    XUL is also good as it is based on web technologies (JavaScript, HTML, CSS)

  • User profile image
    SMac

    There's already a number of ways to have Java(TM) and .Net work together.. the easiest is through web services if you aren't concerned about object lifetime management and the like.. there's also a number of third party applications which blend .Net remoting and Corba and Borland's C# IDE has a number of features which accomplish this..


    MS Press book on the subject:
    http://www.amazon.com/exec/obidos/tg/detail/-/0735619220/qid=1082688475/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/103-0015081-2616621?v=glance&s=books&n=507846

  • User profile image
    aza

    For a lot of "professional" developers cross platform currently isn't a big issue. I have never been required to support any platforms other then Windows. I anticipate this changing in the medium term future as mobile platforms proliferate.

    From the point of view of someone who earns their crusts from Window's development the best thing Java did was spur Microsoft into action to create a much better develpoment environment. I don't know if they would have created it anyway but regardless I think a lot of the Java learnings were leveraged.

    What puzzles me a bit is the more open philospohy around .Net? Once mono ports .Net to Linux then in some cases Windows will lose its appeal. If Microsoft's thinking is that they'll create and guide a semi-open standard (like Sun and Java) and bank on the fact that they will be able to compete and win on building platforms then I for one think its commendable. And risky, it's going to be hard to go past a free combo of Apache and Mono ahead of a relatively expensive one like Win2003. I can't fathom the business value for Microsoft behind an open cross-platform .Net, although that could be part of the reason why I sit in a cube and not a glass paneled office with harbour views Wink.

    Relying on a closed environment, such as VB, to tie developers to a particular platform also probably explains the current fractures in the development community. Before .Net, as a developer you had to be for Windows, VB and ASP, or against it, Java. And since Java was a superior programming environment (maybe not execution but definitely programming) it attracted developers who then had to justify their choice. The most convenient way to do this was to disparage Windows which didn't really embrace Java. The broad generalisations are acknowledged.

    .Net has appealed to developers (I don't have figures but I would bet there are more C# then VB6 projects in sourceforge not to mention the significant numbers of Java to C# ports) and if it becomes a robust cross platfrom environment then anti-Windows arguments become redundant and we can hopefully reach a state where the best tools for the job are chosen. Then we can get rid of platform and language religion, oh yeah and we can live together as one big happy software industry and talk about interesting things instead of "C# vs Java" and "Windows vs Linux".

    aza

  • User profile image
    sbc

    What may be better for Microsoft is if .NET did work cross platform. You may lose share for the Windows desktop market, but you may leverage the server platform, development environment and software market (which is really where the money is). Also imagine if Microsoft programmes were written in .NET - they could be sold to anyone on any platform.

    It would be great one day to program for one architecture and have it work on any system due to the architecture being open. The perfect program - that works on any platform and written in any language without recoding. You could write in Perl, Python, Java, etc so no need to try to change much of your existing code to get it working for any OS.

    Imagine writing a program that worked on Windows / Mac / Linux with changing the code (you would still need to recompile for the target platform though)

  • User profile image
    aza

    sbc wrote:

    Imagine writing a program that worked on Windows / Mac / Linux with changing the code (you would still need to recompile for the target platform though)


    MSIL is platform agnostic. If you compile on a Mac to MSIL there is no reason why you shouldn't be able to use the same executable on Windows. Of course this is providing you stay away from pinvoke and OS specific portions of the library, i.e. Microsoft.Win32.

    aza

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.