Professional Documents
Culture Documents
Whitepaperpdf
Whitepaperpdf
Whitepaperpdf
Contents
Methodology ......................................................................................................................................3
Tasks ........................................................................................................................................................................ 4
Results...................................................................................................................................................5
Conclusion ......................................................................................................................................... 15
Bibliography ...................................................................................................................................... 16
Appendix............................................................................................................................................ 17
Braxton Marlatt
Usability Comparison |3
Introduction
Vim and Visual Studio Code are popular text editors with the intended use of
programming and designing software. Users are often programmers with varying
familiarity with text editors. A seasoned programmer will have a higher technical ability
than a college freshman that is just starting to code. Vim dates to the early 1990s and
is known for its extensive customization, optimization and efficiency, while also taking
a bit of getting used to. On the other hand, VS Code is easier to get into due to the
robust user interface, and a more modern take on the text editor. This white paper
features the outcomes of cognitive usability tests of how well the text editors
performed over several tasks. The results are structured using the five standard
components of usability.
Methodology
Test Environment
The test environment consisted of me in my bedroom with the door shut and no
outside noise or other distractions. This was to closely simulate the environment that a
software developer would likely be working in, whether that be from an office, home,
etc. The computer used for testing was a Lenovo Desktop computer running the Linux
hence why it was used. Vim comes with most Linux distributions, so it was already
installed on the computer, and VS Code was downloaded from a browser. Both text
Braxton Marlatt
Usability Comparison |4
Tasks
1. Create a new file and save it to a directory.
2. Change the color scheme of the editor to white and black.
3. Change the name of all instances of a variable.
4. Open another file and split the window.
5. Toggle line numbers on and off.
6. Comment out a block of code.
7. Indent and format code.
8. Cut and Paste code to a different location.
9. Search the code for a name of a function.
10. Save edits to code then compile.
2. Efficient: The task is achievable with little input or thought from the user.
3. Engaging: The required steps in the task were simple and satisfying to
undergo.
4. Error Tolerant: Errors in the task were recognizable and did not create large
issues.
5. Easy to Learn: Process to achieve task is intuitive and easily repeatable after
initial inquiry.
These criteria will be rated using a 6 Point Likert Scale. This scale avoids a neutral
option which testers are more inclined to choose. The scale can be visualized as
follows:
Braxton Marlatt
Usability Comparison |5
Results
This section includes the results of the cognitive walkthrough. Each text editor will be
you can see in Figure 1, the menu is clean and allows the
creating a new file. Vim requires the user to call a command Figure 1: VS Code New File Creation
in the Linux terminal to open and save the file, which requires a bit more memory and
experience, but allows for the task to be achieved at a faster rate compared to VS
Code. You can see the text-based input that allows for fast navigation in Figure 2 and
3.
Figure 2: New File Creation in Vim
VS Code
Vim
Table 2: Task 1 Bar Graph
Braxton Marlatt
Usability Comparison |6
access the settings, which is natural for such a task and then scroll through the
This menu was not very usable as you could only view each color scheme if you
selected it, and then you had to redo the whole process to view another color
scheme.
Vim: Vim again requires a command that is intuitive, but like VS Code, to view the
color scheme you would have to select it and then restart the process of choosing
another scheme to change it. The process to open the menu to change colors was
VS Code
Series 2
Braxton Marlatt
Usability Comparison |7
change all instances of a variable in your desired scope. You can see in Figure 6 that
the variable names get highlighted, and you can see in live time the changes you
the line in Figure 6, where the string in the Figure 7: Changing Variables in VS Code
This is a bit confusing and requires more focus Figure 6: Changing Variables in Vim
VS Code
Vim
Braxton Marlatt
Usability Comparison |8
side of the screen to split it. His is not the most efficient process, but it is intuitive and
simple and aides in efficiency when writing code. You can see the split window format
in Figure 8.
Vim: I could not figure out how exactly to get a proper split window to work in Vim,
you can easily open files at once but not view them at the same time. I resorted to
opening two terminals and using those simultaneously. This gives a similar effect to
what I was aiming for but takes longer to set up and is not as engaging as expected.
VS Code
Vim
Braxton Marlatt
Usability Comparison |9
found it was easiest just to search for the toggle option in settings. The process is
simple and clean and takes minimal time, especially for something you will probably
only do on occasion.
VS Code
Vim
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 10
desired lines and press the comment button “/”. This makes for commenting out big
singularity.
VS Code
Vim
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 11
Indentations can be made over large block quickly by selecting the code with the
cursor and pressing tab. This, along with the fact that the editor automatically inserts
the closed versions of brackets, parentheses, etc. makes for fast and easy formatting
This takes a little longer than using the mouse, and the
Figure 14: Indented Text in VS Code
selection process with the arrow keys is clunky and
VS Code
Vim
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 12
quick and easy but does allow for some margin for error in selecting the text if one is
Vim: Again, the lack of mouse input in Vim holds it back. Had to input several
commands to enter the Visual Block, select the correct text, and cut and paste it.
Selecting the correct text is a bit tricky and takes some getting used to and the
VS Code
Vim
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 13
Visual Studio. All off the appearances of the name of the function could be cycled
through and there was a small preview of the code file displayed that highlighted the
command line to
Figure 16: Visual Studio Search Feature
search through the
document. Command of just a ‘/’ was very intuitive and easy to learn and the different
VS Code
Vim
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 14
more time in VS Code. One must save before switching screens to the terminal, which
causes room for error in forgetting to save and having to restart the process. Saving
edits is quick and easy and can be done with a simple command, but switching to the
terminal is a bit tedious as you must take your hand off the keyboard.
Vim: Since Vim is built into the terminal is very intuitive to save and exit Vim with a
single command. Task is error proof as you must exit Vim to compile the code, so it
will be saved. This process can be done very quickly, and the user doesn’t have to
VS Code
Vim
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 15
Conclusion
Final Scores
70
60
50
40
30
20
10
0
Efficient Effective Engaging Error Tolerant Easy to Learn
VS Code Vim
This usability test has revealed valuable insight into the strengths and weaknesses of
both Vim and VS Code. While my test has fallen quite heavily in favor of VS Code, I do
believe that there is a niche market for Vim and its more complex design and steep
learning curve. Hardcore developers and enthusiasts might enjoy the text input style
and potential efficiency of Vim, but for beginner programmers and college students,
the clean Graphical Interface of VS Code makes for a smooth transition into the world
of code.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 16
Bibliography
“Vim - the Ubiquitous Text Editor.” Vim Online, www.vim.org/.
Braxton Marlatt
Appendix
Tasks VS Code Vim
TASK 1 Create new file and save it to directory. Create new file and save it to directory.
Efficient Task was efficient but required removing hand from Task was very efficient
keyboard and some User Interface navigation.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Efficient Took some time to cycle through color schemes of my No option to preview color schemes, took long to find one
liking. that suited me.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Effective The task was completed effectively. Task was completed effectively.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging Navigating the theme menu was not very intuitive. Vim command line was intuitive using ‘color scheme’
command.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error User interface was error tolerant. Not necessarily and error but selecting the wrong color
Tolerant scheme a complete restart of the task.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to User interface was easy to learn. Took a couple minutes to find the proper command.
Learn
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Finding the settings in the bottom left was a bit tricky, after Entered the Vim command line with escape and then typed
Notes that finding the proper theme was easy, although a little ‘colorshceme’ followed by the proper colors I wanted.
time consuming.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 19
Efficient Task completed very efficiently Task was not relatively efficient
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging Task was very engaging intuitive. Command was not intuitive.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error Errors are hard to make in this task Command was a bit complex, and somewhat error prone.
Tolerant
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Very simple command, easy to learn and replicate. Command took several minutes to understand, would have
Learn to relearn after a short period of not using it.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Found that you can press control and f2 to edit all Entered a complicated command in the command line,
Notes instances of a variable. Quick and easy. took several attempts.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 20
Efficient Task was efficient. Task required some extra steps causing it to take more
time.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Effective Task was completed effectively. The task was not completed to complete satisfaction.
Required another terminal to be opened which was not was
I was looking for.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging Task was straight forward and engaging. Task required some work arounds, was not straight
forward.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error No steps allow for the possibility of any major errors. No steps allow for the possibility of any major errors.
Tolerant
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Task was very easy to learn requiring almost no time. Since solution was a work-around there isn’t really a task to
Learn learn besides opening a file.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Opened a new file with the file tab and dragged it to the Could not find how to open to files in one terminal
Notes right side, very quick and easy. simultaneously, opened two files in two terminals for
similar effect.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 21
Efficient Task was not the fastest but wasn’t unbearable. Task was completed efficiently
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging User interface to complete task was engaging Command was straightforward and intuitive
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error Task leaves little to no room for error. Could possibly make mistake in command typing, would
Tolerant only require a short retype.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Task was easy to learn and repeatable. Command is simple to learn and easy to remember
Learn
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Required me to enter settings and search for the toggle for Require the set number! Command. Easy and quick.
Notes the numbered lines, not the fastest solution.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 22
Efficient Task was completed efficiently I was not able to find a way to select a block of code and
comment it out all at once.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Effective Task was completed effectively. Task was complete effectively, but not in the manner I had
in mind.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging Task was engaging and intuitive. Task was completed by commenting out each line,
repetitive and frustrating.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error Selecting the incorrect code might lead to some errors, Easy to avoid errors when manually selecting each line.
Tolerant although easy to fix.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Easy macro input to complete task. Easy to learn and Nothing really to learn as the task just requires
Learn repeat. commenting.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Selected block of code and pressed control and “/” Went line by line and commented the code out manually.
Notes
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 23
Engaging Task was engaging an intuitive. Task was engaging, but selection process for text is slightly
less engaging.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error Task is error tolerant. Task is slightly prone to errors as it requires a few keyboard
Tolerant commands.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Task is easy to learn, took less than a few seconds. Task to a few minutes to learn but is still very easy and
Learn repeatable.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Selected desired indentations and pressed tab. Also Entered visual mod with control v and selected the lines
Notes created a closed version of all applicable characters such with arrow keys then pressed >.
as {}, (), and [], Which is nice for formatting.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 24
Efficient Task was completed efficiently. Task took several steps to complete.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging Task was intuitive and engaging. Task was slightly less engaging as the process of pasting
the block of code was a bit tricky.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error There some room for error in selecting the text, but can Pasting in the correct location is a bit hard and can lead to
Tolerant easily be fixed. errors.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Very easy to learn. Task takes a bit of learning but operates similar to a
Learn normal cut and paste with practice.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Just like copying and pasting in any other context. Very Not being able to use the cursor to select the text makes
Notes easy. copying and pasting more difficult.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 25
Engaging Task was intuitive and engaging Task was engaging but required a few more steps.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Easy to Task was easy to learn and repeatable. Task was fairly easy to learn and is repeatable.
Learn
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Used control Control-F to search the code, just like any Very similar to the Control-F function but used the
Notes other context. command line with a slash to search.
Braxton Marlatt
U s a b i l i t y C o m p a r i s o n | 26
Efficient Takes a little bit of time to switch to the command line. Very efficient in compiling
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Engaging Switching tabs to the command line was not very engaging. Saving and exiting Vim then compiling is very engaging.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Error You can forget to save before going to compile which Task is very error proof.
Tolerant causes issues.
Strongly Disagree Slightly Slightly Agree Strongly Strongly Disagree Slightly Slightly Agree Strongly
Disagree Disagree Agree Agree Disagree Disagree Agree Agree
1 2 3 4 5 6 1 2 3 4 5 6
Additional Since VS Code doesn’t have the terminal built in, it is a bit Since Vim is built into the terminal it is easy to exit Vim and
Notes more of a process to compile the code. compile the code in the terminal without taking your hands
off the keyboard.
Braxton Marlatt