What makes you think the source code will be publically available outside the government (and perhaps select "partners" who will help them "understand" the source code?)
Some time ago, rumour had it that Microsoft had allocated ~300 of its best engineers to work on Midori, a product based on its Singularity research OS.
Singularity, for those not familiar with it, is a highly impressive piece of work. It's not actually Windows at all, in fact it bears absolutely no resemblence to any existing OS architecturally and didn't even support graphics when we were last able to look at it. But it was a ground-up fresh new OS that had the following characteristics: entirely.NET based (with extensions), extremely robust and extremely high performance.
In particular, Singularity is able to go about 30% faster on I/O intensive apps than traditional server operating systems like Linux and Windows because it doesn't use hardware process isolation, but rather does everything in software. Hmmm, an OS with no graphics support, no applications, but which can run.NET applications far faster than the competition. Sounds basically ideal for a server OS or "cloud windows" if you ask me.
How much methane would need to be released to create mixtures of between 5 and 15%? That's a hell of a lot of methane. Would the air even still be easily breathable at those concentrations?
Yeah, great. Only if you define "correctness" with some useless definition the customer doesn't care about.
Here's a trivial problem that I came across at work a few weeks ago. The codebase has a library of string functions, one of them has a contract like "search string A for substring B within N characters". The original implementation did not stop at a null terminator. At some point the function was changed so it would stop at a null. This broke some piece of code that used that function somewhere else.
That function was unit tested. The change still broke things because:
The change which modified the semantics of the function also changed the unit test to reflect the new "correct" behavior.
The code which relied on the function was also unit tested, but the unit tests didn't test the particular edge case that would fail when this basic function did something different. Nonetheless it would occasionally occur in production.
Result - fail. Arguably if the reliant code had been better unit tested, eventually somebody would have noticed the problem. However, that's rather like saying "if only nobody wrote bugs, software would be much better". Actually testing every possible unusual boundary condition in your code is very hard. Code coverage metrics can't find all the corners.
But that's not their fault. How many vocations can your average teenager try before being asked to choose a degree? Probably zero, unless you count sportsman as a profession. The education system just isn't set up to let people try different things and find out what makes them tick. If you aren't turned on by pure math or poetry or French or geography, then you leave none the wiser never knowing that perhaps architecture is your thing, or software development, or hell perhaps you'd enjoy public transit planning. I think letting high school students try a variety of different jobs would be a good step forward, but don't anticipate it happening anytime soon.
Anyway. Don't get too uppity. Getting a job doing your passion is great, don't get me wrong, I get paid to play with high performance clusters all day and it's fun. But there's a downside to that. It's been two years last week since I started full time work in the software business, and it's been two years last week since I lost my main hobby. When I've been fixing or programming computers all day I just don't feel like doing more of it when I get home, or at the weekends.
I got lucky in finding I enjoyed computers at an early age, but now finding a replacement passion for my spare time turned out to be not so easy. It's not a bad life - I go out a lot in the evenings, and the times I'm not partying or hanging out with friends I waste playing video games or reading Slashdot:) But it's missing something that I'd still have, if I worked in an area that wasn't my passion.
Wow. You have a pretty rosy idea about what university is like.
I went (not in the US). It wasn't anything like that. I mean, don't get me wrong, I had some fun with my friends there, but it there was no uplifting atmosphere of intellectual curiousity. And I'm afraid nobody had time to "explore new ideas" with me, we were all busting our asses to jump through enough arbitrary hoops to get our degrees. The ones who weren't that busy were doing arts degrees and spent all their spare time socialising or doing college sports. Intellectual curiousity in a modern university is minimal in my experience.
Knowing what I know now, I'd definitely have preferred to go to either no higher-ed school at all, or to a much cheaper community college. Unfortunately many employers and nearly all governments require them if you want to get a job/emigrate. There's no particular reason for this other than discriminating against poor people, but there you go.
No one has identified a single email from her yahoo account that was of an official nature. Yes, there were plenty of emails to officials
Eh? She's an official. She's emailing other officials. The emails are about state business. How can that possibly be considered not of official nature?
Of course it does, that's why Debian don't include proprietary software in their default repositories or apt sources. They don't want you to install proprietary software so they'll not make it easy for you and they'll definitely not make it easy for the developers. Ultimately it's just different implementations, the effect is the same as DRM - if you want to go against the flow of your OS vendor you have to jump through awkward technical hoops and put up with crap that you shouldn't have to, because your supplier wants to impose restrictions on what kind of software you can run.
You decided to run it or not to run it, same as any other program. You're just as in control as you ever were.
Hmmm, my first -1 post for several years, got for not toeing the party line about trusted computing. Of course there's no adjective because what I wrote isn't actually flamebait or a troll, it's just facts. For shame moderators, for shame.
No it wouldn't. Please don't spread sensationalist crap about things you clearly don't understand. Trusted computing as being implemented in PCs does not allow anybody to control what software you run on your computer. Period. End of story. What it does do is let you run software on some arbitrary system and get that software into a provably secure state, regardless of whether the host OS is infected with malware, rootkits, and so on. Completely different.
If you want to know what a general purpose PC which can only reliably run software blessed by a central authority looks like, go install Debian, then try and install a program that isn't included in the repositories. It'll probably make jailbreaking an iPhone look like a stroll through a grassy meadow.
Yes exactly. Real world performance is often where these sort of very academic languages fall down. The other big problem with lazyness (which is what gives you these infinite data structures) is that it can result in very unintuitive space complexity for common algorithms, because the calculations are suspended until needed. The result is enormous RAM blowup that unless you happen to be a quite advanced programmer is very difficult to predict or understand.
There's a third option - house prices had entered an unsustainable speculative bubble. Contrary to what you suggest, a lot of normal non-wizards did see a housing bubble coming. There was talk in the mainstream media of a house price bubble three years ago in the UK.
Now here's the thing. About two and a half years ago my parents sat down with me and said son, you just got your first job. Now it's time to think about buying a house. I seriously couldn't believe it. WTF? I haven't even paid off my student debt yet and they want me to take out a loan many times the size?
Yes! they said. Everybody sensible buys a house. It's just what people do! Why is that, I asked? Because house prices always rise, and you can always sell it, so it's guaranteed to make you money. I said uh huh. That sounds real interesting. Weren't you the same people who taught me as a little kid that money doesn't grow on trees? That schemes where you get rich quick are scams designed to play into peoples dreams and mislead them? But houses are magic and different?
Bah. Knew a religion when I saw one, that's for sure, and home ownership in the UK has been a religion for longer than I've been alive. 18 months later and suddenly it's all house price crisis. Negative equity is everywhere. Foreclosures are everywhere. A whole lotta people that were playing the system got burned. I'm sure it'll recover in time but any system based on passing on ever larger debts will eventually stop, like a horrible game of pass the parcel.
The fact is, if people see their dream of homeownership vanishing, because prices are skyrocketing, and they are presented with an opportunity to own a home before it is too late, they are going to take it.
Home ownership isn't a requirement of living. The very idea that normal people owned their own homes is a modern one. People who are willing to do anything regardless of whether it makes sense to "live the dream" and own a house aren't rational anymore. There are a really tiny number of situations where doing completely irrational stuff tends to be forgiven or at least understood, like for love. But a house isn't one of them - it's just a pile of bricks.
Also, a difference between 'dumb' and 'uneducated about financial matters.' Is there a class on ARMS in high school people can take? I don't think those are covered in home ec.
No, you're mixing two separate things up. If you don't understand ARMs that doesn't make you dumb. But if you then buy one and you don't understand them, that definitely makes you dumb. What the hell?! A mortgage is a huge commitment. You're going to be paying it back for a long, long time. If somebody commits to a huge thing, turns around and says "Oops! I guess I can't deal with this after all. It was scary and my brain shut down" then I don't see why they are deserving of much sympathy.
So people have to trust the experts they hire to do right by them. When those experts say, "Hey, you can own a house now and save that money you were putting into rent. Don't read the fine print, it's boring and it doesn't matter," people trust those experts. And they were misled.
No, they were stupid. The risks involved with large debts are enormous. This is way different than being misled by a second hand car salesman and buying a SUV with poor mileage. This is a vast sum of money. If there's one time in your life you read the boring fine print and think about it really hard, it's when taking out a gigantic loan.
Finally, I know you probably agree with me but I have to point it out: dumb people do not DESERVE to be taken advantage of by smart people. Social Darwinism is an inherently fascist, evil, and anti-social philosophy that destroys societies and people's lives. Don't subscribe to it. Society works because of trust, and social Darwinism destroys that trust.
Now this I do agree with. However trust can cross a line into blindness. Somebody who does whatever they're told without considering the consequences eventually crosses the line from being a poor innocent misled person into something else - a liability to society.
Well, like a lot of Windows apps Chrome does some, uh, interesting things that you might not expect a them to do:) For instance it does all the multi-process and security stuff. But then it also does what a lot of Windows programs do these days and replace the standard window management stuff as well. It relies on parts of Internet Explorer as well (like the HTTP library).
If you want an example of the sort of fun they had making things work, the bug this patch fixes was "Chrome URL bar has a black background" yet the fix is to the low level assembly generated by Wines build process. That's because Chrome shims BeginPaint/EndPaint by patching the in-memory system DLL headers, so it can muck about with the Windows richedit control internals and the Chrome IAT patcher didn't support Borland style imports.
For a program that has such complicated interactions with the OS, and is so heavily reliant on it for functionality, 11 days is remarkably good actually. A good sign of Wines increasing maturity.
Um, why for cripes sake? I know a guy who voted for Bush because he was a priest and abortion as an issue overrode anything else, but that's an extreme case.
I admire your gusto - nobody should take away from this thread "ideas are worthless". Keep em coming. Unfortunately I will now tell you why your idea won't work. If you were a practising programmer, you would know this stuff already.
For example, why don't we have a root/user distinction on email? you could set it up so the user account could read the mail but not reply or delete it and the root account had full "regular" control - then if you wanted to view mail using an unsecured computer that would be fine; even if someone did steal your password they could at best be an annoyance to you (so long as you don't have loads of passwords stored there). It would make it so much easier to check email whilst you were staying with family who think an unsecured copy of XP is "good enough".
This won't work because:
If you can read somebody elses email, you can reply to it convincingly. Remember that authentication in SMTP is very weak - if the users provider has set up SPF/DomainKeys then a fraudulently sent mail might get a phishing warning or spam filtered by the receivers software. Or it might not. But you can't rely on that. Insecured read-only access to email would still let anyone send mail that appears to come from you, but now including details of all the previous conversations you had with them. So the only thing it'd protect against is "delete".
Most websites assume your email account is secure and will mail password reset links to it. You only need to have read-only access to use them.
I guess a lot of people who use email care about replying to it - any conversation that involves humans usually requires it:) So even if you could enforce your no-reply rule, it'd dramatically cut the usefulness of the system.
There are better ways to achieve what you want (secure email checking for your parents house). For instance you could just use a mobile phone instead of a computer. Or you could take a laptop you trust. Or if you want a technological solution, you could build a solution on top of trusted computing. The hardware for this is only starting to ship now, so it's a long way from being in your parents place, but in theory it allows you to go from a system in an arbitrary state (rootkitted, ridden with malware etc) to running provably secure software. The technology is very complicated but it'd provide what you want, without needing to compromise on emails features or making people think they are secure when they are not.
He's right though. Ideas are cheap. Anyone can have them and so everybody does. I'm sure quite a few monkey-men 40,000 years ago thought "hey why don't we stop flinging crap at each other in trees and walk upright on the ground?" but then went back to crap-flinging because going down amongst the non-tree-climbing predators was too scary.
I think this misconception that ideas are inherently valuable comes from the high school system. In school all children do more or less the same amount of work - the amount needed to pass. Obviously that's a broad generalisation, there is some scope to differentiate yourself by amount of work. But generally nobody will respect you for it, except maybe your parents. Your peers certainly won't. And there certainly isn't as much scope for differentiation as there is in real life.
The result of this is that children learn to differentiate themselves by what they do rather than how much they do. Producing a piece of art or an essay which has a novel take on the assignment, or an elegant solution to a maths problem - this is valued and will win the pupil high praise. Producing something merely twice as long as somebody elses submission, even if the quality is not compromised and thus value is doubled, typically won't.
The life lesson taken away is clear - novel ideas are valuable and should be appreciated. They should win praise and, as people mature financially, be rewarded with money.
But this is the inverse of reality, in which the thing people are ultimately judged by is the work they produce, and often the major differentiator is the amount of effort involved. If I'd written a 2 page essay describing a revolutionary platform game in which the player bends time I'd indeed win some praise for this, but it probably wouldn't get me anywhere. But if I actually built said game and turned it from abstract idea into concrete product, now that's the stuff reputations (and hopefully bank balances) are made of.
All this is kinda off topic though, as the OP didn't imply he (she?) was trying to make money off being an ideas guy. He even said open sourcing it was an option. But I too have been approached with "great ideas" before.... I tell you what I want, you make it actually happen, and we'll split the proceeds. These people are asking to have their idea "stolen" and then feel stiffed when somebody else goes onto become big on the backs of their idea. I've never actually done that but it seems some of the problems surrounding Facebook boil down to this.
There's also the problem that some less respectable hardware manufacturers cheat to pass certification, for instance by having magical registry keys that put it into "fast but unsafe" mode which certification runs without. WHQL is an automated process and isn't hard to defraud.
But hey, at least it exists. The equivalent in the Linux world is "submit your driver, hope the API you used hasn't been completely replaced during the period you were writing it, hope that somebody can be arsed reviewing it, hope that it gets incorporated into the base kernel, then wait 12 months whilst your users upgrade before they can buy your hardware". I'll take WHQL over that.
I do understand JavaScript, for what it's worth. By "declare types up front" I mean declare them in things like function prototypes and variable declarations. If I look at some random JavaScript function, it can be very hard to figure out things about it because there's no type information. If I look at some random function in (well written) C++ then I do at least have something to work with - I can find the relevant declarations in the codebase quite easily and understand what the functions inputs and outputs are.
I agree with you that Javas type system is pretty worthless for finding bugs, and is so limited that it results in painful verbosity and lots of workarounds. That's a problem with Java though, not static typing in general. You can even have static typing without lots of type declarations in a language that can figure that stuff out automatically (eg Haskell) but most "production" languages limit the amount of type auto-discovery they do to function scope, again because otherwise it can get hard to figure out what code does.
I also agree with you that DOM interaction is too slow in modern browsers, and that if JavaScript became magically very fast that'd still be an issue. But JavaScript is also quite slow, and fixing that is, today, a research problem. I disagree that accessing native libraries is the only way to get good performance in "any language" - Java and C# provide native interfaces for operating system integration and legacy code support. Modern compilers (jit or otherwise) for Java and C# are very good and can produce code just as performant as the equivalent C, although sometimes with larger memory overhead (due to the design of the languages, not the compilers).
Oh sure, I would never argue that Java has a good type system. Even C++ has a better type system than Java. More exotic languages like Haskell or even Epigram show some of the things you can do with advanced type systems, but as a good middle ground I'd like to be using D.
The slowness of dynamically typed languages is (today) pretty fundamental. Static typing allows you to make a lot of decisions at compile time, but for a dynamic language all those decisions have to be made on the fly because almost any assumption you make can be invalidated at any point. There have been some interesting research projects into solving this problem, for instance Psyco for Python, but they usually trade off memory against CPU time. In other words you still pay the piper, just in a different way.
They guarantee a stable ABI for the lifetime of a particular release of their OS. That's useless, if there are 5 distros you want to support, and each one has 3 versions in common use (pretty conservative estimate) then that's 15 different builds of your program you need to produce, test and distribute. This is completely absurd and is one of the major reasons only the truly dedicated try to distribute binary software on Linux.
What makes you think the source code will be publically available outside the government (and perhaps select "partners" who will help them "understand" the source code?)
I suspect you're closer than you think.
Some time ago, rumour had it that Microsoft had allocated ~300 of its best engineers to work on Midori, a product based on its Singularity research OS.
Singularity, for those not familiar with it, is a highly impressive piece of work. It's not actually Windows at all, in fact it bears absolutely no resemblence to any existing OS architecturally and didn't even support graphics when we were last able to look at it. But it was a ground-up fresh new OS that had the following characteristics: entirely .NET based (with extensions), extremely robust and extremely high performance.
In particular, Singularity is able to go about 30% faster on I/O intensive apps than traditional server operating systems like Linux and Windows because it doesn't use hardware process isolation, but rather does everything in software. Hmmm, an OS with no graphics support, no applications, but which can run .NET applications far faster than the competition. Sounds basically ideal for a server OS or "cloud windows" if you ask me.
How much methane would need to be released to create mixtures of between 5 and 15%? That's a hell of a lot of methane. Would the air even still be easily breathable at those concentrations?
Yeah, great. Only if you define "correctness" with some useless definition the customer doesn't care about.
Here's a trivial problem that I came across at work a few weeks ago. The codebase has a library of string functions, one of them has a contract like "search string A for substring B within N characters". The original implementation did not stop at a null terminator. At some point the function was changed so it would stop at a null. This broke some piece of code that used that function somewhere else.
That function was unit tested. The change still broke things because:
Result - fail. Arguably if the reliant code had been better unit tested, eventually somebody would have noticed the problem. However, that's rather like saying "if only nobody wrote bugs, software would be much better". Actually testing every possible unusual boundary condition in your code is very hard. Code coverage metrics can't find all the corners.
That's great for things you can easily do at home, like programming. Many interesting careers aren't like that though.
But that's not their fault. How many vocations can your average teenager try before being asked to choose a degree? Probably zero, unless you count sportsman as a profession. The education system just isn't set up to let people try different things and find out what makes them tick. If you aren't turned on by pure math or poetry or French or geography, then you leave none the wiser never knowing that perhaps architecture is your thing, or software development, or hell perhaps you'd enjoy public transit planning. I think letting high school students try a variety of different jobs would be a good step forward, but don't anticipate it happening anytime soon.
Anyway. Don't get too uppity. Getting a job doing your passion is great, don't get me wrong, I get paid to play with high performance clusters all day and it's fun. But there's a downside to that. It's been two years last week since I started full time work in the software business, and it's been two years last week since I lost my main hobby. When I've been fixing or programming computers all day I just don't feel like doing more of it when I get home, or at the weekends.
I got lucky in finding I enjoyed computers at an early age, but now finding a replacement passion for my spare time turned out to be not so easy. It's not a bad life - I go out a lot in the evenings, and the times I'm not partying or hanging out with friends I waste playing video games or reading Slashdot :) But it's missing something that I'd still have, if I worked in an area that wasn't my passion.
Wow. You have a pretty rosy idea about what university is like.
I went (not in the US). It wasn't anything like that. I mean, don't get me wrong, I had some fun with my friends there, but it there was no uplifting atmosphere of intellectual curiousity. And I'm afraid nobody had time to "explore new ideas" with me, we were all busting our asses to jump through enough arbitrary hoops to get our degrees. The ones who weren't that busy were doing arts degrees and spent all their spare time socialising or doing college sports. Intellectual curiousity in a modern university is minimal in my experience.
Knowing what I know now, I'd definitely have preferred to go to either no higher-ed school at all, or to a much cheaper community college. Unfortunately many employers and nearly all governments require them if you want to get a job/emigrate. There's no particular reason for this other than discriminating against poor people, but there you go.
Eh? She's an official. She's emailing other officials. The emails are about state business. How can that possibly be considered not of official nature?
Of course it does, that's why Debian don't include proprietary software in their default repositories or apt sources. They don't want you to install proprietary software so they'll not make it easy for you and they'll definitely not make it easy for the developers. Ultimately it's just different implementations, the effect is the same as DRM - if you want to go against the flow of your OS vendor you have to jump through awkward technical hoops and put up with crap that you shouldn't have to, because your supplier wants to impose restrictions on what kind of software you can run.
You decided to run it or not to run it, same as any other program. You're just as in control as you ever were.
Hmmm, my first -1 post for several years, got for not toeing the party line about trusted computing. Of course there's no adjective because what I wrote isn't actually flamebait or a troll, it's just facts. For shame moderators, for shame.
No it wouldn't. Please don't spread sensationalist crap about things you clearly don't understand. Trusted computing as being implemented in PCs does not allow anybody to control what software you run on your computer. Period. End of story. What it does do is let you run software on some arbitrary system and get that software into a provably secure state, regardless of whether the host OS is infected with malware, rootkits, and so on. Completely different.
If you want to know what a general purpose PC which can only reliably run software blessed by a central authority looks like, go install Debian, then try and install a program that isn't included in the repositories. It'll probably make jailbreaking an iPhone look like a stroll through a grassy meadow.
Yes exactly. Real world performance is often where these sort of very academic languages fall down. The other big problem with lazyness (which is what gives you these infinite data structures) is that it can result in very unintuitive space complexity for common algorithms, because the calculations are suspended until needed. The result is enormous RAM blowup that unless you happen to be a quite advanced programmer is very difficult to predict or understand.
There's a third option - house prices had entered an unsustainable speculative bubble. Contrary to what you suggest, a lot of normal non-wizards did see a housing bubble coming. There was talk in the mainstream media of a house price bubble three years ago in the UK.
Now here's the thing. About two and a half years ago my parents sat down with me and said son, you just got your first job. Now it's time to think about buying a house. I seriously couldn't believe it. WTF? I haven't even paid off my student debt yet and they want me to take out a loan many times the size?
Yes! they said. Everybody sensible buys a house. It's just what people do! Why is that, I asked? Because house prices always rise, and you can always sell it, so it's guaranteed to make you money. I said uh huh. That sounds real interesting. Weren't you the same people who taught me as a little kid that money doesn't grow on trees? That schemes where you get rich quick are scams designed to play into peoples dreams and mislead them? But houses are magic and different?
Bah. Knew a religion when I saw one, that's for sure, and home ownership in the UK has been a religion for longer than I've been alive. 18 months later and suddenly it's all house price crisis. Negative equity is everywhere. Foreclosures are everywhere. A whole lotta people that were playing the system got burned. I'm sure it'll recover in time but any system based on passing on ever larger debts will eventually stop, like a horrible game of pass the parcel.
Home ownership isn't a requirement of living. The very idea that normal people owned their own homes is a modern one. People who are willing to do anything regardless of whether it makes sense to "live the dream" and own a house aren't rational anymore. There are a really tiny number of situations where doing completely irrational stuff tends to be forgiven or at least understood, like for love. But a house isn't one of them - it's just a pile of bricks.
No, you're mixing two separate things up. If you don't understand ARMs that doesn't make you dumb. But if you then buy one and you don't understand them, that definitely makes you dumb. What the hell?! A mortgage is a huge commitment. You're going to be paying it back for a long, long time. If somebody commits to a huge thing, turns around and says "Oops! I guess I can't deal with this after all. It was scary and my brain shut down" then I don't see why they are deserving of much sympathy.
No, they were stupid. The risks involved with large debts are enormous. This is way different than being misled by a second hand car salesman and buying a SUV with poor mileage. This is a vast sum of money. If there's one time in your life you read the boring fine print and think about it really hard, it's when taking out a gigantic loan.
Now this I do agree with. However trust can cross a line into blindness. Somebody who does whatever they're told without considering the consequences eventually crosses the line from being a poor innocent misled person into something else - a liability to society.
They aren't, it's just that Maps supports a smaller set of features than Earth does (because DHTML is less powerful than OpenGL for rendering).
Well, like a lot of :) For instance it does all the multi-process and security stuff. But then it also does what a lot of Windows programs do these days and replace the standard window management stuff as well. It relies on parts of Internet Explorer as well (like the HTTP library).
Windows apps Chrome does some, uh, interesting things that you might not expect a them to do
If you want an example of the sort of fun they had making things work, the bug this patch fixes was "Chrome URL bar has a black background" yet the fix is to the low level assembly generated by Wines build process. That's because Chrome shims BeginPaint/EndPaint by patching the in-memory system DLL headers, so it can muck about with the Windows richedit control internals and the Chrome IAT patcher didn't support Borland style imports.
For a program that has such complicated interactions with the OS, and is so heavily reliant on it for functionality, 11 days is remarkably good actually. A good sign of Wines increasing maturity.
Um, why for cripes sake? I know a guy who voted for Bush because he was a priest and abortion as an issue overrode anything else, but that's an extreme case.
Do you realise how slow and expensive encryption is?
I admire your gusto - nobody should take away from this thread "ideas are worthless". Keep em coming. Unfortunately I will now tell you why your idea won't work. If you were a practising programmer, you would know this stuff already.
This won't work because:
There are better ways to achieve what you want (secure email checking for your parents house). For instance you could just use a mobile phone instead of a computer. Or you could take a laptop you trust. Or if you want a technological solution, you could build a solution on top of trusted computing. The hardware for this is only starting to ship now, so it's a long way from being in your parents place, but in theory it allows you to go from a system in an arbitrary state (rootkitted, ridden with malware etc) to running provably secure software. The technology is very complicated but it'd provide what you want, without needing to compromise on emails features or making people think they are secure when they are not.
He's right though. Ideas are cheap. Anyone can have them and so everybody does. I'm sure quite a few monkey-men 40,000 years ago thought "hey why don't we stop flinging crap at each other in trees and walk upright on the ground?" but then went back to crap-flinging because going down amongst the non-tree-climbing predators was too scary.
I think this misconception that ideas are inherently valuable comes from the high school system. In school all children do more or less the same amount of work - the amount needed to pass. Obviously that's a broad generalisation, there is some scope to differentiate yourself by amount of work. But generally nobody will respect you for it, except maybe your parents. Your peers certainly won't. And there certainly isn't as much scope for differentiation as there is in real life.
The result of this is that children learn to differentiate themselves by what they do rather than how much they do. Producing a piece of art or an essay which has a novel take on the assignment, or an elegant solution to a maths problem - this is valued and will win the pupil high praise. Producing something merely twice as long as somebody elses submission, even if the quality is not compromised and thus value is doubled, typically won't.
The life lesson taken away is clear - novel ideas are valuable and should be appreciated. They should win praise and, as people mature financially, be rewarded with money.
But this is the inverse of reality, in which the thing people are ultimately judged by is the work they produce, and often the major differentiator is the amount of effort involved. If I'd written a 2 page essay describing a revolutionary platform game in which the player bends time I'd indeed win some praise for this, but it probably wouldn't get me anywhere. But if I actually built said game and turned it from abstract idea into concrete product, now that's the stuff reputations (and hopefully bank balances) are made of.
All this is kinda off topic though, as the OP didn't imply he (she?) was trying to make money off being an ideas guy. He even said open sourcing it was an option. But I too have been approached with "great ideas" before .... I tell you what I want, you make it actually happen, and we'll split the proceeds. These people are asking to have their idea "stolen" and then feel stiffed when somebody else goes onto become big on the backs of their idea. I've never actually done that but it seems some of the problems surrounding Facebook boil down to this.
Video of better tech. Annoying whistling not included.
There's also the problem that some less respectable hardware manufacturers cheat to pass certification, for instance by having magical registry keys that put it into "fast but unsafe" mode which certification runs without. WHQL is an automated process and isn't hard to defraud.
But hey, at least it exists. The equivalent in the Linux world is "submit your driver, hope the API you used hasn't been completely replaced during the period you were writing it, hope that somebody can be arsed reviewing it, hope that it gets incorporated into the base kernel, then wait 12 months whilst your users upgrade before they can buy your hardware". I'll take WHQL over that.
I do understand JavaScript, for what it's worth. By "declare types up front" I mean declare them in things like function prototypes and variable declarations. If I look at some random JavaScript function, it can be very hard to figure out things about it because there's no type information. If I look at some random function in (well written) C++ then I do at least have something to work with - I can find the relevant declarations in the codebase quite easily and understand what the functions inputs and outputs are.
I agree with you that Javas type system is pretty worthless for finding bugs, and is so limited that it results in painful verbosity and lots of workarounds. That's a problem with Java though, not static typing in general. You can even have static typing without lots of type declarations in a language that can figure that stuff out automatically (eg Haskell) but most "production" languages limit the amount of type auto-discovery they do to function scope, again because otherwise it can get hard to figure out what code does.
I also agree with you that DOM interaction is too slow in modern browsers, and that if JavaScript became magically very fast that'd still be an issue. But JavaScript is also quite slow, and fixing that is, today, a research problem. I disagree that accessing native libraries is the only way to get good performance in "any language" - Java and C# provide native interfaces for operating system integration and legacy code support. Modern compilers (jit or otherwise) for Java and C# are very good and can produce code just as performant as the equivalent C, although sometimes with larger memory overhead (due to the design of the languages, not the compilers).
Oh sure, I would never argue that Java has a good type system. Even C++ has a better type system than Java. More exotic languages like Haskell or even Epigram show some of the things you can do with advanced type systems, but as a good middle ground I'd like to be using D.
The slowness of dynamically typed languages is (today) pretty fundamental. Static typing allows you to make a lot of decisions at compile time, but for a dynamic language all those decisions have to be made on the fly because almost any assumption you make can be invalidated at any point. There have been some interesting research projects into solving this problem, for instance Psyco for Python, but they usually trade off memory against CPU time. In other words you still pay the piper, just in a different way.
They guarantee a stable ABI for the lifetime of a particular release of their OS. That's useless, if there are 5 distros you want to support, and each one has 3 versions in common use (pretty conservative estimate) then that's 15 different builds of your program you need to produce, test and distribute. This is completely absurd and is one of the major reasons only the truly dedicated try to distribute binary software on Linux.