effect of editor/ide on javascript programming-style

kai zhu kaizhu256 at gmail.com
Fri Jun 28 16:58:47 UTC 2019


adding a datapoint on effects of vim-editor on my javascript coding-style.
this is to expand on discussion of "JavaScript and Syntax Research Methods"
in tc39-notes [1].

vim has the following file-editing properties:
1. poor UX in opening new files
2. efficient content-search/jump/traversal of large files
3. can display the same file in multiple editing-windows

because of above properties, i default to writing javascript applications
as a single, large file (which may get broken up if it becomes "too" large,
e.g. >10k sloc).  developing javascript-apps with a single js-file leads me
to:
1. prefer reusing external-code by copy/pasting it into single-file rather
than load it as commonjs/es-module
2. be selective about what external-code i want to copy/paste -- generally
only self-contained or "rolled-up" ones w/ minimal external-dependencies
3. general preference to write self-contained code that easy-to-reuse by
copy/pasting into a new project [2].

an argument against writing javascript-applications as a single,
self-contained file, is that it leads to merge/commit conflicts when
multiple devs are working on same file.  its valid ... except most
javascript-products are developed by just 1-3 js-devs.  for the frontend,
its usually just 1 developer.  the hype of making javascript "scalable" so
you can have 20x people working on a product is just that -- hype.  there
are very few real-world products where its cost-effective to have more than
5 js-devs working on it.

[1] JavaScript and Syntax Research Methods
https://github.com/rwaldron/tc39-notes/blob/7a4af23d/meetings/2019-06/june-6.md#javascript-and-syntax-research-methods

[2] documentation of various [minimal-dependency] self-contained functions
that can be copy/pasted
https://kaizhu256.github.io/node-utility2/build..beta..travis-ci.org/apidoc.html




screenshot of me vim-editing multiple locations of one, large
javascript-file (each sub-window is a different location of the same file).
[image: vim-editor-min.png]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190628/2bea9cbc/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vim-editor-min.png
Type: image/png
Size: 37924 bytes
Desc: not available
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20190628/2bea9cbc/attachment-0001.png>


More information about the es-discuss mailing list