Some people don't seem to get why a 64-bit architecture would be useful. Let me say that it's not just about doing 64-bit computations and having a larger address space.
I'd say that transferring more data and having more registers to play with are more important features, as well as being able to do 32-bit computations in paralell. (having 64-bit computations in hardware is nice too; that makes it all possible)
Also, remember that the Itanium is an architecture that's designed to grow. Much like how Transmeta's chips will improve in speed as the software is being fine-tuned, the Itanium's software should show massive speedups once (a) the compiler is optimized, (b) everything is recompiled natively, and (c) code is rewritten (as needed) to exploit the architectural featueres.
I'd say that we've already seen a preview of what sort of difference this sort of thing can make with the Pentium 4. (if you missed it, it's on Tom's Hardware) It can make a huge difference. I'll be interested in seeing how Linux stacks up, and how optimized gcc is at the moment; I'm sure we'll have our work cut out for us. --- pb Reply or e-mail; don't vaguely moderate.
Yes; I thought it was 54 bits, but I could be wrong.
Regardless, this is a correct assessment. Intel released an 8-bit processor that could address 640k and a 16-bit processor that could address what, 4MB? It definitely wasn't 2^8 or 2^16 in either case. --- pb Reply or e-mail; don't vaguely moderate.
I liked altavista back when they were just a damn good search engine, and not a cheesy portal site. If I wanted a cheesy portal site, I'd go to "Yahoo!".
At least Google has managed to handle everything tastefully so far; I definitely respect them more for it. Heck, they don't even have banner ads, unlike some other sites... --- pb Reply or e-mail; don't vaguely moderate.
Well, I might have to try Delphi out again; I remember getting a copy of Delphi 1.0 (it was free with some magazine) and trying to write a text editor. It was relatively easy to do most of it, but then I couldn't figure out what extra code it wanted me to write. Then it came out to be 200k because Borland had to use their own DLL's and compile it all statically. Then I gave up.:)
And yes, I was going for a huge Java flamewar with this one; apparently I got a lot of bites, but the moderators didn't agree with me. I did try to defend a few things that seem indefensible, but all in all I thought it was quite fun.
...and, at the moment, for what I'm doing, I still hate Java; it ain't got nuthin' on C...;) --- pb Reply or e-mail; don't vaguely moderate.
I spent a long time writing code in Turbo Pascal 7, and some of it was object oriented. Basically, it took me a while to figure out how it worked, and I liked it, but it still had some problems.
However, I'm fairly convinced that those problems stem more from hacking an object-oriented model on top of a procedural programming language than anything else; I'll find out if I ever re-implement that code on top of C++.
(I had a pretty cool screensaver that I wrote in a week in Pascal to test out and learn the OOP stuff; however, I had some memory leaks because it wasn't easy to identify which type I was deallocating... I'm pretty sure I could fix that now, though.)
Borland codes some pretty impressive stuff, but no one notices. I'd kill for a better linker, for gcc... --- pb Reply or e-mail; don't vaguely moderate.
That's what protected is *supposed* to mean. That's what it means in C++, but not what it means in Java.
In Java, anything in the same package ALSO has access to your protected variables. Therefore, I think whoever designed that into the Java spec also had too much to drink.:) --- pb Reply or e-mail; don't vaguely moderate.
I should really dig out the old test question that I had to rewrite to use setters and getters, (although it was unspecified, and more complicated...) but I can tell you that I had an assignment where I implemented everything that was specified by the assignment, and used protected variables, and lost ten points for not using setter/getter methods of any sort.
Basically, if I can implement the spec for a program and have it run perfectly, and lose points for A(n unspecified, quiche-eating, useless, philosophical) CODING DIFFERENCE, well... then the instructor has some explaining to do. --- pb Reply or e-mail; don't vaguely moderate.
Well, yes, but you'll still need the C libraries for it; that'll take many cycles. I guess you could statically link it, but it'd be nice if gcc had a smarter linker. (300k???)
P.S. printf() is slow; use puts() or write() instead. --- pb Reply or e-mail; don't vaguely moderate.
Order of includes is tricky? Usually you include what you need, and if they need anything, they include it for themselves, and they don't include it twice...
When would order matter?
Also, I haven't messed with win32, but would that be like using AWT *and* Swing? Even if you could do it, why would you want to? Actually, scratch that, that's my opinion of win32 coding anyhow!:) --- pb Reply or e-mail; don't vaguely moderate.
Well, that's a problem with a conditional branch, but a goto is an unconditional branch. You should be able to place that code in memory right after the goto, if desired, especially if you're doing any run-time profiling.
At a low level, I'd say an if statement would be more bothersome than a goto; also, a lot of times even a regular ol' compiler could do loop unrolling...
But yes, that is a fascinating aspect of it, IMO; it probably isn't a huge issue in Java, though. When Java's that close to the hardware, I'll be quite happy for them!:) --- pb Reply or e-mail; don't vaguely moderate.
Cool; I had to write that for class, basically. (actually we did that and some File I/O, too)
But since System.in isn't actually the same sort of stream as System.out or System.err, it's definitely a mess to use... Heck, you have to learn about exceptions to use it, too!
So remind me not to write a command shell in Java; why, I wrote less code in C, and implemented that readLine() function there, without exceptions!;)
And no, I didn't use an IDE until the GUI-building stuff came along... --- pb Reply or e-mail; don't vaguely moderate.
I don't use Microsoft products, ever, if I can at all help it. (although I did just write something in GW-BASIC 3.20, but that's just because it's easier to use than Java:) If I gave you that impression, then I'm sorry.
I program in C, on Unix, where possible. I'm open to trying new things, but so far GUI programming doesn't look like that much fun. Yes, I like to have performance and simplicity in my language. Java is a huge, complicated mess, and nothing you say will make it any smaller.
Maybe you're right, in that someone who has been a hardcore C++ coder for over 10 years would appreciate what Java has to offer, but don't you think that's a pretty steep learning curve? I'm pretty happy with what C and Unix have to provide; I'm still learning about it, but that isn't because there's a huge API; that's because the API is exceedingly useful, flexible, and powerful.
I like to try out different lanugages to see what they have to offer, and I can program decently in even a reasonable subset of Lisp, C, Pascal, BASIC, Scheme, Perl, and what have you, but Java isn't nearly that simple.
In fact, Java is quite non-intuitive, and full of special-purpose hacks. I'd be completely lost if I didn't already know how whacked-out C++ is in the first place, and know something about the STL (which is missing--templates, that is). The fact that it has lots of "Objects" doesn't reassure me, because I don't see much in the way of a consistent interface, either. The sheer breadth of Java will definitely turn away the language enthusiast.
Yes, I remember when it was about programming, not money. But you'd definitely have to pay me to write in Java. I might still try to find a use for it, though, despite its designers and an API. I'll let you know if I find a good place where it shines. But apparently you've made up your mind already. --- pb Reply or e-mail; don't vaguely moderate.
That's what that section on 'full-tail-calls' means; they don't have a 'goto' in Java; therefore, however they had to do it, it's slower, and not up to spec. (like a giant switch statement, say; that would be pretty bad...) --- pb Reply or e-mail; don't vaguely moderate.
I don't see how making a malicious macro tweak somewhere would be any different from changing the behavior of a method in a base class that gets inherited, say...
Either way, you have some hidden code that gets run, all in the name of code reuse. The point is, you shouldn't be maliciously editing code!
Macros and inheritance are both powerful tools to be used and abused. Therefore, they should be used carefully, not forbidden completely.
Also, you should get at least warnings about macros that get redefined... --- pb Reply or e-mail; don't vaguely moderate.
Yeah, that is pretty handy. I did similar things in Perl and PHP over the summer; I never looked to see what sort of tools were available for that in other languages because (a) we weren't using those for development and (b) it was alreaedy built-in! I was pretty proud of the encrypted database fields I created for credit card processing, along with a simple search interface, writing a credit card processing module, etc., etc... My Perl is probably somewhat rusty now, but it was easy to learn and incredibly handy for that job.
And although this is probably somewhat different (but still web stuff), we did look at implementing Java Servelets; I tried to run the free server for that on top of Apache, and I couldn't get it to work. I asked for help on the list, and read all the documentation, but they weren't much help at all. But everything else compiled fine for Apache (mod_perl, PHP4, even mod_frontpage, and some extra security extensions...), so I wasn't too impressed with the free Java Servelet support for Apache on Linux at the time... --- pb Reply or e-mail; don't vaguely moderate.
Well, I'd feel better about hiding data if it were 'protected' in the first place, but I understand the rest of it; data hiding is really handy in OOP, I remember doing it with dotted pairs in Scheme.:)
And yes, Java can break to a label; that takes care of the case where you need to get out of a couple of nested loops. But there's still that 1% they forgot, and didn't even put in the bytecode. (continuing on with Scheme, just try to implement it in Java/Java bytecode, and handle tail recursion efficiently and to the spec; I'm curious as to what you'd come up with...) --- pb Reply or e-mail; don't vaguely moderate.
I know; that's why I'd have to put each class in a separate package.
I generally only WANT class scope, and not package scope, and there's no clean way to do this in Java; it involves the inane process that I have listed above.
Here's actually one example where the C++ object system is superior, in my opinion. Scary, huh? --- pb Reply or e-mail; don't vaguely moderate.
Some people don't seem to get why a 64-bit architecture would be useful. Let me say that it's not just about doing 64-bit computations and having a larger address space.
I'd say that transferring more data and having more registers to play with are more important features, as well as being able to do 32-bit computations in paralell. (having 64-bit computations in hardware is nice too; that makes it all possible)
Also, remember that the Itanium is an architecture that's designed to grow. Much like how Transmeta's chips will improve in speed as the software is being fine-tuned, the Itanium's software should show massive speedups once (a) the compiler is optimized, (b) everything is recompiled natively, and (c) code is rewritten (as needed) to exploit the architectural featueres.
I'd say that we've already seen a preview of what sort of difference this sort of thing can make with the Pentium 4. (if you missed it, it's on Tom's Hardware) It can make a huge difference. I'll be interested in seeing how Linux stacks up, and how optimized gcc is at the moment; I'm sure we'll have our work cut out for us.
---
pb Reply or e-mail; don't vaguely moderate.
Yes; I thought it was 54 bits, but I could be wrong.
Regardless, this is a correct assessment. Intel released an 8-bit processor that could address 640k and a 16-bit processor that could address what, 4MB? It definitely wasn't 2^8 or 2^16 in either case.
---
pb Reply or e-mail; don't vaguely moderate.
Heh heh. That's pretty funny.
Next, you'll be hearing "Ask Jeeves is pushing to become a challenger to popular rival search services such as Yahoo and CNet"...
PS: does anyone else find the MySimon.commercials to be incrediby moronic?
---
pb Reply or e-mail; don't vaguely moderate.
STFU, Impostor.
I already saw this 50,000 UIDs before yours, and it was stupid then.
Could someone *please* go through his history and mod his posts down to -837,425 for me?
---
pb Reply or e-mail; don't vaguely moderate.
I liked altavista back when they were just a damn good search engine, and not a cheesy portal site. If I wanted a cheesy portal site, I'd go to "Yahoo!".
At least Google has managed to handle everything tastefully so far; I definitely respect them more for it. Heck, they don't even have banner ads, unlike some other sites...
---
pb Reply or e-mail; don't vaguely moderate.
Thanks; it's been a while since I've been to that website, maybe I should check it out again. :)
---
pb Reply or e-mail; don't vaguely moderate.
Well, I might have to try Delphi out again; I remember getting a copy of Delphi 1.0 (it was free with some magazine) and trying to write a text editor. It was relatively easy to do most of it, but then I couldn't figure out what extra code it wanted me to write. Then it came out to be 200k because Borland had to use their own DLL's and compile it all statically. Then I gave up. :)
;)
And yes, I was going for a huge Java flamewar with this one; apparently I got a lot of bites, but the moderators didn't agree with me. I did try to defend a few things that seem indefensible, but all in all I thought it was quite fun.
...and, at the moment, for what I'm doing, I still hate Java; it ain't got nuthin' on C...
---
pb Reply or e-mail; don't vaguely moderate.
I spent a long time writing code in Turbo Pascal 7, and some of it was object oriented. Basically, it took me a while to figure out how it worked, and I liked it, but it still had some problems.
However, I'm fairly convinced that those problems stem more from hacking an object-oriented model on top of a procedural programming language than anything else; I'll find out if I ever re-implement that code on top of C++.
(I had a pretty cool screensaver that I wrote in a week in Pascal to test out and learn the OOP stuff; however, I had some memory leaks because it wasn't easy to identify which type I was deallocating... I'm pretty sure I could fix that now, though.)
Borland codes some pretty impressive stuff, but no one notices. I'd kill for a better linker, for gcc...
---
pb Reply or e-mail; don't vaguely moderate.
That's what protected is *supposed* to mean. That's what it means in C++, but not what it means in Java.
:)
In Java, anything in the same package ALSO has access to your protected variables. Therefore, I think whoever designed that into the Java spec also had too much to drink.
---
pb Reply or e-mail; don't vaguely moderate.
That's awesome!
Do you have the source available anywhere?
---
pb Reply or e-mail; don't vaguely moderate.
Well, how about having a single function call with a descriptive name that performs a simple task like this?
How about open()? Or fopen()?
If you must, then file_open().
But Java avoids this entirely. They don't even have a macro^H^H^H^H^Hmethod that expands out to this, for when people want to do this simple task.
Why make it any harder than it has to be?
---
pb Reply or e-mail; don't vaguely moderate.
I should really dig out the old test question that I had to rewrite to use setters and getters, (although it was unspecified, and more complicated...) but I can tell you that I had an assignment where I implemented everything that was specified by the assignment, and used protected variables, and lost ten points for not using setter/getter methods of any sort.
Basically, if I can implement the spec for a program and have it run perfectly, and lose points for A(n unspecified, quiche-eating, useless, philosophical) CODING DIFFERENCE, well... then the instructor has some explaining to do.
---
pb Reply or e-mail; don't vaguely moderate.
Well, yes, but you'll still need the C libraries for it; that'll take many cycles. I guess you could statically link it, but it'd be nice if gcc had a smarter linker. (300k???)
P.S. printf() is slow; use puts() or write() instead.
---
pb Reply or e-mail; don't vaguely moderate.
Actually, most planes are car-planes, if you will. Otherwise, they could never take off (unless they're VTOLs)
:)
The real world is much more complicated than Java would have you believe...
---
pb Reply or e-mail; don't vaguely moderate.
No; I want the children to have access as well, just not anything else.
---
pb Reply or e-mail; don't vaguely moderate.
I agree. But when would it matter?
---
pb Reply or e-mail; don't vaguely moderate.
Order of includes is tricky? Usually you include what you need, and if they need anything, they include it for themselves, and they don't include it twice...
:)
When would order matter?
Also, I haven't messed with win32, but would that be like using AWT *and* Swing? Even if you could do it, why would you want to? Actually, scratch that, that's my opinion of win32 coding anyhow!
---
pb Reply or e-mail; don't vaguely moderate.
Well, that's a problem with a conditional branch, but a goto is an unconditional branch. You should be able to place that code in memory right after the goto, if desired, especially if you're doing any run-time profiling.
:)
At a low level, I'd say an if statement would be more bothersome than a goto; also, a lot of times even a regular ol' compiler could do loop unrolling...
But yes, that is a fascinating aspect of it, IMO; it probably isn't a huge issue in Java, though. When Java's that close to the hardware, I'll be quite happy for them!
---
pb Reply or e-mail; don't vaguely moderate.
Cool; I had to write that for class, basically. (actually we did that and some File I/O, too)
;)
But since System.in isn't actually the same sort of stream as System.out or System.err, it's definitely a mess to use... Heck, you have to learn about exceptions to use it, too!
So remind me not to write a command shell in Java; why, I wrote less code in C, and implemented that readLine() function there, without exceptions!
And no, I didn't use an IDE until the GUI-building stuff came along...
---
pb Reply or e-mail; don't vaguely moderate.
Did you intend to reply to my post?
:) If I gave you that impression, then I'm sorry.
I don't use Microsoft products, ever, if I can at all help it. (although I did just write something in GW-BASIC 3.20, but that's just because it's easier to use than Java
I program in C, on Unix, where possible. I'm open to trying new things, but so far GUI programming doesn't look like that much fun. Yes, I like to have performance and simplicity in my language. Java is a huge, complicated mess, and nothing you say will make it any smaller.
Maybe you're right, in that someone who has been a hardcore C++ coder for over 10 years would appreciate what Java has to offer, but don't you think that's a pretty steep learning curve? I'm pretty happy with what C and Unix have to provide; I'm still learning about it, but that isn't because there's a huge API; that's because the API is exceedingly useful, flexible, and powerful.
I like to try out different lanugages to see what they have to offer, and I can program decently in even a reasonable subset of Lisp, C, Pascal, BASIC, Scheme, Perl, and what have you, but Java isn't nearly that simple.
In fact, Java is quite non-intuitive, and full of special-purpose hacks. I'd be completely lost if I didn't already know how whacked-out C++ is in the first place, and know something about the STL (which is missing--templates, that is). The fact that it has lots of "Objects" doesn't reassure me, because I don't see much in the way of a consistent interface, either. The sheer breadth of Java will definitely turn away the language enthusiast.
Yes, I remember when it was about programming, not money. But you'd definitely have to pay me to write in Java. I might still try to find a use for it, though, despite its designers and an API. I'll let you know if I find a good place where it shines. But apparently you've made up your mind already.
---
pb Reply or e-mail; don't vaguely moderate.
Actually, that's not inefficiency at all, which is my point.
That's one thing they can't implement properly in Kawa *because* of Java.
That's what that section on 'full-tail-calls' means; they don't have a 'goto' in Java; therefore, however they had to do it, it's slower, and not up to spec. (like a giant switch statement, say; that would be pretty bad...)
---
pb Reply or e-mail; don't vaguely moderate.
I don't see how making a malicious macro tweak somewhere would be any different from changing the behavior of a method in a base class that gets inherited, say...
Either way, you have some hidden code that gets run, all in the name of code reuse. The point is, you shouldn't be maliciously editing code!
Macros and inheritance are both powerful tools to be used and abused. Therefore, they should be used carefully, not forbidden completely.
Also, you should get at least warnings about macros that get redefined...
---
pb Reply or e-mail; don't vaguely moderate.
Yeah, that is pretty handy. I did similar things in Perl and PHP over the summer; I never looked to see what sort of tools were available for that in other languages because (a) we weren't using those for development and (b) it was alreaedy built-in! I was pretty proud of the encrypted database fields I created for credit card processing, along with a simple search interface, writing a credit card processing module, etc., etc... My Perl is probably somewhat rusty now, but it was easy to learn and incredibly handy for that job.
And although this is probably somewhat different (but still web stuff), we did look at implementing Java Servelets; I tried to run the free server for that on top of Apache, and I couldn't get it to work. I asked for help on the list, and read all the documentation, but they weren't much help at all. But everything else compiled fine for Apache (mod_perl, PHP4, even mod_frontpage, and some extra security extensions...), so I wasn't too impressed with the free Java Servelet support for Apache on Linux at the time...
---
pb Reply or e-mail; don't vaguely moderate.
Well, I'd feel better about hiding data if it were 'protected' in the first place, but I understand the rest of it; data hiding is really handy in OOP, I remember doing it with dotted pairs in Scheme. :)
And yes, Java can break to a label; that takes care of the case where you need to get out of a couple of nested loops. But there's still that 1% they forgot, and didn't even put in the bytecode. (continuing on with Scheme, just try to implement it in Java/Java bytecode, and handle tail recursion efficiently and to the spec; I'm curious as to what you'd come up with...)
---
pb Reply or e-mail; don't vaguely moderate.
I know; that's why I'd have to put each class in a separate package.
I generally only WANT class scope, and not package scope, and there's no clean way to do this in Java; it involves the inane process that I have listed above.
Here's actually one example where the C++ object system is superior, in my opinion. Scary, huh?
---
pb Reply or e-mail; don't vaguely moderate.