CODE EDITOR
A code editor is a software application designed specifically for writing and editing source code of
computer programs. It provides an environment for developers to create, modify, and test code for
software applications and websites. A code editor is a software application that allows developers to
write, edit, and manage source code for various programming languages.
Key Features of Code Editors
1. Syntax Highlighting: This feature highlights the syntax of the code being written or edited,
making it easier for developers to read and understand the code.
2. Auto-Completion: This feature suggests code completions as developers’ type, helping them
write code more efficiently by reducing the amount of typing required.
3. Indentation: This feature automatically indents code as it is written or edited, helping
developers keep their code organized and easy to read.
4. Error Checking: This feature checks code for errors as it is written or edited, helping developers
catch errors before they cause problems in their code.
3 Types of code editors
Code editors are broadly classified into text editors and Integrated Development Environments (IDEs).
1. Text Editors
Text editors are lightweight applications that solely focus on writing and editing code. They are
simple to use, fast and have minimal interface elements that cater only to writing and editing
text. Some popular examples include Notepad, Notepad++, etc.
2. IDEs
IDEs are comprehensive software packages designed for software development. They offer features such
as debugging tools, project management systems, built-in compilers/interpreters, version control
integration, etc., in addition to basic text editing capabilities. Popular IDEs include Visual Studio Code,
Atom, and NetBeans.
3. Online IDEs
Those are browser-based IDE for web developers such as StackBlitz. They offer the same
capabilities as regular IDEs but they are cloud-based.
Version Control System
A Version Control System is a tool that helps developers manage changes to code over time. It records
every modification made to a project, providing a detailed history of changes, making it easy to revert to
previous versions, and facilitating collaboration between multiple developers.
Types of Version Control Systems
1. Local Version Control Systems
Overview: In a local VCS, all versioning is managed on a single computer. Developers manually
track changes by saving copies of the project at different stages.
Example: Using folders like Project_v1, Project_v2, and so on to maintain versions.
Limitations:
Difficult to track changes accurately.
No collaboration support.
High risk of data loss if the computer crashes.
2. Centralised Version Control Systems (CVCS)
Overview: In a CVCS, a central server stores all project files and version history. Developers work
on local copies and synchronise changes with the central server.
Examples:
Apache Subversion (SVN): Popular in the early 2000s.
Perforce: Still used in certain industries like gaming.
Advantages:
Centralised control simplifies administration.
Teams can work on shared projects.
Disadvantages:
Dependency on the central server.
No offline access to version history.
Risk of server failure.
3. Distributed Version Control Systems (DVCS)
Overview: DVCS stores a complete copy of the project and version history on every developer’s
computer. Developers can work offline and synchronise changes when connected to a shared
repository.
Examples:
Git: The most widely used DVCS.
Mercurial: Known for ease of use.
Advantages:
Offline access to the full project history.
No single point of failure.
Better collaboration with branching and merging.
Disadvantages:
Steeper learning curve.