Server Help

Trash Talk - Best quote I ever invented...

Mr Ekted - Tue Dec 28, 2004 12:11 pm
Post subject: Best quote I ever invented...
"Java: Re-inventing the wheel, one square at a time."
Cyan~Fire - Tue Dec 28, 2004 12:20 pm
Post subject:
Ekted! You're a genius! biggrin.gif
Dr Brain - Tue Dec 28, 2004 12:31 pm
Post subject:
Java is all about NOT reinventing the wheel, unlike C.
D1st0rt - Tue Dec 28, 2004 1:08 pm
Post subject:
>.< that hurts
Assassin2684 - Tue Dec 28, 2004 8:00 pm
Post subject:
Very.
Bak - Wed Dec 29, 2004 12:05 am
Post subject:
Assassin, do you even code?
lp_street_soldier - Wed Dec 29, 2004 7:20 am
Post subject:
Dr Brain wrote:
Java is all about NOT reinventing the wheel, unlike C.


... just take it.
Assassin2684 - Wed Dec 29, 2004 9:30 am
Post subject:
BaK, Im trying to learn python sa_tongue.gif No one make fun of me or i will hurt you.
D1st0rt - Wed Dec 29, 2004 12:46 pm
Post subject:
Python looks weird to me
Solo Ace - Wed Dec 29, 2004 1:24 pm
Post subject:
You look weird to me. icon_sad.gif icon_smile.gif
SuSE - Wed Dec 29, 2004 11:19 pm
Post subject:
Dr Brain wrote:
Java is all about NOT reinventing the wheel, unlike C.

that makes so little sense in so many ways and only a little sense in one way (which isn't a way Ekted was talking about)
Dr Brain - Wed Dec 29, 2004 11:43 pm
Post subject:
Java provides a huge library for programmers to use, so they don't rewrite their linked lists classes from scratch (unlike C).

I might add that Ekted counts this as a feature of C, the reinventing of the wheel.

The STL also provides this service to C++ programmers.
lp_street_soldier - Thu Dec 30, 2004 4:39 am
Post subject:
SuSE, I guess you didn't read this -

Beware: argues for fun. Should be considered armed with facts and dangerous. Do not attempt to draw into any sort of debate.

Imagine him at home... O_O
SuSE - Thu Dec 30, 2004 12:53 pm
Post subject:
Dr Brain wrote:
Java provides a huge library for programmers to use, so they don't rewrite their linked lists classes from scratch (unlike C).

lol
lp_street_soldier wrote:
SuSE, I guess you didn't read this -

Beware: argues for fun. Should be considered armed with facts and dangerous. Do not attempt to draw into any sort of debate.

...hmmm?
lp_street_soldier wrote:
Imagine him at home... O_O

arguments don't generally last as long in real life
Cyan~Fire - Thu Dec 30, 2004 3:59 pm
Post subject: STL Evilness
Writing your own classes is always better than using some pseudo-black-box class like STL (or even worse, Java). I call STL pseudo-black-box because Plauger obviously wrote his code to be REALLY confusing.

Relying on std::vector
Code: Show/Hide
void insert(iterator _P, size_type _M, const _Ty& _X)
   {if (_End - _Last < _M)
      {size_type _N = size() + (_M < size() ? size() : _M);
      iterator _S = allocator.allocate(_N, (void *)0);
      iterator _Q = _Ucopy(_First, _P, _S);
      _Ufill(_Q, _M, _X);
      _Ucopy(_P, _Last, _Q + _M);
      _Destroy(_First, _Last);
      allocator.deallocate(_First, _End - _First);
      _End = _S + _N;
      _Last = _S + size() + _M;
      _First = _S; }
   else if (_Last - _P < _M)
      {_Ucopy(_P, _Last, _P + _M);
      _Ufill(_Last, _M - (_Last - _P), _X);
      fill(_P, _Last, _X);
      _Last += _M; }
   else if (0 < _M)
      {_Ucopy(_Last - _M, _Last, _Last);
      copy_backward(_P, _Last - _M, _Last);
      fill(_P, _P + _M, _X);
      _Last += _M; }}


Relying on self
Code: Show/Hide
template <class _AC>
void SVector <_AC>::insert(_AC *here, const _AC &item)
{
   if (end <= next)
   {
      _AC *dest;
      int new_space = count() + 1 + EXTRA;

      //allocate a new array and copy up to the reserved spot
      _AC *new_array = operator new(new_space * sizeof(_AC));
      dest = copy(new_array, begin, here - begin);

      //"insert" the item
      new (dest++) _AC(item);

      //copy the rest
      next = copy(dest, here, next - here);

      //set the pointers
      begin = new_array;
      end = begin + new_space;

      realloc_flag = true;
   }
   else
   {
      _AC *dest = next++;
      _AC *source = dest - 1;

      while (dest > here)
      {
         new (dest++) _AC(*source--);
         source->~_AC();
      }

      new (dest) _AC(item);   //dest = here
   }
}

CypherJF - Thu Dec 30, 2004 6:42 pm
Post subject:
I've found java a lot easier to use than C, C++... but thats just me.
Dr Brain - Fri Dec 31, 2004 10:53 am
Post subject: Re: STL Evilness
Cyan~Fire wrote:
Writing your own classes is always better than using some pseudo-black-box class like STL (or even worse, Java). I call STL pseudo-black-box because Plauger obviously wrote his code to be REALLY confusing.


We were talking about reinventing the wheel, not what you think is better.
Cyan~Fire - Fri Dec 31, 2004 1:11 pm
Post subject:
I'm arguing that this kind of re-inventing the wheel is better than Java's king of re-inventinting the wheel. You two were talking about different things, right?
Dr Brain - Sat Jan 01, 2005 11:42 am
Post subject:
Recap: I am saying Java doesn't reinvent the wheel. I am saying C does. You are saying C does, and that you like it that way.
Cyan~Fire - Sat Jan 01, 2005 1:46 pm
Post subject:
Java is re-inventing the wheel as in it's creating another programming language when better ones existed already.

C lets its users re-invent the wheel through writing their own functions and structs to do what they want.
Dr Brain - Sat Jan 01, 2005 3:48 pm
Post subject:
C reinvented the wheel in the same respect, one might say.

It wasn't the first programming language. Not even close to the first.
Cyan~Fire - Sat Jan 01, 2005 7:03 pm
Post subject:
Did Einstein re-invent physics?
Dr Brain - Sat Jan 01, 2005 8:56 pm
Post subject:
No. Your point?

My statement was a obviously flawed support of your own statement about C and Java. By challenging it, you don't help to prove your original point at all.

I was making the point that OBVIOUSLY C was a good thing and doesn't "reinvent the wheel", and that Java is also a good thing and doesn't "reinvent the wheel".
Mine GO BOOM - Sat Jan 01, 2005 10:27 pm
Post subject:
Any of you even understand Ekted's quote at all? It doesn't mean that Java doesn't allow users to re-invent the wheel, or that it is easier or harder than any other language. It just mentions that the way in which it works, is much more unusual and clunkier than some of the other languages. Thus the "one square" part.

So a quick summary: C forces people to re-invent the wheel all the time. Java does more to prevent everyone from having to remake linked list and such, but its method of doing isn't as good as it should be, and is abstracted too much. Thus, when using Java's build in supports, it doesn't always act how you need it to.
Dr Brain - Sat Jan 01, 2005 10:58 pm
Post subject:
Mine GO BOOM wrote:
Java does more to prevent everyone from having to remake linked list and such, but its method of doing isn't as good as it should be, and is abstracted too much. Thus, when using Java's build in supports, it doesn't always act how you need it to.


I disagree, but that's not the point.

If you don't understand why Java was made the way it was, one would make comments like Cyan, MGB and Ekted have all made.

C is a flat head screwdriver. Java is a phillips head screwdriver. They seem to go for the same purpose on the surface, but thinking one type should be enough for all is flawed.
Mine GO BOOM - Sun Jan 02, 2005 12:13 am
Post subject:
Dr Brain wrote:
If you don't understand why Java was made the way it was


But I do. Java failed at what it was originally designed to do. But this history has continued on at what it does good now, which is projects that are rich with features at the cost of optimization, but with the bonus of working on most platforms. Azureus is a great example of a project that works well with Java.

But that isn't what Ekted was commenting about.
D1st0rt - Sun Jan 02, 2005 1:10 am
Post subject:
If you have a lot of little squares, you can make a circle. Draw a circle in paint and zoom in.
Mine GO BOOM - Sun Jan 02, 2005 4:17 am
Post subject:
No, thats a pixelated object that is perceived as a circle. Try using any vector graphics programs, draw a circle, and zoom in.
Dr Brain - Sun Jan 02, 2005 11:12 am
Post subject:
Java is meant to be a secure programming language where malicious or bad programs cannot crash/destroy the computer.

It is also meant to help the programmer rapidly develop in a better than C++ way. The language is very clean.

It doesn't fail at either of these goals. If you're thinking that Java was meant for applets, I can see why you might think it failed.
Dr Brain - Sun Jan 02, 2005 11:13 am
Post subject:
If each square is a point, then it would take pi without the decimal point squares to make a circle of any size.
Cyan~Fire - Sun Jan 02, 2005 11:21 am
Post subject:
My point is that it's possible to improve something without "re-inventing" it, which is what C does. It's also possible to completely re-invent it, which is what Java did with its bytecode.

I'd say it's something more like C is a screwdriver where you can add on any head that you'd like, it's just a bit of work. Java is a screwdriver where it's very easy to add heads but, let's say, they have a strange gear arrangement that makes the user (the computer) work much harder to operate the screwdriver.
Dr Brain - Sun Jan 02, 2005 12:09 pm
Post subject:
No, the flathead screwdriver gives you more tourqe applied to the screw than phillips, but the phillips driver doesn't slip out of the screw head and mar your surface like a flat head will. That was my analogy, and I think it's a good one.

You're picking up on Java's speed issues, which tells me you aren't talking about the language anymore. If you want to talk about the JVM implementation, then that's fine with me, but let me know first.
Cyan~Fire - Sun Jan 02, 2005 10:43 pm
Post subject:
The fact that you can't even consider Java a programming language without some kind of interpreter automatically involves the interpreter in the discussion.

Heck, if that wasn't true, I could say my thoughts are the best programming language ever. All I'd need is an interpreter. icon_biggrin.gif
Dr Brain - Sun Jan 02, 2005 11:13 pm
Post subject:
You don't need a JVM on a Java based processor.

You don't need a JVM if you compile to machine code rather than bytecode.

If you want to talk about the JVM, fine, but it isn't required for one to code in Java
Bak - Sun Jan 02, 2005 11:28 pm
Post subject:
I didn't know they made java based processors yet?
Dr Brain - Mon Jan 03, 2005 9:02 am
Post subject:
They've been around almost as long as the language has.
Cyan~Fire - Mon Jan 03, 2005 11:30 am
Post subject:
Well that's essentially ignoring one of the purposes of Java: cross-platform?
Dr Brain - Mon Jan 03, 2005 12:24 pm
Post subject:
How is it ignoring it, exactly? The processor's machine code IS Java bytecode. The same Java bytecode that is interpreted by JVMs into native machine code.
Mine GO BOOM - Mon Jan 03, 2005 12:33 pm
Post subject:

D1st0rt - Mon Jan 03, 2005 3:41 pm
Post subject:
where do you get these pictures from?
Purge - Mon Jan 03, 2005 4:17 pm
Post subject:
His house. sa_tongue.gif
SuSE - Mon Jan 03, 2005 4:25 pm
Post subject:
Dr Brain wrote:
C is a flat head screwdriver. Java is a phillips head screwdriver.

That's sofa king idiotic. icon_rolleyes.gif

Anyways, all you dumbasses get rid of your stupidass signatures please.
Mine GO BOOM - Mon Jan 03, 2005 5:19 pm
Post subject:
SuSE wrote:
Anyways, all you dumbasses get rid of your stupidass signatures please.


Problem fixed. Everyone now has a new Profile option to disable viewing of other people's signatures. To be nice, I turned yours to 'No' already.
Cyan~Fire - Mon Jan 03, 2005 5:24 pm
Post subject:
SuSE wrote:
Anyways, all you dumbasses get rid of your stupidass signatures please.

Not once on this page of this topic did a signature extend the length of someone's post. What's the problem?
Purge - Mon Jan 03, 2005 6:10 pm
Post subject:
SuSE wrote:
[..]

Anyways, all you dumbasses get rid of your stupidass signatures please.


He thinks they are "stupid" and useless. sa_tongue.gif
SuSE - Mon Jan 03, 2005 6:43 pm
Post subject:
Mine GO BOOM wrote:
Problem fixed. Everyone now has a new Profile option to disable viewing of other people's signatures. To be nice, I turned yours to 'No' already.

I love j00 sa_tongue.gif
Purge+ wrote:
He thinks they are "stupid" and useless. sa_tongue.gif

just "stupid" would pretty much cover "useless" (or vice versa in this case), but yes - they are almost always
Purge - Mon Jan 03, 2005 9:08 pm
Post subject:
No worries. I still don't think my sig is stupid. icon_razz.gif
Cyan~Fire - Tue Jan 04, 2005 4:56 pm
Post subject:
Dr Brain wrote:
How is it ignoring it, exactly? The processor's machine code IS Java bytecode. The same Java bytecode that is interpreted by JVMs into native machine code.

So you're saying that either Java has to be interpreted or you need to buy a Java-specific processor? That's like saying "This language is inefficient and sloppy or requires a specially-built processor." What a great language.

Anyway, I find the syntax of Java awful, too. Espcially the crap about having to create dialogs through code instead of nice little templates like Windows has.
SuSE - Tue Jan 04, 2005 6:48 pm
Post subject:
Windows? What? Let's keep it to languages.
Dr Brain - Tue Jan 04, 2005 9:05 pm
Post subject:
You haven't a clue about sloppy and inefficient until you've seen x86 assembly.

The Java based processors run a hardware interpreter, yes. But, then again, heh, so do all modern CISC processors (including the beloved Pentiums). They're all built on top of highly efficient RISC processing machines.

So, I'm saying that x86 machine code has to be "interpreted or you need to buy a x86-specific processor." What a great language.

Please, don't talk about problems that the language you yourself are defending has to a larger degree. There are very few fully funtional x86 emulators. There are fully operational Java JVMs for almost every platform.

I'd much prefer to talk about the language itself rather than it's implementation, but everyone seems to be drawn to the myth of Java's "slowness". However, if you feel you can make headway on the implementation argument against someone like me, who studies computer architecture, feel free. I could use a good debate.
Mine GO BOOM - Tue Jan 04, 2005 10:22 pm
Post subject:
Dr Brain wrote:
There are very few fully funtional x86 emulators. There are fully operational Java JVMs for almost every platform.


Virtual PC and VMWare. Now on the other hand, both Sun's and Microsoft's JVM for Windows, for lack of a better term, suck.
Cyan~Fire - Tue Jan 04, 2005 10:47 pm
Post subject:
OK, fine, I won't talk about implementation because it seems that I am unqualified. (I'm not convinced, though, Java definitely seems slow to me.)

And I won't even mention Windows.

Here's something about the Java language itself which ticks the heck out of me. Why are there no normal unsigned datatypes?
Dr Brain - Tue Jan 04, 2005 11:13 pm
Post subject:
Mine GO BOOM wrote:
[..]



Virtual PC and VMWare. Now on the other hand, both Sun's and Microsoft's JVM for Windows, for lack of a better term, suck.


Note that they don't work with every application. The Java JVMs though, are basicly gaurenteed to work with every legal Java class file. If it doesn't run in the Windows JVM, then there's something wrong with the program (not the other way around, as with the x86 emulators).

I can't vouch for the MS JVM, but I've never had an issue with Sun's.

Unsigned? Because there's no real use for them. If you need a bigger storage location, then use a bigger storage location. One extra bit rarely does anyone any good. Unsigned just makes things more complicated in the source code. The only good use of them is packing into network packets. And that kind of packing can be done with simple casting.
SuSE - Tue Jan 04, 2005 11:33 pm
Post subject:
Dr Brain wrote:
someone like me, who studies computer architecture, feel free. I could use a good debate.

just makes me laugh biggrin.gif
myke - Wed Jan 05, 2005 5:08 am
Post subject:
i'm not anti java or anything, sure java is slow for me, but this made me laugh quite some time ago

http://bash.org/?338364
Cyan~Fire - Wed Jan 05, 2005 6:13 am
Post subject:
No real use for them? What if you're reading from a compactly-designed file and have to index an array from a value in that file?

If a language already exists that supports unsigned datatypes, why switch?

Another point: Why no global functions? Why can't I just have a stupid SwapBytes() function that isn't in a class? And if you say it's because Java is "pure-OO", please tell me why "pure-OO" is better than the choice C++ gives its users.
Dr Brain - Wed Jan 05, 2005 8:16 am
Post subject:
Um, just store the value in a larger storage location. Although, of course, one cannot create arrays that large.

So you're saying because Java supports classes, that no one should ever switch to C? I think your reasoning is flawed there.

Globals were felt to be a bad thing. I think they are too. Making a Util class and then calling Util.SwapBytes() isn't hard. And generally, there is a place to put it that makes more sense (such as the calling class).

Pure-OO encourages better design from the programmers. Coding is only 10% of programming. Design is the other 90%, so I don't think that engouraging a good design is a bad thing.
SuSE - Wed Jan 05, 2005 9:53 am
Post subject:
limitation is...limiting
Solo Ace - Wed Jan 05, 2005 1:58 pm
Post subject:
What an interesting discussion. icon_sad.gif

Btw, Brain, don't you have to kill somebody? sa_tongue.gif
Mr Ekted - Wed Jan 05, 2005 3:10 pm
Post subject:
Dr Brain wrote:
Pure-OO encourages better design from the programmers.


Good programmers make good design. You can make as many bad choices with either style.

All the arguments that "embedding everything in a class is better" are bullshit. Inside every class is non-OOP code. You simply choose where to wrap it and provide interfaces. Addition is a global function. There's nothing wrong with global anything.
Cyan~Fire - Wed Jan 05, 2005 5:00 pm
Post subject:
Dr Brain wrote:
Um, just store the value in a larger storage location. Although, of course, one cannot create arrays that large.

And if I want an array of unsigned datatypes? Do I want to use twice the memory just because Java doesn't support it?

Br Brain wrote:
Making a Util class and then calling Util.SwapBytes() isn't hard. And generally, there is a place to put it that makes more sense (such as the calling class).

Just making a function called SwapBytes() is easier. And yes, I'll admit that most functions fit nicely within a class, but some most definitely do not (like SwapBytes()). Can you please tell me why global functions are bad?

Ekted wrote:
Good programmers make good design. You can make as many bad choices with either style.

Indeed. Java tries to enforce good design, but as I said somewhere else in another topic, a language/compiler can never properly enforce good design! And anyway, there are always certain things that are actually cleaner (like swapping bytes) in non-OO.

FFS, leave it up to the programmer! I've seen badly designed C/C++ but have actually seen more of badly designed Java.

Another point: Class instantiations in Java are obviously just constant pointers. So why can't I read straight from a file into memory like I could in C/C++. javac could obviously complain if I try to read to much and cause memory corruption, right?
Dr Brain - Wed Jan 05, 2005 11:30 pm
Post subject:
Cyan~Fire wrote:
And if I want an array of unsigned datatypes? Do I want to use twice the memory just because Java doesn't support it?


Don't be silly, of course not. Make an array of signed ints, then convert them when you take them out.

Cyan~Fire wrote:
Just making a function called SwapBytes() is easier. And yes, I'll admit that most functions fit nicely within a class, but some most definitely do not (like SwapBytes()). Can you please tell me why global functions are bad?


Two words: Namespaces. C++ namespaces SUCK. Java it seems didn't want to implement a system like this, so the eliminated all globals.

They also break Java's OO-ness.

Cyan~Fire wrote:
Indeed. Java tries to enforce good design, but as I said somewhere else in another topic, a language/compiler can never properly enforce good design! And anyway, there are always certain things that are actually cleaner (like swapping bytes) in non-OO.


Um, so? Java is meant to be as clean as it possibly can. I think it achives that goal. Interfaces just make sense, for example.

Cyan~Fire wrote:
FFS, leave it up to the programmer! I've seen badly designed C/C++ but have actually seen more of badly designed Java.


I take it you haven't looked at much C++ code, then.

Cyan~Fire wrote:
Another point: Class instantiations in Java are obviously just constant pointers. So why can't I read straight from a file into memory like I could in C/C++. javac could obviously complain if I try to read to much and cause memory corruption, right?


Sandboxing. Reading pointers in from disk allows one to point to OS memory locations and hack around. Java was designed to never allow some of the nastier computer issues. Notice that you've never heard of a virus/worm written in Java? Trojans are possible, but not as applets.
Cyan~Fire - Thu Jan 06, 2005 5:44 pm
Post subject:
Dr Brain wrote:
Don't be silly, of course not. Make an array of signed ints, then convert them when you take them out.

Well it's obviously more code. I still don't see any downsides to having unsigned types.

Dr Brain wrote:
Two words: Namespaces. C++ namespaces SUCK. Java it seems didn't want to implement a system like this, so the eliminated all globals.

Why do you need namespaces for global functions?

Dr Brain wrote:
They also break Java's OO-ness.

Putting the cart before the horse here. Pure OO means (and is supposedly better because) everything is in a class. Now you can't say that something can't be global because it breaks OO. So, please give me a good reason pure OO is better.

Dr Brain wrote:
Um, so? Java is meant to be as clean as it possibly can. I think it achives that goal. Interfaces just make sense, for example.

"As clean as it possibly can" means absolutely nothing, because it accomplishes nothing. Yes, interfaces are available, but one doesn't have to use them. No matter how hard it tries, Java will never eliminate a programmer's having to make a design choice.

Dr Brain wrote:
I take it you haven't looked at much C++ code, then.

I haven't looked at much of either code. It just so happens that the 2 Java programmers I know write worse code than the all of 4 C++ programmers I know. (The C++ ones still suck, IMO, though.)

Dr Brain wrote:

Sandboxing. Reading pointers in from disk allows one to point to OS memory locations and hack around. Java was designed to never allow some of the nastier computer issues. Notice that you've never heard of a virus/worm written in Java? Trojans are possible, but not as applets.

Huh? I wasn't talking about reading pointers from the disk, not reading from any location on the disk. I was just saying why can't some class data be read as a block from the disk like you can in C++? (I'm correct in assuming this still isn't possible?)

Oh, and though I might seem unqualified to discuss anything like this right now, I'm most likely going to end up writing an essay comparing Java and C++ over the next year or so if I don't end up writing one on a powerful country's responsibility to other countries. (That is, no to Iraq war, yes to helping Tsunami stuff.)
Dr Brain - Fri Jan 07, 2005 6:42 pm
Post subject:
Cyan~Fire wrote:
That is, no to Iraq war, yes to helping Tsunami stuff


Sorry, end of discussion.
Cyan~Fire - Fri Jan 07, 2005 11:13 pm
Post subject:
Uhhhh, ok.
Mine GO BOOM - Sat Jan 08, 2005 11:18 am
Post subject:
Dr Brain wrote:
Sandboxing. Reading pointers in from disk allows one to point to OS memory locations and hack around. Java was designed to never allow some of the nastier computer issues. Notice that you've never heard of a virus/worm written in Java? Trojans are possible, but not as applets.


Please refrain from making comments without first looking it up. Any language can be made into a virus/worm.
Dr Brain - Sat Jan 08, 2005 11:32 am
Post subject:
Please refrain from making comments without first reading what I said. I said "notice you've never heard of one?" I knew that some had to exist, but thank you for proving my point by showing that there are so few. I only noted two Java VIRUSES. There were plenty of trojans--which I explicitly stated could be written in Java.

Yes, JVM bugs can allow viruses. Note, however, the the JVMs are not witten in Java.

My point in mentioning sandboxes was not to make the point that viruses cannot be written in Java, but rather to make the point that Java programs are far less likely to fall victim to buffer overflows from malformed data (the most common way worms spread). I'm not saying it's not possible to have a worm spread through Java, but I AM saying that Java is orders of magnitude better at eliminating the problem than either C or C++ are.
Cyan~Fire - Sat Jan 08, 2005 2:13 pm
Post subject:
Dr Brain wrote:
Yes, JVM bugs can allow viruses. Note, however, the the JVMs are not witten in Java.

That has to be the stupidest point you've made so far.
Bak - Sun Jan 09, 2005 2:28 pm
Post subject:
I think he's trying to agure about Java more abstractly, Cyan. The idea that array accesses should check to see if they are out of the declared array's boundries yields to a language less prone to viruses, but of course if your range checking has a bug in it, people can still abuse this weakness.

An ideal VM would translate java bytecode to native instructions flawlessly, but if the VM is poorly written, you shouldn't blame Java for that, as the bytecode is fine (even though Sun might also be providing the buggy VM).

The arguement is basicly is it better to slightly slow everything down and limit programmers by not allowing pointers and checking ranges on arrays, or is it better to put the burden of security on the programmer's shoulders and take advantage of the speed increase by trusting that programs are not made with vulnerabilities that may allow something like a buffer overflow. Programmers make programs with bugs and mistakes, so it would look like Java's sandbox model is superior, but an educated programmer should realize when his or her code is prone to attack, so there may be no need for the overhead and slowdown of the sandbox model.

I suggest an alternative: the operating system should limit what different processes can do. For example, unless the user specifies that a process can spawn new processes, or delete/overwrite files outside of it's own directory, or access the net, it should not be allowed to use the system calls that make these operations possible. That way if someone finds a way to insert remote code and make your process run it, it won't be able to cause any damage unless you've granted your process unlimited capabilities. After all, why would Calculator need to access the net, or write to my Windows directory? Why should PrecisionTime be able to access your browser's history, or create a pop up? Most programs do not need all the privilages they have, and limiting their privilages would limit how many and how much impact viruses have.
Dr Brain - Sun Jan 09, 2005 3:33 pm
Post subject:
Yes, an OS with a sandboxing model would be ideal. You could take the idea and really go far with it.

At some point, programs won't be written in low level languages like C/C++. Just like programs are no longer written in Assembly. Portions are, but no one would ever dream of writing an entire application in assembly. We're moving toward faster and faster compuers, and the easier it is for a programmer to write code that fits the specs, the better. No one cares how fast the program runs as long as it's acceptable.

C is written on the idea that speed is the number one need for a program. Twenty years ago, this may have been the case, but certainly, today it is not so. Reliabilty is now the number one need. I'd rather have a program run a little slower and check for errors than have a program run at lightspeed and blow up in my face.

I DO have issues with Java, but they aren't the same issues as you guys have been talking about.

DISCLAIMER: I am talking about applications. None of what I've said applies at ALL to operating systems or low level code such as hardware drivers.
Cyan~Fire - Sun Jan 09, 2005 10:55 pm
Post subject:
Bak wrote:
I suggest an alternative: the operating system should limit what different processes can do.

I definitely agree.

Dr Brain wrote:
C is written on the idea that speed is the number one need for a program. Twenty years ago, this may have been the case, but certainly, today it is not so. Reliabilty is now the number one need. I'd rather have a program run a little slower and check for errors than have a program run at lightspeed and blow up in my face.

Although it's true that the runtime difference between Java and machine code is usually negligible, I don't see that a reason to excuse it. If I had a lot of money, I wouldn't just throw it away. If I have a good computer, I wouldn't waste it on doing the same things I did with a crappy computer.

And, actually, it's not so much the security aspects of Java which irritate me (they're the strongpoint, IMO), it's awful interface created by cross-platform-ness and the silly control it puts over a programmer's style.
myke - Mon Jan 10, 2005 6:16 am
Post subject:
speed matters to me, i'm impatient
Dr Brain - Mon Jan 10, 2005 8:43 am
Post subject:
myke wrote:
speed matters to me, i'm impatient


Then don't use newer Windows OSes. They are specificly designed to slow down to the speed of the previous OS so you'll want to buy a better chip from Intel. Remember how fast Windows 95 was? Well, I hate to break it to you, but Windows XP is only slightly faster on a 2 GHz machine than Windows 95 was on a 100 MHz machine. Of course some things are faster, but most aren't.
Mr Ekted - Mon Jan 10, 2005 12:17 pm
Post subject:
If you wish to continue with your blatant lies, start a new thread please. biggrin.gif
Cyan~Fire - Mon Jan 10, 2005 6:17 pm
Post subject:
Windows XP is definitely slow, you can't deny that. However, Windows 2000 (which I'm running) is speedy quick: I almost never have to wait for any purely Windows task.

Since it seems our discussion of Java is ended (?), I'll say that although I don't think MS is purposefully making their OSes slow, they're definitely not putting as much effort into them as they used to. (Must be programming in Java or something. biggrin.gif)
Mr Ekted - Wed Jan 12, 2005 7:33 pm
Post subject:
ASM = fastest
C = easy to code and fast
Java = easy to bloat and slow
D1st0rt - Wed Jan 12, 2005 9:34 pm
Post subject:
I think the safety and ease of writing of a language is inversely proportional to the speed, which makes sense because there's extra stuff it has to do.
Dr Brain - Wed Jan 12, 2005 9:37 pm
Post subject:
Actually, I'd say the relation is logarithmic rather than direct.

A Java application might be 25 times easier to code and extend than an assembly application, but it's certainly not 25 times slower. It's more like 2-3 times slower.
D1st0rt - Wed Jan 12, 2005 9:41 pm
Post subject:
I stand corrected
Mr Ekted - Wed Jan 12, 2005 10:00 pm
Post subject:
Ya right. Maybe a java app that uses some ASM component to do EVERYTHING is 2-3 times slower. But anything meaty (ie: a real app) is going to be more than an order of magnitude slower.
SuSE - Wed Jan 12, 2005 10:27 pm
Post subject:
it's not like people make OSs with their existing employees anymore, they buy new people with new ideas to do it for them
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group