this post was submitted on 31 Jan 2024
1 points (100.0% liked)
Asklemmy
43897 readers
956 users here now
A loosely moderated place to ask open-ended questions
Search asklemmy ๐
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Essentially modern software development uses a few different components.
Usually you have a text editor with plugins or an IDE (integrated development environment) which has the text editing functionality and ties the other tools together for display purposes and to tell other tools which locations in the code you mean.
A lot of IDEs had more of the tooling for one or more languages built-in but usually now you have a so called language server which runs in the background and communicates with your text editor or IDE via the Language Server Protocol (LSP).
There is also a similar but less mature system called the Debug Adapter Protocol which is used by some editors and IDEs and has support in debuggers for some languages but is far less universal than LSP at this point in time.
Other tools require less detailed interaction with the editor or IDE and they are just called and their output is processed. These are probably the terminal applications you are thinking of.
This includes some interpreters and compilers as well as static analysis tools such as linters and test suites for your code.
Some people prefer to control everything with their IDE and others call some of the tools manually in separate terminal windows.
Some editors and IDEs also integrate with tooling such as version control systems like git to e.g. display which lines of code are new.
Part of development also happens outside of IDEs or text editors, e.g. in code review tools like Gerrit or the code review part of GitLab.