3 ms·
The problem is that a static easily tooled language is not going to be as good as the dynamic un-toolable one without massive tooling support specifically for t
by RyanZAG 11y ago
The problem is that a static easily tooled language is not going to be as good as the dynamic un-toolable one without massive tooling support specifically for that language's features. Creating those tools is not the job of a lone developer. The cost is immense. The language first has to achieve popularity to receive the tooling, or be heavily backed by a large tooling capable company (eg, Google, Jetbrains, Microsoft). So far, the only recent languages to receive the kind of required static tooling are from those 3 companies. Also note that the language did not come first in those cases - the requirement for the language came first, and a language was made to fit what was needed.
However even more importantly - if you're going to create a language, it needs to be the ultimate language in your own eyes. You can't leave off novel features that you have experience in because it doesn't have mass appeal or has tooling issues. You need to create the best language you possibly can if you want to compete with others trying to create the best language. Hamstringing your enjoyment of the language by going in a direction you don't like because it has more apparently mass market appeal isn't any more likely to be successful, and it certainly isn't going to be enjoyable enough for you to slog through the tiny complexities.
While there is a tiny chance that your language becomes the next big thing, it probably won't. That means you need to make the language you want to make and hope it succeeds, not make the language that 'will succeed' but you don't want to make.
- hyperpape 11y agoYour point about support is well taken, but while Rust is being supported by Firefox, it was Graydon Hoare's side project for 3 years. It is at least possible for an individual to run with an idea for a static language and get community or corporate support, even if it is tremendously difficult. And I don't know if you can say that the language sprang from the requirement. It did, so far as a lot of people have had longstanding dissatisfaction with C++, but I'm not sure Mozilla originally was looking for a replacement (ditto for Google and Go--though lessons learned there may not apply to people who aren't Rob Pike...). I agree with you so far as it can't be a language you don't want to make. I don't think this article describes that, but a more modest set of constraints. Elsewhere, the author mentions Julia as a positive inspiration. I think the idea of compromise depends on the idea you're trying to bring into the world. You can't compromise your core idea, but you can compromise on other things. I guess I'm making assumptions about what the author is compromising that I'm not entitled to. Perhaps you know that I'm wrong.