to C3 participants

to C3 participants

Post by Vladimir Kirichenk » Sat, 11 Jan 2003 21:52:57



1890312801
Hi, All!

If you don't mind I'd like to ask about C3 project . We have some
discussion about OOP and FP. The question is why C3 project was
implemented uning object-oriented programming, not the functional
programming. There is two opinions:

1. The complexity of software today is bigger problem than the problem of
concrette algorithm implementation, so OO the way that help to overpass
this complexity.

2. The opposit opinion.

Some of supporters of 2nd opinion like to ask the partisipantsoc C3 why
they did OO.

Thanks for your response.

--
Vladimir Kirichenko

1890312801

 
 
 

to C3 participants

Post by Keith Ra » Sun, 12 Jan 2003 01:09:22


In article

.ua>,

Quote:> 1890312801
> Hi, All!

> If you don't mind I'd like to ask about C3 project . We have some
> discussion about OOP and FP. The question is why C3 project was
> implemented uning object-oriented programming, not the functional
> programming. There is two opinions:

[...]

From what I've read, they [the people at Chryslar who started this
project] wanted to learn how to do OO.
--
C. Keith Ray

<http://homepage.mac.com/keithray/xpminifaq.html>

 
 
 

to C3 participants

Post by Vladimir Kirichenk » Sun, 12 Jan 2003 01:14:19


1890312801
Hi, Keith Ray!

Quote:> > If you don't mind I'd like to ask about C3 project . We have some
> > discussion about OOP and FP. The question is why C3 project was
> > implemented uning object-oriented programming, not the functional
> > programming. There is two opinions:
> [...]
> From what I've read, they [the people at Chryslar who started this
> project] wanted to learn how to do OO.

Is there some useful URL's where I can find information about "why that
way"?

--
Vladimir Kirichenko

1890312801

 
 
 

to C3 participants

Post by John Rot » Sun, 12 Jan 2003 02:49:14



.com.ua...

Quote:> 1890312801
> Hi, Keith Ray!

> > > If you don't mind I'd like to ask about C3 project . We have some
> > > discussion about OOP and FP. The question is why C3 project was
> > > implemented uning object-oriented programming, not the functional
> > > programming. There is two opinions:
> > [...]
> > From what I've read, they [the people at Chryslar who started this
> > project] wanted to learn how to do OO.

> Is there some useful URL's where I can find information about "why
that
> way"?

Possibly. As I understand the story, it was a Chrysler IT management
decision to investigate OO. Both Kent Beck and Ron Jeffries were
brought in after the project had been going for a year or so and hadn't
produced any results, so I believe they're both outsiders as far as this
decision process is concerned. Of course, I could be wrong, but I don't
think so.

The coauthor of Ron's book Xp Installed may have more
information, but I doubt you'll find anything more than
"huh? what's functional programming?" In other words, I would be
very, very surprised if functional programming was close enough in
on the radar screen to be investigated.

John Roth

> --
> Vladimir Kirichenko

> 1890312801

 
 
 

to C3 participants

Post by Ron Jeffrie » Mon, 13 Jan 2003 09:27:51


On Fri, 10 Jan 2003 14:52:57 +0200, Vladimir Kirichenko


>If you don't mind I'd like to ask about C3 project . We have some
>discussion about OOP and FP. The question is why C3 project was
>implemented uning object-oriented programming, not the functional
>programming. There is two opinions:

>1. The complexity of software today is bigger problem than the problem of
>concrette algorithm implementation, so OO the way that help to overpass
>this complexity.

>2. The opposit opinion.

>Some of supporters of 2nd opinion like to ask the partisipantsoc C3 why
>they did OO.

The Chrysler IT people and the team wanted to learn OO.

The implementation was in fact a dataflow machine. Basically the calculation of
a paycheck was the application of a complex function. It looked very much like
large-scale FP. I suspect that Kent and I were the only ones who would have
known to call it that.

Anyway, the point was to learn OO.

Regards,

--
Ronald E Jeffries
http://www.XProgramming.com
http://www.objectmentor.com
I'm giving the best advice I have. You get to decide whether it's true for you.

 
 
 

to C3 participants

Post by Vladimir Kirichenk » Mon, 13 Jan 2003 23:06:02


1890312801
Hi, Ron Jeffries!

Quote:> The implementation was in fact a dataflow machine. Basically the calculation of
> a paycheck was the application of a complex function. It looked very much like
> large-scale FP. I suspect that Kent and I were the only ones who would have
> known to call it that.
> Anyway, the point was to learn OO.

ok, thanks. One more question. Don't you have feeling that it was wrong
decision?

--
Vladimir Kirichenko

1890312801

 
 
 

to C3 participants

Post by Jeff Gri » Mon, 13 Jan 2003 23:40:48


Subject:  to C3 participants

Quote:

> If you don't mind I'd like to ask about C3 project.  We have
> [been discussing] OOP and FP.  The question is why C3 project
> was implemented using object-oriented programming, not [...]
> functional programming.  There [are] two opinions:

> 1. The complexity of software today is bigger problem than the
>    problem of concrete algorithm implementation, so OO the way
>    that help to overpass this complexity.

> 2. The opposite opinion.

I wasn't involved in the C3 project.  But in 1987, when I joined EDS
(owned by GM) I learned about Object Oriented and Functional
programming at about the same time, while in the EDS training program
for their research department.  (We were also looking at AI
techniques, such as neural networks and rule-based expert systems.)

Personally, I found OO to be more appropriate than functional because
of the way that OO puts code "close" to the data it manipulates, and
gives a small set of functions ("methods") *complete control* over
that data.  So if you want to change the data representation, it's
much easier to determine which functions ("methods") might need to
change.

Consider a "Polygon:"

Let's do Functional Programming in LISP:
.  (...a "Functional style" subset of LISP usage.)

I can pass around a list of points, each of which has an 'x' and a 'y'
coordinate.  Let's consider this simple data representation:
  ((0 0) (10 0) (10 10) (0 10))

[It's a 10 by 10 square:  4 points, with the first one at the origin.
Technically it's a list of 4 elements, each of which contains a list
of 2 elements, and each of those elements is a number.]

Unless I add some layers of metadata and abstraction, every function
that manipulates the points of the polygon pretty much has to know
things like "The FIRST element is 'x' and the SECOND 'y'."  There's no
particular place (like a class) where assumptions are isolated.
"Points" have no real identity; it's all just generic data.

With an Object Oriented approach, one could create a "Polygon" class
and ask it questions like, "Is 'new Point(5,5)' inside this Polygon?"
You can do *A LOT* with Polygons without knowing anything about their
internal representation.  With polymorphism, you could even be working
with many "polygon-like" objects, like Circles, which have a
dramatically different data representation (like center Point and
radius).

The Object Oriented approach is very good at simulation.  And it turns
out that simulation is a very useful technique for solving problems in
a number of domains, such as business data processing.

[No offense intended to LISP:  You can do both Functional and Object
Oriented with LISP.  And it's one of the most powerful languages in
both camps.]

 
 
 

to C3 participants

Post by Ron Jeffrie » Tue, 14 Jan 2003 21:28:36


On Sun, 12 Jan 2003 16:06:02 +0200, Vladimir Kirichenko


>> The implementation was in fact a dataflow machine. Basically the calculation of
>> a paycheck was the application of a complex function. It looked very much like
>> large-scale FP. I suspect that Kent and I were the only ones who would have
>> known to call it that.
>> Anyway, the point was to learn OO.

>ok, thanks. One more question. Don't you have feeling that it was wrong
>decision?

To learn OO? No, I think learning OO is a good thing. The most-used programming
languages around are almost all OO. Knowing OO is a good thing.

Why were you thinking it might have been a wrong decision?

--
Ronald E Jeffries
http://www.XProgramming.com
http://www.objectmentor.com
I'm giving the best advice I have. You get to decide whether it's true for you.

 
 
 

to C3 participants

Post by Vladimir Kirichenk » Tue, 14 Jan 2003 23:48:09


1890312801
Hi, Ron Jeffries!

Quote:> >> The implementation was in fact a dataflow machine. Basically the calculation of
> >> a paycheck was the application of a complex function. It looked very much like
> >> large-scale FP. I suspect that Kent and I were the only ones who would have
> >> known to call it that.
> >> Anyway, the point was to learn OO.
> >ok, thanks. One more question. Don't you have feeling that it was wrong
> >decision?
> To learn OO? No, I think learning OO is a good thing. The most-used programming
> languages around are almost all OO. Knowing OO is a good thing.
> Why were you thinking it might have been a wrong decision?

Not to learn OO but to use OO in C3 project.

--
Vladimir Kirichenko

1890312801

 
 
 

to C3 participants

Post by Dirk Thierbac » Tue, 14 Jan 2003 04:24:33



> Unless I add some layers of metadata and abstraction, every function
> that manipulates the points of the polygon pretty much has to know
> things like "The FIRST element is 'x' and the SECOND 'y'."  There's no
> particular place (like a class) where assumptions are isolated.
> "Points" have no real identity; it's all just generic data.

In "more modern" (statically typed, e.g. Haskell or Ocaml) FP
languages you isolate these assumption inside a type. With module
language constructs, you can hide these assumption from the rest of the
program.

Quote:> With polymorphism, you could even be working with many
> "polygon-like" objects, like Circles, which have a dramatically
> different data representation (like center Point and radius).

Static FP typesystems are also polymorphic, though this type of
polymorphism works a bit differently than OO polymormphism.

Quote:> [No offense intended to LISP:  You can do both Functional and Object
> Oriented with LISP.  And it's one of the most powerful languages in
> both camps.]

I agree, but if you really want to judge FP, you should also have a look
at more modern FP languages. In Lisp, I feel that many of the features
that I enjoy in FP are missing (pattern matching, for example).

- Dirk

 
 
 

to C3 participants

Post by Ron Jeffrie » Wed, 15 Jan 2003 06:47:54


On Mon, 13 Jan 2003 16:48:09 +0200, Vladimir Kirichenko


>1890312801
>Hi, Ron Jeffries!

>> >> The implementation was in fact a dataflow machine. Basically the calculation of
>> >> a paycheck was the application of a complex function. It looked very much like
>> >> large-scale FP. I suspect that Kent and I were the only ones who would have
>> >> known to call it that.
>> >> Anyway, the point was to learn OO.
>> >ok, thanks. One more question. Don't you have feeling that it was wrong
>> >decision?
>> To learn OO? No, I think learning OO is a good thing. The most-used programming
>> languages around are almost all OO. Knowing OO is a good thing.
>> Why were you thinking it might have been a wrong decision?

>Not to learn OO but to use OO in C3 project.

It worked fine. What was making you think using OO might not have been a good
idea?

--
Ronald E Jeffries
http://www.XProgramming.com
http://www.objectmentor.com
I'm giving the best advice I have. You get to decide whether it's true for you.

 
 
 

to C3 participants

Post by Jeff Gri » Wed, 15 Jan 2003 10:40:03



> > Unless I add some layers of metadata and abstraction, every function
> > that manipulates the points of the polygon pretty much has to know
> > things like "The FIRST element is 'x' and the SECOND 'y'."  There's no
> > particular place (like a class) where assumptions are isolated.
> > "Points" have no real identity; it's all just generic data.

> In "more modern" (statically typed, e.g. Haskell or Ocaml) FP
> languages you isolate these assumption inside a type. With module
> language constructs, you can hide these assumption from the rest of the
> program.

Actually, I have been looking at Haskell.  Very interesting.  VERY
interesting.

But...  Most of my customers are using Java or VB6 (and trying to go
to VB.Net or C#.Net).  Haskell, Smalltalk, LISP, and many other really
great languages aren't even "on the radar."

Sigh...

 
 
 

to C3 participants

Post by Vladimir Kirichenk » Wed, 15 Jan 2003 18:22:15


1890312801
Hi, Ron Jeffries!

Quote:> >> >> The implementation was in fact a dataflow machine. Basically the calculation of
> >> >> a paycheck was the application of a complex function. It looked very much like
> >> >> large-scale FP. I suspect that Kent and I were the only ones who would have
> >> >> known to call it that.
> >> >> Anyway, the point was to learn OO.
> >> >ok, thanks. One more question. Don't you have feeling that it was wrong
> >> >decision?
> >> To learn OO? No, I think learning OO is a good thing. The most-used programming
> >> languages around are almost all OO. Knowing OO is a good thing.
> >> Why were you thinking it might have been a wrong decision?
> >Not to learn OO but to use OO in C3 project.
> It worked fine. What was making you think using OO might not have been a good
> idea?

I dont think so:). But there are people that have this opition. So I asked
partisipants:)

--
Vladimir Kirichenko

1890312801

 
 
 

1. C3 dead.

I just noticed on Wiki an announcement that I'm suprised has not made
it here ( or perhaps it did and I missed it, in that case sorry). The
C3 project at Chrysler has been terminated. At this point, I don't
know any of the details.

2. EPSON GERMANY OS/2 PRINTER DRIVER

3. Hear about Chrysler C3 at Smalltalk Solutions

4. Large GUIs run slowly in 5.3

5. about C3

6. can not access/computer name invalid

7. another truth from C3

8. Question about reading newsgroup with Psion

9. C3 dead.

10. WinHec99, participants ?

11. ANN - looking for beta participants for nogoop ActiveX/COM Inspector

12. ANN - looking for beta participants - nogoop ActiveX/COM Inspector

13. Help, How to handle Participant Event