Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,953 | Comments: 44,399

filter by tags archive

Why NH Prof isn't functional


One of the things that I wanted to do with NH Prof is to build it in a way that would be very close to the Erlang way. That is, functional, immutable message passing. After spending some time trying to do this, I backed off, and used mutable OO with message passing.

The reason for that is quite simple. State.

Erlang can get away with being functional language with immutable state because it has a framework that manages that state around, and allow you to replace your state all the time. With C#, while I can create immutable data structures, if I want to actually create a large scale application using this manner, I have to write the state management framework, which is something that I didn't feel like doing.

Instead, I am using a more natural model for C#, and using the bus model to manage thread safety and multi threading scenarios.


Comments

William Riley-Land

That sounds very interesting. This is the one that isn't open source right? I'm not complaining, and I look forward to purchasing it when it is complete. What's a good reference for this kind of design pattern? Where can I see source that deals in what you are talking about (obviously not from NHP itself)?

Dajo

i think there could be a way to do it in the erlang style, because there is an erlang compiler for .Net ( http://erlangdotnet.net/). i dont know wich language is used for it, but i think it's c#.

Ted
Ted

How does the bus model manage thread safety/multi-threading?

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

  1. Comparing developers - 4 hours from now

There are posts all the way to Jun 30, 2015

RECENT SERIES

  1. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
  2. Special Offer (2):
    27 May 2015 - 29% discount for all our products
  3. RavenDB Sharding (3):
    22 May 2015 - Adding a new shard to an existing cluster, splitting the shard
  4. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  5. Interview question (2):
    30 Mar 2015 - fix the index
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats