4 ms·
These are good suggestions, Walter. Let me add a couple more. Always think of your language as a compiled language even if you start out just writing an interp
by ScottBurson 13y ago
These are good suggestions, Walter. Let me add a couple more.
Always think of your language as a compiled language even if you start out just writing an interpreter. Otherwise you are likely to add features that are very difficult to compile efficiently.
If you're trying to design a language for accessibility -- ease of use by relatively inexperienced programmers -- be aware of the tradeoffs. For example, weak typing, such as automatic conversions between strings and integers, is commonly thought to make life easier for novices, but it can make it much harder to build large reliable systems -- and if your language is successful, it will wind up being used for large systems, regardless of its suitability for that purpose. Conversions from strings and integers to booleans have been a particular problem area. Make sure that comparison operators are transitive and equality is an equivalence relation -- and if you don't know what those terms mean, you need to study programming language design before you attempt it yourself.
- dllthomas 13y agoI mostly agree with this, but "if your language is successful, it will wind up being used for large systems" assumes somewhat particular definitions of "success". The Logo language was successful in providing room for experimenting with programming at a time that was comparatively inaccessible. It was also successful in that it ran on quite a few machines and people paid money for implementations. I would be mildly surprised if it has ever been used for a large system, and tremendously surprised if this was prevalent.
- dragonwriter 13y agoI thought -- and I could be wrong -- that Logo in its more modernish forms had been used in some fairly large simulation systems (even distributed ones).
- dllthomas 13y agoNot finding mention of it in the wiki page - if you can find a source that seems like it would be a worthwhile addition. Very cool, if the case! I think my general point still stands that there are types of success that are not likely to lead to big projects written in the language, though it is certainly weakened.
- ScottBurson 13y agoOkay, fair enough, there are different kinds of success. But I don't know that Larry Wall or Rasmus Lerdorf would have predicted, in the early days of Perl and PHP respectively, that their languages would wind up being used for large systems -- and yet, they have been. This is the point I was trying to make.
- dllthomas 13y agoAgreed.