# A new idea for object-oriented programming languages

**URL:** <https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116>\
**Category:** Contributions\
**Created:** [July 10, 2026, 11:56pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116 "2026-07-10T23:56:22Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Neopug](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/neopug/32/11417_2.png) [@Neopug](https://discuss.kotlinlang.org/u/Neopug)\
**Post date:** [July 10, 2026, 11:56pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/1 "2026-07-10T23:56:22Z")

</div>

I have an idea for further developing object-oriented programming languages that I’ve been mulling over for a while. I’d like to contribute this idea to the Kotlin programming language for free, provided I’m credited as the author.

Is this the right place for something like that?

---

<div class="post-metadata">

**Author:** ![Skater901](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/skater901/32/10163_2.png) [@Skater901](https://discuss.kotlinlang.org/u/Skater901)\
**Post date:** [July 13, 2026, 1:21pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/2 "2026-07-13T13:21:09Z")

</div>

I don’t think you can offer any idea to the Kotlin language and expect to be credited as the author. As far as I understand, only the core Kotlin team can add things to the Kotlin language, and the only thing the rest of us can do is make suggestions or requests, and the Kotlin team will consider if those suggestions or requests are worth doing.

---

<div class="post-metadata">

**Author:** ![ebrowne72](https://avatars.discourse-cdn.com/v4/letter/e/85f322/32.png) [@ebrowne72](https://discuss.kotlinlang.org/u/ebrowne72)\
**Post date:** [July 13, 2026, 9:52pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/3 "2026-07-13T21:52:56Z")

</div>

The proper place to propose anything is on the Kotlin YouTrack in the Language Design subsystem.

[https://youtrack.jetbrains.com/issues/KT?project=kt](https://youtrack.jetbrains.com/issues/KT?project=kt)

---

<div class="post-metadata">

**Author:** ![TC](https://avatars.discourse-cdn.com/v4/letter/t/ea666f/32.png) [@TC](https://discuss.kotlinlang.org/u/TC)\
**Post date:** [July 17, 2026, 7:02am UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/4 "2026-07-17T07:02:07Z")

</div>

Usually, one need to have extensive, many years, experience in many languages, to be able to add appropriate solutions to language architecture. Are you that person?

If yes, I suggest contacting developers directly.

---

<div class="post-metadata">

**Author:** ![Neopug](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/neopug/32/11417_2.png) [@Neopug](https://discuss.kotlinlang.org/u/Neopug)\
**Post date:** [July 17, 2026, 12:27pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/5 "2026-07-17T12:27:04Z")

</div>

> Are you that person?

It depends. I’ve been working with various programming languages for about 30 years, including older ones like Pascal. Some of it, though, has been just for fun.

---

<div class="post-metadata">

**Author:** ![MIha\_Markic](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/miha_markic/32/11397_2.png) [@MIha\_Markic](https://discuss.kotlinlang.org/u/MIha_Markic)\
**Post date:** [September 23, 2026, 12:19pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/6 "2026-09-23T12:19:24Z")

</div>

Working on or working with languages?

---

<div class="post-metadata">

**Author:** ![Neopug](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/neopug/32/11417_2.png) [@Neopug](https://discuss.kotlinlang.org/u/Neopug)\
**Post date:** [September 23, 2026, 10:49pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/7 "2026-09-23T22:49:18Z")

</div>

Working with languages.

Well, the idea was so good that they’ve already built it into the programming language. 🙂

---

<div class="post-metadata">

**Author:** ![MIha\_Markic](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/miha_markic/32/11397_2.png) [@MIha\_Markic](https://discuss.kotlinlang.org/u/MIha_Markic)\
**Post date:** [September 24, 2026, 6:41am UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/8 "2026-09-24T06:41:56Z")

</div>

So, which was it then? 👀

---

<div class="post-metadata">

**Author:** ![Neopug](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/neopug/32/11417_2.png) [@Neopug](https://discuss.kotlinlang.org/u/Neopug)\
**Post date:** [September 24, 2026, 8:50am UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/9 "2026-09-24T08:50:57Z")

</div>

I’ve reinvented the visibility settings for object data fields. In my version, this feature is called “readonly”. As far as I know, this feature is missing in Java.

---

<div class="post-metadata">

**Author:** ![Skater901](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/skater901/32/10163_2.png) [@Skater901](https://discuss.kotlinlang.org/u/Skater901)\
**Post date:** [September 24, 2026, 2:41pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/10 "2026-09-24T14:41:47Z")

</div>

Java has `final` fields, is that what you’re talking about?

---

<div class="post-metadata">

**Author:** ![Neopug](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/neopug/32/11417_2.png) [@Neopug](https://discuss.kotlinlang.org/u/Neopug)\
**Post date:** [September 24, 2026, 7:01pm UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/11 "2026-09-24T19:01:06Z")

</div>

> Java has `final` fields, is that what you’re talking about?

No. My idea is to mark object data fields as “read-only” so that they can be read and written within an object, but can only be read from outside the object.

---

<div class="post-metadata">

**Author:** ![Skater901](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/skater901/32/10163_2.png) [@Skater901](https://discuss.kotlinlang.org/u/Skater901)\
**Post date:** [September 25, 2026, 2:10am UTC](https://discuss.kotlinlang.org/t/a-new-idea-for-object-oriented-programming-languages/31116/12 "2026-09-25T02:10:32Z")

</div>

So, a class with a private mutable field, and a public getter function only?

It does look like Java `record` classes can’t have mutable fields at all, even from within the class, which is perhaps a bit annoying. And Kotlin only allows you to declare mutable fields with private set from within the class body, NOT within the constructor, which limits their usefulness in data classes. I would like to see that syntax available in Kotlin constructors, but I’m not sure how they could do that.
