Need to recompile a Java Applet as an Executable

Discussion in 'Java' started by Sanny, Jan 29, 2010.

  1. Sanny

    Sanny Guest

    I have a Java Applet which is quite slow.

    There are a few functions that are called by the Java Applet. I want
    those functions to be run as fast as possible.

    One Option is to use Native Support.

    Does an Applet support native language?

    Can I create a C++ / C function and ask the applet to call that C
    function that is run on Users Computer? And get back the output and
    display on the Applet?

    I just want a few functions to use fast C/ C++ access?

    How to distribute my applet with C/ C++ dll/ That Applet accesses?

    I will have 2 versions of Applet. One the slow version the other the
    fast version.

    I want that users who are not satisfied with the slow version. They
    will need to use the Signed Applet. Once they allow the Signed applet
    to access the Computer. The applet will load the C/ C++ dll / ActiveX
    on the Computer / Webpage.

    I want communication between Activex and the Applet for quick
    computation.

    Will the Activex/ DLL be 10-20 times faster than an Applet?

    So for power users who are looking for better performance I allow them
    to use the C/ C++ version.

    Will this model work?

    Will I have to create different ddl/ ActiveX for different platforms?

    Say for Mac os/ Linux/ Windows etc? Do I need to create a different
    ActiveX?

    I just have a few functions in C/ C++ and the Applets sends the
    parameters and returns the output.

    Which C/C++ free package should I use to create this function. I just
    want a few functions to be executed quickly by native language and
    return the output to the applet. So I want a free editor where I can
    compile the C/ C++ functions.

    Second Question Will an Activex/ DLL on a webpage be as fast as any
    executable? I am looking for the fastest options.

    Please suggest me a good example or diagram of how to proceed. Will I
    need Corba/ XML feature for Applet & Activex communication? Will this
    setup work on all web browsers?

    Does flash works faster than Java? Can I use those functions in Flash.
    Wil a function run on Flash as fast as a Native Language?

    Bye
    Sanny

    Good opportunities for Java/ C/ C++ Experts:

    http://www.getclub.com/Experts.php

    Tell your Expertise and projects.
    Sanny, Jan 29, 2010
    #1
    1. Advertising

  2. On 29 Jan, 07:53, Sanny <> wrote:

    > I have a Java Applet which is quite slow.
    >
    > There are a few functions that are called by the Java Applet. I want
    > those functions to be run as fast as possible.
    >
    > One Option is to use Native Support.
    >
    > Does an Applet support native language?
    >
    > Can I create a C++ / C function and ask the applet to call that C
    > function that is run on Users Computer? And get back the output and
    > display on the Applet?


    this isn't on topic on comp.lang.c how C or C++ "links" with java is
    outside the scope of the C or C++ language.

    <snip>
    Nick Keighley, Jan 29, 2010
    #2
    1. Advertising

  3. Sanny

    Flash Gordon Guest

    Sanny wrote:

    <snip>

    > Say for Mac os/ Linux/ Windows etc? Do I need to create a different
    > ActiveX?


    This is about the nearest thing to a C question, and even this is not a
    C question...

    Of course any compiled C code would have to be compiled for the specific
    target it is running on...

    <snip>

    > Does flash works faster than Java? Can I use those functions in Flash.
    > Wil a function run on Flash as fast as a Native Language?


    You probably need to ask in a web authoring group/forum, since your
    problems are all heavily to do with a web site. However, I would
    recommend from my experience that you would be better off looking at a
    higher level, ensuring that only what is needed is being downloaded etc.
    I've seen sites where as much as 90% of what was downloaded was not
    actually needed by the client! How to do this is all about web
    authoring, and not Java (which is NOT Javascript) or C.
    --
    Flash Gordon
    Flash Gordon, Jan 29, 2010
    #3
  4. Sanny

    Sanny Guest

    > Sanny wrote:
    > > I have a Java Applet which is quite slow.

    >
    > > There are a few functions that are called by the Java Applet. I want
    > > those functions to be run as fast as possible.

    >
    > You should probably fix your Java code then.  It's rare for Java
    > performance to be so critical that you need to go outside of Java.  And
    > you almost certainly won't get the 10x or 20x speedup you seem to be
    > hoping for.


    There is nothing wrong with the java code. I know some expressions in
    C are working 10-20 times faster. Secondly "C" allows the use of
    pointers and Assembly language programming.

    Also I can configure Compilation in "C" such that it do not do error
    checking at runtime speeding it up further.

    My program does a lot of array sorting and array search and
    comparisions. That is quite faster in C. Also lot of String Operation
    is done.

    In Java String Operations are 100 times slower than in "C". As copying
    a string takes lots of time in Java.

    > > One Option is to use Native Support.

    >
    > You can easily make things slower, if you do that wrong.  And it won't
    > necessarily be faster in any case.  IMHO JNI is more appropriate for
    > when you need some specific functionality that's simply not available in
    > Java, or you need to reuse some code that would be impractical to port
    > to Java.
    >
    > No doubt there are some specific, very specialized applications in which
    > writing some custom native code and calling it via JNI is helpful.  But
    > statistically speaking, it's not likely your program is in that category.



    One more reasion to use "C" is to have my code encrypted. Java Code is
    available to all so others can easily hack the java code. While
    cracking an Activex is I suppose impossible.

    > > Does an Applet support native language?

    >
    > > Can I create a C++ / C function and ask the applet to call that C
    > > function that is run on Users Computer? And get back the output and
    > > display on the Applet?

    >
    > Unfortunately, I don't know much about applets.  But due to security
    > concerns, I would expect applets to have much more restricted access to
    > JNI than regular Java applications.


    I have full understanding of these. Only problem is how Browser
    accepts the Activex and Applet.

    Will a firefox browser run an ActiveX on Non Windows OS?


    > But, I suspect you don't really need to use JNI.
    >
    > > [...]
    > > Will I have to create different ddl/ ActiveX for different platforms?

    >
    > > Say for Mac os/ Linux/ Windows etc? Do I need to create a different
    > > ActiveX?

    >
    > ActiveX is Windows-only.  Each platform has its own library format and
    > supported CPUs.  If you want a platform-specific solution, just write
    > the whole thing as native code.


    OK, I can ask the users to purchase Windows operating System if they
    want faster version. Thats not a big problem. I suppose 80-90% will
    already have a windows version.


    > If you want cross-platform support, write the whole thing in Java,
    > figure out why your program is so slow, and fix it using only Java.


    Its not Slow exactly. But I want it to be more fast. As C/ C++
    routines are much faster as I can use Assembly language programming.

    Bye
    Sanny

    Good opportunities for Java/ C/ C++ Experts:

    http://www.getclub.com/Experts.php

    Tell your Expertise and projects.
    Sanny, Jan 29, 2010
    #4
  5. Sanny

    Lew Guest

    Sanny wrote:
    > Will a firefox [sic] browser run an ActiveX on Non Windows OS?


    ActiveX is inherently Windows-only.

    --
    Lew
    Lew, Jan 29, 2010
    #5
  6. Sanny

    Nigel Wade Guest

    On Fri, 29 Jan 2010 08:49:26 -0500, Lew wrote:

    > Sanny wrote:
    >> Will a firefox [sic] browser run an ActiveX on Non Windows OS?

    >
    > ActiveX is inherently Windows-only.


    It's inherently Internet Explorer on Windows.

    It is not supported in Firefox on any platform.
    http://support.mozilla.com/en-US/kb/ActiveX

    --
    Nigel Wade
    Nigel Wade, Jan 29, 2010
    #6
  7. On 01/29/2010 06:33 AM, Sanny wrote:
    > There is nothing wrong with the java code. I know some expressions in
    > C are working 10-20 times faster. Secondly "C" allows the use of
    > pointers and Assembly language programming.


    That's not always a good thing. <Segmentation Fault>

    > One more reasion to use "C" is to have my code encrypted. Java Code is
    > available to all so others can easily hack the java code. While
    > cracking an Activex is I suppose impossible.


    *Laughs heartily*
    Two words: IDA Pro.
    Native code is not immune to being cracked. Indeed, with modern tools
    (both Java obfuscators and native disassemblers), it is generally as
    easy as Java to crack in many cases. C has the unfortunate problem of
    being a wonderful language to target for decompilers.

    > I have full understanding of these. Only problem is how Browser
    > accepts the Activex and Applet.
    >
    > Will a firefox browser run an ActiveX on Non Windows OS?


    No. Firefox doesn't support ActiveX period. Well, at one time there was
    a framework to embed Gecko in ActiveX, but that stopped working several
    years ago IIRC.

    Even IE is shying away from ActiveX IIRC.

    > Its not Slow exactly. But I want it to be more fast. As C/ C++
    > routines are much faster as I can use Assembly language programming.


    It sounds like you're not even trying to optimize in Java, just claiming
    that it will be faster since you can use assembly, that unmaintainable
    little bugger.

    --
    Beware of bugs in the above code; I have only proved it correct, not
    tried it. -- Donald E. Knuth
    Joshua Cranmer, Jan 29, 2010
    #7
  8. On 29 Jan 2010 at 8:01, Nick Keighley wrote:
    > this isn't on topic on comp.lang.c how C or C++ "links" with java is
    > outside the scope of the C or C++ language.


    Utter nonsense.
    Antoninus Twink, Jan 29, 2010
    #8
  9. "Antoninus Twink" <> wrote in message
    news:...
    > On 29 Jan 2010 at 8:01, Nick Keighley wrote:
    >> this isn't on topic on comp.lang.c how C or C++ "links" with java is
    >> outside the scope of the C or C++ language.

    >
    > Utter nonsense.
    >


    usual answer by the regulars would be something like "the C standard makes
    no mention of JNI or JVMTI, or JNA, ..., and hence these features are
    outside the scope of C" (much like is the position WRT: threads, POSIX,
    OpenGL, ...).

    granted, to accomplish much of anything useful in C, one generally has to go
    outside the narrow bounds that are "the standard".


    granted, this is not exactly the issue as with the original post.
    anyways, assuming that the browser is not using a poor JVM implementation (a
    plain interpreter or similar), Java vs C performance is not likely to be
    significant enough to bother worrying about in this case, and one is instead
    better off concerning themselves with writing efficient code (any language
    will be slow if the programmer doesn't know what they are doing, and usually
    the language/compiler is the first thing to be blamed for the poor
    performance of badly written SW).

    actually, it is worse with non-prgrammers, who are more naturally inclined
    to either blame the computer or imagine that the task itself is just too
    complicated, rather than consider that it may be instead that the app is
    just poorly written...


    as far as Java vs Flash:
    actually, Flash is likely to be much slower than Java (or at least, for any
    tasks where non-trivial code is needed, Flash may be a better choice when
    much of the basic functionality is already built into the Flash backend,
    such as for 2D/3D animations or video players...).

    or such...
    BGB / cr88192, Jan 29, 2010
    #9
  10. On 29 Jan 2010 at 21:42, BGB / cr88192 wrote:
    > anyways, assuming that the browser is not using a poor JVM
    > implementation (a plain interpreter or similar), Java vs C performance
    > is not likely to be significant enough to bother worrying about in
    > this case, and one is instead better off concerning themselves with
    > writing efficient code (any language will be slow if the programmer
    > doesn't know what they are doing, and usually the language/compiler is
    > the first thing to be blamed for the poor performance of badly written
    > SW).


    To be honest, whatever stories people come up with about how good their
    JIT compiler is at optimizing on the fly and such like, the truth is
    that for many applications, rewriting the bottleneck in C will gain you
    an order of magnitude.

    I believe the principal two reasons for this are:

    1) No overhead in basic data types. AIUI, Java will take many bytes to
    store a simple int, just because of all the OO book-keeping that needs
    to accompany every single object. Therefore, smaller slices of every
    array can fit in cache ---> performance death.

    2) Java hides what's going on under the hood from the programmer. This
    abstraction is great for reducing coding time, but it means people
    unwittingly do things that cause lots of temporary variables to be
    created (which might themselves depend on constructing half a dozen base
    classes), or they keep generating lots of junk on the heap instead of
    making one allocation and recycling it themselves, so that GC becomes a
    killer.

    In Java (and C++ for that matter), the possible expansion factor of a
    single source line into assembly instructions is essentially unlimited,
    whereas with C you generally see what you're getting.
    Antoninus Twink, Jan 29, 2010
    #10
  11. "Tim Streater" <> wrote in message
    news:...
    > On 29/01/2010 22:17, Antoninus Twink wrote:
    >> On 29 Jan 2010 at 21:42, BGB / cr88192 wrote:
    >>> anyways, assuming that the browser is not using a poor JVM
    >>> implementation (a plain interpreter or similar), Java vs C performance
    >>> is not likely to be significant enough to bother worrying about in
    >>> this case, and one is instead better off concerning themselves with
    >>> writing efficient code (any language will be slow if the programmer
    >>> doesn't know what they are doing, and usually the language/compiler is
    >>> the first thing to be blamed for the poor performance of badly written
    >>> SW).

    >>
    >> To be honest, whatever stories people come up with about how good their
    >> JIT compiler is at optimizing on the fly and such like, the truth is
    >> that for many applications, rewriting the bottleneck in C will gain you
    >> an order of magnitude.

    >
    > Does this include C# or whatever is was that Baldrick was claiming was
    > only 10% slower than C?
    >
    > I'll be damned.
    >


    one can also force the C into being compiled as C++/CLI and see what
    happens...


    I did this recently for a test...

    actually, for the simple tool I converted, about the only real noticable
    differences was that the C++/CLI version took around maybe 100-250 ms longer
    to get up-and-going (I suspect this being due to the initial JIT overhead or
    similar).

    admittedly, I was not using a performance-sensitive tool, rather this was
    just a misc observation while looking into C++/CLI (as a possible way to
    eventually interface C and C# codebases...).


    note that personally, I am primarily a C developer...
    BGB / cr88192, Jan 29, 2010
    #11
  12. Sanny

    Lew Guest

    Antoninus Twink wrote:
    > To be honest, whatever stories people come up with about how good their
    > JIT compiler is at optimizing on the fly and such like, the truth is
    > that for many applications, rewriting the bottleneck in C will gain you
    > an order of magnitude.


    And for many, many, many more, it won't. It can most definitely lose you an
    order of magnitude, also.

    Java performance in some cases is superior to equivalent C code.

    In others, it isn't.

    On average, most CPU-bound stuff seems to be about 50-90% as fast as C code,
    but the difference is much smaller if memory allocation/deallocation are
    involved, or if HotSpot converts the code to native code, in which case one
    can often find the Java code to be faster.

    As always, predictions in any particular scenario are useless. Measurement
    will tell.

    > I believe the principal two reasons for this are:
    >
    > 1) No overhead in basic data types. AIUI, Java will take many bytes to
    > store a simple int, just because of all the OO book-keeping that needs


    Java takes four bytes to store a simple int.

    > to accompany every single object. Therefore, smaller slices of every
    > array can fit in cache ---> performance death.


    An 'int' in Java is not an object. Some think of this as a flaw.

    > 2) Java hides what's going on under the hood from the programmer. This
    > abstraction is great for reducing coding time, but it means people
    > unwittingly do things that cause lots of temporary variables to be
    > created (which might themselves depend on constructing half a dozen base
    > classes), or they keep generating lots of junk on the heap instead of
    > making one allocation and recycling it themselves, so that GC becomes a
    > killer.


    Maybe, but you state this as if it were a sure thing, which is far from the
    truth. If GC were to be a "killer", as you cutely put it, that would be
    because you are allocating lots of objects. If you are allocating lots of
    objects in C or C++, then memory management will be a "killer" there, too.
    The difference is that the C/C++ code will require much more code to do the
    trick, it'll actually take longer to manage its memory than the Java program,
    and the risk of wild pointers or memory leaks is much, much higher.

    It doesn't do any good to get a bug to crash your C program in half the time
    it takes a Java program to run correctly.

    Are you a Java programmer? Because you don't sound like it.

    > In Java (and C++ for that matter), the possible expansion factor of a
    > single source line into assembly instructions is essentially unlimited,
    > whereas with C you generally see what you're getting.


    B.S.

    --
    Lew
    Lew, Jan 30, 2010
    #12
  13. Sanny

    Lew Guest

    Thomas Pornin wrote:
    > On all other instances I have come across, the speedup offered by C over
    > Java on pure computational, fit-in-L1-cache-and-no-IO work, is typically
    > between 2x and 3x (3x for array-intensive work, because of array length
    > checks upon access), never above 4x.


    In "-server" mode, the HotSpot compiler will often eliminate array bounds checks.

    --
    Lew
    Lew, Jan 30, 2010
    #13
  14. Sanny

    Arne Vajhøj Guest

    On 29-01-2010 02:53, Sanny wrote:
    > I have a Java Applet which is quite slow.
    >
    > There are a few functions that are called by the Java Applet. I want
    > those functions to be run as fast as possible.


    Using applets for CPU intensive work is not an obvious choice.

    > Does an Applet support native language?
    >
    > Can I create a C++ / C function and ask the applet to call that C
    > function that is run on Users Computer? And get back the output and
    > display on the Applet?


    You can certainly call C code from Java using JNI.

    > How to distribute my applet with C/ C++ dll/ That Applet accesses?


    If I remember correctly then applet and JNI requires the native
    dynamic library (.dll, .so or whatever it is called on the specific
    platform) to already be on the client.

    Java Web Start may be different.

    > I want that users who are not satisfied with the slow version. They
    > will need to use the Signed Applet. Once they allow the Signed applet
    > to access the Computer. The applet will load the C/ C++ dll / ActiveX
    > on the Computer / Webpage.
    >
    > I want communication between Activex and the Applet for quick
    > computation.


    Why an ActiveX plugin?

    Communication between an ActiveX plugin and an applet sounds
    both cumbersome and slow.

    > Will the Activex/ DLL be 10-20 times faster than an Applet?


    Most likely not.

    You chances of winning in powerball is probably better.

    > Will I have to create different ddl/ ActiveX for different platforms?


    Different JNI native dynamic library for every platform you want
    to support.

    ActiveX is Windows only.

    > Say for Mac os/ Linux/ Windows etc? Do I need to create a different
    > ActiveX?


    Does not exist.

    > Which C/C++ free package should I use to create this function. I just
    > want a few functions to be executed quickly by native language and
    > return the output to the applet. So I want a free editor where I can
    > compile the C/ C++ functions.


    To use JNI you just need Java and any C/C++ compiler for the platforms
    you intend to suppport.

    For ActiveX you should go for some combination of Visual C++
    and Platform SDK.

    > Please suggest me a good example or diagram of how to proceed. Will I
    > need Corba/ XML feature for Applet& Activex communication?


    I can not see any reason to also throw CORBA and XML into the mix.

    Using any technology under the sun will not make your app faster.

    > Will this
    > setup work on all web browsers?


    ActiveX will only work with IE.

    JNI should work for all browsers on the platforms you create it for.

    > Does flash works faster than Java? Can I use those functions in Flash.
    > Wil a function run on Flash as fast as a Native Language?


    I am far from a Flash expert.

    But CPU intensive calculations does not seem to be something
    Flash is used for (excluding video related calculations !), so
    I very much doubt that Flash is optimized for such.

    Arne
    Arne Vajhøj, Jan 31, 2010
    #14
  15. Sanny

    Arne Vajhøj Guest

    On 29-01-2010 06:33, Sanny wrote:
    >> Sanny wrote:
    >>> I have a Java Applet which is quite slow.

    >>
    >>> There are a few functions that are called by the Java Applet. I want
    >>> those functions to be run as fast as possible.

    >>
    >> You should probably fix your Java code then. It's rare for Java
    >> performance to be so critical that you need to go outside of Java. And
    >> you almost certainly won't get the 10x or 20x speedup you seem to be
    >> hoping for.

    >
    > There is nothing wrong with the java code. I know some expressions in
    > C are working 10-20 times faster.


    If you expect x10-20, then there is definitely something wrong with
    your Java skills and therefore most likely something wrong with
    your Java code as well.

    > Also I can configure Compilation in "C" such that it do not do error
    > checking at runtime speeding it up further.


    That sounds more like Ada than like C.

    > My program does a lot of array sorting and array search and
    > comparisions. That is quite faster in C. Also lot of String Operation
    > is done.
    >
    > In Java String Operations are 100 times slower than in "C". As copying
    > a string takes lots of time in Java.


    Array work can be faster in C than in Java.

    String operations are typical slower in C than in Java.

    So you are basing your design on some very bad assumptions.

    >>> One Option is to use Native Support.

    >>
    >> You can easily make things slower, if you do that wrong. And it won't
    >> necessarily be faster in any case. IMHO JNI is more appropriate for
    >> when you need some specific functionality that's simply not available in
    >> Java, or you need to reuse some code that would be impractical to port
    >> to Java.
    >>
    >> No doubt there are some specific, very specialized applications in which
    >> writing some custom native code and calling it via JNI is helpful. But
    >> statistically speaking, it's not likely your program is in that category.

    >
    > One more reasion to use "C" is to have my code encrypted. Java Code is
    > available to all so others can easily hack the java code. While
    > cracking an Activex is I suppose impossible.


    You can obfuscate the Java code, but even obfuscated Java byte code
    is a lot easier to reverse engineer than native executable.

    So it is definitely a valid argument for native code.

    But given your level of Java skills, then I don't think
    there is any risk for you.

    >>> Does an Applet support native language?

    >>
    >>> Can I create a C++ / C function and ask the applet to call that C
    >>> function that is run on Users Computer? And get back the output and
    >>> display on the Applet?

    >>
    >> Unfortunately, I don't know much about applets. But due to security
    >> concerns, I would expect applets to have much more restricted access to
    >> JNI than regular Java applications.

    >
    > I have full understanding of these. Only problem is how Browser
    > accepts the Activex and Applet.
    >
    > Will a firefox browser run an ActiveX on Non Windows OS?


    No.

    And not on Windows either.

    Arne
    Arne Vajhøj, Jan 31, 2010
    #15
  16. Sanny

    Arne Vajhøj Guest

    On 29-01-2010 14:31, Antoninus Twink wrote:
    > On 29 Jan 2010 at 8:01, Nick Keighley wrote:
    >> this isn't on topic on comp.lang.c how C or C++ "links" with java is
    >> outside the scope of the C or C++ language.

    >
    > Utter nonsense.


    No.

    JNI is defined by Java not by C.

    And that includes both Java calling C and C calling Java.

    Arne
    Arne Vajhøj, Jan 31, 2010
    #16
  17. Sanny

    Arne Vajhøj Guest

    On 29-01-2010 17:17, Antoninus Twink wrote:
    > On 29 Jan 2010 at 21:42, BGB / cr88192 wrote:
    >> anyways, assuming that the browser is not using a poor JVM
    >> implementation (a plain interpreter or similar), Java vs C performance
    >> is not likely to be significant enough to bother worrying about in
    >> this case, and one is instead better off concerning themselves with
    >> writing efficient code (any language will be slow if the programmer
    >> doesn't know what they are doing, and usually the language/compiler is
    >> the first thing to be blamed for the poor performance of badly written
    >> SW).

    >
    > To be honest, whatever stories people come up with about how good their
    > JIT compiler is at optimizing on the fly and such like, the truth is
    > that for many applications, rewriting the bottleneck in C will gain you
    > an order of magnitude.
    >
    > I believe the principal two reasons for this are:
    >
    > 1) No overhead in basic data types. AIUI, Java will take many bytes to
    > store a simple int, just because of all the OO book-keeping that needs
    > to accompany every single object. Therefore, smaller slices of every
    > array can fit in cache ---> performance death.


    I think we can stop reading here.

    Anyone that has read "Java for absolute beginners" know that
    int's in Java are not objects and use the exact same number
    of bytes as C (on platforms where C int is 4 byte).

    If you don't like Java, then by all means avoid coding in it,
    reading about it or even think about it.

    But why post to usenet about something you have not studied????

    Arne
    Arne Vajhøj, Jan 31, 2010
    #17
  18. Sanny

    Arne Vajhøj Guest

    On 30-01-2010 01:23, Richard Heathfield wrote:
    > BGB / cr88192 wrote:
    >> actually, for the simple tool I converted, about the only real
    >> noticable differences was that the C++/CLI version took around maybe
    >> 100-250 ms longer

    >
    > Perhaps .Net has improved in recent years, then. When I tried this,
    > about six or seven years ago (with the original intent of putting the
    > program into production), it was 50-60 times slower than C (admittedly
    > for a heavily recursive application).


    That is not in any way typical.

    It is completely off the scale for unlikelihood.

    But if I remember correct from last time you gave
    the story, then you can not explain exactly what the
    code did.

    So we can not explain why it was so.

    We can just tell you that it is not what you usually see.

    Arne
    Arne Vajhøj, Jan 31, 2010
    #18
  19. Arne Vajhøj <> writes:
    [...]
    > Anyone that has read "Java for absolute beginners" know that
    > int's in Java are not objects and use the exact same number
    > of bytes as C (on platforms where C int is 4 byte).

    [...]

    Since this is cross-posted to comp.lang.java.programmer and
    comp.lang.c, let me clarify that point.

    C defines an "object" as a "region of data storage in the execution
    environment, the contents of which can represent values". This has
    nothing to do with object-oriented programming. Thus a declared
    variable of type int certain is an "object" if you use the C
    definition of the term. (Note that C++ uses a very similar
    definition.)

    I don't know how "Java" defines the term.

    --
    Keith Thompson (The_Other_Keith) <http://www.ghoti.net/~kst>
    Nokia
    "We must do something. This is something. Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"
    Keith Thompson, Jan 31, 2010
    #19
  20. Sanny

    Lew Guest

    Keith Thompson wrote:
    > Arne Vajhøj <> writes:
    > [...]
    >> Anyone that has read "Java for absolute beginners" know that
    >> int's in Java are not objects and use the exact same number
    >> of bytes as C (on platforms where C int is 4 byte).

    > [...]
    >
    > Since this is cross-posted to comp.lang.java.programmer and
    > comp.lang.c, let me clarify that point.
    >
    > C defines an "object" as a "region of data storage in the execution
    > environment, the contents of which can represent values". This has
    > nothing to do with object-oriented programming. Thus a declared
    > variable of type int certain is an "object" if you use the C
    > definition of the term. (Note that C++ uses a very similar
    > definition.)
    >
    > I don't know how "Java" defines the term.


    That may be, but the context to which Arne replied and that you excised
    claimed that Java has tons of memory overhead to represent an 'int' by virtue
    of being an object, which is a bloody falsehood. Clearly that poster was
    using "object" in the current conventional computer-programming sense of the
    word, and not in your more specialized frame.

    FYI, and it absolutely freaking *ASTOUNDS* me that anyone presuming to call
    themselves a programmer today has not gotten familiar with object-oriented
    programming at least enough to know what an object is, I mean, come on,
    already! - an object in Java is exactly what it is in any object-oriented
    programming environment. Roughly it's a struct with built-in functions.

    You really should expand your study. Start with the Wikipedia definition,
    perhaps read Grady Booch. Being a C programmer is not a good excuse. In
    fact, it's no excuse at all.

    --
    Lew
    Lew, Jan 31, 2010
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Simon Harvey
    Replies:
    1
    Views:
    305
    Stefano Mostarda
    Feb 13, 2004
  2. JGH
    Replies:
    6
    Views:
    14,731
  3. Vols
    Replies:
    2
    Views:
    420
    Phlip
    Jul 11, 2006
  4. Sanny
    Replies:
    34
    Views:
    1,124
    Nick Keighley
    Feb 3, 2010
  5. Paul Cager
    Replies:
    0
    Views:
    416
    Paul Cager
    Jan 29, 2010
Loading...

Share This Page