The speed up from release to release is mostly due to the fact that Apple engineers were thinking ahead when they designed the software. Not because it is less mature.
Basically the hardware is finally catching up to the design of the software.
I'm talking mostly about the gui system here, the command line/ unix stuff is very well optimized for what it does but the GUI has yet to be enhanced.
Aqua, Quartz, Cocoa and the drawing APIs for OSX were designed such that they can be accelerated easier by future graphics cards easier. Remember that when OSX first came out the graphics cards that were in most macs was the Rage Pro or below. Now that much more powerful graphics cards are coming out it's possible to use that power for GUI, but an API was needed to access it. Aqua, Quartz, allow some access and the new CoreVideo allows even more access to the underlying graphics hardware. Windows API doesn't allow access to the graphics hardware in the windowing envoriment, any advanced features you have to use DirectX/OpenGL and those APIs are not designed with a multi-program, windowing enviroment in mind (well OpenGL can handle it better then DirectX ever could on SGI but not so on Windows X86 machines, DirectX is designed for games).
Re:Someone please explain this to me.
on
Mozilla 1.7 Released
·
· Score: 5, Informative
The biggest reason to switch for me is that the web development tools for IE suck compared to mozilla/firefox. DOM inspector, JS debugger, etc. all are awesome tools compared to IE.
The fact that IE lets websites install software on your computer doesn't exactly make my day either. I really hate that.
Jaguar (10.2) has journaled support as well, but you had to enable it as it was not a default option.
Even in 10.3 it's optional, not required, but it's the new default for new disks. Probably because Apple decided that their code was solid enough to put into production. After testing it on 10.2 I agree with them.
When my buddy first told me about this exciting new RISC idea one of the design goals was each instruction was to take a single instruction cycle to execute. Isn't this completely contrary to a deep pipeline? The Pentium 4 has a 20-stage pipeline IIRC. Not really, the idea is to make every instruction simple. Reduced Instruction Set Computer The side effects of this are that every instruction can be the same length thus simplifying the complex decoding process of a CPU. x86 can be multiple bytes in length, while all PPC (and most RISC) instructions are all 32 bits long (yes even the PPC-64 instructions). the simplified insruction set allows for more instructions to be processed in less cycles, but generally you need more instructions to do the same thing. Since it's easier to decode the PPC instructions, it's also easier to pipeline them, easier to do superscalar cores (since less transistors are required to do the same thing).
This doesn't always translate into more performance since RISC computers generally need more memory (the code is less dense) and thus more bandwidth to achieve the same performance sometimes. While some x86 instructions are hard to crack for the decoder, the savings in memory to store the instruction can make it worthwhile to do.
If I am not mistaken the Transmeta was a very wide instruction word. And if I am not mistaken, doesn't that make it the opposite of a RISC?
Yep, but the problem is that you're asking the compiler to extract the parrallelism from the instruction stream, which is not always possible. Usually, there is more thread level parallelism then instruction level parallslism.
But you can't track everything, you can't track everytime a file is played. That's what prevents it.
Not because it's technically impossible ( it's very possible) but because it's too expensive.
Will it get cheaper in time? Yea, but I do not forsee a time when it will be 'cheap enough' to do it.
The major factor to them stopping unlimited reproduction of their content is control.
Ever notice that you cannot go to the store and buy any Disney movie that they released on DVD? Even the big stores that should have like every movie? They only carry the ones that were recently released. With P2P they lose the control of what movies they can put on the shelves and they can't create an artificial demand for movies.
If they were really smart, they would use these new DRM enabled technologies like Window media to give away free music and track how often the songs are getting played. Or is that not possible with WM? I thought that it was.
They send the laws that you are voting on to you in the mail before hand. At least if you are a registered voter.
They don't give you a copy when you vote that's true.
How many people would read them anyways? Why don't we require there to be television shows that just state the actual text of the laws instead of having people talk about their opinions?
Not only all of the points you raised, but the DC also was much easier to program games for and thus was cheaper to develop games for.
The DC lost because of lack of EA games and the Sony hype machine. They were saying it was some sort of super computer in your house when that was a total lie.
somewhere in the new Doom is a secret level that looks just like the original Doom! Or maybe a monster that is a nod to the original Graphics style of the original Doom.
That was the first and last FPS that I could say I truely loved to play.
Seriously, there is a program on Apple's site that will show any quicktime movie on the terminal. It renders a movie as characters on the terminal. Though if the movie is large then it tends to look bad since it doesn't wrap correctly.
Because the world would be a better place if people would store all their computer files in open formats that do not involve patents and licensing. Well that's hardly a good reason to switch to OGG.
If you want to switch to OGG, fine go ahead, but expecting other people to switch because of moral reasons is silly.
It's only recently that OGG has stablized the format anyway. I was encoding mp3s back in 1996 when OGG was no where near done.
I guess the fact that I use my laptop as a portable recording studio isn't a reasonable justification? Even the top of the line 17" 1.33 Ghz can't always keep up with my realtime processing needs. I think that you're taking his comment too far.
He's saying that it's a marketing success that they have convinced the average person that they need lots of power in a laptop. Not that people who want that much power are dumb.
There will always be people who need more power in a portable package like yourself. But they are not the average case. Not everyone wants to use their laptop as a portable recording studio.
You don't need to move anything. Supporting Ogg does not imply dropping support for everything else. Then why use it? Having a collection that is like 25% ogg,25%mp3, 25% AAC and 25% WMA is a PITA! I don't like having to use protected AAC files (but I love the iTMS, sad huh). At least my Mac allows me to think that AAC and MP3 are similar.
iRiver and Rio have Ogg players now. Let's hope more will follow. you continue to hope, I'll listen to music.
have given me another reason to never switch to OGG.
As if there weren't enough. The pain of moving all my files. The lack of a good portable player. I like my mp3 portable cd player and mp3 playing dvd player. The constant explaining to people when I tell them I use OGG ( "OGG what's that? Oh it's music, like MP3.") If OGG is better then MP3 it's only marginally better.
The only reason that I have any AAC files in my collection is because of iTMS.
You haven't been following the process have you? Go and read the roadmap at least. I don't think that everyone should have to read every little spec that is written on the site. I goto Mozilla.org every so often. Over the years I've noticed that they tend to link to the best version to download on the main page. Maybe this has changed so that the version you should download is buried deep within their site and hard to figure out which version to use. I don't think so however. Right now they say to use version 1.6 on the main page. The road map says that the blessed/stable version is 1.4 but it's not apparent until you read the road map which is not linked to from the front page. Also, finding that version (1.4) is not easy because of the way that the download page is laid out.
It used to be that when the 'alpha' or not reccomended version of Mozilla comes out that they link to both the unstable and stable versions from the front page.
What, like every 5 minutes? You've got to be kidding me right? That's a very blase attitude. Backups are no guarantee. If backups can't help you, then nothing can.
1.4 may be the 'blessed' version of the browser, but that doesn't mean that it's actually more stable. Just that it's had MORE testing. There are still bugs in it and since it's not moving forward anymore the bugs will stay there. The only advantage in staying with old versions of software is that more of the bugs are known.
Regardless this whole thread of discussion came from the fact that Malc doesn't want to upgrade to the newest version because he is afraid that it will hose his data. Fair enough, I don't think that anyone can guarentee that upgrading won't toast his data. However, he complained that version 1.4 is slow and bloated... etc.. etc.. Which I think is an unfair comparison because the newest version which was released 9 months later has fixes to some of the problems he's having. Most likely he will be able to upgrade with almost no issues, however if one chooses to use old software then I think that you lose the right to complain about it in the context of new software.
The Mozilla project is changing everyday, and almost always it's getting better.
No one said they're the silver bullet, but as someone else indicated, spend some time deriving classes from CollectionBase and you'll quickly appreciate having strongly typed collections with no heavy lifting on your part.
I never pass around collections outside of my own programming interfaces. Otherwise you have other problems.
Most of them relate to bounds checking and not type checking. Bounds checking which may change at runtime, rather then simple type checking which is rather static. I personally don't like the way that C# is implementing generics at runtime because it's like the C++ way which is to create seperate code for any possible variation, when in fact the code is the same. Doesn't really matter much to me because I don't use C# yet though.
My bad, I should to have said that a Generic List is compiled at runtime into a seperate class by the JIT.
Since in.NET CLR a List is actually compiled into a list that only holds ints (and not objects), it actually has a completly different codepath then a List or List.
WTF are you talking about? The only way you're going to get an instance of a class that implements IList and only holds ints is to do this ArrayList intList = new ArrayList(); If you just choose ArrayList myList = new ArrayList(); you get a non-specialized version of the IList-supporting class. Me thinks you don't know what you're talking about.
Here's what I'm talking about from the second page of the article, Hejlsberg says that there will be lots of class definitions floating around in memory.
Bill Venners: How do generics work in C#?
Anders Hejlsberg: In C# without generics, you are basically able to say class List {...}. In C# with generics, you can say class List {...}, where T is the type parameter. Within List you can use T as if it were a type. When it actually comes time to create a List object, you say List or List. You construct new types from that List, and it is truly as if your type arguments get substituted for the type parameter. All of the Ts become ints or Customers, you don't have to downcast, and there is strong type checking everywhere.
In the CLR [Common Language Runtime], when you compile List, or any other generic type, it compiles down to IL [Intermediate Language] and metadata just like any normal type. The IL and metadata contains additional information that knows there's a type parameter, of course, but in principle, a generic type compiles just the way that any other type would compile. At runtime, when your application makes its first reference to List, the system looks to see if anyone already asked for List. If not, it feeds into the JIT the IL and metadata for List and the type argument int. The JITer, in the process of JITing the IL, also substitutes the type parameter.
Bruce Eckel: So it's instantiating at runtime.
Anders Hejlsberg: It's instantiating at runtime, exactly. It's producing native code specifically for that type at the point it is needed. And literally when you say List, you will get a List of int. If the code in the generic type uses an array of T, that becomes an array of int.
But generics don't solve the problem of bad programmers, it just forces them to be more creative.
And no, I don't think that generics make it any easier to read the code
If someone hands you this interface. public interface CrappyInterface { public Map<String,String> getStringMap(); }
and tells you that their class implements it, what good has generics done you. Nothing. It buys you compile time saftey, sure, but what does the interface actually do? That requires documentation, and in the documentation you have to specify what strings the map uses and what they mean. There has yet to be a programming language invented that is truely self-documenting. Until that comes, we will still need good documentation and clue sticks to hit the people who don't document their code correctly.
The speed up from release to release is mostly due to the fact that Apple engineers were thinking ahead when they designed the software. Not because it is less mature.
Basically the hardware is finally catching up to the design of the software.
I'm talking mostly about the gui system here, the command line/ unix stuff is very well optimized for what it does but the GUI has yet to be enhanced.
Aqua, Quartz, Cocoa and the drawing APIs for OSX were designed such that they can be accelerated easier by future graphics cards easier. Remember that when OSX first came out the graphics cards that were in most macs was the Rage Pro or below. Now that much more powerful graphics cards are coming out it's possible to use that power for GUI, but an API was needed to access it. Aqua, Quartz, allow some access and the new CoreVideo allows even more access to the underlying graphics hardware. Windows API doesn't allow access to the graphics hardware in the windowing envoriment, any advanced features you have to use DirectX/OpenGL and those APIs are not designed with a multi-program, windowing enviroment in mind (well OpenGL can handle it better then DirectX ever could on SGI but not so on Windows X86 machines, DirectX is designed for games).
The biggest reason to switch for me is that the web development tools for IE suck compared to mozilla/firefox. DOM inspector, JS debugger, etc. all are awesome tools compared to IE.
The fact that IE lets websites install software on your computer doesn't exactly make my day either. I really hate that.
Jaguar (10.2) has journaled support as well, but you had to enable it as it was not a default option.
Even in 10.3 it's optional, not required, but it's the new default for new disks. Probably because Apple decided that their code was solid enough to put into production. After testing it on 10.2 I agree with them.
But shouldn't X figure it out by itself nad see your mouse has 5 buttons? Windows seems to have no problem at all.
Computers are supposed to make our lives easier.
Yeah, like a 3-D monster that looked like it was rendered using sprites.
;)
All blocky and stuff.
When my buddy first told me about this exciting new RISC idea one of the design goals was each instruction was to take a single instruction cycle to execute. Isn't this completely contrary to a deep pipeline? The Pentium 4 has a 20-stage pipeline IIRC.
Not really, the idea is to make every instruction simple.
Reduced Instruction Set Computer
The side effects of this are that every instruction can be the same length thus simplifying the complex decoding process of a CPU.
x86 can be multiple bytes in length, while all PPC (and most RISC) instructions are all 32 bits long (yes even the PPC-64 instructions).
the simplified insruction set allows for more instructions to be processed in less cycles, but generally you need more instructions to do the same thing. Since it's easier to decode the PPC instructions, it's also easier to pipeline them, easier to do superscalar cores (since less transistors are required to do the same thing).
This doesn't always translate into more performance since RISC computers generally need more memory (the code is less dense) and thus more bandwidth to achieve the same performance sometimes. While some x86 instructions are hard to crack for the decoder, the savings in memory to store the instruction can make it worthwhile to do.
If I am not mistaken the Transmeta was a very wide instruction word. And if I am not mistaken, doesn't that make it the opposite of a RISC?
Yep, but the problem is that you're asking the compiler to extract the parrallelism from the instruction stream, which is not always possible. Usually, there is more thread level parallelism then instruction level parallslism.
But you can't track everything, you can't track everytime a file is played. That's what prevents it.
Not because it's technically impossible ( it's very possible) but because it's too expensive.
Will it get cheaper in time? Yea, but I do not forsee a time when it will be 'cheap enough' to do it.
The major factor to them stopping unlimited reproduction of their content is control.
Ever notice that you cannot go to the store and buy any Disney movie that they released on DVD? Even the big stores that should have like every movie? They only carry the ones that were recently released. With P2P they lose the control of what movies they can put on the shelves and they can't create an artificial demand for movies.
If they were really smart, they would use these new DRM enabled technologies like Window media to give away free music and track how often the songs are getting played. Or is that not possible with WM? I thought that it was.
Unfortunatly they don't see it that way.
They are saying that file sharing actually increased the sales of songs from popular artists. Not decreased.
So if you believe them then file sharing is good.
File sharing may be infringing on copyright and that's probably bad. However, it's much worse for the record companies then for the artists.
They send the laws that you are voting on to you in the mail before hand. At least if you are a registered voter.
They don't give you a copy when you vote that's true.
How many people would read them anyways? Why don't we require there to be television shows that just state the actual text of the laws instead of having people talk about their opinions?
Not only all of the points you raised, but the DC also was much easier to program games for and thus was cheaper to develop games for.
The DC lost because of lack of EA games and the Sony hype machine. They were saying it was some sort of super computer in your house when that was a total lie.
somewhere in the new Doom is a secret level that looks just like the original Doom! Or maybe a monster that is a nod to the original Graphics style of the original Doom.
That was the first and last FPS that I could say I truely loved to play.
Seriously, there is a program on Apple's site that will show any quicktime movie on the terminal. It renders a movie as characters on the terminal. Though if the movie is large then it tends to look bad since it doesn't wrap correctly.
Because the world would be a better place if people would store all their computer files in open formats that do not involve patents and licensing.
Well that's hardly a good reason to switch to OGG.
If you want to switch to OGG, fine go ahead, but expecting other people to switch because of moral reasons is silly.
It's only recently that OGG has stablized the format anyway. I was encoding mp3s back in 1996 when OGG was no where near done.
I guess the fact that I use my laptop as a portable recording studio isn't a reasonable justification? Even the top of the line 17" 1.33 Ghz can't always keep up with my realtime processing needs.
I think that you're taking his comment too far.
He's saying that it's a marketing success that they have convinced the average person that they need lots of power in a laptop. Not that people who want that much power are dumb.
There will always be people who need more power in a portable package like yourself. But they are not the average case. Not everyone wants to use their laptop as a portable recording studio.
You don't need to move anything. Supporting Ogg does not imply dropping support for everything else. ,25%mp3, 25% AAC and 25% WMA is a PITA! I don't like having to use protected AAC files (but I love the iTMS, sad huh). At least my Mac allows me to think that AAC and MP3 are similar.
Then why use it? Having a collection that is like 25% ogg
iRiver and Rio have Ogg players now. Let's hope more will follow.
you continue to hope, I'll listen to music.
have given me another reason to never switch to OGG.
As if there weren't enough.
The pain of moving all my files.
The lack of a good portable player. I like my mp3 portable cd player and mp3 playing dvd player.
The constant explaining to people when I tell them I use OGG ( "OGG what's that? Oh it's music, like MP3.")
If OGG is better then MP3 it's only marginally better.
The only reason that I have any AAC files in my collection is because of iTMS.
You haven't been following the process have you? Go and read the roadmap at least.
I don't think that everyone should have to read every little spec that is written on the site. I goto Mozilla.org every so often. Over the years I've noticed that they tend to link to the best version to download on the main page. Maybe this has changed so that the version you should download is buried deep within their site and hard to figure out which version to use. I don't think so however. Right now they say to use version 1.6 on the main page. The road map says that the blessed/stable version is 1.4 but it's not apparent until you read the road map which is not linked to from the front page. Also, finding that version (1.4) is not easy because of the way that the download page is laid out.
It used to be that when the 'alpha' or not reccomended version of Mozilla comes out that they link to both the unstable and stable versions from the front page.
What, like every 5 minutes? You've got to be kidding me right? That's a very blase attitude. Backups are no guarantee.
If backups can't help you, then nothing can.
1.4 may be the 'blessed' version of the browser, but that doesn't mean that it's actually more stable. Just that it's had MORE testing. There are still bugs in it and since it's not moving forward anymore the bugs will stay there. The only advantage in staying with old versions of software is that more of the bugs are known.
Regardless this whole thread of discussion came from the fact that Malc doesn't want to upgrade to the newest version because he is afraid that it will hose his data. Fair enough, I don't think that anyone can guarentee that upgrading won't toast his data. However, he complained that version 1.4 is slow and bloated... etc.. etc.. Which I think is an unfair comparison because the newest version which was released 9 months later has fixes to some of the problems he's having. Most likely he will be able to upgrade with almost no issues, however if one chooses to use old software then I think that you lose the right to complain about it in the context of new software.
The Mozilla project is changing everyday, and almost always it's getting better.
Where is that written? Really, I can't find it on their site. In fact it a PITA to download any version other then the newest 1.6.
If you just backup your data you won't have to worry about losing it.
Too bad the newest version is 1.6.
It's still bloated, but with every release they remove more and more memory leaks.
Thanks to Structs, there are an unlimited number of them. I dunno, maybe it's better, maybe worse. I don't know for sure.
No one said they're the silver bullet, but as someone else indicated, spend some time deriving classes from CollectionBase and you'll quickly appreciate having strongly typed collections with no heavy lifting on your part.
I never pass around collections outside of my own programming interfaces. Otherwise you have other problems.
Most of them relate to bounds checking and not type checking. Bounds checking which may change at runtime, rather then simple type checking which is rather static. I personally don't like the way that C# is implementing generics at runtime because it's like the C++ way which is to create seperate code for any possible variation, when in fact the code is the same. Doesn't really matter much to me because I don't use C# yet though.
My bad, I should to have said that a Generic List is compiled at runtime into a seperate class by the JIT.
.NET CLR a List is actually compiled into a list that only holds ints (and not objects), it actually has a completly different codepath then a List or List.
Since in
WTF are you talking about? The only way you're going to get an instance of a class that implements IList and only holds ints is to do this ArrayList intList = new ArrayList(); If you just choose ArrayList myList = new ArrayList(); you get a non-specialized version of the IList-supporting class. Me thinks you don't know what you're talking about.
Here's what I'm talking about from the second page of the article, Hejlsberg says that there will be lots of class definitions floating around in memory.
Bill Venners: How do generics work in C#?
Anders Hejlsberg: In C# without generics, you are basically able to say class List {...}. In C# with generics, you can say class List {...}, where T is the type parameter. Within List you can use T as if it were a type. When it actually comes time to create a List object, you say List or List. You construct new types from that List, and it is truly as if your type arguments get substituted for the type parameter. All of the Ts become ints or Customers, you don't have to downcast, and there is strong type checking everywhere.
In the CLR [Common Language Runtime], when you compile List, or any other generic type, it compiles down to IL [Intermediate Language] and metadata just like any normal type. The IL and metadata contains additional information that knows there's a type parameter, of course, but in principle, a generic type compiles just the way that any other type would compile. At runtime, when your application makes its first reference to List, the system looks to see if anyone already asked for List. If not, it feeds into the JIT the IL and metadata for List and the type argument int. The JITer, in the process of JITing the IL, also substitutes the type parameter.
Bruce Eckel: So it's instantiating at runtime.
Anders Hejlsberg: It's instantiating at runtime, exactly. It's producing native code specifically for that type at the point it is needed. And literally when you say List, you will get a List of int. If the code in the generic type uses an array of T, that becomes an array of int.
But generics don't solve the problem of bad programmers, it just forces them to be more creative.
And no, I don't think that generics make it any easier to read the code
If someone hands you this interface.
public interface CrappyInterface {
public Map<String,String> getStringMap();
}
and tells you that their class implements it, what good has generics done you. Nothing. It buys you compile time saftey, sure, but what does the interface actually do? That requires documentation, and in the documentation you have to specify what strings the map uses and what they mean. There has yet to be a programming language invented that is truely self-documenting. Until that comes, we will still need good documentation and clue sticks to hit the people who don't document their code correctly.
Neither do software teams of a hundred people!
Neither Java or C# can solve the problem of having too many people on the same project with bad management.