Yeah, Gecko is big. It has to be, to get all the layouts correct.
Opera 7 is about as standards-compliant as Mozilla, and contains e-mail and newsgroup clients like Mozilla. Yet the Opera 7 download is only 3.3 MB as opposed to nearly 11 MB for Mozilla. Highly standards-compliant browsers need not be big. I doubt that Safari will grow much bigger as a result of making it as compliant as Mozilla.
In other words, validation tools for HTML and CSS are nowhere near smart enough to be a substitute for really knowing what you're doing. (Does anyone rely on lint to verify that their C programs are bug-free?)
No, of course not. I'm not suggesting relying on validating documents as a substitute for knowing what you're doing. But most major problems with web pages that I've seen have been caused by serious structural problems. Those problems are more easily and effectively solved by validating the page than by trying the page in many different browsers. If a page does not validate, it's likely that it will break in some browser -- just like if a C program has syntax errors, it's likely to need work when you port it.
I didn't say validating a page will guarantee it will look exactly the way you intended it to on all browsers. I said it would help ensure that it works. If your page breaks when the font size changes by one size, you've got bigger problems than invalid HTML!
Yes, of course, all programs have bugs. Notice I never said that validating the web page guarantees that the pages work on all browsers. I said that after your page validates, it generally will work mostly correctly on the browsers people use most. If a browser has a bad bug, many people will avoid it, making it less likely that your users will see the glitch caused by the bug.
In my experience, I have removed serious structural errors from web pages, in pages that I wrote as well as in pages that other wrote, far more easily by validating the HTML instead of trying to check in different browsers. After validating, you can always go the extra mile and check the page in other browsers, but usually you don't even need to.
I'd recommend sticking with Opera 7, even though it's still in beta, if you want to try Opera. It's way more standards-compliant than previous versions. Opera 7 even has better CSS2 support than any other browser according to some.
It's so much easier to simply validate against the W3C standards instead of checking to see if your pages work in every browser. If a page validates and works in the earliest version of IE you're trying to support, it should work for almost all visitors you're targetting.
Opera 7 already has part of this feature: Fast Forward. When you go forward to a page that has a Next page defined, the Forward button changes to a different icon which takes you to the next page.
This is why the company I used to work for, Breakthrough to Literacy, provides full support for the products they sell. They don't just sell the school software and walk away -- they work as active partners to help the children read and write better.
This thread reminds me of my college physics classes. I did nearly all of the problems on one line of paper, like: a = F/m = Fc^2/e = kxc^2/e = etc. with each step using one formula from my "cheat sheet" and doing the algebra in my head. On all of my homework, the grader wrote "please show your work." The only extra work I could think of was to replace the variables with the numerical values and units. The other students used a whole sheet of paper for each problem and did many unneccessary steps. I think the grader should have complained about that sloppy work instead!
So does this mean tha mozilla compiled with the intel compiler would run comparable to it's windows counterpart?
The last I heard, the reason that Linux builds of Mozilla are slower than Windows builds is that Linux Mozilla builds use g++ 2.95 with -O optimization. When they can switch to g++ 3.2.1 with -O2 optimization, the speeds should be comparable.
Why do you say "there goes your type safety"? Can you explain in detail why Java generics are not type safe?
I also don't follow the vague example you give about the third party developer. I can't recall any situation I encountered like that when using C++ templates. Can you give a more specific example?
That's how templates in C++ work. It's not how generics in Java work.
In Java, if you specify that any class T can be used, you can call only methods declared in Object on variables of type T. If you want to call other methods, you must constrain the type to a subtype of Object.
You should be able to write this as:
class MySortedList<Element implements Comparable> {
void insert(Element e) { /* now we can do this: */
int i = e.compareTo(another_element); /* because we can be sure that e implements comparable */
}
}
There's a standard for web pages from the W3C. If you follow the standard, pages will display properly. If you don't, they may not. This is the whole reason for web standards. If you do not follow them, you do so at your own risk.
Likewise, if you write C code that does not conform to the standard, don't be surprised if you find a compiler that chokes on the code. There's a reason for habing standards. Use them!
Any good programmer I've ever known started with the lower level stuff and was successful for this reason. Or at least plowed hard into the lower level stuff and learned it well when the time came, but the first scenario is preferable.
The problem with this "start with the low-level" approach is that no matter where you start, there's a lower level that is abstracted away. That is, unless you start with the physics of electricity and slowly work up to how transistors work and how they're wired up to be logic gates, how the gates are arranged to be functional units within a CPU, etc.
I think the best approach is to start in the middle with a high-level language with a text editor and command line compilation. Then, as needed, they can later learn lower level assembly language and higher level IDEs, and then later learn even lower level digital design and even higher level code generation. With this approach, you're not abstracting so much away that beginners have no idea what's going on, but you're abstracting enough away that they can understand basic programming concepts immediately.
C++ is too slow and too unpredictable for it to be used for proper control systems
This is FUD, pure and simple. Several years ago I wrote low-level software for a wireless modem entirely in C++. It needed response times in the microseconds range. I found nothing "slow" or "unpredictable" about C++ in hard real-time embedded systems.
The one problem we did have is that we couldn't do source-level debugging on an HP emulator we bought. When more tools are updated to support C++, you'll see lots of embedded systems development switch from C to C++, just like it switched from assembly to C many years ago.
If you're not using your computers, it doesn't matter, now, does it?
But if other people in your company are using their computers, you don't want to take away a significant chunk of their bandwidth, do you? You also don't want to run up your company's utility bill if you'd otherwise leave your computer off when you're not at work.
Your concern should be power consumption and heat production, probably. Especially if you're using Transmetas or laptops, etc.
Absolutely. I don't even like to leave my laptop at the Windows login screen because it uses 100% of the CPU time and makes the cooling fan some on within a few minutes.
So is Mozilla's DOM implementation crappy compared to IE or what? I got into an argument with him about whether IE or Moz was better, and he said IE is a lot easier to design webpages for.
No, Mozilla just follows the standard.
The tipoff in what your friend says is "for IE". You don't design web pages "for IE", you design them according to the standards so that anyone using a standard web browser can use them.
Are your CDs designed for your brand of CD player? Is the television signal you get designed for your brand of TV? Is your friend's phone designed to work well with your brand of phone? NO! They're all designed to work according to the standards, so they all interoperate seamlessly. It's time for that to happen with the web.
Look in the parent post, genius.
"When you say souls don't develop because people become distracted,... [rumble] ...has anyone noticed that building there before?"
I didn't say validating a page will guarantee it will look exactly the way you intended it to on all browsers. I said it would help ensure that it works. If your page breaks when the font size changes by one size, you've got bigger problems than invalid HTML!
In my experience, I have removed serious structural errors from web pages, in pages that I wrote as well as in pages that other wrote, far more easily by validating the HTML instead of trying to check in different browsers. After validating, you can always go the extra mile and check the page in other browsers, but usually you don't even need to.
I'd recommend sticking with Opera 7, even though it's still in beta, if you want to try Opera. It's way more standards-compliant than previous versions. Opera 7 even has better CSS2 support than any other browser according to some.
It's so much easier to simply validate against the W3C standards instead of checking to see if your pages work in every browser. If a page validates and works in the earliest version of IE you're trying to support, it should work for almost all visitors you're targetting.
Opera 7 already has part of this feature: Fast Forward. When you go forward to a page that has a Next page defined, the Forward button changes to a different icon which takes you to the next page.
This is why the company I used to work for, Breakthrough to Literacy, provides full support for the products they sell. They don't just sell the school software and walk away -- they work as active partners to help the children read and write better.
This thread reminds me of my college physics classes. I did nearly all of the problems on one line of paper, like: a = F/m = Fc^2/e = kxc^2/e = etc. with each step using one formula from my "cheat sheet" and doing the algebra in my head. On all of my homework, the grader wrote "please show your work." The only extra work I could think of was to replace the variables with the numerical values and units. The other students used a whole sheet of paper for each problem and did many unneccessary steps. I think the grader should have complained about that sloppy work instead!
You mean like a light sound machine?
Why do you say "there goes your type safety"? Can you explain in detail why Java generics are not type safe?
I also don't follow the vague example you give about the third party developer. I can't recall any situation I encountered like that when using C++ templates. Can you give a more specific example?
Don't forget to visit the Adding Generics Forum for more detailed posts about generics and other new features being added to Java.
In Java, if you specify that any class T can be used, you can call only methods declared in Object on variables of type T. If you want to call other methods, you must constrain the type to a subtype of Object.
You should be able to write this as:
/* now we can do this: */
/* because we can be sure that e implements comparable */
class MySortedList<Element implements Comparable> {
void insert(Element e) {
int i = e.compareTo(another_element);
}
}
Likewise, if you write C code that does not conform to the standard, don't be surprised if you find a compiler that chokes on the code. There's a reason for habing standards. Use them!
I think the best approach is to start in the middle with a high-level language with a text editor and command line compilation. Then, as needed, they can later learn lower level assembly language and higher level IDEs, and then later learn even lower level digital design and even higher level code generation. With this approach, you're not abstracting so much away that beginners have no idea what's going on, but you're abstracting enough away that they can understand basic programming concepts immediately.
The one problem we did have is that we couldn't do source-level debugging on an HP emulator we bought. When more tools are updated to support C++, you'll see lots of embedded systems development switch from C to C++, just like it switched from assembly to C many years ago.
Factor of two = times two. Two orders of mangitude = times about a hundred. At least you were within two orders of magnitude of being right!
Could you give an example or a bug report that describes this problem?
The tipoff in what your friend says is "for IE". You don't design web pages "for IE", you design them according to the standards so that anyone using a standard web browser can use them.
Are your CDs designed for your brand of CD player? Is the television signal you get designed for your brand of TV? Is your friend's phone designed to work well with your brand of phone? NO! They're all designed to work according to the standards, so they all interoperate seamlessly. It's time for that to happen with the web.