Who fancies a community effort to write a book?

Where we keep all the boring tidbits about the PHPDN site, the news, and what not.

Moderator: General Moderators

Post Reply
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

I mentioned it only because it is hard to become adjusted to OOP after seeing so much procedural.
Here's the rub, should we teach the function library approach, or an OOP class approach? I know there is a place for procedural, but it's not something generally looked for in a programmer's skillset these days (open source apps aside). Touching on function libs is just one step away from OOP, and failing to bridge that gap early leads to the situation in the above quote. I've seen it dozens of times - if you focus on procedural readers are taken down a path which can be very difficult to escape from. Contrary to some people's perception (not targeting anyone here) OOP is not an easy to understand topic for everyone - it can actually be very difficult. It takes a small epiphany to suddenly "get" it. And even then there is a massive amount of recommended practice to figure out. Starting small, and presenting those practices (even if they are not formally identified) would get a reader used to the ideas to the point they expect to see them.

I won't be mentioning this again, because it's directing focus away from organising/brainstorming the book. It may be something to discuss at some stage down the line when the book is at a slightly more advanced stage in planning.
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

A few random thoughts:

We need more than one topic to discuss this. Would it be possible to request a forum here with the book as a Devnetwork supported project? We're covering three or four topics on the one thread and that's going to get only harder to track once we hit a few more pages in this isolated topic.

We need to formalise who is, and is not involved (sounds terrible, but it's simple a purely informal temp mechanic for decision making). The faster we progress (and we're picking up speed), the closer we're going to butt heads with that word "copyright" so this is something that must be discussed early before anyone writes so much as a paragraph of text. Another facet is licensing - is a Creative Commons license appropriate? Or did Chris have something different in mind (being the person to blame for proposing a book :)).

Are we using Subversion? Can we decide on an intermediary format (for editing, prior to final presentation formatting)?

Who/what would have final say on accepting text into the book?
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

I'd take the lead but I'm not going to be here for a week once tomorrow has gone and you guys may as well carry on without me while the iron's hot so I'm happy for yourself (Maugrim) to take lead.

Licensing a book. Hmm, it's a tricky one. How would Creative Commons apply here I wonder... although it does seem to fit best given CC is used by many artists etc these days. You can't really license the usage of the book, but rather, any restriction on copying material from within it. Maybe Roja has a good suggestion - he seems to know a bit about licensing (stuff I'm not too good on).

EDIT | I'll see what I can do on the forum front.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

If we need web space, I can offer some on my dedicated server. I do think it is a good idea to determine roles. I think I had brought this up at some point in this thread, but maybe we can have folks fill the following positions:

Administrator(s)
Global administrative rights and roles over the entire project, including, but not limited to, identifying licensing options, printing options, assembly of the contributed works, final say on the project and its direction.

Moderator(s)
Moderate all facets of activity as it relates to the content of the book. Identifies layout, what should or shouldn't make it into the book, how the presentation of material should be, etc. Also manages editors, contributors and testers and ensures production readiness of material. Essentially administers the book itself, but not the other stuff involved in the production of the book. Confers with admins for final decisions.

Editor(s)
Manages the submitted material for inclusion into the book. Contributes as neccesary.

Contributor(s)
Contributes content, code, examples and material for the book.

Tester(s)
Tests all submitted code examples for production use by readers.

This is of course, a rough list of roles. It can be adapted, modified or scrapped altogether if no one likes it. Just thought I'd throw that out. Seeing as the scope f this project has gone from a 'pamphlet' to a full fledged 'training manual', I think it would make sense to treat it like a larger production project. What do you all think?
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

That looks like a good list Everah :)

+1
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

I am curious, when people say "teach procedural programming" what exactly are you teaching? Calling functions? Everything in the global namespace? Is it teaching Structured Programming?

I'm just wondering where programmers who learned how to make function libraries would go with that knowledge. Are there "procedural" frameworks out there that they would use? Are there good paying jobs for "procedural programmers"? Is the plan to give them the skills to build their own CMS that has code that looks like phpBB 1.0? Will they search through PEAR or phpclasses.org for "functions" to add to their library?

I certainly think that the basics of function calls are and the basic conditional and looping constructs should be taught. But when it comes to teaching how to design software using PHP, what sort of "procedural" designs to people have in mind?
(#10850)
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

arborint wrote:I am curious, when people say "teach procedural programming" what exactly are you teaching? Calling functions? Everything in the global namespace? Is it teaching Structured Programming?

I'm just wondering where programmers who learned how to make function libraries would go with that knowledge. Are there "procedural" frameworks out there that they would use? Are there good paying jobs for "procedural programmers"? Is the plan to give them the skills to build their own CMS that has code that looks like phpBB 1.0? Will they search through PEAR or phpclasses.org for "functions" to add to their library?

I certainly think that the basics of function calls are and the basic conditional and looping constructs should be taught. But when it comes to teaching how to design software using PHP, what sort of "procedural" designs to people have in mind?
I agree. I was getting more at the fact that you need to get to grips with the logic and the language itself before overwhelming someone with OOP if they've enever programmed before. Procedural does still have it's place though. Take for example a simple PHP CLI tool to fetch HTTP headers for a web page. It's not complex but you could make it more complex than it needs to be by trying to do it with OOP. Realistically it's a straight run of function calls and looping from start to finish with not many twists and turns along the way.
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

I am obviously pushing this point (trying to keep $flame_mode==false ;)) to hopefully clarify the concept of the book -- not just to pester you. :)

So I will follow up with the question: At what point do you teach a new programmer how to write a "simple PHP CLI tool to fetch HTTP headers"? Honestly that sounds like something in Appendix III to me.

I am really wondering how long after "hello world" or echo phpinfo(); do you really want to go teaching them to design small scripts? It seems like once you start to mention "design" then you are either teaching them something about OOP or you are doing them a disservice. Are the basics of creating classes and using objects really that overwhelming?
(#10850)
Charles256
DevNet Resident
Posts: 1375
Joined: Fri Sep 16, 2005 9:06 pm

Post by Charles256 »

the game I'm working on is written procedurally..granted it's because I don't want to take teh time to think out the classes.. I Know how..just don't want too. : shrugs :
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

I would refer to Procedural Programming as any body of code which carries out a series of actions in sequence. In reality all OOP methods follow Procedural Coding (it's hardly optional :)) but when it's applied to an application as a whole you get the phpBB/phpNuke styled apps that can without discipline spiral out of control into maintenance nightmares...

Back to organising...
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

Roja
Tutorials Group
Posts: 2692
Joined: Sun Jan 04, 2004 10:30 pm

Post by Roja »

arborint wrote:I'm just wondering where programmers who learned how to make function libraries would go with that knowledge. Are there "procedural" frameworks out there that they would use? Are there good paying jobs for "procedural programmers"? Is the plan to give them the skills to build their own CMS that has code that looks like phpBB 1.0? Will they search through PEAR or phpclasses.org for "functions" to add to their library?
And with that pile of biased napalm for procedural code, I'm leaving the effort.

Seriously, do not claim to be avoiding flame wars, and endorsing an equal view, while you spit on procedural programming. I simply love that you are doing so on a forum programmed in it. A little irony for breakfast, while the pot calls the kettle black.

I've been down the OOP and procedural path, and the cultural elitism and disdain that sitepoint shows for anyone even considering procedural was something I thought we had moved past here.

I guess I was mistaken. Honestly, I'm disappointed.
User avatar
Maugrim_The_Reaper
DevNet Master
Posts: 2704
Joined: Tue Nov 02, 2004 5:43 am
Location: Ireland

Post by Maugrim_The_Reaper »

Can we put a clamp on the OOP/Procedural debate already... It just turns into flamebait no matter how innocent the original comments are. I merely suggested teaching OOP earlier to avoid the later paradigm shift. It was not an invitation for the discussion to degrade into flaming.
Roja wrote:And with that pile of biased napalm for procedural code, I'm leaving the effort.
Huh? Any procedural vs OOP comments are unrelated to the effort - it's even off-topic. I believe the original question was intended to figure out what mix of each to use - not to throw one out as inferior. I regret ever mentioning it at this stage. Might as well walk into a IRA stronghold in Ireland and request folk in balaclavas to declare allegiance to the Crown...

Back on track...hopefully...

The Creative Commons licenses seem appropriate for the book. There are a few options, and you can specify whether you wish to include share-alike or commercial use restrictions. O'Reilly use CC licenses for most of their online volumes where authors wish them to remain open.
Everah wrote:If we need web space, I can offer some on my dedicated server. I do think it is a good idea to determine roles. I think I had brought this up at some point in this thread, but maybe we can have folks fill the following positions
The list seems fairly complete for a rough list...:). Can anyone identify other roles? We can probably wait just a bit before running for web space. Eventually we'll need some centralised location, and some management tools for the contributing/editing/commenting process. Any know of any such application worth considering? Something like Confluence maybe? I think allowing on the spot comments on proposed text would be invaluable. We'll also need Subversion (presumably) to manage the finished text and allow for formatting/editing with the option to revert.
Everah wrote:This is of course, a rough list of roles. It can be adapted, modified or scrapped altogether if no one likes it. Just thought I'd throw that out. Seeing as the scope f this project has gone from a 'pamphlet' to a full fledged 'training manual', I think it would make sense to treat it like a larger production project. What do you all think?
Treating is a large project makes sense. If the interest is maintained we're talking about managing contributions and roles of a dozen plus people. Which may eventually grow if the projects profile is elevated over time. Which bring me to another question - what in heaven's name to we call the project? Suggestions?
User avatar
Christopher
Site Administrator
Posts: 13596
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Post by Christopher »

Roja wrote: And with that pile of biased napalm for procedural code, I'm leaving the effort.

Seriously, do not claim to be avoiding flame wars, and endorsing an equal view, while you spit on procedural programming. I simply love that you are doing so on a forum programmed in it. A little irony for breakfast, while the pot calls the kettle black.

I've been down the OOP and procedural path, and the cultural elitism and disdain that sitepoint shows for anyone even considering procedural was something I thought we had moved past here.

I guess I was mistaken. Honestly, I'm disappointed.
Not a pile of napalm, but serious questions. And my questions were not elitist -- they were pointed. You are the one who suggested that procedural and OOP be separated. I want to know why? I really don't see how in this day and age they can. As Magrim says and I agree -- there is procedural code in every function. You can't teach OOP without teaching procedural as well.

But that is not the question here. My quite serious question is -- do you do a beginning PHP programmer TODAY a service or disservice by only teaching them only procedural programming?

I want to understand the reasoning for separating two things that I honestly don't see as separate in PHP programming.
(#10850)
Jixxor
Forum Commoner
Posts: 46
Joined: Wed Jun 07, 2006 5:53 pm
Location: Lakeland, FL

Post by Jixxor »

What you would call rough, Everah, I would call a structured foundation to build off of. The question is what do we limit each role to? How many Administrators? Moderators? etc.

Placing the book under the Creative Commons License sounds like a great idea, but we need material to license first before we even take this step. Perhaps we should first figure out the layout of the book and establish a universal center in which all the volunteers can work out of? I.E. a dedicated forum

Once this is established we can the begin to discuss licensing, OOP vs. Procedural, or the name of the project. :P As it stands right now, we have nearly five, or more, different discussions going on in this topic (of course that was going to occur) and it's distracting from the main idea. I believe we need this forum, or whatever architecture we think we should use, to be established first before we move on with anything else.
Post Reply