I think that implicitly, the problem is that making a useful (nontrivial) feature request that has a chance of resulting in a PR that is actually merged may require a lot of exploratory work at this stage in Julia’s development, and issues are not the ideal place to do this.
Discussion on this forum usually serves the purpose of clarifying this. Also, they help new users who believe they are missing a feature, while they are just not familiar enough with Julia to find an idiomatic solution.
In order to understand this better, it is useful to understand what people mean when they use “Julia” in this context:
-
The semantics of the language proper. These are the basic building blocks for the language: the parametric type system, control flow, namespaces, scopes, metaprogramming, dispatch, etc. The implicit intention is to keep these building blocks as orthogonal and small as possible, because changes are costly and have ramifications to the compiler etc. The bar for adding a new feature here is very high, and usually only those who are actively involved with working on Julia intervals have the experience to design a useful addition.
-
The syntax of the language. This is a favorite for brainstorming about new features, mostly because people miss syntax from another language they are used to. Usually, the problem is that it may not integrate well into Julia, either at the parser level or conceptually. Most of these feature requests just peter out, the exception is adding an operator and similar trivial changes.
-
The functions and types defined in
Base
. Because Julia has been in development for a long time, most of the low-hanging fruits have been addressed, and it is encouraged that new functionality should go into packages. (In retrospect, arguably a lot of this functionality should have been in packages already, but this cannot be addressed now without breaking.) A feature request has the best chance of succeeding when it addresses some very basic functionality or a something that cannot be don in a package. -
The standard libraries. They are well onto their way of becoming packages and decoupled from the language proper. Features should be implemented in new or existing packages.