and you won't wast time futily trying to optimize a critical function in Java that could execute 50 times as fast in C++
I agree with your post entirely, but that point is based on the myth that Java is slow. Java is typically anywhere between 70-110% as fast as C++, depending on your C++ compiler and the program you're writing.
In some pathological cases C++ can be 10x faster than Java (although there are pathological cases in the other direction too).
But C++ is basically never 50x faster than Java on any sort of real code.
Note that when I say "Java", I mean Java running on a modern JIT-based VM like HotSpot (used in Oracle's Java). Obviously interpreted Java VMs are much, much slower - but they aren't used much in practice any more.
C++ is typically much better than Java from a memory usage perspective. It's also a good deal faster (usually around 2:1) on loopy scientific code, both because of array bounds checks in Java and because things like auto-vectorization aren't as well developed in JVMs.
"Performant" is not "a truly cogent alternative syntax delivering readability, expressiveness and some compelling new language features." It's not even a word.
If you believe in descriptive linguistics, "performant" is absolutely a word. And as someone who writes software that actually has to deal with human language, prescriptive linguistics means that my system doesn't work. Which means that I don't get to write cool papers.
In English, no one person or organization has the power to decide what is and is not a valid word. You can either deal with that or you can pretend that complaining will change things. It won't.
It appears that the A330's software works fine. The indications and reversions that the software reported over the data link are consistent with a mechanical failure (possibly caused by freezing) of the Pitot-static system.
Without airspeed data the A330's autopilot and auto throttle disengaged, and the flight control system reverted to a mode known as "Alternate Law" where most of the restrictions are eliminated. We know that this happened because the aircraft reported it over the data link before the crash.
The unfortunate reality is that the reversionary modes on the Airbus flight control system are dangerous because they tend to occur at the worst possible times - when there are multiple sensor or computer failures or when the sensors give readings that are outside the operational limits of the control system. In this situation the flight crew has to react quickly and they are often faced with inadequate, contradictory, or confusing instrument readings.
It is possible to maintain a safe airspeed in an Airbus without the Pitot-static system. The problem is that the pilots need to notice the issue (loss of airspeed data) and react before things get out of hand. It appears that the Air France pilots were unable to do so.
Configuration options are fine if the defaults are sane. The problem that KDE and GNOME both have is that the defaults often aren't sane.
I don't want to have to turn the minimize button back on, or get rid of the awful spatial interface, or download an add-on to get rid of the damn cashew, or change a setting to turn the desktop back into a simple icon screen, or make the clock not huge, or select sane font sizes.
KDE gives you options for everything and then chooses insane defaults. GNOME hides the options in gconf and then chooses insane defaults.
Why can't this shit work out of the box?
And, by the way, Microsoft isn't immune from this either. They've had some real fuck-ups like the search dog in XP and hiding file extensions by default.
Try understanding neural networks without understanding calculus. You can become a code monkey without it, but there are areas of computer science that will be beyond your grasp if you don't understand calculus (and statistics).
There is always going to be the some aspect of CS that's beyond your grasp, no matter what you take.
As someone who just graduated from a 4-year CS program and is about to get an MS in CS, and as someone who is a paid researcher on a major CS research grant, let me say this: CS is much broader than most people think.
Anyone who says that CS is just about the theory of computation has a very narrow view of CS. There's a sort of bullshit 'purity' argument that anything else should be put into another category like programming or computer engineering.
Some topics are easy to categorize. Design methodologies? Software engineering. CPU design? Computer engineering.
But then there are topics that defy classification. Is compiler design a CS topic, or is it CE? It's probably both. Is static verification a CS topic or a SWE topic? Both.
And then there are topics that obviously belong (at least partially) in CS but often have very little to do with computational theory. Computer vision, natural language processing, network theory, and quite a bit more.
If you limit CS to just algorithms and the theory of computation, students get a very limited view of what's out there. I would argue that students should have a good idea of how real computer systems work, how operating systems are designed, how network systems communicate, and how software is designed and built. None of these topics fit neatly and entirely under the "CS" banner, but that doesn't mean that they aren't important and it doesn't mean that there is not legitimate and ongoing research in those fields.
There is no getting away from the fact that most need to be able to write code after graduating from a CS program. Even in the academic community, most positions involve quite a bit of coding. There are a very few positions where academics can focus on the theory all day long. For most projects, though, publishable results depends on producing a working system, and that means writing code.
There are lots of things that make no sense in The Net, but 23.75.345.200 isn't one of them.
Almost all TV shows and movies that use IP addresses either use RFC 1918 private addresses or use invalid addresses that have out-of-range octets.
There's a good reason for this: if you used real IP addresses, someone is likely to get a lot of annoying traffic. How would you like to be the sysadmin for a server that by chance ended up as the terrorist's IP on 24?
This is the same reason why TV shows and movies use invalid phone numbers like 555-1212. In the few cases where they haven't (like the original theatrical release of Bruce Almighty - it was corrected for the DVD) bad things happen.
hate to bring it up, but that's what everyone said *last year* when the iPad 1 launched (at several hundred dollars under the estimates that people were quoting), and that "cheaper, better" Android tablets would waltz in and crush the iPad.
That's not what I or anyone who knew what they were talking about said. Until very recently Google was actively discouraging manufacturers from making Android tablets, so the only devices were those from second-tier manufacturers without support from Google. They're cheap, but of course they suck. The one possible exception was the Galaxy Tab 7.
Now that we have an actual supported Android version for tablets, the market is about to change. I've always said that someone will blink and cut the price.
It looks like Samsung just blinked. If Samsung decides to go low price, other manufacturers will have to follow. Anyone who thinks that the Xoom will succeed at $799 is crazy.
Does anyone else sort of get the feeling that they are losing money on the sales and making it back in app store?
No one who knows anything about electronics manufacturing thinks this. The $499 16GB iPad, by all estimations, costs under $250 to manufacture.
Manufacturers love tablets because they are cheaper to manufacture than netbooks (smartphone-type SOC CPU, smaller battery, etc.) yet they sell for more.
This works because tablets are differentiated products, not commodities. Android is going to change that by doing the same thing it did in the smartphone market. Expect to see 10" Android tablets for $300 or less by the end of the year.
No it isn't. Way to lose the whole point, which is predictability of how many cycles an instruction takes.
Predictability does not exist on any modern CPU because of a variety of factors, including caches, super-scalar execution, out of order execution, and branch prediction.
On a load-store (which is the precise term for what most people call "RISC") architecture, roughly 1 in every 3 instructions is either a branch or a memory instruction. On a CPU with caches and branch prediction you cannot have predictable instruction latencies with memory instructions or branches because by definition caches and branch prediction are probabilistic techniques. If you miss the cache, there is a penalty depending on exactly which caches you miss. Then there's the fact that you throw in cache coherency on shared memory multiprocessor systems and the memory access times can now depend on what *other* cores are doing.
Most people don't understand this because their idea of what a CPU is stops at something like the classic 5-stage RISC pipeline. But the reality is that we need caches, branch prediction, multi-issue, and (in most cases) out-of-order execution to have high-performance. Modern ARM processors (Cortex A9) have all of these features, and even older designs (Cortex A8) have at least multi-issue, branch prediction, and caches.
The problem with VLIW is that it is based on outdated ideas on where the performance problem is. VLIW works great when you have super-intelligent compilers, minimal branching, and never wait for memory. In reality, with few exceptions (like loopy scientific code) you branch a lot and spend a significant fraction of your time waiting for memory (either further caches or main memory). The primary benefit of out-of-order execution is that it hides memory latency, which is something that you can't get with VLIW. It looks great from a throughput standpoint on paper (and, for certain code, it does very well) but in practice on general code it falls flat on its face because you simply cannot keep the pipeline full.
When I was in high school I got a summer job with the district IT department installing computers.
Amusingly, the district IT admins decided to add my account to the domain administrators AD group (which gave us full access to every server in the district, including the ones with the grade databases). They also gave us the GGM key (which opened every lock in the district) and a sheet with the alarm codes to every school.
We didn't do anything, but that's a surprising amount of trust to place in a 16-year-old student with zero work experience. Especially considering that their total knowledge of me came from a 30 minute job interview.
Android apps should operate within a jail that limits anomalous behavior like this - that is, the OS itself should have a form of common sense, and they should make it easy to install useful apps without giving them enough access to overwrite that part of the OS.
This is exactly what Android does. Every app is isolated, and no app has enough access to "overwrite that part of the OS".
Android apps have to declare the permissions they request, users are informed what permissions are requested at install time, and these permissions are enforced at runtime. One of those permissions is the ability to send text messages.
The problem is that people don't pay attention to the permissions.
It's closer than you think because of architectural improvements. The i7-2820QM is around the same performance as an i7-920. So your i7-960 is probably about 20-30% faster.
Apple simply doesn't try to compete in the 2-inch thick, 9-pound, short-battery-life segment of the laptop market. Not everyone carries about weight or size - but some of us do.
You're just making up numbers. The only " 2-inch thick, 9-pound" laptops are 17" beasts designed for gaming, and they don't cost $399. Most of the 399 laptops are in the 5 to 6 lb range and are about 1.25in thick. Most of them have reasonable battery life too, at least 4 hours.
How about this? You can get a ThinkPad T410 for under $1000 with an i5 and 6 hour battery life that weighs less than 5 lbs.
I'm about to buy a T420s, which will cost around $1300 with a Sandy Bridge i5 and a higher resolution display than the 15" MacBook Pro. And it's thinner. And it weighs almost 2lbs less.
There is no getting around the fact that Apple's laptops are very, very expensive.
The build quality / durability argument doesn't hold because top-tier business laptops (ThinkPad T-series, EliteBook, Latitude E-series) now go for under $1000 and most have passed MIL Spec tests for vibration/drops/dust/etc (which the MacBook has not).
The performance argument doesn't hold because PCs and Macs now use the same Intel chipsets and CPUs, so the performance is the same.
The weight/size argument doesn't hold because you can get PCs with the same performance that are as small and light as the MacBook Pro - or in some cases lighter and smaller. The ThinkPad T420s is lighter (by almost a pound) and thinner than the MacBook Pro 13 and it has the same Sandy Bridge dual-core CPUs.
So we're left with the OS, the design, and some other features like a higher-contrast-ratio LCD. If you are willing to pay more for that, that's your decision. But stop trying to pretend that you aren't paying a big premium for those features.
You're buying the PC equivalent of a a Lexus. Yes, it's nicer than the Toyota that costs half as much. It's not twice as nice, though. And trying to pretend that it's somehow justified from a value standpoint is stupid.
Do some people buy MacBook Pros as status symbols? I'm sure they do. But some of us work in pro video. There are people who legitimately need high-end laptops, and a lot of them, because of Apple's strength in the creative pro market, use Macs.
I am willing to bet you that maybe 1 in 10 MacBook Pro users are in the pro photography or video markets. There just aren't that many people who do this for a living relative to the number of Mac buyers.
And I might add that buying a Mac because you need it for professional video editing doesn't make the Mac not overpriced as a piece of hardware. The fact that Final Cut and other Apple tools have become the industry standard in many shops just means that you're being forced to pay more for your hardware so it can run the software you want to use. If your organization feels that the additional cost is worth the value that the Apple software provides, that's a reasonable decision. But it's the same situation that people who buy Quadro cards for CAD are in - you're paying more for compatibility with the tools you want/need to use, not for the hardware.
$2000 is very, very expensive for a laptop. Period. You can get a high-quality, durable PC laptop like a ThinkPad T510 for around $900.
Show me the FOSS attempts that beat -- or even match -- Adobe Photoshop, Adobe Premier, Adobe Flash Pro (not the client), Sony Vegas, MS Visual Studio, MS Excel, MS Project, WinRAR, QuickBooks, TurboTax, Google Search, GMail, Picasa, Facebook, etc. And let's not get started on entire categories where FOSS efforts are minimal or entirely absent: games, navigation, business software (point-of-sale, processing, inventory management, banking, medical, legal, industrial), and let's throw in AI software like Watson while we're at it, if only because it comes from IBM, one of the biggest commercial OSS advocates ever.
Well, I am not going to argue that there are superior FOSS equivalents in every category, because there aren't. But some of the examples you gave aren't particularly good.
MS Visual Studio - Eclipse. I used to be a VS fan but it's hard to argue that Eclipse isn't at least as good as VS.
WinRAR - Seriously? WinRAR? As far as I can tell the only common use for RAR files is pirated content. For other uses 7-zip compresses better and is faster.
Watson - As a grad student working on an NLP-based question answering system, this is particularly laughable. Huge parts of Watson are based on FOSS from outside researchers, and the framework that Watson is built on (UIMA) is an Apache project.
You just don't get the stability, performance, battery life and build quality in a cheap Windows notebook (I've bought tons of them after much research when I worked in IT). Runs for months on end, 80 hour weeks, never shutdown, rarely restarted, basically never gets in my way.
So buy a ThinkPad T410i, which goes for around $800 with an i3 and the 1440x900 screen.
You know what I think of when I think of MacBooks? I think of my manager's 2-year-old MacBook which gets noisy and hot as hell whenever he runs computations on it. Running the same code my ThinkPad stays cool and quiet.
As for subscriptions, the new model is this: Apple gets 30% of subscriptions if Apple is the one that originates the subscription.
That's true but incomplete. The model is that, plus you're required to offer a subscription through Apple at the same price or less than you offer it elsewhere. Which, combined with the fact that Apple's billing is more convenient (since they already have your info) means that nearly all subscriptions from new customers on Apple devices will result in Apple getting 30%.
What this means is that many services will have to decide between losing money on Apple users or being priced out of the market for other customers.
No you may argue that 30% is too high but before Apple's store, some stores charged as much as 40% and the credit card processing fees. You have the choice of not developing for Apple should you choose. There are choices.
I am not aware of stores that take 30% of subscriptions, forbid you from selling elsewhere for a lower price, and require you to offer their subscription model if you want access to their restricted hardware.
Only if the content provider decides to charge two different tiers based on where the subscription originated.
Apple does not allow you to charge a higher price to users who subscribe through the Apple marketplace. That means that everyone ends up paying more to cover Apple's cut.
Anyone who you cannot contact outside of Facebook isn't really a friend, they're an acquaintance. I have, at a minimum, the phone numbers, mailing addresses, email addresses, Skype IDs, and IM names of all of my friends. And I usually have all of the above.
Someone I knew 10 years ago in High School is an acquaintance. I will grant that Facebook is a pretty good way to keep up with these types of people, but to me a friend is someone who I share more with than just a few status updates once in a while.
Most of modern history and nearly all of my life happened before Facebook became popular, and I'm 23. Somehow we managed. Saying that we don't have any other option but to use Facebook is wrong. You can like the service or not, but it is by no means the only communication method nor have I ever encountered anyone who had a Facebook account but no other means of contact.
I wish we lived in a world where Steve Jobs could be left alone and worry about getting better. As much as I hate Apple's arrogance and closed nature, I think we can all recognize the contributions that they have made to our modern world. If it weren't for Apple and Steve Jobs, I'd still be running around with some tiny-screen POS phone rather than the Nexus One. Whether you own Apple products or not, you have probably benefited from their innovations.
But, unfortunately, we don't live in a world where Steve Jobs can be left alone. We live in a world where many, many investors own a part of Apple, and they have a big stake in the success of the company too. Investors have the right to know what Apple knows about whether Steve Jobs will still be CEO in the immediate future. Steve Jobs is an instrumental part of the company, so it is imperative that the company be open and transparent about the status of their CEO and who will succeed him should he need to step down.
The personal details of Steve Jobs' health are none of the investor's business. But knowing whether they may need to find a CEO and who that might be is.
Here's hoping that the rumors are bogus and Steve is on his way to recovery.
The bottom line is that people are buying Android. Apple fanboys like yourself are now in damage control mode by pretending that people don't really choose Android. It's bullshit, it's always been bullshit, and you're going to keep riding it when Android has 90% market share.
Some people choose Android because they can get a phone cheap. Some choose it because they wanted a phone with a physical keyboard (my 16-year-old cousin said that). Some choose it because it integrates well with Google services.
In most countries in the world, the iPhone is on multiple carriers competing with Android devices. And Android devices still outsell the iPhone.
You know what Apple fanboys don't seem to understand? There's more than one type of user. Android devices are being used by people who would never have purchased a smartphone in the past. That's what hardware choice means.
People buying Android because they want a keyboard isn't 'theoretical'. People buying Android because they want a $120 smartphone on Cricket or MetroPCS isn't 'theoretical'. People buying Android because they want a smartphone but need a rugged device isn't 'theoretical'.
Remember that most of the market doesn't own a smartphone at all. Android devices can be so cheap that they can turn these people into smartphone owners too.
So, keep living in this pretend world where everyone other than 'geeks' is secretly in love with the iPhone but won't buy one. It doesn't matter. In the real world, people are choosing Android. It's not even close right now - it's 2:1.
If you're a developer, you can bury your head in the sand and pretend that Android doesn't matter. The users don't buy apps. They're too hard to find. Compatibility testing is too hard.
In the meantime, there are thousands of developers out there who have decided to actually develop for the most popular smartphone platform in the world.
Apple had better be careful. When you're 30% of the smartphone market, developers have to listen to you. When you're 10%, developers start to wonder whether it makes sense to put up with your bullshit.
I've taken apart an iMac a Macbook and an iPod. I'm well aware what's in them.
Screws you can't remove and keyboards that are impossible to replace?
Maybe it's just me, but I like laptops that don't have sharp edges on the front, that don't burn the crap out of your legs, that aren't noisy under load, that can be serviced without removing a ton of screws, that drain liquids out the bottom rather than onto the expensive system board, and that let me replace the battery.
That's what Apple engineering is to me. Pretty crap that doesn't actually live up to the hype in the real world. I've owned two Macs, a MacBook Pro and a MacBook Air (11.6"). I wanted very much to love them both, but when you get right down to it I prefer working on my ThinkPad. Yes, it's ugly as shit. But it's easier to type on, easier to mouse on, more flexible in terms of I/O and expansion, quieter, cooler, less reflective, and cheaper.
So, no, Macs are not the same as everything else. They're too clever by half, designed for a world that values how a product looks over how it performs.
If you want your app to run on everything from $120 Huawei Cricket phones to the Motorola Atrix, Android is your choice.
If you want your app to be on the most popular smartphone platform, Android is your choice.
If you decide to forgo being on the platform your customers use because you can't handle compatibility testing, then your customers will decide to become customers of another developer who is less lazy.
Writing software is hard work. We do not live in a homogeneous world and you cannot expect a single device model to meet everyone's needs. You can accept that and try to work within that framework (with the understanding that it's not as bad as the pundits say - Google has done a lot of work to abstract away the differences between devices). Or you can decide that it's not worth your time and money and develop for a smaller fragment of the market.
You may wish that we lived in a world where everyone uses the same hardware. We don't. Android gives you the ability to target an incredible range of devices at the cost of additional compatibility testing and workarounds. You may not be willing to accept that compromise, but your competitors almost certainly are.
It's incredibly cheap to build infrastructure when labor is practically free, when the government has the power to unilaterally annex private land (without a lengthy court battle), and when you don't have to do pesky things like creating an EIS.
Since the 1970s, the process for infrastructure in the US has dramatically changed. In the end it probably means we end up with better (more ecological, less intrusive to residents, etc.) projects - but it also means that it's a lot more expensive to build things.
Try to get a new major airport built in the US today. The only one in the last 40 years is Denver.
The days of "screw the residents and the environment and the workers and just get the project done" in the US are over.
I agree with your post entirely, but that point is based on the myth that Java is slow. Java is typically anywhere between 70-110% as fast as C++, depending on your C++ compiler and the program you're writing.
In some pathological cases C++ can be 10x faster than Java (although there are pathological cases in the other direction too).
But C++ is basically never 50x faster than Java on any sort of real code.
Note that when I say "Java", I mean Java running on a modern JIT-based VM like HotSpot (used in Oracle's Java). Obviously interpreted Java VMs are much, much slower - but they aren't used much in practice any more.
C++ is typically much better than Java from a memory usage perspective. It's also a good deal faster (usually around 2:1) on loopy scientific code, both because of array bounds checks in Java and because things like auto-vectorization aren't as well developed in JVMs.
If you believe in descriptive linguistics, "performant" is absolutely a word. And as someone who writes software that actually has to deal with human language, prescriptive linguistics means that my system doesn't work. Which means that I don't get to write cool papers.
In English, no one person or organization has the power to decide what is and is not a valid word. You can either deal with that or you can pretend that complaining will change things. It won't.
It appears that the A330's software works fine. The indications and reversions that the software reported over the data link are consistent with a mechanical failure (possibly caused by freezing) of the Pitot-static system.
Without airspeed data the A330's autopilot and auto throttle disengaged, and the flight control system reverted to a mode known as "Alternate Law" where most of the restrictions are eliminated. We know that this happened because the aircraft reported it over the data link before the crash.
The unfortunate reality is that the reversionary modes on the Airbus flight control system are dangerous because they tend to occur at the worst possible times - when there are multiple sensor or computer failures or when the sensors give readings that are outside the operational limits of the control system. In this situation the flight crew has to react quickly and they are often faced with inadequate, contradictory, or confusing instrument readings.
It is possible to maintain a safe airspeed in an Airbus without the Pitot-static system. The problem is that the pilots need to notice the issue (loss of airspeed data) and react before things get out of hand. It appears that the Air France pilots were unable to do so.
What about someone who doesn't want to?
Configuration options are fine if the defaults are sane. The problem that KDE and GNOME both have is that the defaults often aren't sane.
I don't want to have to turn the minimize button back on, or get rid of the awful spatial interface, or download an add-on to get rid of the damn cashew, or change a setting to turn the desktop back into a simple icon screen, or make the clock not huge, or select sane font sizes.
KDE gives you options for everything and then chooses insane defaults. GNOME hides the options in gconf and then chooses insane defaults.
Why can't this shit work out of the box?
And, by the way, Microsoft isn't immune from this either. They've had some real fuck-ups like the search dog in XP and hiding file extensions by default.
There is always going to be the some aspect of CS that's beyond your grasp, no matter what you take.
As someone who just graduated from a 4-year CS program and is about to get an MS in CS, and as someone who is a paid researcher on a major CS research grant, let me say this: CS is much broader than most people think.
Anyone who says that CS is just about the theory of computation has a very narrow view of CS. There's a sort of bullshit 'purity' argument that anything else should be put into another category like programming or computer engineering.
Some topics are easy to categorize. Design methodologies? Software engineering. CPU design? Computer engineering.
But then there are topics that defy classification. Is compiler design a CS topic, or is it CE? It's probably both. Is static verification a CS topic or a SWE topic? Both.
And then there are topics that obviously belong (at least partially) in CS but often have very little to do with computational theory. Computer vision, natural language processing, network theory, and quite a bit more.
If you limit CS to just algorithms and the theory of computation, students get a very limited view of what's out there. I would argue that students should have a good idea of how real computer systems work, how operating systems are designed, how network systems communicate, and how software is designed and built. None of these topics fit neatly and entirely under the "CS" banner, but that doesn't mean that they aren't important and it doesn't mean that there is not legitimate and ongoing research in those fields.
There is no getting away from the fact that most need to be able to write code after graduating from a CS program. Even in the academic community, most positions involve quite a bit of coding. There are a very few positions where academics can focus on the theory all day long. For most projects, though, publishable results depends on producing a working system, and that means writing code.
There are lots of things that make no sense in The Net, but 23.75.345.200 isn't one of them.
Almost all TV shows and movies that use IP addresses either use RFC 1918 private addresses or use invalid addresses that have out-of-range octets.
There's a good reason for this: if you used real IP addresses, someone is likely to get a lot of annoying traffic. How would you like to be the sysadmin for a server that by chance ended up as the terrorist's IP on 24?
This is the same reason why TV shows and movies use invalid phone numbers like 555-1212. In the few cases where they haven't (like the original theatrical release of Bruce Almighty - it was corrected for the DVD) bad things happen.
That's not what I or anyone who knew what they were talking about said. Until very recently Google was actively discouraging manufacturers from making Android tablets, so the only devices were those from second-tier manufacturers without support from Google. They're cheap, but of course they suck. The one possible exception was the Galaxy Tab 7.
Now that we have an actual supported Android version for tablets, the market is about to change. I've always said that someone will blink and cut the price.
It looks like Samsung just blinked. If Samsung decides to go low price, other manufacturers will have to follow. Anyone who thinks that the Xoom will succeed at $799 is crazy.
No one who knows anything about electronics manufacturing thinks this. The $499 16GB iPad, by all estimations, costs under $250 to manufacture.
Manufacturers love tablets because they are cheaper to manufacture than netbooks (smartphone-type SOC CPU, smaller battery, etc.) yet they sell for more.
This works because tablets are differentiated products, not commodities. Android is going to change that by doing the same thing it did in the smartphone market. Expect to see 10" Android tablets for $300 or less by the end of the year.
Predictability does not exist on any modern CPU because of a variety of factors, including caches, super-scalar execution, out of order execution, and branch prediction.
On a load-store (which is the precise term for what most people call "RISC") architecture, roughly 1 in every 3 instructions is either a branch or a memory instruction. On a CPU with caches and branch prediction you cannot have predictable instruction latencies with memory instructions or branches because by definition caches and branch prediction are probabilistic techniques. If you miss the cache, there is a penalty depending on exactly which caches you miss. Then there's the fact that you throw in cache coherency on shared memory multiprocessor systems and the memory access times can now depend on what *other* cores are doing.
Most people don't understand this because their idea of what a CPU is stops at something like the classic 5-stage RISC pipeline. But the reality is that we need caches, branch prediction, multi-issue, and (in most cases) out-of-order execution to have high-performance. Modern ARM processors (Cortex A9) have all of these features, and even older designs (Cortex A8) have at least multi-issue, branch prediction, and caches.
The problem with VLIW is that it is based on outdated ideas on where the performance problem is. VLIW works great when you have super-intelligent compilers, minimal branching, and never wait for memory. In reality, with few exceptions (like loopy scientific code) you branch a lot and spend a significant fraction of your time waiting for memory (either further caches or main memory). The primary benefit of out-of-order execution is that it hides memory latency, which is something that you can't get with VLIW. It looks great from a throughput standpoint on paper (and, for certain code, it does very well) but in practice on general code it falls flat on its face because you simply cannot keep the pipeline full.
Gordon Moore's paper disagrees. He directly addresses the fact that increased density leads to lower per-component costs.
When I was in high school I got a summer job with the district IT department installing computers.
Amusingly, the district IT admins decided to add my account to the domain administrators AD group (which gave us full access to every server in the district, including the ones with the grade databases). They also gave us the GGM key (which opened every lock in the district) and a sheet with the alarm codes to every school.
We didn't do anything, but that's a surprising amount of trust to place in a 16-year-old student with zero work experience. Especially considering that their total knowledge of me came from a 30 minute job interview.
This is exactly what Android does. Every app is isolated, and no app has enough access to "overwrite that part of the OS".
Android apps have to declare the permissions they request, users are informed what permissions are requested at install time, and these permissions are enforced at runtime. One of those permissions is the ability to send text messages.
The problem is that people don't pay attention to the permissions.
It's closer than you think because of architectural improvements. The i7-2820QM is around the same performance as an i7-920. So your i7-960 is probably about 20-30% faster.
You're just making up numbers. The only " 2-inch thick, 9-pound" laptops are 17" beasts designed for gaming, and they don't cost $399. Most of the 399 laptops are in the 5 to 6 lb range and are about 1.25in thick. Most of them have reasonable battery life too, at least 4 hours.
How about this? You can get a ThinkPad T410 for under $1000 with an i5 and 6 hour battery life that weighs less than 5 lbs.
I'm about to buy a T420s, which will cost around $1300 with a Sandy Bridge i5 and a higher resolution display than the 15" MacBook Pro. And it's thinner. And it weighs almost 2lbs less.
There is no getting around the fact that Apple's laptops are very, very expensive.
The build quality / durability argument doesn't hold because top-tier business laptops (ThinkPad T-series, EliteBook, Latitude E-series) now go for under $1000 and most have passed MIL Spec tests for vibration/drops/dust/etc (which the MacBook has not).
The performance argument doesn't hold because PCs and Macs now use the same Intel chipsets and CPUs, so the performance is the same.
The weight/size argument doesn't hold because you can get PCs with the same performance that are as small and light as the MacBook Pro - or in some cases lighter and smaller. The ThinkPad T420s is lighter (by almost a pound) and thinner than the MacBook Pro 13 and it has the same Sandy Bridge dual-core CPUs.
So we're left with the OS, the design, and some other features like a higher-contrast-ratio LCD. If you are willing to pay more for that, that's your decision. But stop trying to pretend that you aren't paying a big premium for those features.
You're buying the PC equivalent of a a Lexus. Yes, it's nicer than the Toyota that costs half as much. It's not twice as nice, though. And trying to pretend that it's somehow justified from a value standpoint is stupid.
I am willing to bet you that maybe 1 in 10 MacBook Pro users are in the pro photography or video markets. There just aren't that many people who do this for a living relative to the number of Mac buyers.
And I might add that buying a Mac because you need it for professional video editing doesn't make the Mac not overpriced as a piece of hardware. The fact that Final Cut and other Apple tools have become the industry standard in many shops just means that you're being forced to pay more for your hardware so it can run the software you want to use. If your organization feels that the additional cost is worth the value that the Apple software provides, that's a reasonable decision. But it's the same situation that people who buy Quadro cards for CAD are in - you're paying more for compatibility with the tools you want/need to use, not for the hardware.
$2000 is very, very expensive for a laptop. Period. You can get a high-quality, durable PC laptop like a ThinkPad T510 for around $900.
Well, I am not going to argue that there are superior FOSS equivalents in every category, because there aren't. But some of the examples you gave aren't particularly good.
MS Visual Studio - Eclipse. I used to be a VS fan but it's hard to argue that Eclipse isn't at least as good as VS.
WinRAR - Seriously? WinRAR? As far as I can tell the only common use for RAR files is pirated content. For other uses 7-zip compresses better and is faster.
Watson - As a grad student working on an NLP-based question answering system, this is particularly laughable. Huge parts of Watson are based on FOSS from outside researchers, and the framework that Watson is built on (UIMA) is an Apache project.
So buy a ThinkPad T410i, which goes for around $800 with an i3 and the 1440x900 screen.
You know what I think of when I think of MacBooks? I think of my manager's 2-year-old MacBook which gets noisy and hot as hell whenever he runs computations on it. Running the same code my ThinkPad stays cool and quiet.
Build quality indeed.
That's true but incomplete. The model is that, plus you're required to offer a subscription through Apple at the same price or less than you offer it elsewhere. Which, combined with the fact that Apple's billing is more convenient (since they already have your info) means that nearly all subscriptions from new customers on Apple devices will result in Apple getting 30%.
What this means is that many services will have to decide between losing money on Apple users or being priced out of the market for other customers.
I am not aware of stores that take 30% of subscriptions, forbid you from selling elsewhere for a lower price, and require you to offer their subscription model if you want access to their restricted hardware.
Apple does not allow you to charge a higher price to users who subscribe through the Apple marketplace. That means that everyone ends up paying more to cover Apple's cut.
Anyone who you cannot contact outside of Facebook isn't really a friend, they're an acquaintance. I have, at a minimum, the phone numbers, mailing addresses, email addresses, Skype IDs, and IM names of all of my friends. And I usually have all of the above.
Someone I knew 10 years ago in High School is an acquaintance. I will grant that Facebook is a pretty good way to keep up with these types of people, but to me a friend is someone who I share more with than just a few status updates once in a while.
Most of modern history and nearly all of my life happened before Facebook became popular, and I'm 23. Somehow we managed. Saying that we don't have any other option but to use Facebook is wrong. You can like the service or not, but it is by no means the only communication method nor have I ever encountered anyone who had a Facebook account but no other means of contact.
I wish we lived in a world where Steve Jobs could be left alone and worry about getting better. As much as I hate Apple's arrogance and closed nature, I think we can all recognize the contributions that they have made to our modern world. If it weren't for Apple and Steve Jobs, I'd still be running around with some tiny-screen POS phone rather than the Nexus One. Whether you own Apple products or not, you have probably benefited from their innovations.
But, unfortunately, we don't live in a world where Steve Jobs can be left alone. We live in a world where many, many investors own a part of Apple, and they have a big stake in the success of the company too. Investors have the right to know what Apple knows about whether Steve Jobs will still be CEO in the immediate future. Steve Jobs is an instrumental part of the company, so it is imperative that the company be open and transparent about the status of their CEO and who will succeed him should he need to step down.
The personal details of Steve Jobs' health are none of the investor's business. But knowing whether they may need to find a CEO and who that might be is.
Here's hoping that the rumors are bogus and Steve is on his way to recovery.
The bottom line is that people are buying Android. Apple fanboys like yourself are now in damage control mode by pretending that people don't really choose Android. It's bullshit, it's always been bullshit, and you're going to keep riding it when Android has 90% market share.
Some people choose Android because they can get a phone cheap. Some choose it because they wanted a phone with a physical keyboard (my 16-year-old cousin said that). Some choose it because it integrates well with Google services.
In most countries in the world, the iPhone is on multiple carriers competing with Android devices. And Android devices still outsell the iPhone.
You know what Apple fanboys don't seem to understand? There's more than one type of user. Android devices are being used by people who would never have purchased a smartphone in the past. That's what hardware choice means.
People buying Android because they want a keyboard isn't 'theoretical'. People buying Android because they want a $120 smartphone on Cricket or MetroPCS isn't 'theoretical'. People buying Android because they want a smartphone but need a rugged device isn't 'theoretical'.
Remember that most of the market doesn't own a smartphone at all. Android devices can be so cheap that they can turn these people into smartphone owners too.
So, keep living in this pretend world where everyone other than 'geeks' is secretly in love with the iPhone but won't buy one. It doesn't matter. In the real world, people are choosing Android. It's not even close right now - it's 2:1.
If you're a developer, you can bury your head in the sand and pretend that Android doesn't matter. The users don't buy apps. They're too hard to find. Compatibility testing is too hard.
In the meantime, there are thousands of developers out there who have decided to actually develop for the most popular smartphone platform in the world.
Apple had better be careful. When you're 30% of the smartphone market, developers have to listen to you. When you're 10%, developers start to wonder whether it makes sense to put up with your bullshit.
Screws you can't remove and keyboards that are impossible to replace?
Maybe it's just me, but I like laptops that don't have sharp edges on the front, that don't burn the crap out of your legs, that aren't noisy under load, that can be serviced without removing a ton of screws, that drain liquids out the bottom rather than onto the expensive system board, and that let me replace the battery.
That's what Apple engineering is to me. Pretty crap that doesn't actually live up to the hype in the real world. I've owned two Macs, a MacBook Pro and a MacBook Air (11.6"). I wanted very much to love them both, but when you get right down to it I prefer working on my ThinkPad. Yes, it's ugly as shit. But it's easier to type on, easier to mouse on, more flexible in terms of I/O and expansion, quieter, cooler, less reflective, and cheaper.
So, no, Macs are not the same as everything else. They're too clever by half, designed for a world that values how a product looks over how it performs.
You could have fooled me. There's no shortage of developers working on Android software.
If you want your app to run on everything from $120 Huawei Cricket phones to the Motorola Atrix, Android is your choice.
If you want your app to be on the most popular smartphone platform, Android is your choice.
If you decide to forgo being on the platform your customers use because you can't handle compatibility testing, then your customers will decide to become customers of another developer who is less lazy.
Writing software is hard work. We do not live in a homogeneous world and you cannot expect a single device model to meet everyone's needs. You can accept that and try to work within that framework (with the understanding that it's not as bad as the pundits say - Google has done a lot of work to abstract away the differences between devices). Or you can decide that it's not worth your time and money and develop for a smaller fragment of the market.
You may wish that we lived in a world where everyone uses the same hardware. We don't. Android gives you the ability to target an incredible range of devices at the cost of additional compatibility testing and workarounds. You may not be willing to accept that compromise, but your competitors almost certainly are.
Except that you can't even call him American. I'm not sure why everyone gets this wrong.
There's only one country named "America". And there is no other good demonym for US nationals that isn't either awkward or non-standard.
No one would call someone from the Republic of Ireland "British", despite the fact that they are technically a resident of the British Isles.
When used to refer to nationality, "American" is both standard and unambiguous. Only people on Slashdot seem to have trouble with this.
It's incredibly cheap to build infrastructure when labor is practically free, when the government has the power to unilaterally annex private land (without a lengthy court battle), and when you don't have to do pesky things like creating an EIS.
Since the 1970s, the process for infrastructure in the US has dramatically changed. In the end it probably means we end up with better (more ecological, less intrusive to residents, etc.) projects - but it also means that it's a lot more expensive to build things.
Try to get a new major airport built in the US today. The only one in the last 40 years is Denver.
The days of "screw the residents and the environment and the workers and just get the project done" in the US are over.