The Artima Developer Community
Sponsored Link

Artima Developer Spotlight Forum
Rickard Öberg: Contexts Are the New Objects

27 replies on 2 pages. Most recent reply: May 2, 2010 3:29 PM by Vlad Patryshev

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 27 replies on 2 pages [ « | 1 2 ]
John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 8, 2010 11:13 AM
Reply to this message Reply
Advertisement
> I don't think Context are the new Class in coding, we can
> replace it with Domain Events , when system running,
> domain model will send domain events to others components
> to realize the Context.
>
> Context is a new Object when it is running, but not in
> coding.
>
> my framework can use Domain Events to realize DCI, refer:
> http://www.slideshare.net/banq/ddd-framework-for-java-jdonf
> ramework-2881760

You are using so many buzzwords here that it is impossible to separate the intellectual wheat from the chaff. Sorry.

robert young

Posts: 361
Nickname: funbunny
Registered: Sep, 2003

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 5:24 AM
Reply to this message Reply
> A hot button here is that GoF was
> interviewed for a 15 year anniversary, and was asked what
> they would do to improve the book, and their feedback was
> shockingly bad: merely regrouping the patterns, rather
> than better demonstrating how they interact.

Holub isn't everyone's cup of tea (although mine), but he has a book out on design patterns which explicitly develops some applications while showing how interactions work. NOTE: two common complaints about the book, 1) the examples aren't complicated enough, and 2) all that actual code clogs the pages; some voiced both complaints. :)

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 9:13 AM
Reply to this message Reply
My complaint about Holub's book is not your 1) and 2) observations.

I liked Holub's book the first time I read it (when it first came out). However, as I've become much more aware of how to think about software design issues, and then went back to read it a second time, I found the following problems:

1) His explanation of getters and setters as evil could be much better, by focusing more on problem domain abstraction issues. His ATM example is good, but it does not generalize his observations about system partitioning to discuss the impact this has on persistence and trust, as well as partial failure
2) His argument getters and setters are useful at "procedural boundaries" is fallacious nonsense. The SQL XOpen CLI standard should not dictate the design of your system. In fact, moving away from tightly coupling to this standard appears to be the direction SQLServer is headed. This, in conjunction with the SQLCLR, is far superior to what Oracle has done with SQL/PL.
3) His model of Conway's Game of Life is, by his own admission, not production quality code and largely gold plating in an attempt to illustrate design patterns
4) His SQL Interpreter, including the user interface, could have been much better designed.

robert young

Posts: 361
Nickname: funbunny
Registered: Sep, 2003

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 11:58 AM
Reply to this message Reply
> My complaint about Holub's book is not your 1) and 2)
> observations.
>
> I liked Holub's book the first time I read it (when it
> first came out). However, as I've become much more aware
> of how to think about software design issues, and then
> went back to read it a second time, I found the following
> problems:
>
> 1) His explanation of getters and setters as evil could be
> much better, by focusing more on problem domain
> abstraction issues. His ATM example is good, but it does
> not generalize his observations about system partitioning
> to discuss the impact this has on persistence and trust,
> as well as partial failure
I suspect that by the time he got to the book he had tired of defending his "evilness" meme. He is right, but the web is not an object-centric transport paradigm. The problem, as I see it, is that the get/set syntax emerged with java beans as a short-cut which became lingua franca for all development with the spread of the web. It just isn't OO. Arguably (and I always do) the get/set and data/active object leave only the patina of OO; code is placed in files which are "classes", but behave just like your grandfather's COBOL.

> 2) His argument getters and setters are useful at
> "procedural boundaries" is fallacious nonsense. The SQL
> XOpen CLI standard should not dictate the design of your
> system. In fact, moving away from tightly coupling to
> this standard appears to be the direction SQLServer is
> headed. This, in conjunction with the SQLCLR, is far
> superior to what Oracle has done with SQL/PL.
Not sure what you're saying here. I interpret his meaning to be what one finds in servlet frameworks, for example: sending just data, not objects over the wire. In his earlier Bank of Allen (from memory), he does send objects; and caught hell for it.

> 3) His model of Conway's Game of Life is, by his own
> admission, not production quality code and largely gold
> plating in an attempt to illustrate design patterns
True, but it is a tutorial

> 4) His SQL Interpreter, including the user interface,
> could have been much better designed.
Yeah, well, he doesn't have much grasp of the RM, curiously; or may be not, he is a coder at heart not a database geek. I found it odd that he would pick on SQL for an example, then.

In any case, the book does illustrate the complexities of patterns (whether one necessarily agrees with the particular uses he adopts) as they interact.

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 1:14 PM
Reply to this message Reply
> I suspect that by the time he got to the book he had tired
> of defending his "evilness" meme. He is right, but the
> web is not an object-centric transport paradigm. The
> problem, as I see it, is that the get/set syntax emerged
> with java beans as a short-cut which became lingua franca
> for all development with the spread of the web. It just
> isn't OO. Arguably (and I always do) the get/set and
> data/active object leave only the patina of OO; code is
> placed in files which are "classes", but behave just like
> your grandfather's COBOL.

The Web should be object-oriented; every object should have its own Uri. This follows logically from the Bank of Allen example. The "evils" of getters and setters are mostly a throwback to Sun having a complete non-understanding of "property sheets" as first employed in the Xerox Star operating system's user interface. Property sheets, in the face of pervasive multicore programming, necessitate being used in either (a) "embarassingly parallel" use-cases (b) first-class support for manipulating object references, e.g. Clojure's software transactional memory.

Property sheets are also clumsy for distributed systems. For example, think of an input grid on a web form that can be updated in-place via AJAX (to minimize the payload of round trips). In a dynamically distributed and dynamically federated system, the object representing the data grid (or a cell [or sub-cell] in the data grid) cannot enforce validation. So it is hopeless for an object's property sheet holding the InputValue property to throw an Exception if the value fails validation. Failing validation in this layer of the system is simply a message layering optimization: an attempt to prevent round-trips to the persistent store. You then have to ask yourself what it means if the client subverts the javascript validation script in the browser. In the crudest form, submitting deliberately invalid data to a system is a denial of service attack. How hard the system is hit by such an attack depends on how well shielded the system, in terms of layering, from such predatory users. I therefore think that you will see in the future a shift from property sheets -- EJBs -- to automatic layering. This will use techniques such as mobile code and migrations. The future will not be middleware, because middleware will be automatically generated by sufficiently smart compilers, and will only serve to create distributed caches beween the client, the business rules, and the data store. Middleware, in the future, will likely simply mean automatic message layering.

> > 2) His argument getters and setters are useful at
> > "procedural boundaries" is fallacious nonsense. The
> SQL
> > XOpen CLI standard should not dictate the design of
> your
> > system. In fact, moving away from tightly coupling to
> > this standard appears to be the direction SQLServer is
> > headed. This, in conjunction with the SQLCLR, is far
> > superior to what Oracle has done with SQL/PL.
> Not sure what you're saying here. I interpret his meaning
> to be what one finds in servlet frameworks, for example:
> sending just data, not objects over the wire. In his
> s earlier Bank of Allen (from memory), he does send
> objects; and caught hell for it.

X/Open SQL CLI specifies the call-level interface for all SQL APIs. It was designed for COBOL and C, and it exposes the representation for a SQL query as a textual string -- exposing this representation is inherently non-object-oriented; the interface exposes a syntax-directed interpreter over a network. This is inherently not portable, and ORMs try to solve this non-portability by adding an additional layer of indirection between the software and the CLI. LINQ tries to solve this non-portability problem in a slightly smarter way, by first defining the retrieval and manipulation semantics of any kind of data, and then sending that to an interpreter, which in turn maps it to the SQL string (but this last step is only necessary to obey conformance to X/Open SQL CLI and take advantage of X/Open SQL CLI debugging tools). I hypothesize, based on observing the direction SQLServer has been taking, in conjunction with the big names at MS Research who have been working with that MS product team (e.g., the System.Interactive and System.Reactive libraries in .NET 4), and MMM/DataVisulization acquisitions by Microsoft (Hyperion, Strature), that Microsoft is positioning itself to kill dependence on X/Open SQL CLI. Whether they are conciously doing this or not is an open question. Danny Simmons, who heads up the Entity Framework project, has a big vision but when you disect his statements he seems confused.

> > 3) His model of Conway's Game of Life is, by his own
> > admission, not production quality code and largely gold
> > plating in an attempt to illustrate design patterns
> True, but it is a tutorial

True, but it is a shortcut; Holub admits the only reason he gold plated it was so that he only needed two examples in his book to demonstrate all the patterns.

> > 4) His SQL Interpreter, including the user interface,
> > could have been much better designed.
> Yeah, well, he doesn't have much grasp of the RM,
> curiously; or may be not, he is a coder at heart not a
> database geek. I found it odd that he would pick on SQL
> for an example, then.
>
> In any case, the book does illustrate the complexities of
> patterns (whether one necessarily agrees with the
> particular uses he adopts) as they interact.

Not quite at the level I am hoping for. The book has some good ideas, and is a good read for a struggling young software developer with a lack of knowledge of programming language theory.

Cameron Purdy

Posts: 186
Nickname: cpurdy
Registered: Dec, 2004

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 1:57 PM
Reply to this message Reply
> Holub isn't everyone's cup of tea (although mine), but he
> has a book out on design patterns which explicitly
> develops some applications while showing how interactions
> work. NOTE: two common complaints about the book, 1) the
> examples aren't complicated enough, and 2) all that actual
> code clogs the pages; some voiced both complaints. :)

There were more complaints.

It's not about Holub being or not being everyone's cup of tea, it's that the modern programming languages aren't his cup of tea, and thus he gags on them all, with the result coming out in book form.

That said, 15+ years ago I was learning quite a bit from his earlier books, and I had no complaints about them.

Peace,

Cameron Purdy | Oracle Coherence
http://coherence.oracle.com/

Cameron Purdy

Posts: 186
Nickname: cpurdy
Registered: Dec, 2004

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 2:00 PM
Reply to this message Reply
> The terms 'procedural', 'object-oriented' and 'functional'
> do not represent different programming paradigms; they are
> simply different aspects of programming.
>
> Any type of code written in object-oriented or functional
> approach is procedural, because tasks are split in steps
> and these steps are executed one after the other.
>
> Any type of code that is packaged with its data is
> object-oriented.
>
> Any type of code that can augmented at compile-time or
> run-time with other code is functional.
>
> A programming language can be procedural, object-oriented
> and functional at the same time (LISP, C++, Haskell etc).

I do think you meant to use the term "imperative", but my "computer science" is weak enough that I may be entirely wrong.

Nonetheless Achilleas, I encourage you to look at it from a view of organization, and not focus on the language. What OO provides is a much more effective use of organization, e.g. by scoping and encapsulating complexity. What I find discouraging is that we didn't take those ideas further (yet? ;-)

Peace,

Cameron Purdy | Oracle Coherence
http://coherence.oracle.com/

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 2:21 PM
Reply to this message Reply
> I do think you meant to use the term "imperative", but my
> "computer science" is weak enough that I may be entirely
> wrong.

Hi Cameron,

My reply to Achilleas is actually based on a classical computer science paper by one of the best computer scientists yet to receive a Turing Award -- John Reynolds. The paper was titled, "User-defined types and procedural data structures as complementary approaches to data abstraction", and is the original distinction between abstract data types and abstract data objects. In short, abstract data types take the types-as-sets view proposed by Jim Morris. In this view, ADTs share the same representation. By contrast, objects may all have different representations, because their representation is internalized. A more recent paper on this matter comes from OOPSLA '09 by William Cook: "On Understanding Data Abstraction, Revisited". See: http://lambda-the-ultimate.org/node/3668 Unfortunately, Reynolds excellent paper, which is a model of clarity in programming language theory, is not available for free online. You have to buy the book Theoretical aspects of object-oriented languages to read it - but if you're interested, it's definitely a GREAT book to buy with many seminal papers in OOP.

> Nonetheless Achilleas, I encourage you to look at it from
> a view of organization, and not focus on the language.
> What OO provides is a much more effective use of
> organization, e.g. by scoping and encapsulating
> complexity. What I find discouraging is that we didn't
> take those ideas further (yet? ;-)

Actually, if you read Reynolds 1975 paper, he states quite clearly that ADTs and objects are complementary, and that in 1975 we effectively reached a zenith in terms of encapsulation of state-process. Any attempts to combine the two end up also combining their limitations. Rather than encapsulating complexity, it seems better to support reasoning about complexity - and with such reasoning perhaps avoiding and eliminating accidental complexities. See John Reynolds recent work on separation logic for good pointers.

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 2:29 PM
Reply to this message Reply
> > Holub isn't everyone's cup of tea (although mine), but
> he
> > has a book out on design patterns which explicitly
> > develops some applications while showing how
> interactions
> > work. NOTE: two common complaints about the book, 1)
> the
> > examples aren't complicated enough, and 2) all that
> actual
> > code clogs the pages; some voiced both complaints. :)
>
> There were more complaints.
>
> It's not about Holub being or not being everyone's cup of
> tea, it's that the modern programming languages aren't
> his cup of tea, and thus he gags on them all, with
> the result coming out in book form.
>
> That said, 15+ years ago I was learning quite a bit from
> his earlier books, and I had no complaints about them.

I, too, own all of Holub's books. When I was in college, his compiler book really helped me understand systems programming in C. Up until that point, I didn't quite understand how to use C effectively, despite understanding pointers.

That said, I don't understand what you are saying about his view on modern programming languages. He has no commentary on language design in that book, other than to comment on the importance of annotations allowing EJB design tools to no longer require developers to use public getters/setters, which is a great point! Unfortunately, annotations used in this manner simply shift the property sheet to the metamodel.

Holub's biggest criticisms are about library design as practiced at large companies such as Microsoft. But his critique is pretty ineffectual, considering his weak advice on "procedural boundaries" such as database access or storing objects in Container classes like arrays, hash-maps, stack-maps, etc. I think he fundamentally misunderstands the issues here, which are largely algebraic in nature.

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 2:55 PM
Reply to this message Reply
By the way, another way to restate what I said to Achilleas:

It is not the internals of an object that are procedural. It is the interface itself that is procedural. Saying the internals of an object are procedural or imperative is meaningless. You literally cannot state that, because you are not supposed to know (a) the internal representation of an object (b) the primitive operations of an object.

An object can export its internal representation and primitive operations, thereby violating encapsulation. This is extremely easy to do in C++, which does not use a object-segmented address space model, thereby allowing clients to walk the object tree and inspect and modify objects they should not have the ability to even know of. A cleaner way to export an internal representation is via Gilad Braha's mirrors. Most languages and managed runtime environments today resort to a middle ground, which gets none of the benefits of mirrors and all the problems of violating encapsulation: this is called procedural introspection and procedural intercession. Most Java and C# programmers know this as reflection.

robert young

Posts: 361
Nickname: funbunny
Registered: Sep, 2003

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 3:33 PM
Reply to this message Reply
> The future will not be middleware, because
> middleware will be automatically generated by sufficiently
> smart compilers, and will only serve to create distributed
> caches beween the client, the business rules, and the data
> store. Middleware, in the future, will likely simply mean
> automatic message layering.

Not to resurrect (and further beat) a dead horse, but that sounds very like catalog driven code generation, my particular 7% solution.

>
> > > 2) His argument getters and setters are useful at
> > > "procedural boundaries" is fallacious nonsense. The
> > SQL
> > > XOpen CLI standard should not dictate the design of
> > your
> > > system. In fact, moving away from tightly coupling
> to
> > > this standard appears to be the direction SQLServer
> is
> > > headed. This, in conjunction with the SQLCLR, is far
> > > superior to what Oracle has done with SQL/PL.
> > Not sure what you're saying here. I interpret his
> meaning
> > to be what one finds in servlet frameworks, for
> example:
> > sending just data, not objects over the wire. In his
> > s earlier Bank of Allen (from memory), he does send
> > objects; and caught hell for it.
>
> X/Open SQL CLI specifies the call-level interface for all
> SQL APIs. It was designed for COBOL and C, and it exposes
> the representation for a SQL query as a textual string --
> exposing this representation is inherently
> non-object-oriented; the interface exposes a
> syntax-directed interpreter over a network. This is
> inherently not portable, and ORMs try to solve this
> non-portability by adding an additional layer of
> indirection between the software and the CLI. LINQ tries
> to solve this non-portability problem in a slightly
> smarter way, by first defining the retrieval and
> manipulation semantics of any kind of data, and then
> sending that to an interpreter, which in turn maps it to
> the SQL string (but this last step is only necessary to
> obey conformance to X/Open SQL CLI and take advantage of
> X/Open SQL CLI debugging tools). I hypothesize, based on
> observing the direction SQLServer has been taking, in
> conjunction with the big names at MS Research who have
> been working with that MS product team (e.g., the
> System.Interactive and System.Reactive libraries in .NET
> 4), and MMM/DataVisulization acquisitions by Microsoft
> (Hyperion, Strature), that Microsoft is positioning itself
> to kill dependence on X/Open SQL CLI. Whether they are
> conciously doing this or not is an open question. Danny
> Simmons, who heads up the Entity Framework project, has a
> big vision but when you disect his statements he seems
> confused.

I once spent some time (I don't do much SQL Server now, being in the linux world) looking into LINQ/EF, and there was good deal of angst over which would prevail. Then came OSLO. I don't know what happened after that. Then there was the embedded RDBMS/filesystem (name I forget at the moment) that was to be in win7, but got pulled. When I first heard about that, I was both puzzled and pleased; the AS/400 all over again.

John Zabroski

Posts: 272
Nickname: zbo
Registered: Jan, 2007

Re: Rickard Öberg: Contexts Are the New Objects Posted: Apr 9, 2010 4:07 PM
Reply to this message Reply
> > The future will not be middleware, because
> > middleware will be automatically generated by
> sufficiently
> > smart compilers, and will only serve to create
> distributed
> > caches beween the client, the business rules, and the
> data
> > store. Middleware, in the future, will likely simply
> mean
> > automatic message layering.
>
> Not to resurrect (and further beat) a dead horse, but that
> sounds very like catalog driven code generation, my
> particular 7% solution.


Catalog driven code generation, as you've stated it in the past, sounds like Firestorm/DAO, which is bad for many reasons (the J2EE Anti-pattern "Dredge" comes to mind). Even Amazon.com superhacker Jeff Benson, who wrote the obidos server that still powers the company today, could not overcome the problems of Amazon's web page designers wanting to present the kitchen sink to the user on every web page. -- The only thing that overcame this problem was brute force hardware spending and hoping the problem would go away (it never has, and low and behold Eric Brewer's CAP Theorem, eventual consistency, S3 and EC2 as solutions for scaling out horizontally). This problem appears more often than you might think. For example, in game design, in the environment/level editor, artists might get "carried away" with lighting effects and bring a scene to a crawl. Even in WPF, it is possible to use to many Effect objects decorated on WPF controls, when judicious use of custom vector stenciling would have much better performance. In event-driven systems, it is sometimes possible to coalesce some of these requests. For instance, in the Andrew windowing system (the UNIX windowing system model from CMU designed by James Gosling that lost to X), coalesceable procedures returned void. In Gosling's SUN NeWS windowing system, which followed, this was extended to Postscript void procedures. This allowed batching of message-passing, using stamp coupling (putting independent components into a package to ship across a common interface).

The sort of model I am thinking of is probably closer to Robin Milner's bigraphs, which generalizes his work on the pi calculus for modeling concurrent systems with multiple input streams -- notions such as mobility are much easier to tackle at this level of description, especially given the complexity of instruction set architectures being put out by Intel and AMD.


> >
> > > > 2) His argument getters and setters are useful at
> > > > "procedural boundaries" is fallacious nonsense.
> The
> > > SQL
> > > > XOpen CLI standard should not dictate the design of
> > > your
> > > > system. In fact, moving away from tightly coupling
> > to
> > > > this standard appears to be the direction SQLServer
> > is
> > > > headed. This, in conjunction with the SQLCLR, is
> far
> > > > superior to what Oracle has done with SQL/PL.
> > > Not sure what you're saying here. I interpret his
> > meaning
> > > to be what one finds in servlet frameworks, for
> > example:
> > > sending just data, not objects over the wire. In his
> > > s earlier Bank of Allen (from memory), he does send
> > > objects; and caught hell for it.
> >
> > X/Open SQL CLI specifies the call-level interface for
> all
> > SQL APIs. It was designed for COBOL and C, and it
> exposes
> > the representation for a SQL query as a textual string
> --
> > exposing this representation is inherently
> > non-object-oriented; the interface exposes a
> > syntax-directed interpreter over a network. This is
> > inherently not portable, and ORMs try to solve this
> > non-portability by adding an additional layer of
> > indirection between the software and the CLI. LINQ
> tries
> > to solve this non-portability problem in a slightly
> > smarter way, by first defining the retrieval and
> > manipulation semantics of any kind of data, and then
> > sending that to an interpreter, which in turn maps it
> to
> > the SQL string (but this last step is only necessary to
> > obey conformance to X/Open SQL CLI and take advantage
> of
> > X/Open SQL CLI debugging tools). I hypothesize, based
> on
> > observing the direction SQLServer has been taking, in
> > conjunction with the big names at MS Research who have
> > been working with that MS product team (e.g., the
> > System.Interactive and System.Reactive libraries in
> .NET
> > 4), and MMM/DataVisulization acquisitions by Microsoft
> > (Hyperion, Strature), that Microsoft is positioning
> itself
> > to kill dependence on X/Open SQL CLI. Whether they are
> > conciously doing this or not is an open question.
> Danny
> > Simmons, who heads up the Entity Framework project, has
> a
> > big vision but when you disect his statements he seems
> > confused.
>
> I once spent some time (I don't do much SQL Server now,
> being in the linux world) looking into LINQ/EF, and there
> was good deal of angst over which would prevail. Then
> came OSLO. I don't know what happened after that. Then
> there was the embedded RDBMS/filesystem (name I forget at
> the moment) that was to be in win7, but got pulled. When
> I first heard about that, I was both puzzled and pleased;
> the AS/400 all over again.

I think you are referring to LINQ 2 SQL vs. EF. LINQ 2 SQL was doomed to fail politically, because of the awesome political power SQL Server's product team has internally at MS. Matt Warren had no shot with L2S. Actually, the rumor is that a product manager at MS had Matt remove features from L2S so that it would make it easier for customers to pick EF and Linq 2 Entities instead. From a design standpoint, the major flaw of Linq 2 Entities is that it has ~3% more overhead than LINQ 2 SQL. What this means is that so far Microsoft has overlooked how to compete in the extreme transaction processing market, because 3% is huge in terms of (a) wall-clock time (b) queuing theory, and wait-based performance tuning, because extra overhead puts more pressure on the queuing system.

As for DBMS-backed filesystems, MS has tried this several times, so it is impossible for me to track or care. Longhorn was supposed to have WinFS, but that was broken up into stove pipes, some of which was incorporated into SQLServer.

Vlad Patryshev

Posts: 1
Nickname: vpatryshev
Registered: Oct, 2002

Re: Rickard Öberg: Contexts Are the New Objects Posted: May 2, 2010 3:29 PM
Reply to this message Reply
Well formulated; thanks! I always bring an example of chess game to support this idea. Neither piece exists in the global universe; there is a container hierarchy, and the context is where operations are defined. That is, interaction, say, between two pieces is defined not by the first piece or by the pair of two pieces, but by the rules inside the universe.

That's how we can define something that looks like universal algebras.

It is not hard to implement it even in Java: just define inner classes inside the context.

Flat View: This topic has 27 replies on 2 pages [ « | 1  2 ]
Topic: Overview of the New C++ (C++0x) Previous Topic   Next Topic Topic: Effective C++ in an Embedded Environment

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use