Re: Essential feature: assertions
- Posted by George Henry <ghenryca at LYCOS.COM> Jan 30, 2001
- 558 views
On Mon, 29 Jan 2001 23:52:45 Martin Hunt wrote: >Sounds pretty complicated to me - sort of like writing your code twice - >once for the code, and then once for the assertion. > >It's not stuff that I want in a language that I use. It would absolutely >make my life much harder. Uh, Martin, it's not a feature you would be forced or obligated in any way to use. Just encouraged to use, in order to make your code more correct, bullet-proof, however you want to say it. This is one of those computer science things that has been proven in theory AND practice. Eiffel has proven to be the most successful OO language for large projects (dozens of programmers, millions of lines of code) precisely because of its extensive and well-thought-out assertion facilities. There is a unifying principle, called "design by contract," behind all of that. It's something every programmer who uses any language would do well to read up on (even if you never intend to use Eiffel), because it improves your thinking and your approach to the whole software development process. So anyway, if you don't like assertions or have a use for them, just ignore the facility, pretend it doesn't exist, and go on coding the way you have been doing. It's no skin off my nose, unless I am tempted to use your software, in which case "written with extensive use of assertions" would make me more confident that it will work as advertised most of the time. >It is very bizarre (IMHO) that people are putting so much pressure on Robert >to make Euphoria into some kind of C++ or VB substitute. If you want the >resources of those languages, why not go and pay !0 times more and buy them >and leave Euphoria for those of us who need a simple, elegant and compact >interpreted language? There is nothing I want less than "some kind of C++ or VB substitute." I am against featurism and unnecessarily complex tools. I appreciate the cleanness and simplicity of Euphoria. That and sequence are the reasons I am using it. (Also the *free* public domain version and low cost of registering.) There are two ways to "improve a language." One is to learn to use it better without any changes. I admit to being a largely ignorant newbie, but I'm working to change that. The second way is to add a few well-chosen features. I think Rob has done an excellent job with the language as it stands. However, there are some useful features that just might be worth the trouble to add. Features are divided (fuzzily) into two types: Those you should use, and those you can use if you want to (and in certain circumstances would make life easier for you). [There is actually a third type - features you should avoid at all costs, to the point of shunning languages that require you to use them. ] The fuzziness usually depends on the context. I think assertions should be used in developing commercial software, or even non-commercial software intended for widespread use by others. (Things like IDEs and GUI libraries come to mind, or any general-purpose libraries that people are likely to view as essential parts of their toolkits.) For hacking, prototyping, or personal-use software, one should feel free to use assertions as much or as little as they like. >It is even more bizarre that people get so unfriendly about it. RDS provides >an excellent product at an excellent price. I've never made a purchase of >any sort where the vendor provides so much support. When was the last time >you were able to ask a question directly to the programmer when you had a >problem in VB? Yet last year we had Everett calling Robert immoral or worse, >and this year we have the lovely MTS feeling that anything goes in the >attempt to make RDS jump to _their_ tune. What I'm seeing is people who >don't have anything to offer themselves demanding that RDS do their work for >them. For free. Yuk. How about I implement my own language - that borrows heavily from Euphoria, since as I said it incorporates some very useful ideas, nicely implemented at that. Then I will get a chance to "walk in Rob's shoes," so to speak. (Just an idea. Don't hold your breath waiting for me to do it.) I don't want RDS to do my work for me. I have used lots of languages in the past where, as you say, I had absolutely no input regarding what features might be available. Here, we are all in effect part of the "ANSI standard committee," though Rob has final say, but at least he listens and responds to requests that have some merit, even if many of us disagree with his decisions. Having the opportunity to make suggestions of potentially useful features (useful to EVERYONE, not just myself), I for one intend to make full use of that opportunity. I could grumble back at all the people who keep silent about possibly improving Euphoria. Surely you have some potentially useful ideas? Is so, you are doing yourselves, RDS, and the entire Euphoria users' community a disservice by keeping them to yourselves. I think Rob will agree that there are opportunites to improve the language. In general, he seems to appreciate suggestions. Whether to make enhancements for free or to charge for them is his choice. >One of the services that RDS has provided free of charge is this mailing >list. Yet when Robert wants to change it, to solve some obvious problems, >and to make things a bit easier on himself - all he gets is a crescendo of >whining. I have gotten rather tired of that, myself. >Many people have left the list - the whiners are saying it's because RDS >isn't doing enough. In fact, the whiners have made the list into something >that's not much fun and not very useful - so why would anyone stay? > >And in case anyone asks - this post isn't a whine - it's a grumble. (Intelligent) grumbling is a lot more palatable than whining. George Get your small business started at Lycos Small Business at http://www.lycos.com/business/mail.html ____________________________________________________________ T O P I C A -- Learn More. Surf Less. Newsletters, Tips and Discussions on Topics You Choose. http://www.topica.com/partner/tag01