Development Environment: Tools Decide
**Jeff Dean from Google writes in vi with no plugins.** A good tool choice? Absolutely not. But he knows the codebase by heart. For the other 99.9% of developers, a well-configured IDE accelerates work 5-10x - not because they are worse developers, but because the tool removes cognitive overhead.
Цели урока
- Understand the difference between a text editor and an IDE
- Choose the right tool for the task
- Set up the first development environment
- Learn about REPLs and online sandboxes
Предварительные знания
- Understanding what a program and code are (lesson 1)
73% of developers worldwide use VS Code according to Stack Overflow 2023 - more than all other editors combined. Not because Microsoft paid for the votes - because the tool genuinely accelerates work. The remaining 27% know something most do not.
- **VS Code** - free Microsoft editor, 73% market share among developers, 50+ languages out of the box
- **PyCharm** - JetBrains IDE, standard in Data Science, deep Python integration
- **Cursor** - AI-powered IDE with codebase agent and tool calling in practice
- **Replit** - full projects in the browser, no installation, with real-time collaboration
From Maestro I to Bret Victor: a history of programmer's tools
**1975, Maestro I** (Softlab, Munich) - the first IDE in the world: color screen, split window for editing and debugging, 22 000 systems sold globally. **1976, Smalltalk-76** (Dan Ingalls and Alan Kay at Xerox PARC) - the first environment with live coding: change an object while the program is running, no recompilation. **1983, Turbo Pascal** by Anders Hejlsberg (the same person who later created C# and TypeScript) - editor, compiler and debugger in a single 33 KB binary, priced at $49.95, demolished the IDE industry that used to charge thousands of dollars. **1997, Visual Studio 97** unified Visual Basic, Visual C++ and Visual J++ in a single shell. **2012, Bret Victor, "Inventing on Principle"** - the talk that changed the industry: Victor demonstrated environments with instant feedback between code and result. That idea directly influenced Light Table, Swift Playgrounds, Jupyter Notebooks and the modern hot reload in Cursor and VS Code.
Text Editor
Code is plain text. Technically it can be written in any text editor: Notepad, nano, vi. The one requirement: the editor must save **plain text** without hidden formatting.
Do NOT use Word or Google Docs. They save files as .docx with XML metadata about fonts and styles. The compiler sees that XML and cannot recognize the code.
Simple editors
The basics
**Notepad++** (Windows) - free, syntax highlighting for 80+ languages **Sublime Text** - fast, lightweight, cross-platform, opens files instantly **nano/vim** - terminal editors that work on a server without a GUI Pros: lightweight, launch instantly Cons: no autocomplete, debugger, or refactoring
**Syntax highlighting** colors keywords (if, for, def) differently. It does not change the code - but the brain reads structure rather than symbols, which is about 3x faster.
Why can't code be written in Microsoft Word?
IDE - Integrated Development Environment
An **IDE** (Integrated Development Environment) is an editor that understands code. It knows the language syntax, dependencies between files, and variable types. Instead of just displaying text, it comprehends the program.
IDE superpowers
What a good IDE can do
**Autocomplete** - start typing `pri` and the IDE suggests `print()` **Error highlighting** - red underlines BEFORE running the code **Debugger** - step-by-step execution, inspect variables in real time **Refactoring** - rename a variable across all files with one click **Git integration** - commits, diffs, history without a terminal **Terminal** - run code right inside the IDE
| IDE | Languages | Price |
|---|---|---|
| VS Code | All (via extensions) | Free |
| PyCharm | Python | Free (Community) |
| IntelliJ IDEA | Java, Kotlin | Free (Community) |
| WebStorm | JavaScript, TypeScript | Paid |
| Xcode | Swift, Objective-C | Free (Mac only) |
For starting out - **VS Code**. Free, fast, thousands of extensions. Works for Python, JavaScript, C++, Rust - any language. It is the editor most Cursor and GitHub Copilot users already have open.
What is autocomplete in an IDE?
VS Code - The Choice of Millions
**Visual Studio Code** is the most popular editor in the world. Stack Overflow 2023: **73% of developers** use it as their primary tool. Open source, from Microsoft, free. Launches in a second, runs on any hardware.
Installing VS Code
Three steps to a professional tool
1. Download from **code.visualstudio.com** 2. Install (Next -> Next -> Finish) 3. Open it and install an extension for the target language: - Python -> "Python" extension from Microsoft - JavaScript -> works out of the box - C++ -> "C/C++" extension
**Extensions** are VS Code's greatest strength. Want a Matrix-style theme? It exists. Need support for an obscure language? It exists. GitHub Copilot, Cursor, ChatGPT integration? All exist. The extension marketplace has over 50 000 packages.
Useful extensions
Must-haves for beginners
**Python** - language support, debugger, linter, type hints **Prettier** - automatic code formatting (one button, entire file perfect) **GitLens** - change history directly on each line of the file **Error Lens** - errors displayed inline, not in a separate panel **Live Server** - instant HTML preview in the browser with auto-reload
What are extensions in VS Code?
REPL and Online Sandboxes
Sometimes a full project is not needed - just a quick idea test or a single expression to evaluate. For that there is the **REPL** - the interpreter's interactive mode.
**REPL** = Read-Eval-Print-Loop. Type a command - the interpreter runs it - shows the result - waits for the next. A rapid prototyping tool.
Python REPL
Open a terminal and type python
``` $ python >>> 2 + 2 4 >>> "Hello" * 3 'HelloHelloHello' >>> exit() ``` REPL is ideal for: - Checking the syntax of a new method - Quick calculations - Exploring an unfamiliar library
When installing nothing locally is preferable - **online sandboxes** cover the gap:
| Service | Languages | Features |
|---|---|---|
| replit.com | 50+ languages | Full projects in the browser |
| codesandbox.io | Web (JS/TS) | Frontend projects with live preview |
| jupyter.org | Python, R | Interactive notebooks |
| godbolt.org | C/C++/Rust | Assembly output alongside source |
When is it better to use a REPL instead of an IDE?
Key Takeaways
- **Text editor** - the basic tool, plain text only, no hidden formatting
- **IDE** - editor plus autocomplete plus debugger plus refactoring plus code understanding
- **VS Code** - 73% market share, free, extensions for any language
- **REPL** - interactive mode for quick experiments without creating files
- **Extensions** - VS Code's main strength: language support, linters, AI agents
- The right tool removes cognitive overhead and multiplies productivity
Where this lesson sits in the curriculum
With the environment ready, the next lessons start writing real code:
- Variables and data types — First real code: int, float, str, bool, the = operator
- Operators — Arithmetic, comparison, and logical operators on top of variables
- Strings — Text manipulation: concatenation, slicing, f-strings
- Testing — Pytest, the debugger, and the test runner all live inside the same IDE
Вопросы для размышления
- A team is starting a new project in an unfamiliar language. How is the decision made between a lightweight editor and a full IDE? What project and workflow factors matter most?
Связанные уроки
- prog-01-intro — Concepts of program, code and language are the base - choosing an IDE is meaningless without them
- prog-03-variables — Without a configured environment even a simple variables example cannot be run
- prog-15-testing — Running unit tests and the debugger live inside the same IDE - a direct extension of setup
- comp-02-language-processing — The IDE frontend (lexer for highlighting, parser for autocomplete) mirrors the frontend of a compiler
- se-05 — Refactoring as a Design Pattern: the IDE automates Extract Method, Rename and other GoF transformations
- devops-02 — The terminal and shell inside VS Code are the same Linux toolkit used in DevOps
- alg-01-big-o