Yes, I too have felt there are numerous shortcomings.
I think a big problem with a commoner approach to software is that they build structures rather than systems to interact with that structure.
In the example of notebooks, I do have something to show on that front. Me and my partner are currently working on a project called Olive.jl:
https://github.com/ChifiSource/Olive.jl
Rather than the editor being static, the editor is simply an interface to interact with the defined methods in a given julia environment.
This has made the project **take forever**. It is not yet complete, if you would like to try it I would add the Unstable branch.