Menu

How to participate?

Community (3)
thebeez

How to participate?

Whether you were just browsing around and got an idea or whether you are already a (hopefully happy) 4tH user and wanted to add some functionality, you are always welcome here. But please note this is not a company. All the work you see here has been done in spare time. So yes, you may come up with a suggestion that will make 4tH conquer the world, but that doesn't mean that it will be implemented tomorrow. Or even next year. Or at all.

What won't work

  • Demanding a feature. Stay polite. Even if you're the CEO of a sizeable company, we treat all people alike. We aren't on your payroll, so don't treat us that way. Don't even try;
  • Suggestions that violate 4tHs design objectives. 4tH is as small as possilbe, as fast as possible, as safe as possible and as portable as possible. We don't throw in everything but the kitchensink. Compliancy to ANS-Forth is certainly important, but we won't violate the architecture to achieve 100% compatibility. And we want 4tH to be maintainable, so in ten years we will still understand what we were doing today. Hence, the code has to be elegant. Note that after 25+ years, we're still there - and we continue to change decades old code code on a daily basis;
  • "Bang for the buck". If your suggestion requires a lot of work, but basically doesn't add anything - you'll have a hard time getting it through. It has to add something in the form of (real - not potential) functionality, speed, size or elegance;
  • Suggesting large projects. The easier it is to build, the better your chances it will be included. Large projects are a risk, because there is always the chance that we won't get it to work. And that's a waste of time - and very dissappointing to everyone concerned. At the end of the day, we want to open a beer and look back at a piece of work we can be proud of.

How does this community work

Basically, we're a sailing club. We like our boats and our tours on the water. We don't have a "road map", because we sail wherever we want to sail on a given day. So what 4tH will be in ten years - we can't tell you. If our boat is broken, we don't sail. If we don't feel like sailing, we don't sail. We're not a taxi service, since nobody is paying us. We're in it for the sheer fun of it.

How to improve your chances

  • The very, very best you can do is come up with working 4tH code. Of course, we'll take a long look at it and - if necessary - improve it and make it better suited for inclusion. Working code always makes us veer up and take interest. It also triggers us to expand on it and add value. E.g. the "Zen float" and "graphics" libraries saw a lot of additional work and enhanced functionality;
  • Note Forth code does not equal 4tH code. Depending on which features of the Forth language are used, it may require little or a lot of effort to make it work;
  • If you're not capable of providing working code, it will help a lot of you can divide it into chunks of work and get at least the algorithms right. That's how "Chinese characters" got included. It also helps if you remain available for testing. E.g. we don't know nothing about MIDI files, so it would be terribly hard for us to get it right;
  • In general, we welcome suggestions. But sometimes it takes quite some time to find a solution which is acceptable to the both of us. As long as you don't expect your feature in the next release. It may take time. Sometimes years. The reason is that the best solution sometimes depends on things we haven't developed yet. A nice example is floating point. That required the implementation of double words. Or Object Orientation. That required the preprocessor.