Questions tagged [immutability]
Immutability is about having objects that cannot be changed.
170
questions
12
votes
7
answers
4k
views
Immutability across programming languages
I'm quite confused about the concept of mutability (or mutation?), especially across different languages. In a language like Python:
x = 10
x = 20
I believe this is called shadowing (or rebinding) ...
0
votes
1
answer
178
views
Is immutable objects over POJO in general?
Lombok is used in the legacy project where I am currently working for since last year. The project is legacy with 10+ years, and POJO/JavaBeans, i.e. @Data annotated classes, have been widely used for ...
2
votes
4
answers
761
views
Is it a code smell to modify a data transfer object (DTO) within a loop in a Spring service controller?
I have a Spring service that acts as an adapter for another service in my company. The service receives a request to generate push notifications for a given user and needs to call the other service ...
0
votes
0
answers
116
views
Flutter BLOC and immutability concept for data that changes very often?
I am new to Dart/Flutter and try to use the Bloc framework for my current project. I am now at the point, where the data, especially in states, is getting more complex.
For example: A certain state ...
1
vote
5
answers
350
views
Is storing computed values always bad?
Edit: I'm copying the question but changing the example code. Apparently, I used a bad example earlier that contained an imprue getter. I'm keeping the old example code at the bottom so the first ...
0
votes
1
answer
735
views
Interfaces vs abstract classes for immutable DTOs
At my org we extensively use @Value.Immutable annotation to generate Immutable classes (usually with builders) for our internal data transfer objects (DTOs). In our codebase I've seen both interfaces ...
6
votes
2
answers
794
views
Object immutability and persistence
While I was learning functional programming I have encounterd two for me very similar terms: immutability and persistence. Also I have read simular questions from stackoverflow, but I am still ...
0
votes
3
answers
1k
views
What prevents Java from having immutable primitive arrays?
Java never had immutable primitive arrays. However Java does have an immutable List or Map or other collection classes and of course final primitive fields and variables. In Java if you try to make an ...
10
votes
9
answers
4k
views
What is an immutable object anyway?
The most popular answer is - it is an object whose state does not change after creation.
What does it actually mean?
My understanding is that any method call on the object should give the same result. ...
2
votes
0
answers
100
views
Should the usage of an needlessly mutable type by pointed out in code reviews, even when multi-threading is not a concern? [closed]
None of my team's programs care about multithreading, parallelisation, async, or anything else that benefit from immutability. However, immutability is clearly in fashion at the moment and I'm ...
7
votes
2
answers
1k
views
Why does C# List<T>.AsReadOnly() allocate?
I am looking at the List<T>.AsReadOnly() method.
Since List<T> itself is a IReadOnlyCollection<T>. (It implements IReadOnlyList<T> and IReadOnlyList<T> implements ...
1
vote
1
answer
859
views
How to manage immutable objects (specifically Java records)
With Java record being immutable, I don't know how to use them properly in the context of something like a CRUD application.
If we take a very simple example of a "Organization" record:
...
16
votes
6
answers
6k
views
Why can't a mutable interface/class inherit from an immutable one?
I've heard people say things like "B can't inherit from A because A is immutable and B is mutable".
My understanding of inheritance in Object-Oriented Programming is that you use it to add ...
7
votes
1
answer
457
views
Can functional programming languages have deadlock conditions?
I am reading through "Clean Architecture: A Craftsman's Guide to Software Structure and Design" and it says that:
All race conditions, deadlock conditions, and concurrent update problems are ...
1
vote
3
answers
1k
views
Const function that change other objects' states
Is it a good idea to mark a function const from clean code perspective if it change other objects' states? I'd like to know what is the experience with this or is it considered a bad practice for any ...
5
votes
2
answers
2k
views
Should I use a namedtuple or dictionary to store immutable values?
I have a code that reads a YAML file that consists of several parameters whose values are used throughout the code.
For clarity, the YAML file has the following structure:
PARAM_1: value_1
PARAM_2: ...
8
votes
2
answers
828
views
Why are sort() and reverse() JavaScript methods in-place?
Which are the technical reasons/considerations for the sort() and reverse() JavaScript array methods to be in-place operations instead of returning a new array without modifying the original one, like ...
2
votes
5
answers
2k
views
Trying to understand the benefits of immutability in imperative programming
I'm learning about immutability (specifically in C#) and I can't understand the examples out there stating that making an object immutable brings real benefits (besides a shared object in a multi ...
1
vote
0
answers
39
views
Should I separate a variable that changes often into a different entity although it is contextually should be inside another entity?
So, I have an entity called Consultation that is being used as a member variable of the class VideoCallViewModel that goes like this:
struct Consultation: Equatable {
enum Status: Int, ...
1
vote
3
answers
1k
views
How is inheritance possible with immutability?
The title almost sums it up but let me be example-led and clearer.
Assuming we have a class:
class T:
def goto(self, value):
print('go')
And a second inheriting class:
class A(T):
def ...
0
votes
1
answer
143
views
Would an mutable to immutable transpiler be possible?
I'm very new to writing immutable code. Would there be any fundamental issues trying to transpile arbitrary mutable code person.age = 20 into immutable code person = { ...person, age: 21 }?
I am aware ...
1
vote
2
answers
1k
views
Why it is possible to specify a value comparer for ImmutableDictionary<TKey, TValue>?
What is the intended usage of the ImmutableDictionary<TKey,TValue>.ValueComparer property?
Why is it useful being able to compare dictionary values by using a specified equality semantic?
I ...
5
votes
3
answers
692
views
How could a computer program do anything if everything is immutable?
I feel this is a bad question because I probably do not understand what I am talking about. In my effort to learn about functional programming, I became stumped on understanding the idea of immutable ...
20
votes
8
answers
7k
views
Immutable String and Integer in Java: What is the point if assignment in effect changes the value?
If immutability is "good" and yet you can in effect change the value in an Integer or String variable (never mind that you get a new reference -- the value has changed) what good is it that ...
16
votes
10
answers
7k
views
Are immutable objects important only in multi-threaded applications and if so, how are shared immutable objects useful?
I think the answer to the first part of my question is, "yes" -- no point in making objects immutable in a single-threaded application (or I guess in a multi-threaded application if that ...
2
votes
1
answer
269
views
Validation framework and immutability
I have designed a simple objects validation framework in Java in the context of a code refactoring.
The framework has a ValidationRule interface with one method Errors validate(MyObject myObject, ...
1
vote
3
answers
161
views
Should we consider immutability for local scoped variables
I have the following code:
const string endPoint = @"foo{0}?pageNum={1}&itemsPerPage={2}";
const int itemsPerPage = xxx;
InvoiceCollection response = await _apiClient
.GetAsync<...
37
votes
7
answers
9k
views
Do you need to think about encapsulation if you can ensure immutability?
Encapsulation
In object-oriented programming (OOP), encapsulation refers to the
bundling of data with the methods that operate on that data, or the
restricting of direct access to some of an ...
3
votes
3
answers
564
views
Does variance make sense in a fully immutable language?
In many OOP programming languages, types can be made co-, contra- or in- variant. Most (if not all of these languages) are able to let variables be mutated in place, i.e. they are not fully immutable ...
8
votes
3
answers
924
views
Avoiding side effects in immutable class constructor
I rewrote a very long method in which some data is queried from a database, based on info about a particular account, which is queried first.
I split out the account info into an immutable inner ...
0
votes
0
answers
169
views
Need some design advice on my ORM for Immutable objects & ref passing
I'm adding Immutable objects support to my Micro ORM called "Symbiotic"
In the case of a create, I need to pass back a newly created version of the value passed in because the object is immutable and ...
0
votes
1
answer
578
views
PHP: simple class for storing read-only data structure, array alternative
I need to share some associative data between different parts of my application with two requirements:
immutability (so read-only)
safety against mispelling or unavailable index inside the data
...
1
vote
1
answer
139
views
Should a function implementer or function caller handle immutability
I know there is no right and wrong answer here, I'm just looking for other opinions on who should handle immutability, dependency inversion and decoupling.
Example 1: Here each function caller has ...
5
votes
1
answer
320
views
What is the state of immutability in Javascript in 2019?
I'm all on board with functional programming in Javascript - particularly within the context of using React and Redux.
Something that I've been running into again and again, is how easy it is to ...
-1
votes
2
answers
329
views
Immutability and encapsulating state changing behavior
Immutable objects
In object-oriented and functional programming, an immutable object (unchangeable[1] object) is an object whose state cannot be modified after it is created
Wikipedia (https://...
7
votes
2
answers
993
views
Encapsulating moving parts in OO vs Minimizing moving parts in FP
I am from OO background just started learning FP paradigm. Came across quote by Michael Feathers - "OO makes code understandable by encapsulating moving parts. FP makes code understandable by ...
1
vote
2
answers
148
views
In some IOC contexts, could constructor of polymorphic immutable object be required in its interface?
Generally, constructors in an interface are considered as being an anti-pattern. Some languages even don't allow that.
Then I don't understand how we're supposed to deal with polymorphic immutable ...
2
votes
1
answer
2k
views
C++ immutable struct
I would like to be able to implement immutable data in C++. In short, given a C++ object in which I would like to modify a member variable, instead of modifying that member in place I would like to ...
1
vote
1
answer
212
views
OrderedMap or List for Redux structure?
I'm implementing a Redux store for a React app using redux-saga for API calls. I've used Immutable.js before for other Redux-using React apps but the nature of previous projects always evidently ...
1
vote
0
answers
46
views
Data Storage Solutions for a BlockChain
The blockchain stores basically an immutable permanent record of every transaction. This means the data is constantly increasing. Wondering if one has a model for easily roughly estimating data usage. ...
3
votes
2
answers
5k
views
Changing immutable objects how does this work?
I have seen examples where even though the object is immutable there are situations in which we need to update some fields and as I understand it, the object is passed to a constructor which makes a ...
1
vote
1
answer
387
views
How do languages ensure 'interior immutability'?
In C#, i can declare an immutable field on a class using readonly. This works for value types, but if its a reference type, there is nothing stopping me calling methods on the object to change its ...
4
votes
4
answers
915
views
Optimal Immutable Data Structure for Highly Dynamic Particle System
Trying to see if immutability is a good fit for highly dynamic objects like game entities (that constantly are moving around and changing) or particle systems, each which might have thousands or ...
9
votes
7
answers
4k
views
what can go wrong in context of functional programming if my object is mutable?
I can see the benefits of mutable vs immutable objects like immutable objects take away lot of hard to troubleshoot issues in multi threaded programming due to shared and writeable state. On the ...
2
votes
2
answers
105
views
Creating a modified copy of an instance of an abstract interface
Say I have an interface Interface, which only contains getters for various fields. This interface has multiple implementations (say Foo and Bar), each of which adds various fields. All these ...
1
vote
1
answer
190
views
What does it mean "state complects value and time"?
I'm rewatching Rich Hickey great talk "Simple Made Easy"
And around min 35:40 when talking about state, mentions that State complects value and time, but I'm not sure I'm understanding this ...
0
votes
1
answer
511
views
java.util.function.Function as an interface for an mutable object
I have an interface with only a single method that could be replaced by java.util.function.Function from the JDK:
interface DataModel {
boolean apply(Map<String, Integer> input);
}
The ...
6
votes
1
answer
2k
views
Does immutability reduce the scope of unit testing?
Recently, I worked on an Android project with Kotlin. As an architecture, there were immutable data classes and functions (not methods which are members of a class), where the functions generate new ...
4
votes
3
answers
3k
views
Using static to create an immutable object
I was reading on this software engineering page about the use of static methods. However, I'm confused, and maybe it's about the context in which it talks about static. The idea is, that static is ...
3
votes
1
answer
2k
views
Best way to query immutable MySQL Data
I have been increasingly using immutable data storing for my web-app, due to some advantages it has (simpler writes, ability to view history / activity).
I am doing it using MySQL dabatases, simply ...