Software
Last updated: Sep 3, 2023
Software I Use
General
- Desktop OS (local): macOS
- Desktop OS (remote, work): gLinux
- Smartphone OS: Android
- Web browser: Google Chrome
- Text editor: Vim
- File storage and synchronization: Google Drive
- Note taking (mobile): Google Keep
- Email: Gmail
- Calendar: Google Calendar
- Word processor: Google Docs
- Spreadsheets: Google Sheets
- Presentations: Google Slides
- Graphics editor: GIMP
Development Environment
- Code editor: Vim
- Terminal: iTerm2
- Terminal multiplexer: tmux
- Terminal shell: Bash 5
- C toolchain (personal): Clang + LLDB + Make
- Build tool (work): Blaze
- Source control (personal): Git
- Source control (work): a modified version of Perforce
- Dotfiles/config management: Stow + Git repository.
Vim Plugins
I manage all my plugins with vim-plug.
Programming Languages
My favorite programming languages are:
- C
- Python
- JavaScript
The criteria I use to determine my language preferences:
- Usefulness
- Popularity
- Portability
- Performance
- Features
The languages I’m most proficient in:
- Objective-C
- Swift
- Python
- JavaScript
- C
Ideal Programming Language
My ideal programming language would be a better and modern C. Desirable attributes would be:
- Statically typed.
- Strongly typed.
- Compiled into machine code.
- No preprocessor macros.
- Value vs reference semantics (C pointers are fine).
- No inheritance, no classes, no methods; only structs and functions.
- Interfaces/protocols.
- Generics.
- Nullability annotations.
- Mutability modifiers (C consts are fine).