Questions tagged [terminology]

Questions about the definition of software-engineering terms, and about the right terms to use to refer to commonly known concepts, practices or patterns related to software and systems development life cycle. Using the right terms correctly is a core practice of the scientific and engineering reasoning.

Terminology is about the objective meaning of software-related terms, and about the use of the right terms to refer to commonly known concepts, practices or patterns related to software and systems development life cycle.

Using the right terms accurately is a core practice of the scientific and engineering reasoning and writing.

Terminology question are objective when they refer to a well-defined term or a well known concept that is used in several sources.

Caution: Terminology questions that refer to concepts on which there is no consensus, and no third party sources to define them might be opinion-based and out of scope.

757 questions
350
votes
6 answers

What is negative code?

I was reading the Wikipedia article on Douglas McIlroy and found a quote that mentions "The real hero of programming is the one who writes negative code." What does that mean?
Anonymous
234
votes
10 answers

Is there a name for the (anti- ) pattern of passing parameters that will only be used several levels deep in the call chain?

I was trying to find alternatives to the use of global variable in some legacy code. But this question is not about the technical alternatives, I'm mainly concerned about the terminology. The obvious solution is to pass a parameter into the…
RubenLaguna
  • 1,842
  • 2
  • 12
  • 11
208
votes
12 answers

What's the difference between an API and an SDK?

I was looking through various APIs and SDKs, when I realized that I couldn't really tell the difference between something called an API and something called an SDK. Both of them are, conceptually, a way for your program to interface with and control…
KeithS
  • 21,994
  • 6
  • 52
  • 79
164
votes
12 answers

Why does it matter that HTML and CSS are not programming languages?

Example here: What languages should I know if I'm interested in building web applications? Yes, I understand that HTML and CSS are not Turing-complete. Yes, I understand that they are declarative, not imperative languages. But why are people…
Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
144
votes
11 answers

Should I stop using the term C/C++?

I understand C and C++ are different languages but when I was learning C++ I was always told that C is a subset of C++ or C++ is C with classes. And that was quite true until the appearance of C++x0, C++11 (or the modern C++ 11/14/17 in general). In…
rkachach
  • 1,219
  • 2
  • 9
  • 9
143
votes
7 answers

What is an integration test exactly?

My friends and I have been struggling to classify exactly what is an integration test. Now, on my way home, I just realised, that every time I try to give a real world example of an integration test, it turns out to be an acceptance test, ie.…
Martin Blore
  • 4,645
  • 5
  • 29
  • 35
135
votes
8 answers

What is a "side effect?"

I haven’t clearly understood the concept of side effect. What is side effect in programming? Is it programming language dependent? Is there such a thing as external and internal side effects? Please give some example of causes that create side…
Amir Rezaei
  • 10,938
  • 6
  • 61
  • 86
134
votes
10 answers

Relationship between user story, feature, and epic?

As someone who's still new to agile, I'm not sure I completely understand the relationship or difference between user story, feature, and epic. According to this question, a feature is a collection of stories. One of the answers suggests that a…
nivlam
  • 2,840
  • 3
  • 23
  • 20
131
votes
6 answers

What does it mean when data is scalar?

I don't know what scalar means exactly, but I'm trying to see if I'm thinking about it correctly. Does scalar relate to arbitrariness where the type of data could be any type, or a system is not able to know what the data is in advance.
Ryan
  • 1,439
  • 2
  • 10
  • 10
129
votes
9 answers

The difference between "concurrent" and "parallel" execution?

What is the difference between the terms concurrent and parallel execution? I've never quite been able to grasp the distinction. The tag defines concurrency as a manner of running two processes simultaneously, but I thought parallelism was exactly…
Louis Thibault
  • 2,178
  • 3
  • 16
  • 17
129
votes
4 answers

IPv4 to IPv6. where is IPv5?

As all of us know that after IPv4 it came IPv6. How this transition happened? I just want to know was there any IPv5 also? or there is any other logic in naming this version of IP as IPv6?
Hemant
  • 1,473
  • 2
  • 10
  • 6
128
votes
2 answers

What are the difference between an edge case, a corner case, a base case and a boundary case?

I'm not a native English speaker. In my native language I'm aware of some terms used to refer to the condition checked to stop a recursion, and to the condition checked for extreme, unlikely or super-simple cases. In English, I've encountered the…
Oak
  • 5,215
  • 6
  • 28
  • 39
127
votes
15 answers

How is a "Software Developer" different from a "Software Consultant"? What makes a consultant?

I have seen a lot of people claiming themselves to be a "software consultant". These consultants do what a normal software developer does, write code, estimate tasks, fix bugs and attend meetings etc. The only difference being the financials,…
Kumar
  • 723
  • 2
  • 7
  • 11
127
votes
6 answers

Method vs Function vs Procedure

Simple question, but I often hear these three terms defined with such ferocity, but which have been known to me to mean different things over the years. What are the "correct" definitions of "Procedures", "Methods", "Function", "Subroutines", etc?
Django Reinhardt
  • 1,510
  • 3
  • 13
  • 18
118
votes
6 answers

What is a domain?

I see this term a lot in the context of software architecture ("domain-model", "domain-driven-design" etc.). I have googled it, but I get tons of different definitions. So what is it really?
1
2 3
50 51