4 ms·
Saying dynamic languages are for novices hints more at you being one than anything else. Not everyone likes IDEs (Emacs and VIM are still by far superior to ma
by jeremiep 9y ago
Saying dynamic languages are for novices hints more at you being one than anything else.
Not everyone likes IDEs (Emacs and VIM are still by far superior to many) and not everyone wants to deal with all the extra code and boilerplate and ad-hoc data classes that comes with static typing, to name a few.
Dynamic languages have faster iteration times and from experience that can yield higher quality software. They're easier to fit in the functional paradigm, better to model data transformations, and a bunch of other goodies.
You can't judge something without taking into account the context in which its used. And for scripting something like Excel dynamic is clearly superior.
- cm2187 9y agoI am not saying dynamic languages are for novice. I am saying people who will be using office's scripting are more often than not programming novices (like they are with VBA). You may like plain text editor but for someone who doesn't know how to program, typing a variable then dot, and having a drop down of what is available from there, with an embedded documentation and direct IDE feedback on what is correct or incorrect syntax immediately after typing every character is super useful. RTFM isn't novice friendly.
- jeremiep 9y agoSorry I misread your first comment. Its still possible for dynamic languages to have auto-completion. There's way more information available at runtime than at compile-time. Besides, IDEs tend to have the entire world in most autocompletions, which is not useful either. There would be no IDE here, you'll probably still write code from within Excel and advanced users will use separate source files to leverage their editor of choice. The novices you mention will not want to leave Excel. A dynamic runtime with reflection is all you need to give a friendly experience. That doesn't prevent type hints, inference or autocompletion.