<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Very Suprised</title>
	<atom:link href="http://jacwright.com/blog/21/very-suprised/feed/" rel="self" type="application/rss+xml" />
	<link>http://jacwright.com/blog/21/very-suprised/</link>
	<description>Flex, AIR, PHP, etc.</description>
	<lastBuildDate>Thu, 29 Jul 2010 18:05:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Jacob Wright</title>
		<link>http://jacwright.com/blog/21/very-suprised/comment-page-1/#comment-22</link>
		<dc:creator>Jacob Wright</dc:creator>
		<pubDate>Mon, 11 Jul 2005 23:33:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.jacwright.com/blog/?p=21#comment-22</guid>
		<description>&lt;em&gt;Actually it is both measurable and important. A good web programmer will be running tests to time execution.&lt;/em&gt;

This is true, and I apologize.  I meant that the difference in speed between OO vs. procedural programming was not measurable.  It came out wrong.  Speed is certainly important.

Thank you for the overview on OOP history and ideals.  I agree that PHP OOP is not what OOP started as originally.</description>
		<content:encoded><![CDATA[<p><em>Actually it is both measurable and important. A good web programmer will be running tests to time execution.</em></p>
<p>This is true, and I apologize.  I meant that the difference in speed between OO vs. procedural programming was not measurable.  It came out wrong.  Speed is certainly important.</p>
<p>Thank you for the overview on OOP history and ideals.  I agree that PHP OOP is not what OOP started as originally.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Delaney</title>
		<link>http://jacwright.com/blog/21/very-suprised/comment-page-1/#comment-21</link>
		<dc:creator>Kevin Delaney</dc:creator>
		<pubDate>Sun, 10 Jul 2005 20:24:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.jacwright.com/blog/?p=21#comment-21</guid>
		<description>&lt;i&gt;&quot;For an application just connecting to a database and sending text to a browser, code execution speed on internet apps is far from being a bottleneck or even measureable.&quot;&lt;/i&gt;

Actually it is both measurable and important. A good web programmer will be running tests to time execution. The time it takes to deliver a web page is an important part of any web design. Wasted resources really stack up when you have tens of thousands of clients hitting a server.

If you are sending your resume to Google or Microsoft, you will need to make sure they don&#039;t read that statement.</description>
		<content:encoded><![CDATA[<p><i>&#8220;For an application just connecting to a database and sending text to a browser, code execution speed on internet apps is far from being a bottleneck or even measureable.&#8221;</i></p>
<p>Actually it is both measurable and important. A good web programmer will be running tests to time execution. The time it takes to deliver a web page is an important part of any web design. Wasted resources really stack up when you have tens of thousands of clients hitting a server.</p>
<p>If you are sending your resume to Google or Microsoft, you will need to make sure they don&#8217;t read that statement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Delaney</title>
		<link>http://jacwright.com/blog/21/very-suprised/comment-page-1/#comment-20</link>
		<dc:creator>Kevin Delaney</dc:creator>
		<pubDate>Sun, 10 Jul 2005 20:17:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.jacwright.com/blog/?p=21#comment-20</guid>
		<description>The world has good and bad procedural and good and bad OO programming. Good and bad is separate from the style of the program. 

I&#039;ve been an advocate of OO programming since the 80s. I worked on some of the first OO databases and had spent years preaching that people should encapsulate the data in their databases with an object layer.

The area where OO really fails is in the hype. Generally, when the &quot;architect&quot; starts spouting that OO is a higher level of thinking, I know that project will fail. We are not talking the typical 90% failure of IT projects, when the chief design becomes convinced that he&#039;s achieved a higher level of existence by embracing OO mysticism, the program will fail.

There is good and bad programming. System architects that feign that have a superior way of thinking generally have more hot air than substance. 

I think that learning the history of OOP is important. The OOP that you see today has actually been bastardized from its earlier ideals. The biggest gap between classical programming and OO programming has to do with the relationship between the program and the data.

Traditional programmers saw data as a different thing than the program. You input data into a computer. The program manipulates it then writes the data to the disk. The structure of the data was considered separate from the program. For example, design might involve creating an relational model, then a layer of programs that manipulate the data.

OOP held a different ideal. OOP decided that data had no meaning outside the context of the program. The ideal was that the object would own the data from creation to deletion. The object would have sole access to the data.

This thing where you are accessing data from a structured relational database is a bastardized kin of OOP. Data stored in Postgres and MySQL tables violates the fundamental concepts of OOP. The object does not have sole ownership of the data.

The the object is supposed to have complete control over the data. The Object/Relational paradigm starts with a violation of the most fundamental principls of OO design. The object surrends control of the data to the relational model.

&lt;em&gt;&quot;it is more critical to get an application running faster in a desktop enviroment then on the web.&quot;&lt;/em&gt;

The ideals of OOP were set for the purpose of user interfaces. What is important in a user interface is not the overall speed of the system but the speed relative to the user. People really don&#039;t mind if it takes  minute or so for a program to load. They get upset when there is a lag in their keystrokes. 

OO design loads an entire object into memory when you launch the application. You then execute streamlined methods to manipulate the data. OOP is fast where it needs to be fast. It handles the thousands of events that might occur on the deskstop with short streamlined methods. OOP would load all of the resources associated with an object when you initiated it. Processing now appears faster to the user because everything is in memory.

The thin client structure of the web forces an even further step away from the original object model. PHP scripts are short lived processes. You execute a script. It sends a stram of SQL commands to the relational database and a string of html back to the browser. 

With PHP, I find I do not want to load a full object model into my server&#039;s memory for each short lived event. As such, I do not use a full object model when programming in PHP.

You can use some principles from OOP for organizing your code. But, in the thin client object/relational world, you are actually doing something that is twice removed from the original ideals of object oriented programming.

BTW, just about everything that exists in OOP existed before OOP with different names. There was modularization, reuse of codes, unit testing and a ton of modeling techniques that made more since than UML like ERDs and CRUD matrices. There used to be more documentation per each line of code written. The only truly unique thing about OO was the idea that the object should own the data from start to finish, which is violated with the Object/Relational Model. PHPers only use object-like program.</description>
		<content:encoded><![CDATA[<p>The world has good and bad procedural and good and bad OO programming. Good and bad is separate from the style of the program. </p>
<p>I&#8217;ve been an advocate of OO programming since the 80s. I worked on some of the first OO databases and had spent years preaching that people should encapsulate the data in their databases with an object layer.</p>
<p>The area where OO really fails is in the hype. Generally, when the &#8220;architect&#8221; starts spouting that OO is a higher level of thinking, I know that project will fail. We are not talking the typical 90% failure of IT projects, when the chief design becomes convinced that he&#8217;s achieved a higher level of existence by embracing OO mysticism, the program will fail.</p>
<p>There is good and bad programming. System architects that feign that have a superior way of thinking generally have more hot air than substance. </p>
<p>I think that learning the history of OOP is important. The OOP that you see today has actually been bastardized from its earlier ideals. The biggest gap between classical programming and OO programming has to do with the relationship between the program and the data.</p>
<p>Traditional programmers saw data as a different thing than the program. You input data into a computer. The program manipulates it then writes the data to the disk. The structure of the data was considered separate from the program. For example, design might involve creating an relational model, then a layer of programs that manipulate the data.</p>
<p>OOP held a different ideal. OOP decided that data had no meaning outside the context of the program. The ideal was that the object would own the data from creation to deletion. The object would have sole access to the data.</p>
<p>This thing where you are accessing data from a structured relational database is a bastardized kin of OOP. Data stored in Postgres and MySQL tables violates the fundamental concepts of OOP. The object does not have sole ownership of the data.</p>
<p>The the object is supposed to have complete control over the data. The Object/Relational paradigm starts with a violation of the most fundamental principls of OO design. The object surrends control of the data to the relational model.</p>
<p><em>&#8220;it is more critical to get an application running faster in a desktop enviroment then on the web.&#8221;</em></p>
<p>The ideals of OOP were set for the purpose of user interfaces. What is important in a user interface is not the overall speed of the system but the speed relative to the user. People really don&#8217;t mind if it takes  minute or so for a program to load. They get upset when there is a lag in their keystrokes. </p>
<p>OO design loads an entire object into memory when you launch the application. You then execute streamlined methods to manipulate the data. OOP is fast where it needs to be fast. It handles the thousands of events that might occur on the deskstop with short streamlined methods. OOP would load all of the resources associated with an object when you initiated it. Processing now appears faster to the user because everything is in memory.</p>
<p>The thin client structure of the web forces an even further step away from the original object model. PHP scripts are short lived processes. You execute a script. It sends a stram of SQL commands to the relational database and a string of html back to the browser. </p>
<p>With PHP, I find I do not want to load a full object model into my server&#8217;s memory for each short lived event. As such, I do not use a full object model when programming in PHP.</p>
<p>You can use some principles from OOP for organizing your code. But, in the thin client object/relational world, you are actually doing something that is twice removed from the original ideals of object oriented programming.</p>
<p>BTW, just about everything that exists in OOP existed before OOP with different names. There was modularization, reuse of codes, unit testing and a ton of modeling techniques that made more since than UML like ERDs and CRUD matrices. There used to be more documentation per each line of code written. The only truly unique thing about OO was the idea that the object should own the data from start to finish, which is violated with the Object/Relational Model. PHPers only use object-like program.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Wright</title>
		<link>http://jacwright.com/blog/21/very-suprised/comment-page-1/#comment-17</link>
		<dc:creator>Jacob Wright</dc:creator>
		<pubDate>Sat, 09 Jul 2005 17:21:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.jacwright.com/blog/?p=21#comment-17</guid>
		<description>Thank you for your thoughts.  I&#039;m still suprised that there are so many who see OOP as a desktop application practice and something not suitable for the web, when in fact, it is more critical to get an application running faster in a desktop enviroment then on the web.  For an application just connecting to a database and sending text to a browser, code execution speed on internet apps is far from being a bottleneck or even measureable.  Perhaps you&#039;ve seen a lot of good procedural PHP and bad OOP PHP.  When OOP is used correctly, I find it makes a world of difference for medium to large projects. (I would consider a robust e-commerce system a large project, though it might be small code-wise compared to some desktop applications)

I do use functions in my OOP code (of course, with PHP that&#039;s the only way to work with arrays and strings, etc.) to supplement my application.  But I&#039;ve found it much easier to create and maintain (meaning adding features) a project when it is object-oriented.</description>
		<content:encoded><![CDATA[<p>Thank you for your thoughts.  I&#8217;m still suprised that there are so many who see OOP as a desktop application practice and something not suitable for the web, when in fact, it is more critical to get an application running faster in a desktop enviroment then on the web.  For an application just connecting to a database and sending text to a browser, code execution speed on internet apps is far from being a bottleneck or even measureable.  Perhaps you&#8217;ve seen a lot of good procedural PHP and bad OOP PHP.  When OOP is used correctly, I find it makes a world of difference for medium to large projects. (I would consider a robust e-commerce system a large project, though it might be small code-wise compared to some desktop applications)</p>
<p>I do use functions in my OOP code (of course, with PHP that&#8217;s the only way to work with arrays and strings, etc.) to supplement my application.  But I&#8217;ve found it much easier to create and maintain (meaning adding features) a project when it is object-oriented.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Delaney</title>
		<link>http://jacwright.com/blog/21/very-suprised/comment-page-1/#comment-16</link>
		<dc:creator>Kevin Delaney</dc:creator>
		<pubDate>Sat, 09 Jul 2005 16:57:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.jacwright.com/blog/?p=21#comment-16</guid>
		<description>I realize that OOP is positioned as a higher level of thinking. The truth of the matter is that procedural programming is the better option for most PHP projects. You really don&#039;t get an advantage from OOP until you have a sizeable object model...in which case you probably should be using Java, PL/SQL, C++ or other compiled language.

OOP originated specifically for user interface design. With PHP, you are not directly developing a user interface. In PHP you create a string of HTML which is interpreted by a web browser. With web design, you are not dealing with a large number of keyboard or mouse events. 

Communication back to the server is done with well defined query string or as a block of data in an HTTP header (get and put).

In a thick client, you would hold an object in memory while the person manipulated in the object. You might receive several hundred mouse and keyboard events while the object is in memory. In the thin client world of the web, you are produce and receive data in large strings. You then pull data in and out of the database in larger chunks...a bit more suitable for procedure.

As for design: OO programming moves the complexity of the design from within an enclosed procedure to the programming interface. In most cases, this is actually harder to support. I have seen numerous OO projects fail because the naive OO architect created an interface that was too difficult to support. I&#039;ve also seen many OO programs by PhD programmers fail because the OO architect squandered computer resources and found he could not optimize the system. Yes, a good OO design can go almost as fast as a good procedural design. A bad OO design can bring fast systems to a crawl.

I actually use a combination of OO and procedural techniques. In most cases where I use PHP, I find that procedural programming is the best option. These small programs are easier to support because the logic for the programs are in a tight defined package and they execute faster.

I really would not consider PHP for larger enterprise level packages that demand complex object models. I’ve been programming with procedural and object techniques for over 20 years and side with PHP programmers who wish to stay with the procedural model.</description>
		<content:encoded><![CDATA[<p>I realize that OOP is positioned as a higher level of thinking. The truth of the matter is that procedural programming is the better option for most PHP projects. You really don&#8217;t get an advantage from OOP until you have a sizeable object model&#8230;in which case you probably should be using Java, PL/SQL, C++ or other compiled language.</p>
<p>OOP originated specifically for user interface design. With PHP, you are not directly developing a user interface. In PHP you create a string of HTML which is interpreted by a web browser. With web design, you are not dealing with a large number of keyboard or mouse events. </p>
<p>Communication back to the server is done with well defined query string or as a block of data in an HTTP header (get and put).</p>
<p>In a thick client, you would hold an object in memory while the person manipulated in the object. You might receive several hundred mouse and keyboard events while the object is in memory. In the thin client world of the web, you are produce and receive data in large strings. You then pull data in and out of the database in larger chunks&#8230;a bit more suitable for procedure.</p>
<p>As for design: OO programming moves the complexity of the design from within an enclosed procedure to the programming interface. In most cases, this is actually harder to support. I have seen numerous OO projects fail because the naive OO architect created an interface that was too difficult to support. I&#8217;ve also seen many OO programs by PhD programmers fail because the OO architect squandered computer resources and found he could not optimize the system. Yes, a good OO design can go almost as fast as a good procedural design. A bad OO design can bring fast systems to a crawl.</p>
<p>I actually use a combination of OO and procedural techniques. In most cases where I use PHP, I find that procedural programming is the best option. These small programs are easier to support because the logic for the programs are in a tight defined package and they execute faster.</p>
<p>I really would not consider PHP for larger enterprise level packages that demand complex object models. I’ve been programming with procedural and object techniques for over 20 years and side with PHP programmers who wish to stay with the procedural model.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kelsey Hightower</title>
		<link>http://jacwright.com/blog/21/very-suprised/comment-page-1/#comment-10</link>
		<dc:creator>Kelsey Hightower</dc:creator>
		<pubDate>Wed, 29 Jun 2005 02:53:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.jacwright.com/blog/?p=21#comment-10</guid>
		<description>I am new to PHP and only use it for small scripts, like feed back forms and such.
I have not taken the time to learn about other ways of programming untill I ran arcoss the idea of OOP.

After reading this entry I must admit I have reason to give it some serious thought. 

Nice site by the way, and I like the way you express your views.</description>
		<content:encoded><![CDATA[<p>I am new to PHP and only use it for small scripts, like feed back forms and such.<br />
I have not taken the time to learn about other ways of programming untill I ran arcoss the idea of OOP.</p>
<p>After reading this entry I must admit I have reason to give it some serious thought. </p>
<p>Nice site by the way, and I like the way you express your views.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
