Discussion:
advice, please: PHP, Java, ..., ?
Ron Jeffries
2005-03-14 04:51:14 UTC
Permalink
Scenario,

Reasonable simple app, with a number of things like collections of
products, collections of vendors, collections of customers.

Probably needs to be in an SQL database.

Web-based access.

Programmers are students, equally inexperienced at everything: some
PHP, some Javascript, some with some Java. Think pretty
inexperienced.

Project done in Scrum / XP style.

Purpose includes programmers employable after doing some projects
like this.

Question: What language / system / approach is a good one to take?
What about code management? Java? Java/J2EE? PHP? .NET?

(I don't need help choosing a bug tracker. Thanks, though. ;-> )

My thoughts:

I don't really know any of Java/J2EE or PHP or even .NET well
enough to feel really great about them for this.

If I could do it any way I wanted personally, I'd probably do it
in Seaside / Smalltalk. But that won't get a student a job, I'd
bet.

Team needs to learn to build a decent model, do lots of TDD and
automated acceptance testing, as they'll surely be evolving and
making mistakes. From what I've seen them doing with PHP /
Javascript, they have way too much logic in the pages, and it
looks almost impossible to test. But I'm ignorant.

Your thoughts and suggestions, please?

Ron Jeffries
www.XProgramming.com
If it is more than you need, it is waste. -- Andy Seidl




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steve Bate
2005-03-14 05:22:02 UTC
Permalink
> From: Ron Jeffries [mailto:***@XProgramming.com]
>
> Scenario,
>
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
>
> Probably needs to be in an SQL database.
>
> Web-based access.
>
> Programmers are students, equally inexperienced at everything: some
> PHP, some Javascript, some with some Java. Think pretty
> inexperienced.
>
> ...
> Your thoughts and suggestions, please?

Hi Ron,

I'd say your best bet is J2EE or .NET (but I don't know .NET). The TIOBE
Programming Community Index (http://www.tiobe.com/tpci.htm) provides info
about the popularity of various languages. For example, Java is about 6x
more popular than C#. In this case, the method they use for measuring
popularity makes the index potentially useful for career-related decisions.

Steve






To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 05:29:09 UTC
Permalink
On Sunday, March 13, 2005, at 10:22:02 PM, Steve Bate wrote:

> I'd say your best bet is J2EE or .NET (but I don't know .NET). The TIOBE
> Programming Community Index (http://www.tiobe.com/tpci.htm) provides info
> about the popularity of various languages. For example, Java is about 6x
> more popular than C#. In this case, the method they use for measuring
> popularity makes the index potentially useful for career-related decisions.

I'm concerned, also, about the ease with which an app can be built.
J2EE in my understanding seems like too much mechanism. But at
least, I guess, it's more nearly testable and more nearly OO?

Ron Jeffries
www.XProgramming.com
There's a difference between righteous anger and just being crabby.
--Barbara Richmond




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Sarath Kummamuru
2005-03-14 05:44:43 UTC
Permalink
I believe any langauge is good enough. Each of PHP, JAVA or .Net are
good both in the perspective of a job and how they learn to build web
applications.

>>>
From what I've seen them doing with PHP /
Javascript, they have way too much logic in the pages, and it
looks almost impossible to test.
>>>>
this is not necessarily true, becuase with PHP building applications
with code embedded in HTML is not a good idea and there are template
engines (my favorite being smarty) which can be used to separate the
presentation from HTML. For all our PHP Projects we have a php file
that handles the POST/Get form processing, passes the data to a
business object and a StorageHandler / DAO which takes the business
objects and handles persistence. The view happens with the php passing
an array of data to smarty which provides the UI.

This is a pretty good mechanism to work with PHP and works pretty well.

I strongly believe that be it PHP, JAVA (say JSP) or .Net (say ASP
.Net) if we include HTML and Code togehter each is equally bad :-(

Sarath.
http://www.quadone.com


On Sun, 13 Mar 2005 22:29:09 -0700, Ron Jeffries
<***@xprogramming.com> wrote:
>
> On Sunday, March 13, 2005, at 10:22:02 PM, Steve Bate wrote:
>
> > I'd say your best bet is J2EE or .NET (but I don't know .NET). The TIOBE
> > Programming Community Index (http://www.tiobe.com/tpci.htm) provides info
> > about the popularity of various languages. For example, Java is about 6x
> > more popular than C#. In this case, the method they use for measuring
> > popularity makes the index potentially useful for career-related decisions.
>
> I'm concerned, also, about the ease with which an app can be built.
> J2EE in my understanding seems like too much mechanism. But at
> least, I guess, it's more nearly testable and more nearly OO?
>
> Ron Jeffries
> www.XProgramming.com
> There's a difference between righteous anger and just being crabby.
> --Barbara Richmond
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Sarath Kummamuru
2005-03-14 05:49:43 UTC
Permalink
I take courses with a similar context, targetted at novice programmers
and teach them JAVA, PHP or .Net as the case might be.

With a project during the course built with XP methodologies like TDD,
Pair Programming, User Stories etc.

My current course is with a set of about 20 students, with JAVA. I am
planning them to work using XP on a XP project management tool that I
plan to opensource at the end of the course.

I believe it is very crucial for developers to learn XP methodologies
from the beginning and so i started this course.

Some important goals for these students is to get to use JUNIT, Ant,
Log4J and CRC cards.

Feels good that you are also planning to do some thing similar. How
about sharing our experiences and trying to build some thing together
with the teams collaborating in some way!? (Just an idea, i would love
to do that ;-) )

Sarath.
http://www.quadone.com



On Mon, 14 Mar 2005 11:14:43 +0530, Sarath Kummamuru <***@gmail.com> wrote:
> I believe any langauge is good enough. Each of PHP, JAVA or .Net are
> good both in the perspective of a job and how they learn to build web
> applications.
>
> >>>
> From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test.
> >>>>
> this is not necessarily true, becuase with PHP building applications
> with code embedded in HTML is not a good idea and there are template
> engines (my favorite being smarty) which can be used to separate the
> presentation from HTML. For all our PHP Projects we have a php file
> that handles the POST/Get form processing, passes the data to a
> business object and a StorageHandler / DAO which takes the business
> objects and handles persistence. The view happens with the php passing
> an array of data to smarty which provides the UI.
>
> This is a pretty good mechanism to work with PHP and works pretty well.
>
> I strongly believe that be it PHP, JAVA (say JSP) or .Net (say ASP
> .Net) if we include HTML and Code togehter each is equally bad :-(
>
> Sarath.
> http://www.quadone.com
>
>
> On Sun, 13 Mar 2005 22:29:09 -0700, Ron Jeffries
> <***@xprogramming.com> wrote:
> >
> > On Sunday, March 13, 2005, at 10:22:02 PM, Steve Bate wrote:
> >
> > > I'd say your best bet is J2EE or .NET (but I don't know .NET). The TIOBE
> > > Programming Community Index (http://www.tiobe.com/tpci.htm) provides info
> > > about the popularity of various languages. For example, Java is about 6x
> > > more popular than C#. In this case, the method they use for measuring
> > > popularity makes the index potentially useful for career-related decisions.
> >
> > I'm concerned, also, about the ease with which an app can be built.
> > J2EE in my understanding seems like too much mechanism. But at
> > least, I guess, it's more nearly testable and more nearly OO?
> >
> > Ron Jeffries
> > www.XProgramming.com
> > There's a difference between righteous anger and just being crabby.
> > --Barbara Richmond
> >
> >
> > To Post a message, send it to: ***@eGroups.com
> >
> > To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
> >
> > ad-free courtesy of objectmentor.com
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:56:23 UTC
Permalink
On Sunday, March 13, 2005, at 10:44:43 PM, Sarath Kummamuru wrote:

>> From what I've seen them doing with PHP / Javascript, they have
>> way too much logic in the pages, and it looks almost impossible
>> to test.

> this is not necessarily true, becuase with PHP building applications
> with code embedded in HTML is not a good idea and there are template
> engines (my favorite being smarty) which can be used to separate the
> presentation from HTML. For all our PHP Projects we have a php file
> that handles the POST/Get form processing, passes the data to a
> business object and a StorageHandler / DAO which takes the business
> objects and handles persistence. The view happens with the php passing
> an array of data to smarty which provides the UI.

I've been told that it's possible to get decent separation of UI and
logic in PHP but don't know how to do it or where to look for it.

Thanks for mentioning smarty. Where else should they look for good
examples?

> This is a pretty good mechanism to work with PHP and works pretty well.

> I strongly believe that be it PHP, JAVA (say JSP) or .Net (say ASP
> .Net) if we include HTML and Code togehter each is equally bad :-(

Yes. The trick will be for them to find out how to do that. I don't
work enough at that level, even in .NET, to be able to advise them
on their decision.

I think simplicity of approach is going to be key, but that they
must get in a position to do good TDD and good acceptance tests,
somehow.

Thanks,

Ron Jeffries
www.XProgramming.com
For me, XP ain't out there, it's in here. -- Bill Caputo




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
George Dinwiddie
2005-03-19 11:03:59 UTC
Permalink
Ron Jeffries wrote:
> I've been told that it's possible to get decent separation of UI and
> logic in PHP but don't know how to do it or where to look for it.

I see I'm late to this thread, but I think George Paci could help you
with this part.

- George


--
----------------------------------------------------------------------
When I remember bygone days George Dinwiddie
I think how evening follows morn; iDIA Computing, LLC
So many I loved were not yet dead, ***@idiacomputing.com
So many I love were not yet born. http://www.idiacomputing.com
'The Middle' by Ogden Nash http://www.agilemaryland.org
----------------------------------------------------------------------





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Hugo Garcia
2005-03-14 05:37:46 UTC
Permalink
Most jobs in Java want the J2EE monkier attached. As a matter of fact
I would say more than 50% of the recruiters (at least in the East
Coast) won't look at a candidate if he doesn't have J2EE or at least
the word servlet somewhere (sad but reality).

Kepp the code in CVS or Subversion. I would say don't go for a
three-tier J2EE archtecture... way too much even for seasoned
programmers. Keep it a simple two tier with Tomcat as the servlet
engine and Apache as the webserver (Linux would be good but... then
again...) As a database use mysql. IF you can use Hibernate then guide
them with it. Ideally, what should they learn? Well MVC. How? Is is
too much to tell them to use Hibernate? If so... just keep the PHP
(that is easy) and move the CM part away from PHP and JavaScipt and
into the Servlets and POJO's and into mysql. This is were you can do
TDD and some basic domain driven design. So... in essence your
project, from your perspective, becomes one big refactoring job into
MVC. That should give them the basic to start learning more... As you
guide them through the refactoring introduce some of the basic
patterns (don't go crazy... four to six at the most and only if
needed) and introduce them after they have done the code ("Oh... by
the way... what you have done is Command"). Also keep in mind that
there are such things as Struts and even if you don't mention it, at
the end they should have enough grasp of the technology in this
project to be able to evolve to frameworks such as Struts but that is
next semester...

-H

As for the .NET.... that is another option. But that I leave to someone else.

On Sun, 13 Mar 2005 21:51:14 -0700, Ron Jeffries
<***@xprogramming.com> wrote:
>
> Scenario,
>
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
>
> Probably needs to be in an SQL database.
>
> Web-based access.
>
> Programmers are students, equally inexperienced at everything: some
> PHP, some Javascript, some with some Java. Think pretty
> inexperienced.
>
> Project done in Scrum / XP style.
>
> Purpose includes programmers employable after doing some projects
> like this.
>
> Question: What language / system / approach is a good one to take?
> What about code management? Java? Java/J2EE? PHP? .NET?
>
> (I don't need help choosing a bug tracker. Thanks, though. ;-> )
>
> My thoughts:
>
> I don't really know any of Java/J2EE or PHP or even .NET well
> enough to feel really great about them for this.
>
> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.
>
> Team needs to learn to build a decent model, do lots of TDD and
> automated acceptance testing, as they'll surely be evolving and
> making mistakes. From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test. But I'm ignorant.
>
> Your thoughts and suggestions, please?
>
> Ron Jeffries
> www.XProgramming.com
> If it is more than you need, it is waste. -- Andy Seidl
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
William Pietri
2005-03-14 06:16:05 UTC
Permalink
On Mon, 2005-03-14 at 00:37 -0500, Hugo Garcia wrote:
> Keep it a simple two tier with Tomcat as the servlet
> engine and Apache as the webserver (Linux would be good but... then
> again...) As a database use mysql. IF you can use Hibernate then guide
> them with it.

I'd second this. The bad thing about database-driven web apps is that
both the web requests and the database are essentially procedural, which
makes it hard to learn good OO design. Hibernate will require a little
guidance to set up, but it will put a nice OO interface on the database,
so they'll have some chance of learning what objects are for.

William

--
William Pietri <***@scissor.com>



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 12:03:47 UTC
Permalink
Around Sunday, March 13, 2005, 10:37:46 PM, Hugo Garcia wrote:

> If so... just keep the PHP
> (that is easy) and move the CM part away from PHP and JavaScipt and
> into the Servlets and POJO's and into mysql. This is were you can do
> TDD and some basic domain driven design. So... in essence your
> project, from your perspective, becomes one big refactoring job into
> MVC. That should give them the basic to start learning more... As you
> guide them through the refactoring introduce some of the basic
> patterns (don't go crazy... four to six at the most and only if
> needed) and introduce them after they have done the code ("Oh... by
> the way... what you have done is Command"). Also keep in mind that
> there are such things as Struts and even if you don't mention it, at
> the end they should have enough grasp of the technology in this
> project to be able to evolve to frameworks such as Struts but that is
> next semester...

In a perfect world, I might go this way. Issues are that I don't get
to stick with them (I don't know how to do the things you describe,
but I would know they are needed and would root them out with help),
and they aren't going to get much technical mentoring at all.

Very much a bootstrap, and the next few months are critical. They
must learn ... and deliver. Fun problem!

Ron Jeffries
www.XProgramming.com
If there's only one answer, then this must not be a very interesting topic.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Hugo Garcia
2005-03-14 12:54:23 UTC
Permalink
well... given the extra info that you provided... I would not follow
my suggestion since there will be no one to focus them on the
development process and the knowledge that is non langauge/technology
specific. There is a very large risk that they will be bogged down by
the technology learning curve.

Operation Bootstrap:

There is marketabilty in PHP. Give them mysql at least for a simple
database. I read some responses in this thread about PHP specific
tools. Focus on them and try to give them an overview of MVC. Tell
them to move more from JavaScipt to PHP. Since you won't be around
then they should be given the appropiate newsgroups, email list that
they will resource and ask questions. If you can, find PHP examples of
something that is similar to thier project. Compare and contrast and
let them develop the necesay connections between what they have and
what has been done with what has to be done. The compare and contrast
discussion is going to be there main bootstrap.

As you have sourced form this thread... given the luxury of choice and
time and guidance then the plan mentioned below or a derivation given
the great suggestions in the thread from everyone would be a good way
to accomplish the project. But alas... I guess that is next semester
:)

-H

On Mon, 14 Mar 2005 05:03:47 -0700, Ron Jeffries
<***@xprogramming.com> wrote:
>
> Around Sunday, March 13, 2005, 10:37:46 PM, Hugo Garcia wrote:
>
> > If so... just keep the PHP
> > (that is easy) and move the CM part away from PHP and JavaScipt and
> > into the Servlets and POJO's and into mysql. This is were you can do
> > TDD and some basic domain driven design. So... in essence your
> > project, from your perspective, becomes one big refactoring job into
> > MVC. That should give them the basic to start learning more... As you
> > guide them through the refactoring introduce some of the basic
> > patterns (don't go crazy... four to six at the most and only if
> > needed) and introduce them after they have done the code ("Oh... by
> > the way... what you have done is Command"). Also keep in mind that
> > there are such things as Struts and even if you don't mention it, at
> > the end they should have enough grasp of the technology in this
> > project to be able to evolve to frameworks such as Struts but that is
> > next semester...
>
> In a perfect world, I might go this way. Issues are that I don't get
> to stick with them (I don't know how to do the things you describe,
> but I would know they are needed and would root them out with help),
> and they aren't going to get much technical mentoring at all.
>
> Very much a bootstrap, and the next few months are critical. They
> must learn ... and deliver. Fun problem!
>
> Ron Jeffries
> www.XProgramming.com
> If there's only one answer, then this must not be a very interesting topic.
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Lasse Koskela
2005-03-14 05:45:56 UTC
Permalink
Hi Ron,

On Sun, 13 Mar 2005 21:51:14 -0700, Ron Jeffries
<***@xprogramming.com> wrote:
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
> Probably needs to be in an SQL database.
> Web-based access.
> Think pretty inexperienced.
> Project done in Scrum / XP style.
>
> Question: What language / system / approach is a good one to take?
> What about code management? Java? Java/J2EE? PHP? .NET?

I'd be in favor of either PHP or Java. The main reason being that
there's just too much magic in VS.NET. In my opinion, of course.

PHP is by far the fastest to get started with for *web* development,
although Java is by far the easiest language to get started with (yes,
easier than PHP because your IDE tells you right away when you make a
syntax error). Also, I guess Java is used in most textbooks today, and
based on my observations, most of the "important" titles published
within the past 10 years use Java for their examples.

I wonder if Ruby would have enough career-push to be considered, though?

-Lasse-


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Hugo Garcia
2005-03-14 05:50:13 UTC
Permalink
Oh yeah... IDE... for got about that.. I would suggest Eclipse (55%
market share) and second choice would be to get the early release
("free") version of IntelliJ.

>
> PHP is by far the fastest to get started with for *web* development,
> although Java is by far the easiest language to get started with (yes,
> easier than PHP because your IDE tells you right away when you make a
> syntax error).


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
J. B. Rainsberger
2005-03-14 06:40:09 UTC
Permalink
Lasse Koskela wrote:
> Hi Ron,
>
> On Sun, 13 Mar 2005 21:51:14 -0700, Ron Jeffries
> <***@xprogramming.com> wrote:
>
>>Reasonable simple app, with a number of things like collections of
>>products, collections of vendors, collections of customers.
>>Probably needs to be in an SQL database.
>>Web-based access.
>>Think pretty inexperienced.
>>Project done in Scrum / XP style.
>>
>>Question: What language / system / approach is a good one to take?
>>What about code management? Java? Java/J2EE? PHP? .NET?
>
>
> I'd be in favor of either PHP or Java. The main reason being that
> there's just too much magic in VS.NET. In my opinion, of course.
>
> PHP is by far the fastest to get started with for *web* development,
> although Java is by far the easiest language to get started with (yes,
> easier than PHP because your IDE tells you right away when you make a
> syntax error). Also, I guess Java is used in most textbooks today, and
> based on my observations, most of the "important" titles published
> within the past 10 years use Java for their examples.
>
> I wonder if Ruby would have enough career-push to be considered, though?

Having them use Rails would probably scar them for life. They'd have to
wait 20 years before a company would let them be that productive. :)
--
J. B. (Joe) Rainsberger
Diaspar Software Services
http://www.diasparsoftware.com
Author, JUnit Recipes: Practical Methods for Programmer Testing


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:35:06 UTC
Permalink
On Sunday, March 13, 2005, at 11:40:09 PM, J. B. Rainsberger wrote:

>> I wonder if Ruby would have enough career-push to be considered, though?

> Having them use Rails would probably scar them for life. They'd have to
> wait 20 years before a company would let them be that productive. :)

I don't know yet how good Rails is. Seaside is incredible: you write
the app like an app. It runs on continuations. You can call a web
component, (a page or subpage), it will run, and eventually return
an answer, which can be any object. Only tried it a little
yesterday.

Separate thread on all this, maybe? Probably OT for employability?

But still ... Ruby would be way easy to learn ...

Ron Jeffries
www.XProgramming.com
This is how I develop software.
Take the parts that make sense to you.
Ignore the rest.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Hugo Garcia
2005-03-14 11:45:56 UTC
Permalink
> Separate thread on all this, maybe? Probably OT for employability?

Yeah... that would be an interesting thread. What would make someone
more marketable at different levels (recent graduate, jiunior, mid
level, senior). I also wonder if there are differences in regions in
the country and the world.

>
> But still ... Ruby would be way easy to learn ...

or Python... one scripting language would be nice and Ruby would be great.

>
> Ron Jeffries
> www.XProgramming.com
> This is how I develop software.
> Take the parts that make sense to you.
> Ignore the rest.
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Bill Kelly
2005-03-14 15:35:42 UTC
Permalink
From: "Ron Jeffries" <***@XProgramming.com>
>
> On Sunday, March 13, 2005, at 11:40:09 PM, J. B. Rainsberger wrote:
>
> > Having them use Rails would probably scar them for life. They'd have to
> > wait 20 years before a company would let them be that productive. :)
>
> I don't know yet how good Rails is. Seaside is incredible: you write
> the app like an app. It runs on continuations. You can call a web
> component, (a page or subpage), it will run, and eventually return
> an answer, which can be any object. Only tried it a little
> yesterday.

For completeness sake (rather than advocacy - as I have personally
tried neither of these frameworks yet) - there is a continuations-
based Ruby framework called Wee, about which someone posted an
example showing the nature in which it differs from non-continuations
based frameworks:
http://groups-beta.google.com/group/comp.lang.ruby/msg/24faa8e765e2e99e

Also, the "10 minute setup video" on http://www.rubyonrails.org/
was pretty neat, because it really only spends a couple minutes
on setup, and goes right on to demonstrate the development of a
mini online bulletin board app.


Regards,

Bill




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 12:01:28 UTC
Permalink
Around Sunday, March 13, 2005, 10:45:56 PM, Lasse Koskela wrote:

> PHP is by far the fastest to get started with for *web* development,
> although Java is by far the easiest language to get started with (yes,
> easier than PHP because your IDE tells you right away when you make a
> syntax error). Also, I guess Java is used in most textbooks today, and
> based on my observations, most of the "important" titles published
> within the past 10 years use Java for their examples.

Yes. This is pretty close to my assessment as well.

If they decide to stick with PHP, what's a good resource for
seeing how to break logic out of UI in PHP?

Ron Jeffries
www.XProgramming.com
Yesterday's code should be as good as we could make it yesterday.
The fact that we know more today, and are more capable today,
is good news about today, not bad news about yesterday.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Colin Putney
2005-03-14 05:55:18 UTC
Permalink
On Mar 13, 2005, at 11:51 PM, Ron Jeffries wrote:

>
> Scenario,
>
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
>
> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.

Hi Ron,

My suggestion would be to follow your instincts here. Teach your
students to do it the way you'd do it if you weren't teaching. If you
do anything else, are you really giving them your best teaching? You'd
do things a certain way because of your wisdom and experience. Isn't
that what your students want of you?

As for the employability of Smalltalk programmers, I wouldn't worry too
much about that. There are Smalltalk jobs out there, if you want one.
On the other hand, even if your students don't want to work in
Smalltalk, it's still a good language for teaching. The group will be
able to spend less time on trivialities like syntax and getting the
damn thing to compile, and more time on the stuff that matters - how
you approach solving a problem, why some solutions are better than
others, how to track down a bug. And time is the scarce resource here
right?

If they've learned how to develop software, they'll have no trouble
finding employment.

Colin



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:31:13 UTC
Permalink
On Sunday, March 13, 2005, at 10:55:18 PM, Colin Putney wrote:

> My suggestion would be to follow your instincts here. Teach your
> students to do it the way you'd do it if you weren't teaching. If you
> do anything else, are you really giving them your best teaching? You'd
> do things a certain way because of your wisdom and experience. Isn't
> that what your students want of you?

On Sunday, March 13, 2005, at 11:27:43 PM, Sarath Kummamuru wrote:

> My current course is with a set of about 20 students, with JAVA. I am
> planning them to work using XP on a XP project management tool that I
> plan to opensource at the end of the course.

> I believe it is very crucial for developers to learn XP methodologies
> from the beginning and so i started this course.

> Some important goals for these students is to get to use JUNIT, Ant,
> Log4J and CRC cards.

> Feels good that you are also planning to do some thing similar. How
> about sharing our experiences and trying to build some thing together
> with the teams collaborating in some way!? (Just an idea, i would love
> to do that ;-) )

On Sunday, March 13, 2005, at 11:16:05 PM, William Pietri wrote:

> On Mon, 2005-03-14 at 00:37 -0500, Hugo Garcia wrote:
>> Keep it a simple two tier with Tomcat as the servlet
>> engine and Apache as the webserver (Linux would be good but... then
>> again...) As a database use mysql. IF you can use Hibernate then guide
>> them with it.

> I'd second this. The bad thing about database-driven web apps is that
> both the web requests and the database are essentially procedural, which
> makes it hard to learn good OO design. Hibernate will require a little
> guidance to set up, but it will put a nice OO interface on the database,
> so they'll have some chance of learning what objects are for.

Ah. I see that I wasn't clear, from the answers I'm getting.

I'm just visiting this team for what will probably, unfortunately,
be a one-shot visit. Their current PHP is all inter-twingled with the
HTML, and I have the feeling that the project is challenged. So I'm
asking to get a sense of alternatives for a kind of retrospective
I'd like to help them with this week. Mostly it'll be where are we,
what's working and not, where should we go from here.

This is a real project, for a real user, done by the students.
They're working pretty well together. There are some people and
process issues, of course, and also the technical process (code
management, etc) isn't what it needs to be.

They're of good heart. They'll need mentoring not just in the kinds
of things that I do, but also in some of the base technical matters
that I won't be able to teach, especially in the few days I'll be
here before I go back home. I might be able to point them to some
resources, but it's unlikely that I'll be able to come back or that
other mentors can be brought in.

(There are, however, some more experienced J2EE programmers
involved on another project, and they might be a resource. I don't
know how far they are down the path whose values we all share,
however.)

As they don't really know any technology well, I am hesitant to
bring in more and more, such as Hibernate, just because they are
already nearly buried in things to learn. They may be more
optimistic than I fear they might be, which would be great, but I'd
like to find an approach that doesn't load them down with 12 things
to learn before shipping the next story.

I want to help them figure out together what they know and don't
know, help them to get some measures in place to see how they're
doing. They'll have to carry quite a bit more of the load alone than
I'd like. So I'm trying to get a sense of the minimum stuff to be
successful that might work. They'll decide but I and a few others
must advise on selection of a technical approach that they'll need
to work on mostly without someone with them who knows the detailed
technical "best practices".

That's the sum. I'll reply a bit more to some details. Thanks to all
for the good stuff so far!

Ron Jeffries
www.XProgramming.com
One test is worth a thousand expert opinions.
-- Bill Nye (The Science Guy)




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:59:45 UTC
Permalink
Around Sunday, March 13, 2005, 10:55:18 PM, Colin Putney wrote:

> My suggestion would be to follow your instincts here. Teach your
> students to do it the way you'd do it if you weren't teaching. If you
> do anything else, are you really giving them your best teaching? You'd
> do things a certain way because of your wisdom and experience. Isn't
> that what your students want of you?

> As for the employability of Smalltalk programmers, I wouldn't worry too
> much about that. There are Smalltalk jobs out there, if you want one.
> On the other hand, even if your students don't want to work in
> Smalltalk, it's still a good language for teaching. The group will be
> able to spend less time on trivialities like syntax and getting the
> damn thing to compile, and more time on the stuff that matters - how
> you approach solving a problem, why some solutions are better than
> others, how to track down a bug. And time is the scarce resource here
> right?

> If they've learned how to develop software, they'll have no trouble
> finding employment.

Colin,

You raise a good point here. The difficulty I've mentioned above is
that I'll not be with the team for more than another couple of days,
and there will not likely be any technically strong mentors coming
along. So they have to be able to bootstrap.

I do like your points about Smalltalk putting them in the middle of
the real problems ... but have more fear than you do about what they
put on their resumes.

Thanks,

Ron Jeffries
www.XProgramming.com
It is a bad plan that admits of no modifications. -- Publius Syrus (ca. 42 BCE)




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Matthew Snyder
2005-03-14 22:05:49 UTC
Permalink
Hi Ron,

[snip]

As for the employability of Smalltalk programmers, I wouldn't worry too
much about that. There are Smalltalk jobs out there, if you want one.
On the other hand, even if your students don't want to work in
Smalltalk, it's still a good language for teaching. The group will be
able to spend less time on trivialities like syntax and getting the
damn thing to compile, and more time on the stuff that matters - how
you approach solving a problem, why some solutions are better than
others, how to track down a bug. And time is the scarce resource here
right?

If they've learned how to develop software, they'll have no trouble
finding employment.

Colin


[My 2 cents]
Excellent response Colin! The important thing here is how they approach the
problem, not language syntax and knowing how to translate Visual Studio
compiler errors into English. Languages will come and go, problem solving
skills don't and that's what will get them a job!

Matt



--

No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.7.1 - Release Date: 3/9/2005




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-15 02:48:22 UTC
Permalink
On Monday, March 14, 2005, at 3:05:49 PM, Matthew Snyder wrote:

> As for the employability of Smalltalk programmers, I wouldn't worry too
> much about that. There are Smalltalk jobs out there, if you want one.
> On the other hand, even if your students don't want to work in
> Smalltalk, it's still a good language for teaching. The group will be
> able to spend less time on trivialities like syntax and getting the
> damn thing to compile, and more time on the stuff that matters - how
> you approach solving a problem, why some solutions are better than
> others, how to track down a bug. And time is the scarce resource here
> right?

> If they've learned how to develop software, they'll have no trouble
> finding employment.

Thanks ...

Here's a general report on status.

Today I learned PHP, learned how to use PHPUnit, had one of the guys
install subversion and PHP into Eclipse, and figured out roughly how
to set up the project in PHP, so that there would be more objects
and more tests.

Then we discussed using Smalltalk. The team members present (we had
16" of snow last night and today) would rather go ahead in
Smalltalk, as would the head dude, Dave West. And of course I would,
as well.

So tomorrow Dave and I are going to spike the app in Squeak, Seaside
(awesome!), and Monticello. Full speed ahead, I guess you'd call it.

I now think we could do it either of those two ways, and I don't see
much advantage to moving to Java/JSP. I don't think we'd go faster,
and the slight resume advantage isn't worth the lower velocity and
lost momentum. (I think.)

Thanks to all for the responses ... the richness of what you all
told me helped in deciding what to try and to recommend.

Thanks again ... more when more happens if not before!

Ron Jeffries
www.XProgramming.com
If there's only one answer, then this must not be a very interesting topic.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Syver Enstad
2005-03-15 08:48:47 UTC
Permalink
Ron Jeffries <***@XProgramming.com> writes:

> Then we discussed using Smalltalk. The team members present (we had
> 16" of snow last night and today) would rather go ahead in
> Smalltalk, as would the head dude, Dave West. And of course I would,
> as well.
>
> So tomorrow Dave and I are going to spike the app in Squeak, Seaside
> (awesome!), and Monticello. Full speed ahead, I guess you'd call it.

Very cool, Ron. Is there any hope that you would write some on Seaside
programming, which I (and probably more than I) am really curious about?






To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-15 10:05:45 UTC
Permalink
On Tuesday, March 15, 2005, at 1:48:47 AM, Syver Enstad wrote:

> Ron Jeffries <***@XProgramming.com> writes:

>> Then we discussed using Smalltalk. The team members present (we had
>> 16" of snow last night and today) would rather go ahead in
>> Smalltalk, as would the head dude, Dave West. And of course I would,
>> as well.
>>
>> So tomorrow Dave and I are going to spike the app in Squeak, Seaside
>> (awesome!), and Monticello. Full speed ahead, I guess you'd call it.

> Very cool, Ron. Is there any hope that you would write some on Seaside
> programming, which I (and probably more than I) am really curious about?

Surely will. There's already one article up on the site by Chet, and
I think it makes an interesting topic. It's too bad not many folks
will ever get to use it -- it appears to be awesome.

I suppose if we do that, we have to do Ruby on Rails too ...

Ron Jeffries
www.XProgramming.com
Speculation or experimentation - which is more likely to give the correct answer?




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Hugo Garcia
2005-03-18 16:34:29 UTC
Permalink
AHA! So squek is the Smalltalk version to lean with. Was wondering
since I want to learn Ruby and JRuby and Smalltalk this year.

Is it better to learn Smalltalk and then Ruby or the other way around?
I come from Java.

On Mon, 14 Mar 2005 19:48:22 -0700, Ron Jeffries
<***@xprogramming.com> wrote:

>
> So tomorrow Dave and I are going to spike the app in Squeak, Seaside
> (awesome!), and Monticello. Full speed ahead, I guess you'd call it.
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Toby Tripp
2005-03-18 16:50:49 UTC
Permalink
Personally, I would recommend Ruby, if only because a cross-platform
scripting language is an excellent tool to have on your belt.

I don't know which of Smalltalk or Ruby will be an easier leap from
Java. I came from Ada, from whence any new language is a liberating
experience (IMO, of course).


On Fri, 18 Mar 2005 11:34:29 -0500, Hugo Garcia <***@gmail.com> wrote:
>
> AHA! So squek is the Smalltalk version to lean with. Was wondering
> since I want to learn Ruby and JRuby and Smalltalk this year.
>
> Is it better to learn Smalltalk and then Ruby or the other way around?
> I come from Java.
>
> On Mon, 14 Mar 2005 19:48:22 -0700, Ron Jeffries
> <***@xprogramming.com> wrote:
>
> >
> > So tomorrow Dave and I are going to spike the app in Squeak, Seaside
> > (awesome!), and Monticello. Full speed ahead, I guess you'd call it.
> >
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


--
Toby Tripp

They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-- Benjamin Franklin
Historical Review of Pennsylvania, 1759


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
bernard_notarianni
2005-03-18 16:52:02 UTC
Permalink
Ruby is probably easier than Smalltalk for a Java guy.

With Smalltalk, you will discover a quite different experience. The
synthax itself is quite different, but also the environment, which is
not anymore based on text file programs to be processed by a compiler
or an interpreter.

Hence, it depends: if you want a smooth transition, pass by Ruby to
Smalltalk. If you want to go directly to the best environment, go for
Smalltalk, but be prepared to a quantic gap.

Squeak is an open source Smalltalk which gain increasing momemtum
since it hosts the superb Seaside framework for Web application.

--- In ***@yahoogroups.com, Hugo Garcia
<***@g...> wrote:
> AHA! So squek is the Smalltalk version to lean with. Was wondering
> since I want to learn Ruby and JRuby and Smalltalk this year.
>
> Is it better to learn Smalltalk and then Ruby or the other way around?
> I come from Java.
>
> On Mon, 14 Mar 2005 19:48:22 -0700, Ron Jeffries
> <***@x...> wrote:
>
> >
> > So tomorrow Dave and I are going to spike the app in Squeak, Seaside
> > (awesome!), and Monticello. Full speed ahead, I guess you'd call it.
> >





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-18 19:53:35 UTC
Permalink
On Friday, March 18, 2005, at 11:34:29 AM, Hugo Garcia wrote:

> AHA! So squek is the Smalltalk version to lean with. Was wondering
> since I want to learn Ruby and JRuby and Smalltalk this year.

> Is it better to learn Smalltalk and then Ruby or the other way around?
> I come from Java.

Not easy to say. Ruby is cool, and since it's text in an editor,
it's not too much unlike Java or many other languages you probably
know.

Smalltalk, on the other hand, will rock your world. Very different,
very worth getting good at.

Ron Jeffries
www.XProgramming.com
I cannot find my duck.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Chris Wheeler
2005-03-22 03:18:40 UTC
Permalink
>
> Smalltalk, on the other hand, will rock your world. Very different,
> very worth getting good at.
>

In the hour or so that I spent on Smalltalk (that's all I've ever
spent on smalltalk ever!) I was totally lost. I could not figure out
if I was writing a program or extending an environment. I gave up.

But I keep hearing what you say here, and need to understand it.
Ruby, I love... Smalltalk, I want to love, but just can't see a path
there.

Chris.


--
---------------------
Chris Wheeler
Extreme Programmer & Coach


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Keith Ray
2005-03-22 04:13:20 UTC
Permalink
I've heard that Dolphin Smalltalk gives Windows/C/C++ programmers the
most comfortable transition to Smalltalk -- an application model
similar to Windows/C/C++ applications.

On Mar 21, 2005, at 7:18 PM, Chris Wheeler wrote:

>
>>
>> Smalltalk, on the other hand, will rock your world. Very different,
>> very worth getting good at.
>>
>
> In the hour or so that I spent on Smalltalk (that's all I've ever
> spent on smalltalk ever!) I was totally lost. I could not figure out
> if I was writing a program or extending an environment. I gave up.
>
> But I keep hearing what you say here, and need to understand it.
> Ruby, I love... Smalltalk, I want to love, but just can't see a path
> there.
>
> Chris.
>
>
> --
> ---------------------
> Chris Wheeler
> Extreme Programmer & Coach
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to:
> extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
--
C. Keith Ray
<http://homepage.mac.com/keithray/blog/index.html>
<http://homepage.mac.com/keithray/xpminifaq.html>
<http://homepage.mac.com/keithray/resume2.html>



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-22 05:02:43 UTC
Permalink
On Monday, March 21, 2005, at 8:13:20 PM, Keith Ray wrote:

> I've heard that Dolphin Smalltalk gives Windows/C/C++ programmers the
> most comfortable transition to Smalltalk -- an application model
> similar to Windows/C/C++ applications.

I find Dolphin to be quite pleasant. Of all the Smalltalks, in many
ways it is my favorite, not least because it is the product of a
couple of nice guys.

Ron Jeffries
www.XProgramming.com
Think! -- Aretha Franklin




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Randy Coulman
2005-03-22 05:25:46 UTC
Permalink
On Mon, 21 Mar 2005 20:13:20 -0800, Keith Ray <***@mac.com> wrote:
>
> I've heard that Dolphin Smalltalk gives Windows/C/C++ programmers the
> most comfortable transition to Smalltalk -- an application model
> similar to Windows/C/C++ applications.
>

I'm not sure that I'd say the application model is similar to
Windows/C/C++ applications. I did (and still do some) MFC for a long
time, then switched to Dolphin. You definitely have to get used to
it, but it's worth it.

Dolphin wraps the native widgets, so a lot of the messages you can
send to the GUI objects are familiar if you've done much Windows
programming, but the overall structure of the application is different
from what you'd do in C/C++.

All in all, I'd much rather do my Windows programming in Dolphin than
in anything else I've tried.

Randy
--
Randy Coulman
***@gmail.com


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steven J. Owens
2005-03-27 11:29:39 UTC
Permalink
Hi,

Looks like I missed the boat on this thread, but I thought I'd
monday-morning quarterback it (or is that armchair quarterback?).

On Mon, Mar 14, 2005 at 07:48:22PM -0700, Ron Jeffries wrote:
> Here's a general report on status.
>
> Today I learned PHP, learned how to use PHPUnit, had one of the guys
> install subversion and PHP into Eclipse, and figured out roughly how
> to set up the project in PHP, so that there would be more objects
> and more tests.
>
> Then we discussed using Smalltalk. The team members present (we had
> 16" of snow last night and today) would rather go ahead in
> Smalltalk, as would the head dude, Dave West. And of course I would,
> as well.

My main recommendation was going to be that, while I think a J2Ex
(leaving out the EJB part) approach is probably the most "marketable"
(for both resumes and selling the project) it's also the most likely
to bog you down in a swamp of specs and frameworks. Don't get me
wrong, I do think you can build good stuff with java (I'd better think
so, that's what I do :-) but you have to spend a lot of time sorting
the wheat from the chaff just to get started.

On marketability, there's also the question of short/medium/long
term marketability. In the short term there's a lot of java jobs but
there are also a lot of "throw an army of codemonkeys at it" java web
projects, and these jobs are the first ones that get offshored. The
programmers who stay employed are the ones who develop deeper skills
and longer-term, and I'm skeptical that you'd get a chance to teach
them anything worthwhile if you were trying to get them jumpstarted
with java.

> I now think we could do it either of those two ways, and I don't see
> much advantage to moving to Java/JSP. I don't think we'd go faster,
> and the slight resume advantage isn't worth the lower velocity and
> lost momentum. (I think.)

I absolutely agree.

Generally I'm hesitant to recommend esoteric languages in any
context where there's a concern about resume- and project-
marketability. I hear lots of good things about smalltalk, but sadly
it is, in today's market, an esoteric language and it is definitely
another uphill battle you don't necessarily need to fight. However,
since it sounds like it's a politically feasible course, I think
that's an excellent approach to take for this project. Learning to
write clean code is probably the best thing you can teach them (or at
least the best road you can start them down) at this point.

PHP is a bit of a paradox. I've been hearing about PHP's ease of
development for web apps for a long time, and from what I know about
it, I can see why. It sounds overall like PHP is what JSP was
supposed to be (or at least that it achieved a lot of the supposed
goals of JSP). Also, one of the best serious programmers I know
recently learned PHP because he needed to, to support a side contract
that he picked up from a colleague. It's his first real foray into
web application development, and he's favorably impressed with the
ease of development. I'm afraid I may never get him to try java web
app development :-).

The big problem with PHP is, indeed, separation of concerns.
PHP's suitability for web scripting goes hand in hand with fewer
provisions for component development. (I've also, coincidentally, run
into about a half dozen PHP developers looking to move to java, in the
past week.) It's too bad that PHP doesn't have another, more
component-oriented language that it plays well with. I've seen
references to PHP/java integration, but everyone I've talked to about
it has responded with "run, don't walk, away from that." In the
future we may have a better option - there's a JSR to make PHP a
standard part of the J2EE spec.

Seaside and rails are yet another of those technologies I've been
hearing about and meaning to look into, but what little I've heard
(and what Ron said about it in this thread seems to confirm) sounds to
me like one of the classic mistakes I see in folks doing java web
development, which is this desire to abstract away the web. If this
is true, then it would be relevant to mention that I think trying to
abstract away the web a big mistake. Like it or not, the web is
there. The fundamental nature of the browser and the HTTP protocol,
and how they shape the experience, are huge factors in whether a web
application works or not.

In fact, I think that part of why java web applications work as
well as they do is that the basic structure matches this basic nature
fairly well. When people don't sabotage that structure by working
against it, or drown it under layers of frameworks and abstractions,
it works pretty well. It also, if you approach it right, fosters the
right sort of server-side component development.

I had a bunch of thoughts, practical tips about java, j2ee,
comments about the second E (generally, avoid it), frameworks, etc,
but I'll save this for another time, since you ended up not going with
J2EE.

--
Steven J. Owens
***@darksleep.com

"I'm going to make broad, sweeping generalizations and strong,
declarative statements, because otherwise I'll be here all night and
this document will be four times longer and much less fun to read.
Take it all with a grain of salt." - http://darksleep.com/notablog



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-27 11:53:23 UTC
Permalink
On Sunday, March 27, 2005, at 5:29:39 AM, Steven J. Owens wrote:

> Seaside and rails are yet another of those technologies I've been
> hearing about and meaning to look into, but what little I've heard
> (and what Ron said about it in this thread seems to confirm) sounds to
> me like one of the classic mistakes I see in folks doing java web
> development, which is this desire to abstract away the web. If this
> is true, then it would be relevant to mention that I think trying to
> abstract away the web a big mistake. Like it or not, the web is
> there. The fundamental nature of the browser and the HTTP protocol,
> and how they shape the experience, are huge factors in whether a web
> application works or not.

Thanks for your thoughtful remarks, Stephen. I'd like to comment a
bit just on this one.

I think that abstracting away the web is actually a very good idea
and point out that it has been going on for a long time.

Much of what is done in Javascript and other client-side stuff is
exactly there to abstract away the webness of things. This is also
true of high-powered controls such as Microsoft has put into
Internet Explorer. Hate them if you will, but smart controls can
make the user experience much better.

I was taught to pay attention to what the program wants to be. In
general, programs want to be stateful, and to be made up of small
cooperating components. The Web doesn't want programs to be
stateful, and seems also to be a bit resentful of tiny transactions.

I think the Web will turn out, over the longer term, to be mistaken
in these fears of state and posting that it has, and am fascinated
by how well Seaside lets the program concern itself with how the
program really needs to be.

Ron Jeffries
www.XProgramming.com
Those who attain to any excellence commonly spend life in some single
pursuit, for excellence is not often gained upon easier terms.
-- Samuel Johnson




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steven J. Owens
2005-03-29 05:09:55 UTC
Permalink
On Sun, Mar 27, 2005 at 05:53:23AM -0600, Ron Jeffries wrote:
> I think that abstracting away the web is actually a very good idea
> and point out that it has been going on for a long time.

I knew I should have left that out (or buckled down and taken the
time to fully explain it). I have two thoughts here. The first is to
clarify what I mean by "abstract away the web", and the second is to
disagree with your comments anyway :-).

By "abstract away the web", I'm talking about two things, really.

The first is a tendency to want to ignore the gap between the
browser and the server. I've seen tools/frameworks that tried to
treat the web browser as a GUI - and tools that tried to allow the
developer to specify one UI and have it render to both the web and a
normal, fully interactive graphical UI. Taken to one extreme, this
sort of attitude leads to having zillions of HTTP requests to do
simple tasks.

This goes hand in hand with the second tendency, which is to not
pay enough attention to the chunking of functionality into separate
pages, to not think enough about the functional design of each
individual page as a separate entity. This is a topic that I've
been mulling for a while now, trying to figure out how to express it
properly. The best I can do, besides saying REST, is to say that I
tend to think of the application in four pieces:

- each page as a mini-application
- the URLs of the application as a sort of domain language
- each request as a transaction that alters the session state
- some requests as transactions that alter the persistent state

If you squint right, the last two boil down to a rehash of every
DBA's favorite concept, CRUD (create/read/update/delete). I don't
like to think of them as actual CRUD, more as large-grained requests
that tend to result in CRUD. But old or not, it's still a useful
concept that handles a significant chunk of problem space. Not for all
problems, but useful for the ones it does cover.

> Much of what is done in Javascript and other client-side stuff is
> exactly there to abstract away the webness of things. This is also
> true of high-powered controls such as Microsoft has put into
> Internet Explorer. Hate them if you will, but smart controls can
> make the user experience much better.

I would challenge this, to be honest. I think that statistically
they haven't made the user experience better. (Not that I have time to
compile the statistics of bad user interfaces -- does *anybody* have
that much time? :-).

Not that they _cannot_, but that they _do not_. Even in the
are, in rare cases, applied properly, in ways that don't break for
non-javascript/activex users, in ways that don't create a more
confusing and less predictable user experience, in ways that aren't
just-flat-out-bad... the payoff is only in superficially better
usability, at the cost of distracting critical resources and attention
from fundamental usability.

To give an analogy/example, this is no longer the case, but back
in 1998 most serach engine crawlers wouldn't crawl CGI output for fear
of getting caught in an infinite loop or something. So if you had,
for example, a database-driven product catalog, users couldn't use
standard internet search engines to search it, only your specialized
(and almost certainly inferior) tools. A system which delivered
theoretically better usability ends up denying the user access to some
of the most powerful, usable search tools on the web.

Now remember, this is as much an analogy as an example. The
stupid UI tricks and gratuitous javascript don't prevent the site from
being indexed (well, sometimes they do - I've seen sites that have NO
LINKS, just navigation scriptlets or even worse, navigation applets).
But they do have similarly negative side effects, they undermine the
strengths of the web in the name of trying to improve on it.

Rich UI applications like google's gmail and similar applications
are certainly worthwhile, and interesting, and worth pursuing. There
are certainly some common and recurring problems in pure HTML web
interfaces (for example, the sort of needs that people always want to
use multilevel select boxes to meet). There are certainly
sophisticated user stories that absolutely cannot be met with a simple
interface (imagine drawing by submitting a post for each pixel!).
I've seen lots of cool and fun applications - things that couldn't be
done, or couldn't be done nearly as well without client-side
intelligence: gmail, google maps, theyrule.net. The most recent
example I've come across is the baby name wizard*, etc. But not for
the vast majority of what people need.

(* http://babynamewizard.com/namevoyager/lnv0105.html)

--
Steven J. Owens
***@darksleep.com

"I'm going to make broad, sweeping generalizations and strong,
declarative statements, because otherwise I'll be here all night and
this document will be four times longer and much less fun to read.
Take it all with a grain of salt." - http://darksleep.com/notablog



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Jeff Grigg
2005-03-27 15:10:47 UTC
Permalink
--- "Steven J. Owens" <***@d...> wrote:
> Seaside and rails [...] sounds to me like one of the classic
> mistakes I see in folks doing java web development, which is
> this desire to abstract away the web. [...] Like it or not,
> the web is there. The fundamental nature of the browser and
> the HTTP protocol, and how they shape the experience, are
> huge factors in whether a web application works or not.
>
> In fact, I think that part of why java web applications work
> as well as they do is that the basic structure matches this
> basic nature fairly well. When people don't sabotage that
> structure by working against it, or drown it under layers
> of frameworks and abstractions, it works pretty well. It
> also, if you approach it right, fosters the right sort of
> server-side component development.

On the other hand, it strikes me that while APIs such as servlets
match the low-level protocols of the web well, they're often a poor
match for what people really want from web applications. That
people have such a hard time managing session state, for example, is
a sign that something's wrong.

Talk with web developers about how they handle the user pressing the
back button, or doing submit twice, or duplicating explorer
windows. I just attended a three day software development
conference where it seemed that just about every Java framework
speaker presented some hack to punish the users for "abusing the
back button." Every "solution" was to detect the problem and throw
the user to an error page, stopping them in their tracks. Is that
how we want to think about our service to our users?

Seaside presents an alternative: Gracefully and naturally handle
the user's navigation, producing intuitive and desirable results
almost regardless of what creative navigation the user does.
Instead of trying to manage a global pool of session state variables
in your code, seaside compartmentalizes state and associates it with
the pages and actions themselves. This appears to be a more
appropriate model for state management than a simple global "session
state" store.

It's unlikely that seaside would be an acceptable solution in most
corporate environments. But I'm hoping to find ways to bring a few
of its better ideas into a more conventional Java environment. Good
things could happen.





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steven J. Owens
2005-03-29 08:57:43 UTC
Permalink
On Sun, Mar 27, 2005 at 03:10:47PM -0000, Jeff Grigg wrote:
> --- "Steven J. Owens" <***@d...> wrote:
> > Seaside and rails [...] sounds to me like one of the classic
> > mistakes I see in folks doing java web development, which is
> > this desire to abstract away the web. [...] Like it or not,
>
> On the other hand, it strikes me that while APIs such as servlets
> match the low-level protocols of the web well, they're often a poor
> match for what people really want from web applications. That
> people have such a hard time managing session state, for example, is
> a sign that something's wrong.

They do? What seems to be the stumbling block? AFAIK the main
issue is that people tend to overuse session state by caching
everything in sight, which is just another variation on premature
optimization.

> Talk with web developers about how they handle the user pressing the
> back button, or doing submit twice, or duplicating explorer
> windows. I just attended a three day software development
> conference where it seemed that just about every Java framework
> speaker presented some hack to punish the users for "abusing the
> back button."

This is *exactly* what I'm talking about, and why I call it a
"classic mistake." The framework tries to hide the web from the
developer, the developer tries to ignore the web instead of learning
about it. These two topics - the back button and double-submits -
were to be the most common questions that I saw, back when I read the
servlet-interest mailing list regularly. There *are* problems -
especially if you're security-conscious; double-submitting
username/password is a bit nastier :-). But the typical reaction
seems to be akin to the reactions of the countless print designers who
encountered the web and shrieked because they couldn't control the
browser window size, screen resolution, etc. The right reaction is to
design your application to live with typical web behavior.

> Every "solution" was to detect the problem and throw
> the user to an error page, stopping them in their tracks. Is that
> how we want to think about our service to our users?

Absolutely not.

> Seaside presents an alternative: Gracefully and naturally handle
> the user's navigation, producing intuitive and desirable results
> almost regardless of what creative navigation the user does.

I'm definitely going to have to check Seaside out, even if only
to see what good ideas I can steal :-).

> Instead of trying to manage a global pool of session state variables

If you're managing a global pool of session state variables in
your code, you're not using the servlet API (or you're not using it
properly).

> in your code, seaside compartmentalizes state and associates it with
> the pages and actions themselves. This appears to be a more
> appropriate model for state management than a simple global "session
> state" store.

It is - and it's the standard approach in the servlet API. I'm
not trying to make this a tug of war between the servlet API and
Seaside. More between the servlet API and the countless java web app
frameworks that seem to be designed from a starting point of "How can
we hide the servlet API from the developer?"

> It's unlikely that seaside would be an acceptable solution in most
> corporate environments. But I'm hoping to find ways to bring a few
> of its better ideas into a more conventional Java environment. Good
> things could happen.

I'm interested in talking more about this, but probably off-list.

--
Steven J. Owens
***@darksleep.com

"I'm going to make broad, sweeping generalizations and strong,
declarative statements, because otherwise I'll be here all night and
this document will be four times longer and much less fun to read.
Take it all with a grain of salt." - http://darksleep.com/notablog



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
avibryant
2005-03-27 20:03:13 UTC
Permalink
--- In ***@yahoogroups.com, "Steven J. Owens" <***@d...> wrote:

> Seaside and rails are yet another of those technologies I've been
> hearing about and meaning to look into, but what little I've heard
> (and what Ron said about it in this thread seems to confirm) sounds to
> me like one of the classic mistakes I see in folks doing java web
> development, which is this desire to abstract away the web. If this
> is true, then it would be relevant to mention that I think trying to
> abstract away the web a big mistake. Like it or not, the web is
> there. The fundamental nature of the browser and the HTTP protocol,
> and how they shape the experience, are huge factors in whether a web
> application works or not.

I can't speak for Rails, though I don't think it really meets this description: except for the
fact that it's in Ruby, I would classify Rails as being a fairly traditional ("model 2", I guess?)
servlets+templates style framework. As for Seaside, it's certainly trying to abstract the
web, but in the sense of smoothing away the rough edges rather than ignoring its
"fundamental nature". On the one hand, Seaside tries to get rid of some of the uglier parts
of dealing with HTTP and HTML: the constant marshalling to and from strings, the
arbitrary inconsistencies of the various form inputs, the requirement to process input and
produce output an entire page at a time, the inability to have stateful modal interactions
with the user. On the other hand, it bends over backwards so as not to compromise the
things that make the web so useable, like the back button and bookmarking. To put it
another way, Seaside doesn't let you forget for a second that you're writing a web
application, it just tries to let you forget how nasty writing web apps usually is. That's the
goal, at any rate; how well I've succeeded is naturally up for debate.

Cheers,
Avi








To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Steven J. Owens
2005-03-29 05:12:34 UTC
Permalink
On Sun, Mar 27, 2005 at 08:03:13PM -0000, avibryant wrote:
> As for Seaside, it's certainly trying to abstract the web, but in
> the sense of smoothing away the rough edges rather than ignoring its
> "fundamental nature". On the one hand, Seaside tries to get rid of
> some of the uglier parts of dealing with HTTP and HTML: the constant
> marshalling to and from strings, the arbitrary inconsistencies of
> the various form inputs,

This certainly sounds worthwhile.

> the requirement to process input and produce output an entire page
> at a time, the inability to have stateful modal interactions with
> the user.

I'm not certain what you mean by stateful modal interactions.
Is this equivalent to servlet sessions?

> On the other hand, it bends over backwards so as not to compromise
> the things that make the web so useable, like the back button and
> bookmarking. To put it another way, Seaside doesn't let you forget
> for a second that you're writing a web application, it just tries to
> let you forget how nasty writing web apps usually is. That's the
> goal, at any rate; how well I've succeeded is naturally up for
> debate.

Sounds like something I should check out.

--
Steven J. Owens
***@darksleep.com

"I'm going to make broad, sweeping generalizations and strong,
declarative statements, because otherwise I'll be here all night and
this document will be four times longer and much less fun to read.
Take it all with a grain of salt." - http://darksleep.com/notablog



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
avibryant
2005-03-29 11:00:08 UTC
Permalink
(Meta: I'm new to this group, please let me know if this is drifting
too far off topic)

--- In ***@yahoogroups.com, "Steven J. Owens"
<***@d...> wrote:

> > the requirement to process input and produce output an entire page
> > at a time, the inability to have stateful modal interactions with
> > the user.
>
> I'm not certain what you mean by stateful modal interactions.
> Is this equivalent to servlet sessions?

No. I mean inverting the normal flow of control between server and
browser, so that the server can be (seemingly) suspended and
waiting for the user's response. I suspect you'll
find this too much of an abstraction, but maybe you'll find it
interesting anyway. This is related to the thread on task-based UI:
if you're using Seaside to write one, you can
specify the task as a series of "calls" to pages that don't return
until the user does their thing (clicks a link, fills in a form, etc).
One example I sometimes use is travel booking.
I'm a Smalltalker, but I'll try to do this in pseudo-Java:

tripDetails = call(new TripDetailsForm());
availableFlights = findFlightsFor(tripDetails);
if(availaibleFlights.length() == 0)
call(new NoResultsPage());
else
{
chosenFlight = call(new SelectFlightPage(availableFlights));
passengerDetails = new ArrayList();
while(passengerDetails.length() < tripDetails.passengerCount)
passengerDetails.add(call(new CollectPassengerDetails());
...
}

This being the web, however, you have to be aware of some
constraints. Because of the back button, any of those invocations
of call() could actually *return multiple times*, with
different values: the user might back up, fill in different info for
a passenger, and submit again. By cloning their browser window, they
might be exploring multiple alternate paths at once, looking at the
availableFlights for many different tripDetails, but all in the same
session. They might go back and try to change the number of
passengers after their credit card has already been charged. To not handle
those cases (and many such sites with more traditional implementations do
not) would indeed be to ignore the fundamental nature of the web, which is
why Seaside works very hard to handle them correctly rather than
blaming the user for causing them. On the other hand, I would argue
that to not allow the developer to express the task in that way would be to
ignore the fundamental nature of the application you're trying to write.

Cheers,
Avi





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
J. B. Rainsberger
2005-03-14 06:38:56 UTC
Permalink
Ron Jeffries wrote:
> Scenario,
>
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
>
> Probably needs to be in an SQL database.
>
> Web-based access.
>
> Programmers are students, equally inexperienced at everything: some
> PHP, some Javascript, some with some Java. Think pretty
> inexperienced.
>
> Project done in Scrum / XP style.
>
> Purpose includes programmers employable after doing some projects
> like this.
>
> Question: What language / system / approach is a good one to take?
> What about code management? Java? Java/J2EE? PHP? .NET?
>
> (I don't need help choosing a bug tracker. Thanks, though. ;-> )
>
> My thoughts:
>
> I don't really know any of Java/J2EE or PHP or even .NET well
> enough to feel really great about them for this.
>
> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.
>
> Team needs to learn to build a decent model, do lots of TDD and
> automated acceptance testing, as they'll surely be evolving and
> making mistakes. From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test. But I'm ignorant.
>
> Your thoughts and suggestions, please?

Java/Eclipse, because of marketability (key requirement) and excellent,
free toolset (key requirement). For source code management, Subversion.

If you'd like me to elaborate, just ask. :)
--
J. B. (Joe) Rainsberger
Diaspar Software Services
http://www.diasparsoftware.com
Author, JUnit Recipes: Practical Methods for Programmer Testing


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:32:43 UTC
Permalink
On Sunday, March 13, 2005, at 11:38:56 PM, J. B. Rainsberger wrote:

> Java/Eclipse, because of marketability (key requirement) and excellent,
> free toolset (key requirement). For source code management, Subversion.

> If you'd like me to elaborate, just ask. :)

Count on it, Joe. J2EE?

Ron Jeffries
www.XProgramming.com
Comments lie. Code doesn't.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
J. B. Rainsberger
2005-03-14 14:37:59 UTC
Permalink
Ron Jeffries wrote:
> On Sunday, March 13, 2005, at 11:38:56 PM, J. B. Rainsberger wrote:
>
>
>>Java/Eclipse, because of marketability (key requirement) and excellent,
>>free toolset (key requirement). For source code management, Subversion.
>
>>If you'd like me to elaborate, just ask. :)
>
> Count on it, Joe. J2EE?

Sure, but just the web part. I would use Spring as the MVC framework, as
it helps me create loosely-coupled designs in spite of J2EE and the
dreaded Service Locator antipattern.
--
J. B. (Joe) Rainsberger
Diaspar Software Services
http://www.diasparsoftware.com
Author, JUnit Recipes: Practical Methods for Programmer Testing


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Shane Mingins
2005-03-14 06:40:49 UTC
Permalink
--- Hugo Garcia <***@gmail.com> wrote:
>
> Oh yeah... IDE... for got about that.. I would
> suggest Eclipse (55%
> market share) and second choice would be to get the
> early release
> ("free") version of IntelliJ.
>
>

Market share does not make an IDE good ;-) Having
used both IDE's I would choose IntelliJ everytime.

Also, Ron if u decided to use Java contact the people
at Jetbrains (who make IntelliJ) as they will probably
do a very nice deal on some licences for students.
When I was evaluating it they kindly extended my temp
licence for 6 months.

Cheers
Shane



__________________________________
Do you Yahoo!?
Yahoo! Mail - now with 250MB free storage. Learn more.
http://info.mail.yahoo.com/mail_250


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:36:37 UTC
Permalink
On Sunday, March 13, 2005, at 11:40:49 PM, Shane Mingins wrote:

> Market share does not make an IDE good ;-) Having
> used both IDE's I would choose IntelliJ everytime.

I have low experience on both but have seen Bob Martin using
IntelliJ and it looked awesome. Both I'J and Eclipse seem strong.

> Also, Ron if u decided to use Java contact the people
> at Jetbrains (who make IntelliJ) as they will probably
> do a very nice deal on some licences for students.
> When I was evaluating it they kindly extended my temp
> licence for 6 months.

Interesting possibility. They have $0. Might not be fair to ask.

Thanks,

Ron Jeffries
www.XProgramming.com
I could be wrong. I frequently am.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Hugo Garcia
2005-03-14 11:31:00 UTC
Permalink
On Sun, 13 Mar 2005 22:40:49 -0800 (PST), Shane Mingins
<***@yahoo.com> wrote:
>
>
> --- Hugo Garcia <***@gmail.com> wrote:
> >
> > Oh yeah... IDE... for got about that.. I would
> > suggest Eclipse (55%
> > market share) and second choice would be to get the
> > early release
> > ("free") version of IntelliJ.
> >
> >
>
> Market share does not make an IDE good ;-) Having
> used both IDE's I would choose IntelliJ everytime.

True, it is a matter of choice and students should actually have
exposure to both and decide on their own. It is only in very specific
situations that you have to use Eclipse.

>
> Also, Ron if u decided to use Java contact the people
> at Jetbrains (who make IntelliJ) as they will probably
> do a very nice deal on some licences for students.
> When I was evaluating it they kindly extended my temp
> licence for 6 months.

Yes, I will vouch for the people at Jetbrains but you hit at one of
the main point for students which is budget. Would be great if
Jetbrains offered a student discount. It would certianly be an
investment in their future. This is also true of IBM and WebSphere
(maybe they do???)

In the end both will enhance students skills and marketability.
>
> Cheers
> Shane
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - now with 250MB free storage. Learn more.
> http://info.mail.yahoo.com/mail_250
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Matthew Snyder
2005-03-14 22:12:51 UTC
Permalink
"Also, Ron if u decided to use Java contact the people
at Jetbrains (who make IntelliJ) as they will probably
do a very nice deal on some licences for students.
When I was evaluating it they kindly extended my temp
licence for 6 months. "


[Matthew Snyder]
I've had a similar experience with the people at JetBrains. Great people,
great product (ReSharper). ReSharper is essential if you go the C# route.

And from what I've seen from Eclipse its IDE is superior to Visual Studio
for TDD and refactoring.

Matt

--

No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.7.1 - Release Date: 3/9/2005




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Dale Emery
2005-03-14 07:10:38 UTC
Permalink
Hi Ron,

> Purpose includes programmers employable after doing some
> projects like this.

Okay. Are there other important purposes?

> I don't really know any of Java/J2EE or PHP or even .NET well
> enough to feel really great about them for this.

Do you mean that it's important for you personally to know the
language and system? What do you think would happen if you went
with a language and system that you knew less well? Or knew not
at all?

> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.

It sounds as if employability is a really big deal here. Does it
trump every other consideration, or are there other things that
are as important (or nearly so, or moreso)?

If you could do it any way you wanted personally... what do you
like about Seaside / Smalltalk?

> Team needs to learn to build a decent model, do lots of TDD and
> automated acceptance testing, as they'll surely be evolving and
> making mistakes. From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test. But I'm ignorant.

Do you think "too much logic" and "impossible to test" are
strongly influenced by their choice of language or system?
Mildly related? Not related?

What are some of the key things you like or dislike about all of
the languages and systems people are recommending?

(This is more questions than I like to ask before hearing any
answers, but the delays of email make one-question-at-a-time
awkward.)

Dale

--
Dale Emery, Consultant
Inspiring Leadership for Software People
Web: http://www.dhemery.com
Weblog: http://www.dhemery.com/cwd

... the world will not be saved by people with programs. If the
world is saved, it will be saved because people living in it have
a new vision. --Daniel Quinn


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:43:04 UTC
Permalink
Everyone:

Thank you, with pleasure and humility, for the great response this
question is receiving. I'm honored that so many folks have replied,
and at the same time I am sure that anyone who came here would get
this same treatment.

Well done, all! Thank you!

Ron Jeffries
www.XProgramming.com
And thirdly, the Code is more what you'd call guidelines than actual rules.
-- Barbossa




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 11:50:49 UTC
Permalink
It's great to watch a master in action, Dale!

On Monday, March 14, 2005, at 12:10:38 AM, Dale Emery wrote:

>> Purpose includes programmers employable after doing some
>> projects like this.

> Okay. Are there other important purposes?

They are working a real project. Need to work in XP / Agile style,
shipping features right along. That makes me think they need an
approach that will work well technically in an incremental fashion,
but that needs as few new tech components as possible, because they
have essentially no experience in anything, and other than the Web,
no mentors.

>> I don't really know any of Java/J2EE or PHP or even .NET well
>> enough to feel really great about them for this.

> Do you mean that it's important for you personally to know the
> language and system? What do you think would happen if you went
> with a language and system that you knew less well? Or knew not
> at all?

The team will be working with very little detailed technical
mentoring (though they might get some help from one of their
customers). So I'm concerned about language and system on these
levels:

I don't know the alternatives well enough to make a very good
recommendation.

There needs to be a balance between "right" technology and "light"
technology, as it is very much a learning situation.

It's a real project. I would want the team to succeed in any case,
but it's extra important because it's not "just" a grade and a
learning situation.

>> If I could do it any way I wanted personally, I'd probably do it
>> in Seaside / Smalltalk. But that won't get a student a job, I'd
>> bet.

> It sounds as if employability is a really big deal here. Does it
> trump every other consideration, or are there other things that
> are as important (or nearly so, or moreso)?

The projects need not to fail, for the good of the customers and the
good of the program.

The team needs to learn to work as a team, to depend on each other,
to come together.

The team needs to learn good ways, XP/Agile ways, of doing things.

Perhaps more considerations that I'll come up with as suggestions
come back.

> If you could do it any way you wanted personally... what do you
> like about Seaside / Smalltalk?

Answered elsewhere. I think I could figure out how to TDD
essentially an entire Web app, which I don't see how to do in JSP or
(especially) PHP.

And it's cool, and I know Smalltalk and am much more productive in
it than any other language that I know (and certainly any that I
know only a little).

>> Team needs to learn to build a decent model, do lots of TDD and
>> automated acceptance testing, as they'll surely be evolving and
>> making mistakes. From what I've seen them doing with PHP /
>> Javascript, they have way too much logic in the pages, and it
>> looks almost impossible to test. But I'm ignorant.

> Do you think "too much logic" and "impossible to test" are
> strongly influenced by their choice of language or system?
> Mildly related? Not related?

Fairly strongly. I think PHP invites procedural web pages, as does
Javascript. (I gather that it is possible to treat PHP like a real
programming language, but it seems it's really intended to be
embedded.)

> What are some of the key things you like or dislike about all of
> the languages and systems people are recommending?

It's not so much dislike as that, since I don't work at the detailed
level in any of them, and neither has anyone on the team, really,
I'm looking for understanding / advice / immersion in people's ideas
to help us make a decision on how to go technically.

> (This is more questions than I like to ask before hearing any
> answers, but the delays of email make one-question-at-a-time
> awkward.)

Great questions!

Ron Jeffries
www.XProgramming.com
It's easier to act your way into a new way of thinking
than to think your way into a new way of acting. --Millard Fuller




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
William Pietri
2005-03-14 21:54:33 UTC
Permalink
On Mon, 2005-03-14 at 04:50 -0700, Ron Jeffries wrote:
> I think I could figure out how to TDD
> essentially an entire Web app, which I don't see how to do in JSP or
> (especially) PHP.

I've only TDDed JSPs with HttpUnit, which is an end-to-end framework and
therefore kinda pokey. But you apparently can use the related project
ServletUnit, the in-JVM version of HttpUnit, for JSPs as well as regular
servlets:

http://httpunit.sourceforge.net/doc/faq.html#JSP

This likely works because JSP pages are fed to a preprocessor which
turns them into Java code that is then compiled into a regular Java
Servlet.

Although I've never tried it, I understand that Cactus can be used
similarly:

http://jakarta.apache.org/cactus/writing/howto_jsp.html



Also, Ron, if you suggest J2EE to them, encourage them to stay well away
from EJBs. Whether they should be used by anybody at all is a matter of
much debate, but I don't think anybody would recommend them for novices.

William

--
William Pietri <***@scissor.com>



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Byeong-Won Mun
2005-03-14 07:27:28 UTC
Permalink
I think Java is the best choice for this situation.
Using Eclipse with Subversion(Source Control) will be good.

> Team needs to learn to build a decent model, do lots of TDD and
> automated acceptance testing, as they'll surely be evolving and
> making mistakes. From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test. But I'm ignorant.

PHP also have unit test framework. It called phpunit.
It is part of pear library. You can find it from pear library.
http://pear.php.net

Mun, Byeong-won
http://tasy.iescape.org



____________
Unicure? ???? ??
??: AVK 15.0.3351, 2005.02.28
???? ??: www.geot.com




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Michael Dubakov
2005-03-14 09:27:20 UTC
Permalink
I did agile development on Perl, PHP, Java and .NET.

PHP is a good choise if you know the tools:
- SimpleTest for TDD
- Smarty as templates
- Propel as O/R mapper (did not try in production, but sample project
was good)

It is possible to create good application on PHP or Perl using TDD and
so on. Refactoring is harder, since there are no automate tools.

However, I personally prefer .NET :)

Michael
http://www.targetprocess.com
XP Planning & Bug Tracking Tool

<***@X...> wrote:
> Scenario,
>
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
>
> Probably needs to be in an SQL database.
>
> Web-based access.
>
> Programmers are students, equally inexperienced at everything: some
> PHP, some Javascript, some with some Java. Think pretty
> inexperienced.
>
> Project done in Scrum / XP style.
>
> Purpose includes programmers employable after doing some projects
> like this.
>
> Question: What language / system / approach is a good one to take?
> What about code management? Java? Java/J2EE? PHP? .NET?
>
> (I don't need help choosing a bug tracker. Thanks, though. ;-> )
>
> My thoughts:
>
> I don't really know any of Java/J2EE or PHP or even .NET well
> enough to feel really great about them for this.
>
> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.
>
> Team needs to learn to build a decent model, do lots of TDD and
> automated acceptance testing, as they'll surely be evolving and
> making mistakes. From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test. But I'm ignorant.
>
> Your thoughts and suggestions, please?
>
> Ron Jeffries
> www.XProgramming.com
> If it is more than you need, it is waste. -- Andy Seidl





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Alain Ravet
2005-03-14 12:30:58 UTC
Permalink
Ron,

Whatever technology you'll chose, I'd suggest you burn a CD with a
complete helloWorld project with its tests, deployment script and
tools, to put them on tracks in 10 minutes.


If they're working on a web app, I would use
- java
- httpUnit
- IDEA ( use Eclipse, if they have $0 to spend).
and
- Jetty (a small embeddable web server.)
(Embedding the webserver lets you launch the web-app as a standard app,
without having to deploy to a remote server, that you'd have to
reset/restart)

For persistence, I'd be tempted to start with Electric XML - free, in
WebMethod's GLUE 5-, that lets you persist with put(..) and retrieve
with get(..).
(Look for "XML.Persistence" @
http://www1.webmethods.com/docs/glue/guide/index.html)


I would also prepare an Ant target to [compile + deploy + launch the
server code], and another target to [launch the tests] on the running
webapp.

That's just one way.

Alain


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 13:46:49 UTC
Permalink
On Monday, March 14, 2005, at 5:30:58 AM, Alain Ravet wrote:

> Whatever technology you'll chose, I'd suggest you burn a CD with a
> complete helloWorld project with its tests, deployment script and
> tools, to put them on tracks in 10 minutes.

Good idea. If I were here for more than a few days (and if I had the
ability to do that in many languages) I would do that. As it stands,
I'm thinking I should ask /them/ to produce such a thing, perhaps in
several candidate approaches. Hmm ...

> If they're working on a web app, I would use
> - java
> - httpUnit
> - IDEA ( use Eclipse, if they have $0 to spend).

At this moment, they have httpUnit and don't as yet know how to use
it. Not clear that anyone in the room does, in fact.

> and
> - Jetty (a small embeddable web server.)
> (Embedding the webserver lets you launch the web-app as a standard app,
> without having to deploy to a remote server, that you'd have to
> reset/restart)

Yes ... I especially like the idea of a thing like Jetty. We were
doing some quick turnaround stuff the other day, but I'm not sure
what was serving it. Will inquire.

> For persistence, I'd be tempted to start with Electric XML - free, in
> WebMethod's GLUE 5-, that lets you persist with put(..) and retrieve
> with get(..).
> (Look for "XML.Persistence" @
> http://www1.webmethods.com/docs/glue/guide/index.html)

They're kind of comfortable with SQL and have some SQL system
installed, not sure which one. I would personally go with something
a bit lighter weight, but they do in fact have some fairly large
datasets to cope with, so SQL might not be a bad way.

Glue looks interesting, might be worth some exploration. I fear they
need to get on a delivery path soon, though.

> I would also prepare an Ant target to [compile + deploy + launch the
> server code], and another target to [launch the tests] on the running
> webapp.

> That's just one way.

And not at all a bad one. Thanks!

Ron Jeffries
www.XProgramming.com
Show me the features!




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Dossy Shiobara
2005-03-14 13:52:15 UTC
Permalink
On 2005.03.13, Ron Jeffries <***@XProgramming.com> wrote:
>
>
> Programmers are students, equally inexperienced at everything: some
> PHP, some Javascript, some with some Java. Think pretty
> inexperienced.
...
> Purpose includes programmers employable after doing some projects
> like this.
>
> Question: What language / system / approach is a good one to take?
> What about code management? Java? Java/J2EE? PHP? .NET?
...
> Your thoughts and suggestions, please?


As much as I want to run around screaming "get them to learn Tcl and
have them check out AOLserver," I'll resist. :-)


The short answer is for them to do either PHP or ASP.NET if they're
looking to primarily do web/db development today. Learning Java may be
useful if they also need to build non-web applications or back-end
processing thingers.


But, regarding Java/J2EE -- show them the various "Hello World" J2EE
examples and ask them, "Should something as simple as "Hello World"
require this much work? Imagine how much work real functionality will
take in this environment. Do you want to get yourselves into this
mess?"

Hello World - The simplest portlet for WebSphere Portal Version 4.1
http://www-106.ibm.com/developerworks/websphere/library/techarticles/0206_lynn/lynn.html

Developing and testing a complete J2EE "Hello World" app with WebSphere Studio V5
http://www.devx.com/ibm/Article/16365


Doing ordinary Java with JSP isn't a bad way to go. But, "everything
J2EE" is just foolish -- it's the classic hammer-nail problem of
Software Overengineers.


And, if they are interested in AOLserver, I'll answer whatever questions
they might have about it, or they can start looking here:

http://aolserver.com/


(OK, I couldn't resist any longer.)

-- Dossy

--
Dossy Shiobara mail: ***@panoptic.com
Panoptic Computer Network web: http://www.panoptic.com/
"He realized the fastest way to change is to laugh at your own
folly -- then you can let go and quickly move on." (p. 70)


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-14 14:03:32 UTC
Permalink
On Monday, March 14, 2005, at 6:52:15 AM, Dossy Shiobara wrote:

> As much as I want to run around screaming "get them to learn Tcl and
> have them check out AOLserver," I'll resist. :-)

Thanks ... for now. :)

> The short answer is for them to do either PHP or ASP.NET if they're
> looking to primarily do web/db development today. Learning Java may be
> useful if they also need to build non-web applications or back-end
> processing thingers.

Yes. If they knew how to build /clean/ PHP I'd favor this approach.
I'm not sure about .NET, it seems hard to get started and some
people think ADO.NET is weak. I haven't gone there, don't know.

> But, regarding Java/J2EE -- show them the various "Hello World" J2EE
> examples and ask them, "Should something as simple as "Hello World"
> require this much work? Imagine how much work real functionality will
> take in this environment. Do you want to get yourselves into this
> mess?"

> Hello World - The simplest portlet for WebSphere Portal Version 4.1
>
> http://www-106.ibm.com/developerworks/websphere/library/techarticles/0206_lynn/lynn.html

> Developing and testing a complete J2EE "Hello World" app with WebSphere Studio V5
> http://www.devx.com/ibm/Article/16365

I hear that, for sure.

> Doing ordinary Java with JSP isn't a bad way to go. But, "everything
> J2EE" is just foolish -- it's the classic hammer-nail problem of
> Software Overengineers.

I hear the truth of it. My own experience is weak enough there that
I can't offer them much guidance in the next three days.

> And, if they are interested in AOLserver, I'll answer whatever questions
> they might have about it, or they can start looking here:
> http://aolserver.com/
> (OK, I couldn't resist any longer.)

Forgiven, in light of your youthful inexperience, long and faithful
service, and recent contribution. :)

Ron Jeffries
www.XProgramming.com
Talent determines how fast you get good, not how good you get. -- Richard Gabriel




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Dossy Shiobara
2005-03-14 14:59:45 UTC
Permalink
On 2005.03.14, Ron Jeffries <***@XProgramming.com> wrote:
> Yes. If they knew how to build /clean/ PHP I'd favor this approach.

Learning how to write clean code is a skill learned independent of the
language. It's very possible to write clean and readable and testable
code in Perl and PHP. Just because the majority of the code in Perl and
PHP available for download on the 'net is messy and untested doesn't
mean that the language forced it. Don't confuse correlation with
causation.

> I'm not sure about .NET, it seems hard to get started and some
> people think ADO.NET is weak. I haven't gone there, don't know.

If Java/JSP is an option, then ASP.NET should equally be an option.
Same principles, different underlying language.

I can't speak to any specific weaknesses of ADO.NET.

-- Dossy

--
Dossy Shiobara mail: ***@panoptic.com
Panoptic Computer Network web: http://www.panoptic.com/
"He realized the fastest way to change is to laugh at your own
folly -- then you can let go and quickly move on." (p. 70)


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-15 03:10:43 UTC
Permalink
On Monday, March 14, 2005, at 7:59:45 AM, Dossy Shiobara wrote:

> Learning how to write clean code is a skill learned independent of the
> language. It's very possible to write clean and readable and testable
> code in Perl and PHP. Just because the majority of the code in Perl and
> PHP available for download on the 'net is messy and untested doesn't
> mean that the language forced it. Don't confuse correlation with
> causation.

OK ... but we can't assume they're independent, either.

$this->foobar($this->mumble, $this->argle)

isn't exactly the pinnacle of clarity. But could be worse!

Ron Jeffries
www.XProgramming.com
Improvement stops when we start believing that
ideas about how to improve are insulting.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Dossy Shiobara
2005-03-15 03:38:09 UTC
Permalink
On 2005.03.14, Ron Jeffries <***@XProgramming.com> wrote:
>
> On Monday, March 14, 2005, at 7:59:45 AM, Dossy Shiobara wrote:
>
> > Learning how to write clean code is a skill learned independent of the
> > language. It's very possible to write clean and readable and testable
> > code in Perl and PHP. Just because the majority of the code in Perl and
> > PHP available for download on the 'net is messy and untested doesn't
> > mean that the language forced it. Don't confuse correlation with
> > causation.
>
> OK ... but we can't assume they're independent, either.
>
> $this->foobar($this->mumble, $this->argle)
>
> isn't exactly the pinnacle of clarity. But could be worse!

Right, it could be:

obj.foobar(new com.someone.megaHierarchy.Mumble(), com.someoneElse.Argle.widgetFactory());

Until you get used to it, Smalltalk syntax is very Yoda-like. Clarity
comes from familiarity.

Even poorly written code, once I've become intimately familiar with it,
posesses a certain amount of clarity for me. The trick is to write, and
work with, cleaner code from the start, so the time it takes to develop
that familiarity is shorter.

This is why I advocate Tcl -- the syntax is expressed by 11 easy rules
which can be explained and taught to even novice programmers in one day.

-- Dossy

--
Dossy Shiobara mail: ***@panoptic.com
Panoptic Computer Network web: http://www.panoptic.com/
"He realized the fastest way to change is to laugh at your own
folly -- then you can let go and quickly move on." (p. 70)


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
PA
2005-03-14 14:05:44 UTC
Permalink
On Mar 14, 2005, at 05:51, Ron Jeffries wrote:

> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.

Well, Squeak is a very fine learning environment, no doubt. One way or
another, perhaps using a simple scripting language as well as a
"traditional" language would be beneficial overall.

My LotY [1] of choice is Lua:

http://www.lua.org/
http://www.lua.org/about.html

For your entertainment:

"Lua — Story of O", a post-structuralist, object oriented system
http://alt.textdrive.com/lua/19/lua-story-of-o

Cheers

--
PA, Onnay Equitursay
http://alt.textdrive.com/

[1] http://www.pragmaticprogrammer.com/loty/





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Dean Wampler
2005-03-15 01:54:35 UTC
Permalink
FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
on direct personal experience. If you're going the Java route, consider
the Spring framework, which conceptually represents the future of
java-based enterprise architectures. The creator of Spring, Rod Johnson,
has written a good book on the subject, "J2EE Development without EJB"
(ISBN 0-7645-5831-5)

dean

Ron Jeffries wrote:
> Scenario,
>
> Reasonable simple app, with a number of things like collections of
> products, collections of vendors, collections of customers.
>
> Probably needs to be in an SQL database.
>
> Web-based access.
>
> Programmers are students, equally inexperienced at everything: some
> PHP, some Javascript, some with some Java. Think pretty
> inexperienced.
>
> Project done in Scrum / XP style.
>
> Purpose includes programmers employable after doing some projects
> like this.
>
> Question: What language / system / approach is a good one to take?
> What about code management? Java? Java/J2EE? PHP? .NET?
>
> (I don't need help choosing a bug tracker. Thanks, though. ;-> )
>
> My thoughts:
>
> I don't really know any of Java/J2EE or PHP or even .NET well
> enough to feel really great about them for this.
>
> If I could do it any way I wanted personally, I'd probably do it
> in Seaside / Smalltalk. But that won't get a student a job, I'd
> bet.
>
> Team needs to learn to build a decent model, do lots of TDD and
> automated acceptance testing, as they'll surely be evolving and
> making mistakes. From what I've seen them doing with PHP /
> Javascript, they have way too much logic in the pages, and it
> looks almost impossible to test. But I'm ignorant.
>
> Your thoughts and suggestions, please?
>
> Ron Jeffries
> www.XProgramming.com
> If it is more than you need, it is waste. -- Andy Seidl
>
>
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>
>

--
Dean Wampler, Ph.D.
dean at aspectprogramming.com
http://www.aspectprogramming.com
http://www.contract4j.org
I want my tombstone to say:
Unknown Application Error in Dean Wampler.exe.
Application Terminated.





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ron Jeffries
2005-03-15 03:08:29 UTC
Permalink
On Monday, March 14, 2005, at 6:54:35 PM, Dean Wampler wrote:

> FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
> on direct personal experience. If you're going the Java route, consider
> the Spring framework, which conceptually represents the future of
> java-based enterprise architectures. The creator of Spring, Rod Johnson,
> has written a good book on the subject, "J2EE Development without EJB"
> (ISBN 0-7645-5831-5)

Looks like we might go another way, but if I am not feeling enough
pain for other reasons, that looks like something I should get into
learning ...

Thanks,

Ron Jeffries
www.XProgramming.com
Agility might be said to be about encountering
all the problems so early and so often that the
effort to fix them is less than the pain of enduring them.




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ramon Leon
2005-03-15 17:17:51 UTC
Permalink
> Surely will. There's already one article up on the site by Chet, and
> I think it makes an interesting topic. It's too bad not many folks
> will ever get to use it -- it appears to be awesome.
>
> I suppose if we do that, we have to do Ruby on Rails too ...
>
> Ron Jeffries
> www.XProgramming.com
> Speculation or experimentation - which is more likely to give the
correct
> answer?

Glad to see the article on Smalltalk and Seaside, keep them coming.
People need to see this stuff more so Smalltalk can come back into the
main stream, it's time.


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
PA
2005-03-15 23:19:44 UTC
Permalink
On Mar 15, 2005, at 18:17, Ramon Leon wrote:

> Glad to see the article on Smalltalk and Seaside, keep them coming.
> People need to see this stuff more so Smalltalk can come back into the
> main stream, it's time.

... and terrorize the Land of the Statically Typed?

"Why Smalltalk never caught on"
http://hoho.dyndns.org/~holger/smalltalk.html

Cheers

--
PA, Onnay Equitursay
http://alt.textdrive.com/



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Paul Jenkins
2005-03-16 00:21:14 UTC
Permalink
"They are mostly old (over 30, in fact)".

Larry Niven once wrote, of one of his characters, something like 'you could
tell he was old by his gracefulness; the least amount of movement and energy
to get the job done'.

Maybe there's a reason why Smalltalkers are 30+

;-)


--p

> -----Original Message-----
> From: PA [mailto:***@gmail.com]
> Sent: 15 March 2005 23:20
> To: ***@yahoogroups.com
> Subject: Re: [XP] advice, please: PHP, Java, ..., ?
>
>
>
> On Mar 15, 2005, at 18:17, Ramon Leon wrote:
>
> > Glad to see the article on Smalltalk and Seaside, keep them coming.
> > People need to see this stuff more so Smalltalk can come back into the
> > main stream, it's time.
>
> ... and terrorize the Land of the Statically Typed?
>
> "Why Smalltalk never caught on"
> http://hoho.dyndns.org/~holger/smalltalk.html
>
> Cheers
>
> --
> PA, Onnay Equitursay
> http://alt.textdrive.com/
>
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-
> ***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>
>



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
B***@chase.com
2005-03-15 20:06:01 UTC
Permalink
Can you elaborate on your issues with EJBs?

BJ



Dean Wampler
<***@aspectprogr To: ***@yahoogroups.com
amming.com> cc:
Subject: Re: [XP] advice, please: PHP, Java, ..., ?
03/14/2005 08:54
PM
Please respond to
extremeprogrammin
g








FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
on direct personal experience. If you're going the Java route, consider
the Spring framework, which conceptually represents the future of
java-based enterprise architectures. The creator of Spring, Rod Johnson,
has written a good book on the subject, "J2EE Development without EJB"
(ISBN 0-7645-5831-5)

dean



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Rex Madden
2005-03-15 23:07:44 UTC
Permalink
I'm sure everyone can jump in with EJB issues, but I think the biggest
problem from an XP point of view is that they're very hard to test.
I'd say that just about any TDD'er is going to prefer POJO's (Plain
Old Java Objects) over EJB's.

JUnit Recipes has a great chapter on the pitfalls and workarounds for
testing EJB's.

On Tue, 15 Mar 2005 15:06:01 -0500, ***@chase.com
<***@chase.com> wrote:
>
> Can you elaborate on your issues with EJBs?
>
> BJ
>
> Dean Wampler
> <***@aspectprogr To: ***@yahoogroups.com
> amming.com> cc:
> Subject: Re: [XP] advice, please: PHP, Java, ..., ?
> 03/14/2005 08:54
> PM
> Please respond to
> extremeprogrammin
> g
>
>
> FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
> on direct personal experience. If you're going the Java route, consider
> the Spring framework, which conceptually represents the future of
> java-based enterprise architectures. The creator of Spring, Rod Johnson,
> has written a good book on the subject, "J2EE Development without EJB"
> (ISBN 0-7645-5831-5)
>
> dean
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Sarath Kummamuru
2005-03-18 11:44:29 UTC
Permalink
I agree Rex and more over when we have a wonderful framework for
persistence in Hibernate, atleast where there is no strong requirement
to build apps with EJB i would rather go POJO and Hibernate way.

On all our apps, we have a POJO layer, with a validation system
associated with it. A pluggable storage handler layer which previously
used plain JDBC sql, now contains hibernate and if EJB Spec really
comes out well can become a EJB Layer.

Sarath.



On Tue, 15 Mar 2005 18:07:44 -0500, Rex Madden <***@gmail.com> wrote:
>
> I'm sure everyone can jump in with EJB issues, but I think the biggest
> problem from an XP point of view is that they're very hard to test.
> I'd say that just about any TDD'er is going to prefer POJO's (Plain
> Old Java Objects) over EJB's.
>
> JUnit Recipes has a great chapter on the pitfalls and workarounds for
> testing EJB's.
>
> On Tue, 15 Mar 2005 15:06:01 -0500, ***@chase.com
> <***@chase.com> wrote:
> >
> > Can you elaborate on your issues with EJBs?
> >
> > BJ
> >
> > Dean Wampler
> > <***@aspectprogr To: ***@yahoogroups.com
> > amming.com> cc:
> > Subject: Re: [XP] advice, please: PHP, Java, ..., ?
> > 03/14/2005 08:54
> > PM
> > Please respond to
> > extremeprogrammin
> > g
> >
> >
> > FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
> > on direct personal experience. If you're going the Java route, consider
> > the Spring framework, which conceptually represents the future of
> > java-based enterprise architectures. The creator of Spring, Rod Johnson,
> > has written a good book on the subject, "J2EE Development without EJB"
> > (ISBN 0-7645-5831-5)
> >
> > dean
> >
> >
> > To Post a message, send it to: ***@eGroups.com
> >
> > To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
> >
> > ad-free courtesy of objectmentor.com
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Rex Madden
2005-03-18 13:18:38 UTC
Permalink
I should add the EJB 3.0 looks promising and sounds like it will play
nice with Hibernate 3.


On Fri, 18 Mar 2005 17:14:29 +0530, Sarath Kummamuru <***@gmail.com> wrote:
>
> I agree Rex and more over when we have a wonderful framework for
> persistence in Hibernate, atleast where there is no strong requirement
> to build apps with EJB i would rather go POJO and Hibernate way.
>
> On all our apps, we have a POJO layer, with a validation system
> associated with it. A pluggable storage handler layer which previously
> used plain JDBC sql, now contains hibernate and if EJB Spec really
> comes out well can become a EJB Layer.
>
> Sarath.
>
>
> On Tue, 15 Mar 2005 18:07:44 -0500, Rex Madden <***@gmail.com> wrote:
> >
> > I'm sure everyone can jump in with EJB issues, but I think the biggest
> > problem from an XP point of view is that they're very hard to test.
> > I'd say that just about any TDD'er is going to prefer POJO's (Plain
> > Old Java Objects) over EJB's.
> >
> > JUnit Recipes has a great chapter on the pitfalls and workarounds for
> > testing EJB's.
> >
> > On Tue, 15 Mar 2005 15:06:01 -0500, ***@chase.com
> > <***@chase.com> wrote:
> > >
> > > Can you elaborate on your issues with EJBs?
> > >
> > > BJ
> > >
> > > Dean Wampler
> > > <***@aspectprogr To: ***@yahoogroups.com
> > > amming.com> cc:
> > > Subject: Re: [XP] advice, please: PHP, Java, ..., ?
> > > 03/14/2005 08:54
> > > PM
> > > Please respond to
> > > extremeprogrammin
> > > g
> > >
> > >
> > > FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
> > > on direct personal experience. If you're going the Java route, consider
> > > the Spring framework, which conceptually represents the future of
> > > java-based enterprise architectures. The creator of Spring, Rod Johnson,
> > > has written a good book on the subject, "J2EE Development without EJB"
> > > (ISBN 0-7645-5831-5)
> > >
> > > dean
> > >
> > >
> > > To Post a message, send it to: ***@eGroups.com
> > >
> > > To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
> > >
> > > ad-free courtesy of objectmentor.com
> > > Yahoo! Groups Links
> > >
> > >
> > >
> > >
> > >
> >
> > To Post a message, send it to: ***@eGroups.com
> >
> > To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
> >
> > ad-free courtesy of objectmentor.com
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Dean Wampler
2005-03-20 16:49:17 UTC
Permalink
Sorry I didn't reply to Bob's question sooner about EJB issues, but I
was occupied with the AOSD 05 conference.

In addition to the points mentioned by others, the current EJB 2.x model
requires invasive changes to business logic for lifetime and dependency
management. There are design tricks you can use to wrap POJO's with EJB
boilerplate, but the separation is hard to do cleanly. Also, while EJB's
provide some services for transaction management and persistence, for
example, there are many limitations compared to tools like Hibernate,
and no easy way to extend the EJB support to add more capabilities
(unless you're an EJB container vendor who can add extensions).

Also, EJBs don't support inheritance, which is bad OO, and in EJB 2.x,
you have to write a lot of boilerplate code. That boilerplate involves
writing 2-4 interfaces and an implementation class, but for reasons I
won't go into, that class doesn't explicitly implement any of those
requried interfaces.

So, it's a pretty bad programming model. EJB 3.0 will be an improvement,
but the more skeptical observers think you should look elsewhere.

For more details, google "inversion of control", "dependency injection"
and look at springframework.org.

dean

***@aspectprogramming.com

Rex Madden wrote:
> I should add the EJB 3.0 looks promising and sounds like it will play
> nice with Hibernate 3.
>
>
> On Fri, 18 Mar 2005 17:14:29 +0530, Sarath Kummamuru <***@gmail.com> wrote:
>
>>I agree Rex and more over when we have a wonderful framework for
>>persistence in Hibernate, atleast where there is no strong requirement
>>to build apps with EJB i would rather go POJO and Hibernate way.
>>
>>On all our apps, we have a POJO layer, with a validation system
>>associated with it. A pluggable storage handler layer which previously
>>used plain JDBC sql, now contains hibernate and if EJB Spec really
>>comes out well can become a EJB Layer.
>>
>>Sarath.
>>
>>
>>On Tue, 15 Mar 2005 18:07:44 -0500, Rex Madden <***@gmail.com> wrote:
>>
>>>I'm sure everyone can jump in with EJB issues, but I think the biggest
>>>problem from an XP point of view is that they're very hard to test.
>>>I'd say that just about any TDD'er is going to prefer POJO's (Plain
>>>Old Java Objects) over EJB's.
>>>
>>>JUnit Recipes has a great chapter on the pitfalls and workarounds for
>>>testing EJB's.
>>>
>>>On Tue, 15 Mar 2005 15:06:01 -0500, ***@chase.com
>>><***@chase.com> wrote:
>>>
>>>>Can you elaborate on your issues with EJBs?
>>>>
>>>>BJ
>>>>
>>>> Dean Wampler
>>>> <***@aspectprogr To: ***@yahoogroups.com
>>>> amming.com> cc:
>>>> Subject: Re: [XP] advice, please: PHP, Java, ..., ?
>>>> 03/14/2005 08:54
>>>> PM
>>>> Please respond to
>>>> extremeprogrammin
>>>> g
>>>>
>>>>
>>>>FWIW, I would avoid the Enterprise Java Bean (EJB) part of J2EE, based
>>>>on direct personal experience. If you're going the Java route, consider
>>>>the Spring framework, which conceptually represents the future of
>>>>java-based enterprise architectures. The creator of Spring, Rod Johnson,
>>>>has written a good book on the subject, "J2EE Development without EJB"
>>>>(ISBN 0-7645-5831-5)
>>>>
>>>>dean
>>>>
>>>>
>>>>To Post a message, send it to: ***@eGroups.com
>>>>
>>>>To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>>>>
>>>>ad-free courtesy of objectmentor.com
>>>>Yahoo! Groups Links
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>To Post a message, send it to: ***@eGroups.com
>>>
>>>To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>>>
>>>ad-free courtesy of objectmentor.com
>>>Yahoo! Groups Links
>>>
>>>
>>>
>>>
>>>
>>
>>To Post a message, send it to: ***@eGroups.com
>>
>>To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>>
>>ad-free courtesy of objectmentor.com
>>Yahoo! Groups Links
>>
>>
>>
>>
>>
>
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>
>

--
Dean Wampler, Ph.D.
dean at aspectprogramming.com
http://www.aspectprogramming.com
http://www.contract4j.org
I want my tombstone to say:
Unknown Application Error in Dean Wampler.exe.
Application Terminated.


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Keith Nicholas
2005-03-15 23:26:00 UTC
Permalink
Hi,

Has anyone done any work on automatically generating unit tests from
existing code? Someone on one of my local development email lists asked
this question and it seems like an interesting idea, if not somewhat tricky.
I think there are definitely quite a few things that you could automatically
generate (and probably lots that you can't).

But it would be useful for people with legacy systems.

Regards,

Keith




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Paul Jenkins
2005-03-16 00:08:27 UTC
Permalink
Keith,

I've come across a couple, but not worked with either yet (always been
dubious as to the quality / applicability / usefulness etc, but...)

Jonathan de Halleux has done some work in .Net with an extension to Lutz
Roeder's Reflector
(http://blog.dotnetwiki.org/archive/2004/06/10/390.aspx).

also:

http://www.appperfect.com/products/devsuite/ut.html for Java.

I'll be trying this last one in the next couple of weeks to bring a piece of
'legacy' Java middleware under some kind of test (to capture the external
behaviour as we strip out a nasty embedded the DAL & move it from Oracle to
MySQL). Might even post the results up here.

--p

> -----Original Message-----
> From: Keith Nicholas [mailto:***@compacsort.com]
> Sent: 15 March 2005 23:26
> To: ***@yahoogroups.com
> Subject: [XP] Reverse Engineering Unit Tests
>
>
> Hi,
>
> Has anyone done any work on automatically generating unit tests from
> existing code? Someone on one of my local development email lists asked
> this question and it seems like an interesting idea, if not somewhat
> tricky.
> I think there are definitely quite a few things that you could
> automatically
> generate (and probably lots that you can't).
>
> But it would be useful for people with legacy systems.
>
> Regards,
>
> Keith
>
>
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to: extremeprogramming-
> ***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>
>



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Denis Haskin
2005-03-16 01:29:53 UTC
Permalink
I've not had any experience with reverse-engineering *unit* tests per
se, but for what it's worth:

At a previous employer (a large application software company) we were
doing a big push to write automated acceptance tests, and one of the
engineers devised a tool that would examine the metadata about the
application and construct reams of automated tests.

The problem is, without any real knowledge about the details of the
application, all these automated tests did were basic CRUD operations.
For the most part, these are not the areas where a human tester would
spend a lot of test effort, nor where I would when writing unit tests.
They were exercising the basic framework of the application, which at
that point was *very* mature. (So I suppose in one sense this was a
*good* thing, because management could now point to hundreds (if not
thousands) of tests that *never* failed... and as long as you didn't
look at the coverage metrics, it was pretty impressive.)

I had suggested that one could possibly use these
automatically-generated tests as the basis for more comprehensive,
functionality-specific tests, but in reality it was usually easier to
start from scratch and focus on what really needed testing.

(I started to play around with the idea of a test editor that would do
lots of assisting, based on the metadata, but I left before I could
really get going on it...)

dwh


To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Jeff Grigg
2005-03-16 00:28:22 UTC
Permalink
--- "Keith Nicholas" <***@c...> wrote:
> Has anyone done any work on automatically generating unit
> tests from existing code? [...]

I like the looks of Agitar's Agitator (but have not yet used it
myself:
http://www.agitar.com/

And then there's ParaSoft's JTest:
http://www.parasoft.com/jsp/smallbusiness/small_business.jsp?/jtest
A number of people have said that they really don't like ParaSoft's
sales tactics. See comments at:
http://www.c2.com/cgi/wiki?JavaTest





To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
William Pietri
2005-03-16 04:18:08 UTC
Permalink
On Wed, 2005-03-16 at 12:26 +1300, Keith Nicholas wrote:
> Has anyone done any work on automatically generating unit tests from
> existing code? [...] But it would be useful for people with legacy
> systems.

Would it? For me, one of the big benefits of test suites is that they
express what the app should do. I'm having a hard time imagining an
automated unit testing tool that would be more help than hindrance. I
suspect that it would have the same negative utility that automatic
comment and documentation creators have.

I could more plausibly see the use of an automated acceptance test
generator, which would observe a user doing things with the system and
then generate tests to make sure things didn't change. A friend with a
lot of messy, untested web code, for example, was excited to use Grinder
to put in a rough safety net. The hope was it would give enough coverage
allow them to clean up and refactor the code base.

Of course, the tests output by Grinder are brittle and unexpressive, so
they'd have to be replaced by real tests eventually, but it seemed like
a reasonable way to start.

William

--
William Pietri <***@scissor.com>



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ian Collins
2005-03-16 05:03:55 UTC
Permalink
Keith Nicholas wrote:

>Hi,
>
>Has anyone done any work on automatically generating unit tests from
>existing code? Someone on one of my local development email lists asked
>this question and it seems like an interesting idea, if not somewhat tricky.
>I think there are definitely quite a few things that you could automatically
>generate (and probably lots that you can't).
>
>But it would be useful for people with legacy systems.
>
>
>
Isn't the manual generation of unit tests one of the best ways to learn
how the system works? How could automatically generated tests test the
true intent of the code?

At best, they could provide a set of black box tests to give some
security for refactoring the code. Or they could lull you into a false
sense of security with the opposite effect!

Ian



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Keith Nicholas
2005-03-16 05:43:17 UTC
Permalink
That's the idea, not to create tests that show the intent of the code, but
to give you some assurance as you get a legacy system under test, which
often requires refactoring the structure of the software, that you are
*probably* not breaking it.

Regards,

Keith

> -----Original Message-----
> From: Ian Collins [mailto:***@ianshome.com]
> Sent: Wednesday, 16 March 2005 6:04 p.m.
> To: ***@yahoogroups.com
> Subject: Re: [XP] Reverse Engineering Unit Tests
>
>
> Keith Nicholas wrote:
>
> >Hi,
> >
> >Has anyone done any work on automatically generating unit tests from
> >existing code? Someone on one of my local development email lists
> >asked this question and it seems like an interesting idea,
> if not somewhat tricky.
> >I think there are definitely quite a few things that you could
> >automatically generate (and probably lots that you can't).
> >
> >But it would be useful for people with legacy systems.
> >
> >
> >
> Isn't the manual generation of unit tests one of the best
> ways to learn how the system works? How could automatically
> generated tests test the true intent of the code?
>
> At best, they could provide a set of black box tests to give
> some security for refactoring the code. Or they could lull
> you into a false sense of security with the opposite effect!
>
> Ian
>
>
>
> To Post a message, send it to: ***@eGroups.com
>
> To Unsubscribe, send a blank message to:
> extremeprogramming-***@eGroups.com
>
> ad-free courtesy of objectmentor.com
> Yahoo! Groups Links
>
>
>
>
>
>
>




To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ian Collins
2005-03-16 06:28:09 UTC
Permalink
Keith Nicholas wrote:

>That's the idea, not to create tests that show the intent of the code, but
>to give you some assurance as you get a legacy system under test, which
>often requires refactoring the structure of the software, that you are
>*probably* not breaking it.
>
>
>
But would the resultant 'tests' test, or merely characterise the
application? I suppose if you start with the premiss that the
application is sound, then characterising would give you reasonable
protection during refactoring. But you would still have to understand
the code before you changed it.

What I'm saying is that the best way to understand code is to write
tests for it, so any generated tests would be replaced by manual ones
during this process. I'd wager that generated tests wouldn't be
particularly easy to read, or useful in understanding the code.

Ian



To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Donald Roby
2005-03-16 10:56:35 UTC
Permalink
--- In ***@yahoogroups.com, Ian Collins <***@i...> wrote:
> Keith Nicholas wrote:
>
> >That's the idea, not to create tests that show the intent of the
code, but
> >to give you some assurance as you get a legacy system under test, which
> >often requires refactoring the structure of the software, that you are
> >*probably* not breaking it.
> >
> >
> >
> But would the resultant 'tests' test, or merely characterise the
> application? I suppose if you start with the premiss that the
> application is sound, then characterising would give you reasonable
> protection during refactoring. But you would still have to understand
> the code before you changed it.
>
Many people *do* change code without undertanding it, unfortunately.
Most of this code is indeed rather hard to understand, and gets more
so as a result of being changed by people who don't understand it.

For such work, automatically generated tests might give a teeny bit
more safety. But not enough to make the process work.

Without understanding, the quality will just continue degrading.

> What I'm saying is that the best way to understand code is to write
> tests for it, so any generated tests would be replaced by manual ones
> during this process. I'd wager that generated tests wouldn't be
> particularly easy to read, or useful in understanding the code.
>
Yes. A much better way of dealing with masses of code not under test
and not understood is to inject tests yourself at least near the
needed changes. There are some good approaches to doing this in Mike
Feathers' book "Working Effectively with Legacy Code".






To Post a message, send it to: ***@eGroups.com

To Unsubscribe, send a blank message to: extremeprogramming-***@eGroups.com

ad-free courtesy of objectmentor.com
Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/extremeprogramming/

<*> To unsubscribe from this group, send an email to:
extremeprogramming-***@yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Continue reading on narkive:
Loading...