Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. How about including Java as one of the .NET supported languages?

How about including Java as one of the .NET supported languages?

Scheduled Pinned Locked Moved The Lounge
csharpjavaquestion
41 Posts 29 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B brinkerville

    Correction... You are referring to J++ and they were not taken to court over J++. They were taken to court over the "Microsoft Virtual Machine". Without the Microsoft Virtual Machine, J++ was rendered useless as a technology. Microsoft later introduced J# to try and sway Java developers and their source code over to the .NET platform. There was not enough end user support to continue the J# project so they let it go. I think this was a big mistake. You don't close your door to those who might want to convert and join your "file".

    P Offline
    P Offline
    Patrick Fox
    wrote on last edited by
    #27

    Yeah, this is what happened. Often times, when MS gets its hands on a technology it adds special hooks in for functionality it desires, and in doing so sabotages or takes over that technology as many people come to rely on these hooks. Sun didn't want Microsoft confiscating Java from them, and I don't blame them. I've always viewed the creation of .Net as Microsoft's acknowledgement that Java belongs to Sun and if they want to do it their own way, they have to start from scratch.

    M 1 Reply Last reply
    0
    • B brinkerville

      Correction... You are referring to J++ and they were not taken to court over J++. They were taken to court over the "Microsoft Virtual Machine". Without the Microsoft Virtual Machine, J++ was rendered useless as a technology. Microsoft later introduced J# to try and sway Java developers and their source code over to the .NET platform. There was not enough end user support to continue the J# project so they let it go. I think this was a big mistake. You don't close your door to those who might want to convert and join your "file".

      C Offline
      C Offline
      Chris Meech
      wrote on last edited by
      #28

      :thumbsup: The cobwebs are cluttering my brain. Much better clarification. Thanks. :)

      Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra] posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]

      1 Reply Last reply
      0
      • J Jun Du

        I came across an experimental tool named XMLVM, which as claimed can convert the compiled .NET assemblies into Java byte code and vice versa. This makes me thinking why can't Microsoft include Java into the .NET run-time support...

        Best, Jun

        M Offline
        M Offline
        MSBassSinger
        wrote on last edited by
        #29

        The problem is less technical and more religious. The degree of anti-Microsoft hatred with so many Java programmers shares much in common with various religious conflicts. Logic and reason take a back seat to intense loyalties to Java (usually mixed in with the same feelings on Linux, Apache, et al) and villianization of Microsoft. The vitriol I've heard and read from the Java side has been often and intense. To a lesser degree, you see the same thing with a few "Softies" towards Java/Linux/Apache/etc. No matter how well Microsoft improves a programming technology for the "middle of the bell customer-programmers, it will be rejected by the other side. And contrary to some posts, .NET was not created as a response to the Sun Java lawsuits. .NET was already underway, with VB.NET and C# (late 1990s), before the lawsuits were settled. As I remember, back in 2000 when I got my first Visual Studio.NET beta, VB.NET was a bit more "ready for prime time" than C# was, but by the actual release, C# was much improved. That leads me to believe that .NET was the basis for 2 things at the time: Moving from a partially OO VB6 to a fully OO VB7; and having a platform where the languages are syntactic sugar over a common runtime so developers of most languages would have one common and powerful development tool. How much C# was a reaction to Sun's intransigence only someone on the original .NET development team could answer.

        T 1 Reply Last reply
        0
        • D Daniel Grunwald

          They use XSL transformations for the program transformations? :omg: :omg: :omg: That sounds REALLY painful for non-trivial transformations. Also, it looks highly incomplete, especially the supported class libraries. If you just want to run Java byte code on .NET, take a look at IKVM[^] instead. Also, read the IKVM blog[^] if you want to get an idea of just how complex this is - the IKVM author is frequently running into trouble with either Java or .NET not working as documented in some corner cases.

          Jun Du wrote:

          This makes me thinking why can't Microsoft include Java into the .NET run-time support...

          a) It's a HUGE effort to get right (see above) b) Patents. Microsoft started .NET because they got sued when trying to improve Java, remember?

          S Offline
          S Offline
          syspau
          wrote on last edited by
          #30

          Shouldn't the word "improve" be in quotes? I think that there is a matter of opinion there. I have used Java. I like it a lot. I like Swing and RMI, and the concise syntax. I am now mostly using .NET, C# and also VB.NET. I like .NET a lot also, particularly C#, which is very similar to Java. There are some things I like better about C# over Java, but there are also some things I like better about Java than C#. Of course Java does run on more platforms than Windows.

          D 1 Reply Last reply
          0
          • C Chris Meech

            lewax00 wrote:

            3. They tried it already, it was called J#, it never really caught on and they got taken to court about it.

            FTFY. :)

            Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra] posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]

            J Offline
            J Offline
            JackDingler
            wrote on last edited by
            #31

            And lost...

            1 Reply Last reply
            0
            • P Peter Kibble

              Great idea. I'm currently linking a Java project into .Net, and I think we need more badly documented, slow running stuff with ugly interfaces in the .Net world.

              S Offline
              S Offline
              syspau
              wrote on last edited by
              #32

              If you are implying that you can only have ugly, slow user interfaces in Java, you are dead wrong. I have written applications using Swing that are as nice and usable and as fast as anything I have used anywhere. If you are seeing ugly, slow user interfaces, blame the incompetent programmer who failed to properly learn his tools!

              1 Reply Last reply
              0
              • T Thornik

                I fear "enterprise Java" is the same myth like NFO: everybody knows it, but nobody seen. :) Currently .NET has everything to build any scale applications. Who care about "enterprise Java"? People just use stuff most handy in their company - a whole MS chain, from Server/Exchange/SQL till WinXP/Outlook.

                C Offline
                C Offline
                cpkilekofp
                wrote on last edited by
                #33

                Member 3082487 wrote:

                Who care about "enterprise Java"?

                The enterprise cares, in some cases. I'm now working for the second company in a row which has embraced Java as its preferred platform due to its portablility - the commitment is so extreme that they're attempting to rewrite VMS Fortran IV financial code into Java, without accounting for the extra width of the mantissa vs. the exponent in the VMS floating point representation vs. the currently standard representation as used by Intel's processors. Despite this, .NET projects abounded in both companies. This was due to departments having begun development with pre-.NET development tools, after which they migrated to .NET. Also, acquisitions of independent companies brought .NET projects within the corporation, and for many of these it was not cost-effective to rewrite them in Java. I've programmed in both, but I currently make my living in .NET.

                T 1 Reply Last reply
                0
                • P Patrick Fox

                  Yeah, this is what happened. Often times, when MS gets its hands on a technology it adds special hooks in for functionality it desires, and in doing so sabotages or takes over that technology as many people come to rely on these hooks. Sun didn't want Microsoft confiscating Java from them, and I don't blame them. I've always viewed the creation of .Net as Microsoft's acknowledgement that Java belongs to Sun and if they want to do it their own way, they have to start from scratch.

                  M Offline
                  M Offline
                  Mourant
                  wrote on last edited by
                  #34

                  This behaviour is often referenced as "Embrace Extend Extinguish"... according to wikipedia, the US department of justice found that this phrase was used internally by Microsoft to describe its strategy

                  1 Reply Last reply
                  0
                  • S syspau

                    Shouldn't the word "improve" be in quotes? I think that there is a matter of opinion there. I have used Java. I like it a lot. I like Swing and RMI, and the concise syntax. I am now mostly using .NET, C# and also VB.NET. I like .NET a lot also, particularly C#, which is very similar to Java. There are some things I like better about C# over Java, but there are also some things I like better about Java than C#. Of course Java does run on more platforms than Windows.

                    D Offline
                    D Offline
                    Daniel Grunwald
                    wrote on last edited by
                    #35

                    C# as a language is way better than Java. Lambdas and LINQ are extremely useful features that I miss every time I have to write Java code. Generics aren't broken in C# (think new T[length]; and more useful Reflection as generic type info isn't lost). Structs are extremely useful whenever you need to fit lots of elements into as little memory as possible, and could lead to dramatic performance improvements. (I once improved performance of an expensive algorithm by a factor of 4 simply by replacing an array of class Pair { int a, b; } with an integer array and using two indices per logical element, but it made the code way less readable than the equivalent C# would have been) Why do you think Java syntax is concise? It's one of the more verbose languages I know, certainly more verbose than C#. But note that I was only comparing the languages. The Java libraries seem to be more complete and better thought out than the .NET BCL.

                    S 1 Reply Last reply
                    0
                    • C cpkilekofp

                      Member 3082487 wrote:

                      Who care about "enterprise Java"?

                      The enterprise cares, in some cases. I'm now working for the second company in a row which has embraced Java as its preferred platform due to its portablility - the commitment is so extreme that they're attempting to rewrite VMS Fortran IV financial code into Java, without accounting for the extra width of the mantissa vs. the exponent in the VMS floating point representation vs. the currently standard representation as used by Intel's processors. Despite this, .NET projects abounded in both companies. This was due to departments having begun development with pre-.NET development tools, after which they migrated to .NET. Also, acquisitions of independent companies brought .NET projects within the corporation, and for many of these it was not cost-effective to rewrite them in Java. I've programmed in both, but I currently make my living in .NET.

                      T Offline
                      T Offline
                      Thornik
                      wrote on last edited by
                      #36

                      Funnies point is that "portable" Java in reality become platform-specific! There is no any enterprise solution which you "just copy and it works". Moreover: suppose you have expensive hardware with HP-UX. Would you care about any "portability" if in nearest 10 years (minimum!) you will make most of your HP servers? Of course not. You'll make programs specifically for HP-UX, because you need working product - your clients don't give a dick is your solution portable or not - they need WORKING solution. This is the point why Java's "portability" means nothing to me.

                      C 1 Reply Last reply
                      0
                      • M MSBassSinger

                        The problem is less technical and more religious. The degree of anti-Microsoft hatred with so many Java programmers shares much in common with various religious conflicts. Logic and reason take a back seat to intense loyalties to Java (usually mixed in with the same feelings on Linux, Apache, et al) and villianization of Microsoft. The vitriol I've heard and read from the Java side has been often and intense. To a lesser degree, you see the same thing with a few "Softies" towards Java/Linux/Apache/etc. No matter how well Microsoft improves a programming technology for the "middle of the bell customer-programmers, it will be rejected by the other side. And contrary to some posts, .NET was not created as a response to the Sun Java lawsuits. .NET was already underway, with VB.NET and C# (late 1990s), before the lawsuits were settled. As I remember, back in 2000 when I got my first Visual Studio.NET beta, VB.NET was a bit more "ready for prime time" than C# was, but by the actual release, C# was much improved. That leads me to believe that .NET was the basis for 2 things at the time: Moving from a partially OO VB6 to a fully OO VB7; and having a platform where the languages are syntactic sugar over a common runtime so developers of most languages would have one common and powerful development tool. How much C# was a reaction to Sun's intransigence only someone on the original .NET development team could answer.

                        T Offline
                        T Offline
                        Thornik
                        wrote on last edited by
                        #37

                        I think with .NET MS shoot two birds at a time: dropped annoying java from Windows and saved its sources for reuse in .NET platform. That's not bad, because C# for Win become more competitive than Java.

                        1 Reply Last reply
                        0
                        • T Thornik

                          Funnies point is that "portable" Java in reality become platform-specific! There is no any enterprise solution which you "just copy and it works". Moreover: suppose you have expensive hardware with HP-UX. Would you care about any "portability" if in nearest 10 years (minimum!) you will make most of your HP servers? Of course not. You'll make programs specifically for HP-UX, because you need working product - your clients don't give a dick is your solution portable or not - they need WORKING solution. This is the point why Java's "portability" means nothing to me.

                          C Offline
                          C Offline
                          cpkilekofp
                          wrote on last edited by
                          #38

                          Member 3082487 wrote:

                          ...your clients don't give a dick is your solution portable or not - they need WORKING solution. This is the point why Java's "portability" means nothing to me.

                          :laugh: I wouldn't say portablility means nothing to me - I started my programming career supporting a single code base in C that ran on ten different versions of CP/M and PC/DOS. The same code base focused my attention on performance as only multimegabyte programs running in 256k of memory can do in systems without virtual memory (I know there's plenty out there who remember overlays). .NET outperforms Java most of the time because focus on the single platform has allowed MS to focus on maximizing the performance on that platform. It was this challenge that forced Java Run-Time (JRT) developers to adopt things like JIT compilation to compete with .NET on the Windows platform. As for the lack of portability in specific implementations, well, if you have a set of business logic that you want to run on IBM MVS (or any other three OSs from them), Unix, Linux, VMS, and Windows, you're down to four choices (with a couple of honorable mentions): FORTRAN, COBOL, C, and Java. If portability is a requirement, it's impossible to sell .NET as an option, while Java (despite what some do with it) is clearly an option.

                          T 1 Reply Last reply
                          0
                          • D Daniel Grunwald

                            C# as a language is way better than Java. Lambdas and LINQ are extremely useful features that I miss every time I have to write Java code. Generics aren't broken in C# (think new T[length]; and more useful Reflection as generic type info isn't lost). Structs are extremely useful whenever you need to fit lots of elements into as little memory as possible, and could lead to dramatic performance improvements. (I once improved performance of an expensive algorithm by a factor of 4 simply by replacing an array of class Pair { int a, b; } with an integer array and using two indices per logical element, but it made the code way less readable than the equivalent C# would have been) Why do you think Java syntax is concise? It's one of the more verbose languages I know, certainly more verbose than C#. But note that I was only comparing the languages. The Java libraries seem to be more complete and better thought out than the .NET BCL.

                            S Offline
                            S Offline
                            syspau
                            wrote on last edited by
                            #39

                            I've already said that I like C# a lot. You don't have to try to convince me of anything by listing the 20 ways you think it's better than Java. I do not dispute that that is mostly true, libraries aside, although that cannot be totally dismissed. All I said is that there are some things I like better in Java. For instance, Java's inner classes are in my opinion better than C#'s nested classes because inner classes automatically have access to methods and instance variables of the containing class. So for instance, to start a method as a thread and pass parameters to it, create an inner class that extends Thread, instantiate it with your arguments, and when you start it, it calls the method in the containing class with those arguments, which is simpler than you can do with C#. Also, I do not think it is a great idea to have to declare a method as virtual before it can be overridden. In Java, you can extend any class that is not Final and override methods without updating the source code for that class in order to declare those methods virtual. This is sometimes inconvenient or impossible if you do not have access to the source code. BTW, the opposite of verbose is terse. I never said Java was terse. It is in fact more verbose than C#, but it is concise. For instance, in C#, you can declare a variable as type "var" and letting the compiler figure out the actual data type by the value that is assigned to it. I like strong typing, and I prefer to see what that type a variable is, at the place where it is declared. I consider that less precise. I consider these things minor points, and I am not looking to engage in any kind of religious war over this. I thought I just made a simple comment. Nearly every programming language has some features or aspects that make it unique and different and worthwhile is some respect. As I said, I like C# a lot, and I do not believe that Java should be a .NET supported language, which was the main discussion point.

                            1 Reply Last reply
                            0
                            • C cpkilekofp

                              Member 3082487 wrote:

                              ...your clients don't give a dick is your solution portable or not - they need WORKING solution. This is the point why Java's "portability" means nothing to me.

                              :laugh: I wouldn't say portablility means nothing to me - I started my programming career supporting a single code base in C that ran on ten different versions of CP/M and PC/DOS. The same code base focused my attention on performance as only multimegabyte programs running in 256k of memory can do in systems without virtual memory (I know there's plenty out there who remember overlays). .NET outperforms Java most of the time because focus on the single platform has allowed MS to focus on maximizing the performance on that platform. It was this challenge that forced Java Run-Time (JRT) developers to adopt things like JIT compilation to compete with .NET on the Windows platform. As for the lack of portability in specific implementations, well, if you have a set of business logic that you want to run on IBM MVS (or any other three OSs from them), Unix, Linux, VMS, and Windows, you're down to four choices (with a couple of honorable mentions): FORTRAN, COBOL, C, and Java. If portability is a requirement, it's impossible to sell .NET as an option, while Java (despite what some do with it) is clearly an option.

                              T Offline
                              T Offline
                              Thornik
                              wrote on last edited by
                              #40

                              Unfortunately, your "DOS code" nowadays is a funny "piece of enterprise" - its "close to flat" complexity allowed you to make it portable between... compatible MS-DOS clones! :) Now do the same trick with Solaris, Windows, Linux, QNX, OS/2, god-knows-what and you'll fail. Esp. when your system has thousands LOC with many layers, web/native-clients, distributed around the world and has replaceable modules. Definitely just "one language" cannot achieve it. Moreover: SUN never even had so many specialists to be sure all Java implementations can be portable to everywhere. > If portability is a requirement.... Java is clearly an option... Just repetition of well-known myth. Where is your arguments? First, Java IS NOT compatible around implementations (google it) and second, nobody requires this "portability" - all companies works on what they have.

                              C 1 Reply Last reply
                              0
                              • T Thornik

                                Unfortunately, your "DOS code" nowadays is a funny "piece of enterprise" - its "close to flat" complexity allowed you to make it portable between... compatible MS-DOS clones! :) Now do the same trick with Solaris, Windows, Linux, QNX, OS/2, god-knows-what and you'll fail. Esp. when your system has thousands LOC with many layers, web/native-clients, distributed around the world and has replaceable modules. Definitely just "one language" cannot achieve it. Moreover: SUN never even had so many specialists to be sure all Java implementations can be portable to everywhere. > If portability is a requirement.... Java is clearly an option... Just repetition of well-known myth. Where is your arguments? First, Java IS NOT compatible around implementations (google it) and second, nobody requires this "portability" - all companies works on what they have.

                                C Offline
                                C Offline
                                cpkilekofp
                                wrote on last edited by
                                #41

                                Member 3082487 wrote:

                                - its "close to flat" complexity allowed you to make it portable between... compatible MS-DOS clones! :)

                                CP/M was not an MS/DOS system, nor vice versa. I've also compiled and extended code that ported to Unix, VAX VMS, and MS-DOS; the C User's Group has a number of such utilities in source code.

                                Member 3082487 wrote:

                                Now do the same trick with Solaris, Windows, Linux, QNX, OS/2, god-knows-what and you'll fail.

                                Have you tried?? I doubt it. On the other hand, I have. You isolate the OS-dependent bits behind abstraction layers. It just as easy (or as complex) as hiding the actual connection procedure to a database behind a database layer. I didn't say it was easy, or that there aren't some systems that it doesn't make sense to build into portable code. I specifically said that some pieces of business logic need to be available on a variety of different architectures, not that every possible implementation of every piece of code needs to be made portable.

                                Member 3082487 wrote:

                                Just repetition of well-known myth. Where is your arguments?

                                First and only argument: There IS portable code that HAS been ported and IS running the same business logic on a lot of machinces in a lot of companies. Existence trumps ignorant assumption.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups