Seaside with PHP (sort of)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Seaside with PHP (sort of)

William Harford
I have done a couple of largish projects in Seaside and Smalltalk (both Squeak and VW). Personally I love Smalltalk and Seaside but I have had a fair amount of trouble convincing any number of programmers of the relative merits of Smalltalk. Even amongst the small group of squeak enthusiasts here is Toronto convincing them to use Smalltalk in a commercial environment is an uphill battle. 

The ideas embodied in Seaside on the other hand are met with much more excitement. Smalltalk, to a large amount of people, is an insurmountable hurtle. In the spirit of open source I blatantly ripped of Seaside and implemented a number of it's ideas with PHP in a project call Phaux. 


Phaux does lack continuations. In it's place is a mechanism for calling dialogs with a callback when the dialog answers. It should be possible to implement continuations in PHP but I just, at this point, think the complication would not be worth it. It would be a nifty addition to Phaux I just don't want to do it :-).

What I have not decided is if what I might give up developing with PHP is worth what I might gain (more programmers who are comfortable with PHP). I also have not decided if Seaside and Smalltalk are separable. For example loosing code blocks does somewhat damage the beauty of canvas. 

What other projects projects out there have taken Seaside's ideas and reimplemented them in other languages/platforms. Was it sucessful? What was the trade offs that were made ? Was it worth it?

Thanks Much
Will
 ___________________________________
Do I dream of electric sheep?



_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside with PHP (sort of)

Philippe Marschall
2007/4/25, William Harford <[hidden email]>:

> I have done a couple of largish projects in Seaside and Smalltalk (both
> Squeak and VW). Personally I love Smalltalk and Seaside but I have had a
> fair amount of trouble convincing any number of programmers of the relative
> merits of Smalltalk. Even amongst the small group of squeak enthusiasts here
> is Toronto convincing them to use Smalltalk in a commercial environment is
> an uphill battle.
>
> The ideas embodied in Seaside on the other hand are met with much more
> excitement. Smalltalk, to a large amount of people, is an insurmountable
> hurtle. In the spirit of open source I blatantly ripped of Seaside and
> implemented a number of it's ideas with PHP in a project call Phaux.
>
> http://code.google.com/p/phaux/
>
> Phaux does lack continuations. In it's place is a mechanism for calling
> dialogs with a callback when the dialog answers. It should be possible to
> implement continuations in PHP but I just, at this point, think the
> complication would not be worth it. It would be a nifty addition to Phaux I
> just don't want to do it :-).
>
> What I have not decided is if what I might give up developing with PHP is
> worth what I might gain (more programmers who are comfortable with PHP). I
> also have not decided if Seaside and Smalltalk are separable. For example
> loosing code blocks does somewhat damage the beauty of canvas.

That's a real problem. Canvas benefits extremely from cascades and blocks.

> What other projects projects out there have taken Seaside's ideas and
> reimplemented them in other languages/platforms. Was it sucessful? What was
> the trade offs that were made ? Was it worth it?

There is at least one ruby project. Ruby still does have continuations
but will probably lose them in 2.0. There is also a template system
similar to canvas called markaby

Philippe

> Thanks Much
> Will
>
>  ___________________________________
> Do I dream of electric sheep?
>
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside with PHP (sort of)

stephane ducasse
In reply to this post by William Harford
The best things to do is to see if you can make money and have success.
I think that the people of netstyle or avi show us the way.
There are really a lot of successful projects of software developed  
in Smalltalk (20% of the world container traffic, 64 AMD weaver  
chain., JPMorgan, even SAP is starting to use Smalltalk).... So I  
hope that you will stay with us.

Stef

On 25 avr. 07, at 07:13, William Harford wrote:

> I have done a couple of largish projects in Seaside and Smalltalk  
> (both Squeak and VW). Personally I love Smalltalk and Seaside but I  
> have had a fair amount of trouble convincing any number of  
> programmers of the relative merits of Smalltalk. Even amongst the  
> small group of squeak enthusiasts here is Toronto convincing them  
> to use Smalltalk in a commercial environment is an uphill battle.
>
> The ideas embodied in Seaside on the other hand are met with much  
> more excitement. Smalltalk, to a large amount of people, is an  
> insurmountable hurtle. In the spirit of open source I blatantly  
> ripped of Seaside and implemented a number of it's ideas with PHP  
> in a project call Phaux.
>
> http://code.google.com/p/phaux/
>
> Phaux does lack continuations. In it's place is a mechanism for  
> calling dialogs with a callback when the dialog answers. It should  
> be possible to implement continuations in PHP but I just, at this  
> point, think the complication would not be worth it. It would be a  
> nifty addition to Phaux I just don't want to do it :-).
>
> What I have not decided is if what I might give up developing with  
> PHP is worth what I might gain (more programmers who are  
> comfortable with PHP). I also have not decided if Seaside and  
> Smalltalk are separable. For example loosing code blocks does  
> somewhat damage the beauty of canvas.
>
> What other projects projects out there have taken Seaside's ideas  
> and reimplemented them in other languages/platforms. Was it  
> sucessful? What was the trade offs that were made ? Was it worth it?
>
> Thanks Much
> Will
>  ___________________________________
> Do I dream of electric sheep?
>
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside with PHP (sort of)

William Harford
In reply to this post by Philippe Marschall

On Apr 25, 2007, at 3:48 AM, Philippe Marschall wrote:

2007/4/25, William Harford <[hidden email]>:

That's a real problem. Canvas benefits extremely from cascades and blocks.

Phaux deals with cascades by returning $this in any method that does not logically return anything else. Of course PHP has nothing as elegant as blocks. Phaux render takes a string as it's argument to with() and all Phaux render tags answer __toString with the HTML equivalent. It's not a huge deal but there are situations where you might have to do things in an inside out fashion (creating the contents of something before you start to create the something). I personally think it's a billion times better than HTML templates. 


There is at least one ruby project. Ruby still does have continuations
but will probably lose them in 2.0. There is also a template system
similar to canvas called markaby

Markaby is interesting. PHP could do something similar to Markaby and it will still allow control structures in content generation. I think it would make the render stuff a little more verbose but it might be worth it. 

Like I said PHP does not have true continuations but with a combination of exceptions and a little parsing I think it can be done. With phaux you set the onAnswerCallback for a component and then use callDialog. Execution does not halt and you have to split up a method into 2 or 3 methods. It's not ideal but it's close. 

-Will
___________________________________
Do I dream of electric sheep?


___________________________________
Do I dream of electric sheep?



_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside with PHP (sort of)

Edward Stow
In reply to this post by William Harford
Will

Before investing too much time in the project you should have a look
at some of the other php frameworks.  I have a passing familiarity
with  CakePhp and am developing an application in Prado
http://pradosoft.com. I suggest that you look at the QuickStart
tutorial http://pradosoft.com/demos/quickstart/ .

Prado in particular implements many of the features that you listed on
the google site.

Edward

On 25/04/07, William Harford <[hidden email]> wrote:

> I have done a couple of largish projects in Seaside and Smalltalk (both
> Squeak and VW). Personally I love Smalltalk and Seaside but I have had a
> fair amount of trouble convincing any number of programmers of the relative
> merits of Smalltalk. Even amongst the small group of squeak enthusiasts here
> is Toronto convincing them to use Smalltalk in a commercial environment is
> an uphill battle.
>
> The ideas embodied in Seaside on the other hand are met with much more
> excitement. Smalltalk, to a large amount of people, is an insurmountable
> hurtle. In the spirit of open source I blatantly ripped of Seaside and
> implemented a number of it's ideas with PHP in a project call Phaux.
>
> http://code.google.com/p/phaux/
>
> Phaux does lack continuations. In it's place is a mechanism for calling
> dialogs with a callback when the dialog answers. It should be possible to
> implement continuations in PHP but I just, at this point, think the
> complication would not be worth it. It would be a nifty addition to Phaux I
> just don't want to do it :-).
>
> What I have not decided is if what I might give up developing with PHP is
> worth what I might gain (more programmers who are comfortable with PHP). I
> also have not decided if Seaside and Smalltalk are separable. For example
> loosing code blocks does somewhat damage the beauty of canvas.
>
> What other projects projects out there have taken Seaside's ideas and
> reimplemented them in other languages/platforms. Was it sucessful? What was
> the trade offs that were made ? Was it worth it?
>
> Thanks Much
> Will
>
>  ___________________________________
> Do I dream of electric sheep?
>
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>


--

Edward Stow
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside with PHP (sort of)

William Harford

On Apr 27, 2007, at 3:13 AM, Edward Stow wrote:

Will

Before investing too much time in the project you should have a look
at some of the other php frameworks.

The initial idea behind Phaux was simply to see if I could implement anything like Seaside in PHP. The proof of concept worked so well and was so exciting I decided to continue. Because Phaux is in PHP and not Smalltalk it lacks a lot of very useful Smalltalk features.  

I did look at other frameworks. None of them come anywhere near Seaside or Phaux in philosophical design decisions. All of them are traditional page biased frameworks. 

  I have a passing familiarity
with  CakePhp and am developing an application in Prado
http://pradosoft.com. I suggest that you look at the QuickStart

I have looked at Prado and considering the current state of frameworks it looks nice but ...

Both CakePhp and Prado use code generation as integral parts of their design. I can't even being to tell you how disturbing I find this.  

Pardo uses templates. CSS is mature enough that templates should be relegated to a museum. 

No PHP framework other then Phaux is stateful (that I have been able to find). 

Their mechanisms for persistence are, in my opinion, backwards. They generate (*shudder*) or base the object model off the relational model. REServe (both for Smalltalk and for PHP) do the inverse. Biasing the relational model off the object model.  

There are other things as well but I don't want to clog up this mailing list with to much chatter about another project. If you would like to continue this conversation I have created a phaux-dev group. http://groups.google.com/group/phaux-dev.

Thanks
Will


Prado in particular implements many of the features that you listed on
the google site.

Edward



Edward Stow
_______________________________________________
Seaside mailing list

___________________________________
Do I dream of electric sheep?



_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Seaside with PHP (sort of)

Mariano Montone
2007/4/27, William Harford <[hidden email]>:

On Apr 27, 2007, at 3:13 AM, Edward Stow wrote:

Will

Before investing too much time in the project you should have a look
at some of the other php frameworks.

The initial idea behind Phaux was simply to see if I could implement anything like Seaside in PHP. The proof of concept worked so well and was so exciting I decided to continue. Because Phaux is in PHP and not Smalltalk it lacks a lot of very useful Smalltalk features.  

I did look at other frameworks. None of them come anywhere near Seaside or Phaux in philosophical design decisions. All of them are traditional page biased frameworks. 

We've implemented a component-based PHP framework.  Have a look at it at: http://phpwebbuilder.sourceforge.net/.

The framework was developed at my company. It lacks community support and documentation, though.

I have a passing familiarity
with  CakePhp and am developing an application in Prado
<a href="http://pradosoft.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://pradosoft.com. I suggest that you look at the QuickStart
tutorial <a href="http://pradosoft.com/demos/quickstart/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"> http://pradosoft.com/demos/quickstart/ .

I have looked at Prado and considering the current state of frameworks it looks nice but ...

Both CakePhp and Prado use code generation as integral parts of their design. I can't even being to tell you how disturbing I find this.  

Pardo uses templates. CSS is mature enough that templates should be relegated to a museum.

We use templates too, but they are declarative and optional. We don't generate html programmatically. Template-less html is generated from widgets which are some kind of "primitive"  components. Html and XML for Ajax is generated from the view tree.


No PHP framework other then Phaux is stateful (that I have been able to find). 

PHPWebBuilder is stateful :). PWB is more stateful than seaside at the view level. We mantain the tree of the view in memory. As a consecuence of both being a tree and being in memory we are able to detect updates to the view and send them through AJAX or Comet transparently.


Their mechanisms for persistence are, in my opinion, backwards. They generate (*shudder*) or base the object model off the relational model. REServe (both for Smalltalk and for PHP) do the inverse. Biasing the relational model off the object model.  

We generate SQL from objects definitions too.

Mariano
http://www.eureka-consulting.com.ar/
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside