Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 251527
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T21:36:06+00:00 2026-05-11T21:36:06+00:00

I like the immutability concept but sometimes I wonder, when an application isn’t meant

  • 0

I like the immutability concept but sometimes I wonder, when an application isn’t meant to be parallel, should one avoid making things immutable?

When an application isn’t multi-threaded, you aren’t plagued by shared state problems, right?

Or is immutability a concept like OOP that you either use all the way or not? Excluding the cases when something shouldn’t be immutable based on use/performance, etc.

I am faced with this question when writing an application for myself, that is moderately big (maybe like 1-2k lines).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T21:36:06+00:00Added an answer on May 11, 2026 at 9:36 pm

    I love immutability because it means I don’t have to trust other peoples code not to mess around with objects I expect to stay the same.

    When you pass an object off to another component such as a List<T>, you are at the mercy of what that component does. This is especially important when you return collections as properties.

    public class Foo { 
      private List<Bar> _barList;
      public ICollection<Bar> BarList { get return _barList; } 
    }
    

    There’s nothing stopping a consumer of this class from clearing the collection out from under me. Even switching the return type to IEnumerable<Bar> is not entirely safe. There’s nothing stopping some piece of badly written code from casting this back to List<T> and calling .Clear().

    However if I really want the collection to stay consistent I could rewrite it as followis

    public class Foo {
      private ImmutableCollection<Bar> _barList;
      public ImmutableCollection<Bar> BarList { get { return _barList; } }
    }
    

    Now I’m safe from having to trust other code from using my class incorrectly. They can’t mess it up.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Like the title says, If I place an app_offline.htm in the application root, will
Like this one? http://weblogs.asp.net/dwahlin/archive/2007/09/09/c-3-0-features-object-initializers.aspx Person p = new Person() { FirstName = John, LastName
Like the title says I need to have a final result where on one
Firstly let me say I believe immutability is one of the best things one
Like this one: <div class=abc foo-something> How can I select div that has a
Like firefox has firebug as a efficient tool for web application developer, I am
Like Select[Tuples[Range[0, n], d], Total[#] == n &] , but faster? Update Here are
Like many others on this site I am considering a move to ASP.NET MVC
Like the Delicious submission bookmark-let, I'd like to have some standard JavaScript I can
Like it says.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.