> >>> I've done some C++ programming in the past, but I couldn't get into
> >>> it. This was back in my Windows days, and I started getting fed up
[quoted text clipped - 13 lines]
> (A note before I answer: I haven't written much in the way of applets or
> written anything in Flash, so I could easily be wrong)
That's fine by me. So long as I know you are speculating, no-one can
accuse you of giving false information. :)
> a) You can easily make a game using Java (easier than Flash, IMHO)
Excellent. Any games I did create would be simple games, such as
solitaire, hang man, word games etc.
> b) Unsigned applets cannot make connections with servers outside of the
> applet's home server, although anything goes for signed applets.
Is that actually Java's restrictions, or the browsers restrictions?
I've OKd many of these applets in the past, so it won't be a problem.
For IE to allow cross domain queries, you need to dig into the
settings and configure it. For the average user, it's like being
dumped in middle of a rain forrest without a map and being told to
find your way out.
> c) Java can somewhat interact with a browser, although what you are
> really looking for is the JavaScript/Java interaction.
Yes, that's exactly what I wanted. So basically, I have the same
arsenal available through Java, as I would is I used JavaScript, by
effectively using JavaScript as an abstraction layer. The only down
side is the head aches incurred when some browsers don't support
standard functions, but that's still a bonus.
> d) Java is probably more secure than Flash.
I was hoping so. I think you can decompact Flash, and hack it quite
easily with the right tools. Many people use it to get a good score on
Web sites with Flash Games. Is there any way to increase security
within Java code, by obfuscating it or something? Or is it just really
hard to crack? Perhaps that's not an easy question to answer. I will
consult my good friend Google.
> e) It might take as long as a year to be able to write complex Java
> server-side/client-side interactions, although programming Java in
> general should only take a few months.
That's the down side about any programming language. Statistics show
that it takes on average 10 years to become an expert in any
particular language. I think this also includes spoken languages.
> >>> What's the learning curve likely to be for someone who did some basic C
> >>> ++ a few years back, and has spent the last 2 years dealing with
[quoted text clipped - 3 lines]
> JavaScript a low-level language? It is true that JavaScript is quite
> library-deficient, but it is at least a high level language as FORTRAN.
Hehe, that's true. By low level, I mean that it sits on top of God
knows how many layers of software, and it doesn't have any kind of
direct interface with any of the hardware.
> >> The Java applet security model is probbaly even more restrictive
> >> than the JavaScript one.
[quoted text clipped - 9 lines]
> AFAIK, IE is as restrictive as Firefox except for stuff like ActiveX and
> whatnot.
ActiveX is Microsoft's way of turning a bug into a feature. Look
everyone ActiveX!
ActiveX (adj): Several gaping holes in one's Operating System.
I really need to stop bashing Microsoft. Sorry, I've had a rough ride
with them.
> > Does this sounds like Java to you, in the sense that if it's a web
> > app, you can't read/write files?
>
> You can read/write at least temporary files for unsigned applets,
> although signed applets are less restricted in their file usage.
What about a standalone Java app? Do they also have to be signed at
all? I would guess not as you ware willingly installing it.
> >> The biggest problem with Java applets is users that either does
> >> not have Java or have a very old version of Java.
[quoted text clipped - 23 lines]
>
> You're welcome.
Thanks a lot :D
I am getting up to speed to NetBeans 5.5
Wow, this is AWESOME! It reminds me of my C++ days with Microsoft
Visual IDE. Only netbeans is much faster and a lot less buggy. Why
wasn't I told about Java before?? Hehe.
Oliver Wong - 19 Apr 2007 15:36 GMT
"Daz" <cutenfuzzy@gmail.com> wrote in message
> > b) Unsigned applets cannot make connections with servers outside of
> > the
> > applet's home server, although anything goes for signed applets.
>
> Is that actually Java's restrictions, or the browsers restrictions?
Java's restriction. It's part of the design of Java. However, a
particular implementation of Java may be buggy, and not correctly
implement this restriction. It's like how there's a C/C++ standard, but
not all compilers follow the standard correctly.
[...]
> > d) Java is probably more secure than Flash.
>
> I was hoping so. I think you can decompact Flash, and hack it quite
> easily with the right tools. Many people use it to get a good score on
> Web sites with Flash Games.
To this form of attack, Java is just as vulnerable as Flash. You can get
decompilers which will produce something roughly ressembling the original
Java source code.
> Is there any way to increase security
> within Java code, by obfuscating it or something?
There are obfuscators available, some of them open source. I don't have
any experience with them.
> Or is it just really
> hard to crack? Perhaps that's not an easy question to answer. I will
> consult my good friend Google.
The solution is to secure the game protocol between the applet and the
server, rather than securing the applet itself. Don't have the applet
merely report "The user solved the hangman puzzle in 1 move. Give him a
top score". Instead, have the applet report "Is there an A?", and have the
server report "No, no A. Part of the hang man should now be drawn."
I.e. move the rule enforcement and game logic to the server, and away
from the applet.
For a lot of people, this is simply too much trouble, so they tolerate
an insecure protocol, and manually delete "suspicious" scores.
> By low level, I mean that it sits on top of God
> knows how many layers of software, and it doesn't have any kind of
> direct interface with any of the hardware.
Usually, people call that "high-level". Low level, in my mind, means
it has direct access to the hardware, and doesn't sit on top of anything.
> What about a standalone Java app? Do they also have to be signed at
> all? I would guess not as you ware willingly installing it.
If you download the app and run it locally, it has all the rights of
any other app (what these rights are exactly depend on the OS). If you run
the app via WebStart, there are some special rules, but it's somewhat
similar to the rules of an applet (i.e. anything safe can just run;
anything unsafe needs the user's permission).
- Oliver
Daz - 19 Apr 2007 17:35 GMT
> The solution is to secure the game protocol between the applet and the
> server, rather than securing the applet itself. Don't have the applet
[quoted text clipped - 7 lines]
> For a lot of people, this is simply too much trouble, so they tolerate
> an insecure protocol, and manually delete "suspicious" scores.
I have no trouble with that. It's the only way I know how to do
things. Sure, it's more server calls, but the server is constantly in
control of what's going on.
> > By low level, I mean that it sits on top of God
> > knows how many layers of software, and it doesn't have any kind of
> > direct interface with any of the hardware.
>
> Usually, people call that "high-level". Low level, in my mind, means
> it has direct access to the hardware, and doesn't sit on top of anything.
My apologies. I got my high and my low the wrong way round. Hehe.
> > What about a standalone Java app? Do they also have to be signed at
> > all? I would guess not as you ware willingly installing it.
> If you download the app and run it locally, it has all the rights of
> any other app (what these rights are exactly depend on the OS). If you run
> the app via WebStart, there are some special rules, but it's somewhat
> similar to the rules of an applet (i.e. anything safe can just run;
> anything unsafe needs the user's permission).
Thank you very much for your comments. :)
I am quite looking forward to programming in Java. I have noticed that
it's a lot faster than JavaScript, also. I guess JavaScript it bound
by the restrictions implied by the browser, as it's an application,
running within an application. I am guessing that Java doesn't run
like this, but perhaps I am wrong and Java is just seriously fast.
What gets me, is why I've never seen an open source Java based web
browser. That could bridge a serious gap for web developers tired of
developing one app to work with several browsers.