Discussions

News: Sun Debuts Linux Community For Java Developers

  1. Sun Debuts Linux Community For Java Developers (17 messages)

    Sun has announced and released linux.java.net, a new java.net community for Linux developers with expanded support for Java technology-based development tools on the Solaris Operating System and Linux and Windows platforms. The mission is "to ensure that Linux becomes and remains a first-tier platform for Java".

    linux.java.net

    Sun Professes Faith in Java for the Linux Community

    Threaded Messages (17)

  2. Does Sun Still Matter....[ Go to top ]

    They are dead and will become irrelevant. In the same sentence as Linux they mention solaris. They need to die, they sell crappy stuff.
  3. Think again!!![ Go to top ]

    If it was not Sun, there would had been no java and no standard process...

    You all would be programming in 10 different languages, or in C#
  4. Think again!!![ Go to top ]

    Srinivas: If it was not Sun, there would had been no java .... You all would be programming in 10 different languages, or in C#

    If not for Sun, there would be no C# ....

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Clustered JCache for Grid Computing!
  5. C#[ Go to top ]

    If not for Sun, there would be no C# ....

    C# would exist, just its name would be CFlat
  6. Think again!!![ Go to top ]

    If not for Stroustrup, there would be no java. What are you guys talking about.

    -M
  7. Think again!!![ Go to top ]

    Mackie: If not for Stroustrup, there would be no java. What are you guys talking about.

    Here's the difference between us: When you say that, I think "Yes, of course that is true." In fact, I've read at great length how many design decisions in Java were based on C++, some based on what was done well in C++ and others made to avoid repeating the perceived mistakes in the design of C++.

    There are a few other languages that contributed to Java, but 90% of it came from C++. Similarly, there are a few other languages that contributed to C#, but 90% of it came from Java.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Clustered JCache for Grid Computing!
  8. Java inherits from what?[ Go to top ]

    There are a few other languages that contributed to Java, but 90% of it came from C++.

    Strangely, I don't see that - and I'm quite familiar with C++.

    I'll just highlight a small number of major differences:

    - C++ has destructors (no finalizers are not destructors)
    - C++ has multiple implementation inheritance
    - C++ does not have a root Object class
    - C++ does not have "first-class" inner classes
    - C++ does not have anonymous classes/closures
    - C++ has friends
    - C++ has parametric polymorphism - Java's new form of genericity isn't anything like C++'s templates. (i.e. no structural conformance, no specialization capabilities, based on virtual subtyping, etc...)
    - C++ "unifies" primitives and objects
    - C++ has pointer arithmetic
    - C++ has function pointers
    - C++ has references (which aren't anything like Java references)
    - C++ has "value classes" / "stack objects"
    - C++ has manual memory management
    - C++ has operator overloading
    - C++ has static linking
    - C++ doesn't have reflection
    - C++ has no standardized ABI
    - C++ has no serialization mechanism
    - C++ has poor support for internationalization (i.e. only wchar_t/wstring)
    - C++ doesn't define order of evaluation (i.e. for arguments)
    - C++ has a very limited runtime library
    - C++ has no concept of threads
    - C++ has no mutual exclusion primitives
    - C++ doesn't have array bounds checking

    And I could go on and on. Personally, I believe that Java has more in common with Smalltalk than C++. From what I understand, there were/are even Smalltalk VM implementors on Sun's HotSpot team.

    God bless,
    -Toby Reyelts
  9. Java inherits from what?[ Go to top ]

    Maybe these where the things that Java wanted to avoid or change to something better. Java is much simpler too, so you will find a long laundry list of things that are no longer in Java. C++ is such a big monster that there is something for everyone there, and a lot that you will never use. The only thing I missed was the templating (or generics) in C++. At the end, less is more.

    If you are a C++ programmer, you will find that transition to Java is fairly painless due to same or similar concepts, constructs and keywords. I do not know smalltalk but I am guessing that the 'look and feel' is not the same.
  10. Java inherits from what?[ Go to top ]

    Toby,

    While I understand what you are saying, I don't agree. Java syntax is C++ syntax, give or take a little bit. Basically, Java dropped all the ugly things about C++ that you described, such as:

    - C++ has multiple implementation inheritance
    - C++ "unifies" primitives and objects
    - C++ has "value classes" / "stack objects"
    - C++ has pointer arithmetic
    - C++ has function pointers
    - C++ has references (which aren't anything like Java references)
    - C++ has operator overloading
    - C++ has static linking

    Among other reasons, Java dropped these in order to provide a simpler and more predictable virtual machine, and thus a more portable and less error-prone platform.

    Part of making Java less error prone and more developer-friendly was assuming the memory management responsibility as part of the language, hence:

    - C++ has destructors (no finalizers are not destructors)
    - C++ has manual memory management

    Keep in mind that C++ (first with commercial software, and later with varying degrees of standardization) supports "garbage collection" and thus destructors that are more like finalizers. This has been available for at least 10 years in C++ land, and some of the early JVMs actually used commercial gc implementations that were designed for C++ memory management. There is no doubt, though, that Java was designed for garbage collection, and did not have it retrofitted, and that was a substantial and important difference.

    A couple of your "differences" points aren't correct:

    - C++ has friends (yes, and Java has friendly "package" access)
    - C++ doesn't have reflection (C++ has RTTI)
    - C++ does not have "first-class" inner classes (neither did Java)
    - C++ does not have anonymous classes/closures (neither did Java)

    And then, of course, there are real and significant differences that made Java a worthwhile language (and platform) in its own right:

    - C++ does not have a root Object class
    - C++ has no standardized ABI
    - C++ has no mutual exclusion primitives
    - C++ doesn't have array bounds checking
    - C++ has no serialization mechanism
    - C++ has poor support for internationalization (i.e. only wchar_t/wstring)
    - C++ doesn't define order of evaluation (i.e. for arguments)
    - C++ has a very limited runtime library
    - C++ has no concept of threads

    In other words, Java came with a lot of obviously necessary features, but then again, if they were so obvious, why didn't C++ have them? The answer is that it only became obvious because people had used C++ for years, and knew as a result what to add and what to remove ;-)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Clustered JCache for Grid Computing!
  11. Java inherits from what?[ Go to top ]

    Keep in mind that C++ (first with commercial software, and later with varying degrees of standardization) supports "garbage collection"

    Gc's do exist for C++ (for example, the Boehm gc, which is probably the most well known), but I don't believe there is any mention of garbage collection in the ISO/ANSI C++ standard. (My copy seems to have run off and my copy of the ARM is at work). In reference to quality issues, you'll find that there is not a gc that can reliably detect the difference (in all cases) between allocated memory and simple referenced memory. This is why C++ gc's are conservative. Programs must specifically co-operate with the gc to prevent memory leaks. You'll see that there are also impedance mismatches, because destructors can't naively be treated like finalizers. (Take a typical mutex class for example - finalizer behavior would be disasterous). I hope we can agree that Java resource management has much more in common with Smalltalk than C++.

    A couple of your "differences" points aren't correct:

    My points were correct, but you chose to elaborate. If you don't mind, I'll return the favor.

    C++ has friends (yes, and Java has friendly "package" access)

    In C++, any class (or free function) may be given friend access, and that friend gains access to all members, including private members. Friendship is explicit. In Java, "friendly access" is the default behavior, provides access to all classes in the same package, can not be granted to classes outside of that package, and can not be used to provide access to private members. In C++, you would primarily use friend access to implement operator overloading, and to grant nested classes permission to their parent classes. Java has neither of those requirements.

    C++ doesn't have reflection (C++ has RTTI)

    And yet, RTTI is entirely limited to class names, and the values have no standardized reputation. It is not intended, whatsoever, for reflective programming. Stroustrup has always considered reflection for C++, and RTTI was not that consideration.

    C++ does not have "first-class" inner classes (neither did Java)
    C++ does not have anonymous classes/closures (neither did Java)

    C++ did not have a string class, namespaces, friends, templates, (or many other features) to begin with either. I'm not sure I understand your point.

    In other words, Java came with a lot of obviously necessary features, but then again, if they were so obvious, why didn't C++ have them? The answer is that it only became obvious because people had used C++ for years, and knew as a result what to add and what to remove ;-)

    I believe this is a misconception. C++ had a very specific design goal - compatibility with C. If you haven't yet, I suggest you read "Design and Evolution of C++" by Stroustrup. There are many "faults" in C++ that exist, not because the designers were unaware of them or better alternatives - the faults were either required or viewed as the best route to the greater design goals. Java, on the other hand, has different goals - just like Smalltalk, Lisp, Ada, and other languages before it. Language design is all about trade offs.

    So maybe 90% is much too much an exaggeration (except for the syntax maybe) ..

    Yes, I believe the designers explicitly state that there was a specific goal to make the syntax appear like a simplified C++ syntax to attract an existing developer base. (Contrast this with Stroustrup's source-code compatibility approach). A well conceived languge is usually designed with migration routes in mind from the most popular languages of the time.

    I'm not saying that Java didn't steal anything from C++, but I am saying that there are other languages that it is much closer to in heart. Perhaps instead of examining all of the specific language differences, it might be more apparent by looking at the design decisions made for each language.

    God bless,
    -Toby Reyelts
  12. Java inherits from what?[ Go to top ]

    [i]and the values have no standardized reputation[/i]

    That should read representation not reputation

    It would be nice if TSS let you edit your posts afterward. Many other sites provide this capability.

    God bless,
    -Toby Reyelts
  13. I am thinking ;-)[ Go to top ]

    There are a few other languages that contributed to Java, but 90% of it came from C++. Similarly, there are a few other languages that contributed to C#, but 90% of it came from Java.

    >
    So based on simple mathematical calcuation, 90% * 90 % = 81 % , so 81% of C# features came from C++ and only 19% came from java ;-)

    Regards,
    Hun Boon
  14. I am thinking ;-)....[ Go to top ]

    There are a few other languages that contributed to Java, but 90% of it came from C++. Similarly, there are a few other languages that contributed to C#, but 90% of it came from Java.

    > >
    > So based on simple mathematical calcuation, 90% * 90 % = 81 % , so 81% of C# features came from C++ and only 19% came from java ;-)

    You mean 9%, didnt You ? :P
  15. I am thinking ;-)....[ Go to top ]

    There are a few other languages that contributed to Java, but 90% of it came from C++. Similarly, there are a few other languages that contributed to C#, but 90% of it came from Java.

    > > >
    > > So based on simple mathematical calcuation, 90% * 90 % = 81 % , so 81% of C# features came from C++ and only 19% came from java ;-)
    >
    > You mean 9%, didnt You ? :P

    Actually, it can be anywhere from zero to ten percent...:-)

    AV
  16. Does Sun Still Matter....[ Go to top ]

    Yes they do. I don't know why people bash SUN all the time on TSS. Sun commitment to the open source community (JCP), and now support for linux should be very well respected. If not that, don't forget they have been holding MS momentum since last 8 years to invade the whole world....

    "There are a few other languages that contributed to Java, but 90% of it came from C++. Similarly, there are a few other languages that contributed to C#, but 90% of it came from Java. "

    Cameron are you sure! Is this the fact or you are one of those guys who just think that since the syntax of Java borrowed from C/C++ it is 90% came from C/C++. Have you ever heard a thing called "semantics"? In plain English semantics is the way to classified the language not the syntax. And the semantics of Java is heavily borrowed from Smalltalk (dynamic binding, meta classes, byte code etc), and Java in that sense is closer to Smalltalk than C++. You can think of Java as more of a Smalltalk in C/C++ syntax.
  17. Smalltalk? Or C++?[ Go to top ]

    Maybe you're right ... I may just be blinded by my own past work in C++. The more I think about it, the more some of your points make sense. So maybe 90% is much too much an exaggeration (except for the syntax maybe) .. but it still feels to me like it's C++, just that it's missing all the ugly stuff ;-)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Clustered JCache for Grid Computing!
  18. arunAmuck[ Go to top ]

    Sun is relevant because there are those that enjoy things like superb performance and reliability. Especially when the Enterprise depends on it.