Dakar 2006 photo's

Feb 04, 2006 75 Replies

Pleased you enjoyed them, thats a small selection of almost 1000 that I took, it's a shame that you can't please all of the people for even just a little of the time, most of them are talking a different language to me I think. Andy

formatting link

AFAIK the idea of Java is it CANNOT get access to the hardware when running as an applet - thats part of its security model.

Steve

*Exactly* - I didn't word that very well. So why did Mickysoft not just use it, but go to all the bother of mangling it into C# when the whole point of Java is that it *is* secure - against everyone. Answers on a postcard.... it's more secure ;-)

Richard

I'm not confused - C# has almost no restrictions on it - I could speculate as to why Mickysoft should do that, but then they can't poke round my machine to see what's on it so I'm not bothered!

Richard

C# is not a scripting language. Neither is Java. They produce compiled applications. In the case of C# it relies on the .NET Framework, Java relies on the Java virtual machine. I'm sure you know all this anyway.

If your browser is well configured (as I'm sure yours is) then websites cannot download and run software unless you want them to, regardless of how that application is written.

A Java application also has no restrictions on it, in the same way that C# has no restrictions on it, and the same way that C/C++ has no restrictions on it. A java *applet* runs in a sandbox, and C# when run in a .net framework has its own security restriction setup. So to state baldly that it has "no restrictions" isn't right. Both languages have restricted and unrestricted environments available and the use to which you put them to defines how you'll run them.

well, slap me sideways with a kipper - you are absolutely correct. how embarrassing ;)

Fresh or frozen kipper sir?

The blame lies with Microsoft Frontpage in this particular instance.

Although it's around more than you'd think- our bank's business account management site runs on Java- works well too, it's not just for mickey mouse animated buttons.

Andy, just in case you've missed the imbroglio over the merits or otherwise of using Java buttons for navigation, it seems that there is a significant number of users who are unable to see your navigation buttons. They don't see them at all- just a blank space instead. So they can't get around your site.

This is the fault of your HTML editing program, Frontpage. Buried in it is a command to make alternative buttons visible to those who have not enabled Java. To make your site navigable by everyone, you need to make alternative navigation- even just old-fashioned links at the bottom of the page would suffice. Frontpage will do this for you- it will even put them down the side if you like. Time for an update!

On or around Sat, 4 Feb 2006 08:21:02 +0000, Ian Rawlings enlightened us thusly:

anyone know how to stop fecking java checking for updates all the time?

I've got a machine that mostly runs unattended, but has news and mail files on it. When java tries to update, the firewall grabs it and stalls the network. There's no need for the sod to auto-check for updates anyway - I'm quite capable of doing that meself if I want.

Both are interpreted languages - they have to be or they could not be run from a web page without a comilation stage. The JVM is the compiled bit and holds the libraries for the interpeter to use.

(See the site using Java that started this thread)

So what are logic bombs, viruses, torjans, spy ware etc etc. Surely they are just programs? Ok, so they used to be nice little bits of assembler, but not any more. I would agree that with Java something that accesses hardware or the filing system will not be able to do any harm without the users consent, but C# has had the security removed so it can, and without the users knowledge. Presumably that is at least part of he mechanism used by Mickysoft to see whether your software is legit, and the virus writers find and use the same holes ("back-doors") to do their dirty work.

Richard

That's not the case - Java, as a whole, is not just the language, it is the Java Virtual Machine, of which there should only be one, the same on all platforms, with device drivers provided to access the particular platforms architecture and OS services. A Java applet is just a small program, known as an applet because, unlike C/C++, Ada, Pascal etc etc, there is no requirement to set up a complete application to run a simple program.

Richard

C# is compiled to bytecode. It is then just-in-timed to X86 code. I believe there are further options on exactly when it is it is JIT'd, but I'm not techy enough to go there.

There is no Java or C# code in that page. There is a reference to an applet and then the required parameter values. The code is in the applet. Your browser, and anyone elses, has the ability to accept or refuse that applet.

Your original statement, that C# "has all the security taken out, leaving you PC wide open to nasties." is misleading. You are right to say that it is possible to write a program in C# that deletes files. Is it your position that only Microsoft have programming languages that can access the file system on a computer? That would certainly explain their popularity :)

This is a fairly good, balance article on the relative merits of Java and C#. You probably won't like its conclusions though.

formatting link

What's bytecode? Do you mean assembly code? If it is complied, then yes it has to be converted into assembler, or more accurately machine code (the basic programming language of any machine, assembly is one level above it - well, actually, some processors have micro code that runs the machine code, but you'd not usually want to mess with that!) - that's what compliers do. If it is interpreted, then the same is true, but interpretation is usually quite a bit slower, and dynamic data structures are very difficult to implement.

The applet is Java, it runs on the JVM. Certainly you can decide to accept or refuse it - most people seem to (sensibly) have it turned off by default. The point is that Java will always do what you tell it, C# doesn't.

I assume that's an attempty at jollity ;-)

I've seen all that sort of stuff before - it is a very similar debate to the Pascal/Ada strong typing vs. the C/C++ lax typing. One side belive that by having very strong typing of variables leads to better programs, the other that lax typing allows better programming - a subtle difference, but a major issue none the less.

In any debate on the relative merits of programming languages (there's a very good argument that all programming should be done in assembler, though with the size of modern applications that would be an interesting challenge) it is very difficult to provide any statistics to back up a view point, it's always down to the author to state their case, hopefully in an objective manner. There's rather a lot of "I beleive's" in that article rather than "the consensus appears to be" - I'm not saying the author is right or wrong......

When I stared out in software I was a die-hard Pascal/Ada advocate, and beleived C was the devils own work, but after many years programming I'm now convinced the language seleted should reflect the applications aim. C/assembler for embedded and applications that are not safety critical, Ada etc for safety critical systems - that's not to say C can't be used for such, Manchester Airports ground control system was written in C and worked first time, on-time and has proved very reliable. There's another system (I can't discuss the details) that could have cause a tradgedy at sea if someone hadn't spotted a dodgy line of code after it was in use - the program would not have compiled due to a type error were it written in Ada, and possibly not with C++.

For my apps I write for the business I use C/C++, because its quick and I can change my mind about what I'm doing without having to go back and review the whole program design - not least as I don't have one for my own apps!

I still maintain my position on the Java/C# issue though, as does everyone I've known in the software engineering (as opposed to programming) business - well, except those associated by employment or contract with Mickysoft.

Richard

Ahem, no they are not. Hence the use of dynamic compilation, JIT compilers etc. The FIRST JVMs were interpreters, which is where Java got its reputation for slowness from, but my 3D CAD system at work is a Java-based system, and if anything would show up slowness it would be 3d cad

STeve

Tim Hobbs wrote: eir popularity :)

Pretty even handed, but I'm sticking to Delphi ATM.

Steve

C# is bytecode, as is java, both can be JIT compiled into native code. The Java Virtual Machine is a fancy way of describing an API that you call in order to perform things like I/O and GUI operations, java itself is a language with a set of classes that make up the "Virtual Machine", C# is a language that can be linked with an API that provides similar operations, .NET is microsoft's implementation, Mono is the subset that runs on other OSes including linux.

Don't confuse Java with the JRE, Java is the language, JRE is the Java Runtime Environment which includes an extensive API that makes up the mis-named "virtual machine".

A java application on the other hand is not, it's a fully-fledged programme just like one written in C/C++ apart from it needing to be bytecode interpreted or JIT compiled, like C#. I am running JBidwatcher on my linux box right now, it's a standalone app, not an applet. There is a difference between java applications and applets.

As an ex-Risc OS user (7-8 years in the 1980's-1990's leaving around RO3.4 or so IIRC) I know that there's a lot of inaccurate ranting in the scene, I used to be a culprit myself. I wouldn't use anything Microsoft for anything important, any Windows things I run are run in VMWare with a snapshot to take me back to the point at which the stuff worked.

There is however a difference between reality and inaccurate ranting. Think of all the s*it you hear about land rovers, I've lost count of the number of people who tell me that their stock Vauxhall 4x4 on road tyres will "go places a landy won't go" and how landrovers are always breaking down, and one memorable explosion from someone hanging around on the sides of a conversation who butted in to blurt wild-eyed that "if you go into a desert in a landrover YOU WILL DIE!". That kind of stuff is extremely similar to the ranting that is heard in the Risc Os scene, the Mac scene and the UNIX+clones scene. Huge edifices built on grains of truth.

I've never run a piece of legit Microsoft code, I wouldn't pay for it as it's s*it from top to toe, strangely enough I've never had any threats, men in black coats, hovering helicopters etc following me around.

C# is not java with the security removed.

It depends on your definition of interpreted I suppose, perhaps I'm old fashioned but Just In Time compilation comes under the heading of interpreted to me as it is not compilation in the "traditional" sense, i.e. the source is scanned through at run time, and then something is done with it, whereas complied code is converted to machine code once an for all and it is the machine code that is executed, not the source. I may be being a bit pednatic ;-)

Richard

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required