IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New The article is BS
I wrote a long essay explaining why, and then Sam got my computer to turn off so I lost it.

The long and short of it is that CPUs are more reliable than software for many reasons, including the following:

  1. The problem is very well-defined. That makes it easier to specify.
  2. CPU design is done by people who have solved this kind of problem many times. Software written by teams that have written the same kind of software several times is also more reliable.
  3. CPUs are designed on a 5 year schedule. Most of the time is devoted to finding and fixing bugs. If up front quality assurance was given that importance in software development, our quality would be higher as well.
  4. Even so CPUs come out with long errata lists. Compiler authors look at these errata lists and work around the remaining bugs in software. The average programmer is free to be blissfully unaware of this.
  5. Very importantly, Intel is liable for bad CPU bugs. Microsoft is not liable for software bugs. This helps keep Intel's priorities right.
  6. People care more about CPU bugs, even trivial ones. For instance how many of us know about the Pentium floating point bug? That despite the fact that it affected virtually nobody. While we're all aware of tons of Microsoft bugs, how many of them have been given widely recognized names?

The fact that the author doesn't want to accept is that people have known failure rates. We make very predictable kinds of errors at predictable rates in everything we do. This is true from spelling mistakes in essays to flipping the wrong switch in a power plant. Of the kinds of errors that we make, one of the more common categories in software development is logic errors. This is also the hardest category for the author to spot, and the psychological reasons for this are very well known.

Furthermore anyone who thinks that you can eliminate bugs by pushing software development to end users is an idiot. Take your pick, either completely ignorant and an idiot for talking on something they know nothing about, or else not ignorant and therefore an idiot for not noticing the obvious.

The technology itself might be a better fit for some kinds of problems. But it isn't a silver bullet.

Cheers,
Ben
The great masses of people ... will more easily fall victims to a big lie than to a small one. -- Adolf Hitler
New I don't agree
But I think it has to do with perspective.

Consider that I've been mostly working in Smalltalk lately. The Smalltalk class library has classes (and some objects!) that are over 25 years old. These classes are pretty much bullet proof and haven't changed in years.


The problem is very well-defined. That makes it easier to specify.

This should also be true at the component level. Like the Smalltalk collections and numerics classes. Also some classes that represent network protocols.

CPU design is done by people who have solved this kind of problem many times. Software written by teams that have written the same kind of software several times is also more reliable.

Like the Smalltalk collection and numerics classes.

CPUs are designed on a 5 year schedule. Most of the time is devoted to finding and fixing bugs. If up front quality assurance was given that importance in software development, our quality would be higher as well.

Languages/programming environments have about a 10+ year developmental life span. If you language is younger than that, its immature. Java, C++, Python, Ruby are all immature technologies. The class libraries may be frozen - but are not quite "right" so people continue to work around their shortcomings until it becomes intolerable and then they abandon them for something else.

The problem as I see it is the lack of stick-to-it-iveness in language users. Only LISP and Smalltalk have been continually improved for a long enough period of time to have reached the level of maturity of hardware (at some levels - other levels are less mature).

The only thing preventing this vision is Gilligan's Island syndrome and lack of maturity of developers.



[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:01:56 AM EDT
New Er, what? It's 2006, dude.
  • Java 1.0 was released about 10.5 years ago.
  • C++ was started in 1979 and actually became C++ in 1983 (gee, that's 23 years. Whippersnapper!)
  • Python was started in the late 1980s and started seeing wider usage in the early 1990s.
  • Ruby was first released to the public in 1995.
So by your own argument, none of these languages (except possibly Java, right on the cusp) are "immature".

The problem is that your argument is simplistic and specious. Age counts for nothing if nothing happened in the intervening years. It also counts for a lot less if a particular language was intensely developed during that time.

Design counts for a lot more than age.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New C++ was never about components
It got reusable-ish components (STL) around 1997 and still hardly anything could compile them until 1999 or so.

Java remains immature because they hack stuff, ship it, and never reexamine it. So we keep working around the old bugs. Plus, it doesn't quite work, so they keep changing it don't they. Java 5 isn't a whole lot like Java 2 - lots of huge mods to it.

So I agree that design counts a lot - but being willing to continue hammering on the design and break old shit because its based on something that is wrong is key.

They'll never fix Java - just abandon it.



[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:02:27 AM EDT
New ? in 97 useta write module compile in Borland
and (fergit the tool) compile samme module for for mac. Shop I worked at did, not me personally.Rational Rose had something to do with it?
thanx,
bill
Any opinions expressed by me are mine alone, posted from my home computer, on my own time as a free american and do not reflect the opinions of any person or company that I have had professional relations with in the past 50 years. meep
New 1994, actually.
Original point still stands. You can't stereotype maturity based on age.

I'd hardly call STL necessary for components, anyway. You can do components without generic programming. The utility may be lessened, but it's still possible.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New That's a side issue
Point remains that we never bother to make stuff mature - we just abandon it for the next shiny thing every few years.

So no wonder its hard to get to components based software construction.




[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:02:49 AM EDT
New Define "a few years"
First you said 10. As I pointed out, by that definition every one you listed was "mature". C++ has been around nearly as long as Smalltalk-80. Length of time has nothing to do with components.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New No
I haven't bothered to chart it out - I pulled "10" from my ass. Deal with it.

But the point (which you are working really hard to miss) is that software is inherently fashion oriented. we don't stick with stuff to perfect it, we abandon it after awhile.

C++ golden age was 1992-6. Java was 1997-2004. I see Java dying already (and I abandoned it a long time ago). XML was a little craze in there somewhere. etc.



[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:04:25 AM EDT
New Hey, YOU'RE the one who made the stupid assertion.
Deal with it.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New I guess...
...the FORTRAN-77 that we maintain that was written on PDP-11s running RSX/11 just ain't hip enough for you.

People can and do (and, indeed, mostly do) write software that keeps the world turning in things other than SmallTALK.

I'd bet a pint that more C++ and Java is written every month than all the SMalLTaLK code in all the world.

But hey, they're dying.

You're a very clever man who says very silly things sometimes, Todd.


Peter
[link|http://www.no2id.net/|Don't Let The Terrorists Win]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
[link|http://kevan.org/brain.cgi?pwhysall|A better terminal emulator]
New wrongly
I used to work in F/77. For certain domains it is the right tool for the job. There are some wonderfully mature math libs written in it. Great stuff. Libraries - you know - components - tested, mature, solid, verified.

And yet - some years ago - Raytheon's Satellite management division ported all of their nice stable bullet proof tested F/77 libs to C++. Because that's the new thing don'tcha know. Never mind that you can just LINK to and CALL F/77 from C/C++. A useful property we used to have pre-C++ was library interoperability. Of course, that went the way of dodo with name mangling. The C++ versions run more slowly too.

Which really goes to prove my point on the fashion thing. When asked to select the right tool for a given job, 99.9999% of programmers will answer Mooooooo as their herd instinct kicks in.

I figured I'd point out the point given that point spotting has achieved Mr Magoo levels on this board. Thanks for the absolutely uninspiring exchanges all, I won't trouble you again.



[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:05:49 AM EDT
New Don't leave.
Even when I don't agree with you, I usually enjoy your contributions.

Don't let the barbs get to you. This place would be very much less interesting if it was a mutual admiration society. Feel free to give as good as you get. :-)

Come back when you can.

Cheers,
Scott.
New Oh stop.
I dont have a clue what you guys are talking about with all this programming gibberish (it all sounds like blah blah blah to me) but I do know you're brillant, have strong opinions, and are very passionate and very good at what you do. Pull your nose back in joint. This place needs you around. And when I say this place, I of course, mean me. Dont bail, Todd.
Follow your MOUSE
New Wind your neck in.
You're being an oversensitive prima donna and all because some people dare to disagree with you.


Peter
[link|http://www.no2id.net/|Don't Let The Terrorists Win]
[link|http://www.kuro5hin.org|There is no K5 Cabal]
[link|http://guildenstern.dyndns.org|Home]
Use P2P for legitimate purposes!
[link|http://kevan.org/brain.cgi?pwhysall|A better terminal emulator]
New Just for the record:
The ANSI/ISO standard for C++ was ratified in 1995. It was in draft form since '91, and the so-called final draft was around for about two years (mostly awaiting Denmark's approval IIRC). It is now 2006. That's more than 10 years (as your Smalltalk numerics library will surely tell you), which makes it a "mature" technology by your own definition of the term.

HTH
jb4
"So don't pay attention to the approval ratings that say 68% of Americans disapprove of the job this man is doing. I ask you this, does that not also logically mean that 68% approve of the job he's not doing? Think about it. I haven't."
Stephen Colbert, at the White House Correspondent's Dinner 29Apr06
New I wish components worked like that everywhere
For instance according to GNU sort, the following list is sorted:
\n17402004,2006-02-12 20:16:48\n1740,2005-01-15 13:35:56\n17402006,2005-04-08 08:09:48\n

It didn't TRADITIONALLY do that. What happened?

The component changed.

(My not being aware of this caused a bug for me about 2 weeks ago.)

Cheers,
Ben
The great masses of people ... will more easily fall victims to a big lie than to a small one. -- Adolf Hitler
New What do you mean, traditionally?
GNU sort has worked like that for as long as I've been using it. Now Solaris sort, however, doesn't need the -n.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New I mean what they mean in their documentation
From "info sort"

*** WARNING *** The locale specified by the environment affects sort
order. Set LC_ALL=C to get the traditional sort order that uses native
byte values.

Cheers,
Ben
The great masses of people ... will more easily fall victims to a big lie than to a small one. -- Adolf Hitler
New That's character set, not numeric.
Two very different things.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New So we were talking past each other
The great masses of people ... will more easily fall victims to a big lie than to a small one. -- Adolf Hitler
New The example you gave was of numeric sort not working.
How is that related to character set?
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New No, it was not of *numeric* sort not working
It was an example of the alphabetical sort doing something that I had not expected. Since I didn't expect the behaviour, it lead to a bug.

Cheers,
Ben
The great masses of people ... will more easily fall victims to a big lie than to a small one. -- Adolf Hitler
New Nevermind me, I'm tired tonight.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New There's a lot of that going on



[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:04:27 AM EDT
New No
I know what point you're trying to make. My point is that you picked an asinine way of making it. Stupid generalizations (that aren't even remotely accurate) only hurt your argument.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New Whatever
Thanks for making me sorry I posted.

Dickhead.

Poof



[link|http://www.blackbagops.net|Black Bag Operations Log]

[link|http://www.objectiveclips.com|Artificial Intelligence]

[link|http://www.badpage.info/seaside/html|Scrutinizer]
Expand Edited by tuberculosis Aug. 21, 2007, 06:04:47 AM EDT
New Who says irony is dead?
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New The problem with hardware is deeper
No disagreement with what you point out. But hardware design with chips isn't the easy process the author thinks.

The author seems to think that IC's are a black boxes. You can slap them down on a PCB, hook them together, and get a working system - just like his software system (drop and connect components together). And, it should be possible to swap IC brands.

First, it's not that simple to connect design a PCB, especially at high speeds. How you route the signals can make a big impact on how well your design works. You have to add all kinds of little things that aren't obvious to software guys, like decoupling capacitors to maintain signal integrity. Designs often require rework to pass FCC/CE emission and susceptibility tests. Heck, designers often don't consider RFI concerns until the certification tests and then scramble to make bandage fixes - doesn't that sound a lot like common software developer attitudes towards testing and security?

Second, yes, with digital chips, it's typically possible swap manufacturers. But sometimes even then there can be trouble. But analog chips from different manufacturers, even with the same paper specs, often don't act the same and require design changes.

Third, sometimes chips don't live up to their specs. To give one example, one otherwise good chip, the TI 320F2812, has a 12-bit ADC that's so noisy you'll get around 10 bits of info. So if you need 12-bits, you'll have to either add an external ADC or try to work around the problem by using filtering (which has its problems, such as additional CPU time required). That sounds a bit like a software component that doesn't do quite what was promised. (BTW, TI's later models have better ADC's - but aren't drop in replacements).

So, yes, software developers can learn from the hardware guys; for example, one thing the chip guys are good at is simulation and testing (of course, the cost of that - in time and money - would make software project managers freak out). But the hardware world isn't easy, either.

One last note - analog simulation is as good as the model, so it's often wrong, and can cause more problems than it solves. Digital simulation is better, but getting harder because at high frequencies everything is analog (e.g. PCB traces become antennas whether you like it or not).

--Tony
     Interesting Article on Software Engineering - (tuberculosis) - (48)
         off the cuff without reading the article - (boxley) - (17)
             Same as it ever was - (drewk) - (16)
                 He doesn't mention language at all - (tuberculosis) - (15)
                     Everything always looks better from the outside - (tonytib) - (1)
                         Hardware design is getting to look a lot like... - (ChrisR)
                     I was replying to Bill's comment, not really to the article - (drewk) - (12)
                         I know where he is going with that - (boxley) - (4)
                             I know the authors of dabbledb - (tuberculosis) - (3)
                                 Note that the h/w folks Savain loves don't love schematics - (tonytib) - (2)
                                     Does noone use circuit simulators? -NT - (tuberculosis) - (1)
                                         Circuit simulators are no silver bullet, esp for Analog -NT - (tonytib)
                         And another thing... - (jb4) - (4)
                             He's talking about the "90%" of programming. - (Another Scott) - (3)
                                 I'm considerably more skeptical about components - (tonytib) - (2)
                                     Well said. - (Another Scott) - (1)
                                         Well, we've already got 10^10 components... - (jb4)
                         The problem with user-built programs - (tablizer) - (1)
                             you expect anything different? - (Steve Lowe)
         The article is BS - (ben_tilly) - (28)
             I don't agree - (tuberculosis) - (26)
                 Er, what? It's 2006, dude. - (admin) - (12)
                     C++ was never about components - (tuberculosis) - (11)
                         ? in 97 useta write module compile in Borland - (boxley)
                         1994, actually. - (admin) - (9)
                             That's a side issue - (tuberculosis) - (8)
                                 Define "a few years" - (admin) - (7)
                                     No - (tuberculosis) - (6)
                                         Hey, YOU'RE the one who made the stupid assertion. - (admin)
                                         I guess... - (pwhysall) - (4)
                                             wrongly - (tuberculosis) - (3)
                                                 Don't leave. - (Another Scott)
                                                 Oh stop. - (bionerd)
                                                 Wind your neck in. - (pwhysall)
                 Just for the record: - (jb4)
                 I wish components worked like that everywhere - (ben_tilly) - (11)
                     What do you mean, traditionally? - (admin) - (10)
                         I mean what they mean in their documentation - (ben_tilly) - (9)
                             That's character set, not numeric. - (admin) - (8)
                                 So we were talking past each other -NT - (ben_tilly) - (7)
                                     The example you gave was of numeric sort not working. - (admin) - (2)
                                         No, it was not of *numeric* sort not working - (ben_tilly) - (1)
                                             Nevermind me, I'm tired tonight. -NT - (admin)
                                     There's a lot of that going on -NT - (tuberculosis) - (3)
                                         No - (admin) - (2)
                                             Whatever - (tuberculosis) - (1)
                                                 Who says irony is dead? -NT - (admin)
             The problem with hardware is deeper - (tonytib)
         Good luck with that - (warmachine)

But he doesn't look quite skeletal enough for both to be true, does he?
232 ms