On Mon, May 17, 2010 at 9:12 PM, Cathey, Jim <[email protected]> wrote: > We have embedded systems that don't have room for bash. > I don't think bash provides that much useful stuff in > its extensions that warrant locking ourselves to it. > > But then, the whole trend away from portable coding > doesn't sit well with me...
If this would be only a portability argument... I have a feeling dash people might be using portability argument as a convenient excuse. What happened in reality, is that they try to acquire a place in the community which does not belong to them. We all know quite a few people who abuse their position in the community. glibc people. gcc people. I don't like their current attitudes towards their users, but *at least* they do (or did) something to earn that position in the first place. Ulrich Drepper _did_ code up a big part of glibc. You may not like glibc, but you cannot disregard the fact that glibc was used by Linux userspace for years and years, and it was doing its job (and continue to do it). dash, on the contrary, did not do even that. It wasn't a default Linux shell. It was not even a typically installed optional package. Now, suddenly, it becomes a default shell. It is *forced on us*. Why? It is based on a Kenneth Almquist's shell, but now it is maintained by other people. In other words, those people didn't even write it, they just patch it up. Comparing to glibc project: they did not maintain a project for a decade benefiting a large community, they did not even maintain it for a decade as a small project with limited user base - someone else did! And now, lo and behold, we _MUST_ bow down and accept it as our default shell? On what grounds?! How do we know that maintainers are sane and technically savvy? I do respect other people's ideas. However, I do not like one iota when other people's ideas are *forced on me*, instead of being *negotiated with me*. If they want me to, for example, write shell scripts in a more portable way, they need to talk to me and explain why is this good. Instead, they seem to think that by installing dash as /bin/sh, they will just force everyone to write portable scripts, *using dash maintainers' definition of what "portable" means*. For example, they decided to implement "local" builtin, but not, say, $RANDOM variable. Standards are not holy scriptures given by God, you know. *People* created them. People can change them, too. Instead of uglifying our scripts, maybe we should amend the standard and add $RANDOM variable? It shouldn't be that hard, especially since standard already defines a few other magic variables. And a way to get something into standard is to add support for it into actually deployed shells, making it a de-facto accepted feature. Conversely, diking out a widely used and simple feature "because it is non-standard" and then demanding everyone to work around resulting widespread breakage smells like a quasi-religious crusade to me. And finally. I ran busybox ash testsuite under dash. Filtered out bash compat failures and ended up with 11 failures on *standard-compatible* test scripts out of 41 test scripts total. ~25% failure rate. These people talk about standard compatibility?! Give me a break... -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
