Others have mentioned this, but I feel the need to add my own pair of pennies.
ISO 9000 boils down to two things:
1) Write down how you are going to do something. 2) Do it the way you said you would.
To that end, pretty much any software engineering approach is ISO 9000 compliant, provided that you 1) write down how you are going to develop software and 2) develop software the way you said you would.
That means you can pick any "lightweight" software development process you like. Agile, XP, TDD... whatever you want to do, you can do it, as long as you 1) write down how you are going to develop your software in an Agile/XP/TDD way, and 2) develop software the way you said you would.
Er... I don't know what Ada you've been writing, but Ada definitely lets you define arrays with negative indexers, although it's admittedly frowned upon. Observe:
type negatively_indexed is array(-100..100) of Double;
Additionally, C# allows for types that are indexed by negative numbers, just like Ada and Python, although the default C# array is not negatively indexed. You can even build types that are indexed by non-integral types in C#.
Regardless of the outright wrongness of your example, it is not an example of type saftey at all. It's an example of bounds-checking -- one the "logic errors" that you say Ada can't catch -- at least not without a crystal ball.
Regarding implicit conversions -- yes, C# allows implicit conversions, but only where the conversion does not result in a loss of data or type. So you can implicitly convert from an integer to a long, since you don't lose data, but if you want to convert from a signed integer to an unsigned integer, you must do so explicitly, as you'd lose the sign bit. Ditto polymorphic types; you can implicitly cast "downward" in the class hierarchy (i.e. casting from string to object), but to cast up you have to do so explicitly. This is not considered type unsafe by most CS scholars these days, but it is an admittedly contentious point.
So.... ignoring the implicit conversion issue, which in C# is one of those "agree to disagree" issues, I again ask: "How is Ada (or Haskell) more typesafe than C#?"
Yeah, my first thought was "Ada is more strongly typed than C#? WTF??".
C# still lets you get runtime invalid cast errors with object-typed collections like ArrayList, but C# 2.0 reduces this a bunch with generics. Even then, C# is still as strongly typed as Ada or Haskell. You get an invalid cast exception if you try to use an inappropriate type from an ArrayList, rather than invalid data or a memory access violation.
You're exactly right, but it's so much more fun for us to whine about Microsoft and give itchildish little monikers like "M$" than it is to actually, you know, use our brains.:D
GMail provided conversations and labels, two extremely powerful means of organizing your email. Why isn't that on the Re-inventing the Mail Client list? ReMail has similar concepts called grouped threads and collections, but GMail got there first.
Speaking of ReMail... I think Thread Arcs look amazingly powerful, especially with some of the interactivity/highlighting that can be done.
Did you never see the 1984 movie? (The books and mini-series never had the sonic weapons. It was thrown into the movie for some reason, and since the games are based on the movie they always include those weapons. Gay, but I think Westwood bit the dust some time ago.)
Yes, I did see the movie, and yes, I know that's where the sonic tank came from. That was more of a goofy question, than something I actually expected an answer to.:)
FWIW, the "for some reason" that the sonic weapons were included in the movie is that they were supposed to represent the "wierding way" that was discussed in the books ad nauseum. Lynch couldn't come up with a way to represent that visually in the movie, so he invented sonic weapons. Not bad, but I liked the high-speed pseudo-kung fu representation they used for the Sci-Fi remake.
Gates isn't a programming genius. In fact, he's quite mediocre.
I dunno about the rest of the stuff you said, never having met the guy nor sat with him in a high-level business meeting, but I *have* read some of his code, and let me tell you, he knew his shit. Maybe not a genius, but he was definitely way above average.
Andy lists Singularity as one of the other microkernel operating systems that exist today. Singularity has the same goals that Andy does -- an OS that is built from the ground up to be reliable and secure. "Self healing", as Andy puts it.
Every day, in fact -- I commute 70 miles one direction.
I'd really love an electric car, too, since the gas prices are killing me! Of course, if I got an electric car, I don't doubt that I'd be saying "the electricity prices are killing me!" Gas isn't the only energy price that's going up.
I wonder... has anyone done a cost per mile comparison between electric and gas automobiles? This car has a range of 100 miles.... how much energy does it need to charge?
And others would say the exact opposite -- that no video game holds *any* artistic value. Then your loophole would work in the other direction.... banning the sale of all video games to anyone under 18.
Honestly, I think this may not be a bad idea. I'm a life-long gamer, but I'm also a parent, and I firmly believe that parents should rigidly control what games their children play. Banning the sale of of all video games to minors would help parents in that regard, and may just force the issue with lazy parents, making them go to the store to buy a game for their kid. Maybe even getting them to go together, actually talk to each other for five minutes... yeah, a bill like that might even eventually bring about world peace!
Good points, but I think the most nail-on-the-head point would have to be the one about control. I agree 100%.
Until we have *real* 3d input that's as easy to manipulate as a mouse is for 2d, the "good" UIs will remain in 2d. Even then, the idea of moving about a user interface in a 3d "space" will be unlikely, as that will require even more input for the motion.
And, by the time we have all of that, we'll be at the Star Treak Holodeck.
And guess what? I'll bet those Holodecks will have 2d computer consoles....
Others have mentioned this, but I feel the need to add my own pair of pennies.
ISO 9000 boils down to two things:
1) Write down how you are going to do something.
2) Do it the way you said you would.
To that end, pretty much any software engineering approach is ISO 9000 compliant, provided that you 1) write down how you are going to develop software and 2) develop software the way you said you would.
That means you can pick any "lightweight" software development process you like. Agile, XP, TDD... whatever you want to do, you can do it, as long as you 1) write down how you are going to develop your software in an Agile/XP/TDD way, and 2) develop software the way you said you would.
A convoluted setup like that sounds like a feature on The Daily WTF.
Regardless of the outright wrongness of your example, it is not an example of type saftey at all. It's an example of bounds-checking -- one the "logic errors" that you say Ada can't catch -- at least not without a crystal ball.
Regarding implicit conversions -- yes, C# allows implicit conversions, but only where the conversion does not result in a loss of data or type. So you can implicitly convert from an integer to a long, since you don't lose data, but if you want to convert from a signed integer to an unsigned integer, you must do so explicitly, as you'd lose the sign bit. Ditto polymorphic types; you can implicitly cast "downward" in the class hierarchy (i.e. casting from string to object), but to cast up you have to do so explicitly. This is not considered type unsafe by most CS scholars these days, but it is an admittedly contentious point.
So.... ignoring the implicit conversion issue, which in C# is one of those "agree to disagree" issues, I again ask: "How is Ada (or Haskell) more typesafe than C#?"
I think you're bluffing.
Cite, please. How do Ada and Haskell have stronger typing than C#? No Is it because of C#'s explicit keyword "unsafe"? No implicit conversions? What?
Yeah, my first thought was "Ada is more strongly typed than C#? WTF??".
C# still lets you get runtime invalid cast errors with object-typed collections like ArrayList, but C# 2.0 reduces this a bunch with generics. Even then, C# is still as strongly typed as Ada or Haskell. You get an invalid cast exception if you try to use an inappropriate type from an ArrayList, rather than invalid data or a memory access violation.
Er.... see you write that.
Er..Yeah.
You're exactly right, but it's so much more fun for us to whine about Microsoft and give itchildish little monikers like "M$" than it is to actually, you know, use our brains. :D
GMail provided conversations and labels, two extremely powerful means of organizing your email. Why isn't that on the Re-inventing the Mail Client list? ReMail has similar concepts called grouped threads and collections, but GMail got there first.
Speaking of ReMail... I think Thread Arcs look amazingly powerful, especially with some of the interactivity/highlighting that can be done.
FWIW, the "for some reason" that the sonic weapons were included in the movie is that they were supposed to represent the "wierding way" that was discussed in the books ad nauseum. Lynch couldn't come up with a way to represent that visually in the movie, so he invented sonic weapons. Not bad, but I liked the high-speed pseudo-kung fu representation they used for the Sci-Fi remake.
Yeah, but what's up with that Sonic Tank they have? I much prefer the Ordos Deviator's nerve gas attack.
No, that's the *fun* part.
:D
Well, ok, done right, coupling requires a hard part.
Couplin done right results in cohesion.
:D
Sticky, sticky cohesion.
Good fix. It amounts to the digital equivalent of "Going once.... going twice......... sold!"
By my calculations, we should have found a monolith 6 years ago.
Andy lists Singularity as one of the other microkernel operating systems that exist today. Singularity has the same goals that Andy does -- an OS that is built from the ground up to be reliable and secure. "Self healing", as Andy puts it.
Every day, in fact -- I commute 70 miles one direction.
I'd really love an electric car, too, since the gas prices are killing me! Of course, if I got an electric car, I don't doubt that I'd be saying "the electricity prices are killing me!" Gas isn't the only energy price that's going up.
I wonder... has anyone done a cost per mile comparison between electric and gas automobiles? This car has a range of 100 miles.... how much energy does it need to charge?
And lighter...
When, oh when, will Mr Fusion be a reality????
No, you can't which is why I indicated that my post was only half-serious with my last sentence.
And others would say the exact opposite -- that no video game holds *any* artistic value. Then your loophole would work in the other direction.... banning the sale of all video games to anyone under 18.
Honestly, I think this may not be a bad idea. I'm a life-long gamer, but I'm also a parent, and I firmly believe that parents should rigidly control what games their children play. Banning the sale of of all video games to minors would help parents in that regard, and may just force the issue with lazy parents, making them go to the store to buy a game for their kid. Maybe even getting them to go together, actually talk to each other for five minutes... yeah, a bill like that might even eventually bring about world peace!
Heh, who am I kidding?
No, but GenQuesadilla might have something to say about it
There's a fix for that these days... it's called "Dietary Fiber". :)
Good points, but I think the most nail-on-the-head point would have to be the one about control. I agree 100%.
Until we have *real* 3d input that's as easy to manipulate as a mouse is for 2d, the "good" UIs will remain in 2d. Even then, the idea of moving about a user interface in a 3d "space" will be unlikely, as that will require even more input for the motion.
And, by the time we have all of that, we'll be at the Star Treak Holodeck.
And guess what? I'll bet those Holodecks will have 2d computer consoles....