I've switched to Org Babel as a replacement of Jupyter Notebook since I already tired copying Julia program texts back and forth between Jupyter pages in web browsers and Emacs. Fortunately, Org Babel can do everything that Jupyter Notebook does. Except that there is a small usability feature that I miss in Org Babel. Typing 'C-RET' in Jupyter evaluates the current code block. In Org Babel 'C-RET' inserts a new heading at the end of the current subtree. To evaluate the code block there is 'C-c C-c' (org-ctrl-c-ctrl-c). Thus the equivalent of 'C-RET' is 'C-c C-c'. So far, so good.
What I miss in Org Babel is an equivalent of 'S-RET' that in Jupyter creates a new code block relative to the current code block. Actually, in Org Babel such a command already exists and is bound to the needed key 'S-RET', but currently it works only on tables: the command is 'org-table-copy-down' and it copies the current field down to the next row and moves point along with it. This is exactly what is needed also in context of code blocks. Maybe like there is already the command named 'org-ctrl-c-ctrl-c', a new general command bound to e.g. 'org-s-ret' could do this depending on context. PS: another similarity is how typing RET in shell buffers inserts a new prompt where the user can type a new command. 'S-RET' in code blocks could work the same way: type 'S-RET' and write code in the next code block, and type 'S-RET' again.