<?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: A New Reason to Not use Global Variables</title>
	<atom:link href="http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/</link>
	<description>Web Application Engineers</description>
	<lastBuildDate>Mon, 05 Dec 2011 17:24:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Steve Nelson</title>
		<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/comment-page-1/#comment-621</link>
		<dc:creator>Steve Nelson</dc:creator>
		<pubDate>Thu, 24 Jan 2008 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.webapper.net/blog/index.cfm/2008/6/30/A-New-Reason-to-Not-use-Global-Variables#comment-621</guid>
		<description>Well I&#039;ve come to the conclusion that frameworks have become so utterly complex that they no longer provide a reasonable return on investment. My initial reason for Fusebox was to make it so new developers could easily jump into a project. Now that almost all frameworks follow the advice of computer scientists, you have to hold a doctorate in CS to easily jump into a project. IMO that&#039;s bad. No, it&#039;s atrocious.

CFCs have been a boon to frameworks, but they are SO powerful that at the same time they have made it easy to complicate a codebase. This quickly becomes counter productive.

Who knows? Not me.</description>
		<content:encoded><![CDATA[<p>Well I&#8217;ve come to the conclusion that frameworks have become so utterly complex that they no longer provide a reasonable return on investment. My initial reason for Fusebox was to make it so new developers could easily jump into a project. Now that almost all frameworks follow the advice of computer scientists, you have to hold a doctorate in CS to easily jump into a project. IMO that&#8217;s bad. No, it&#8217;s atrocious.</p>
<p>CFCs have been a boon to frameworks, but they are SO powerful that at the same time they have made it easy to complicate a codebase. This quickly becomes counter productive.</p>
<p>Who knows? Not me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Brunt</title>
		<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/comment-page-1/#comment-622</link>
		<dc:creator>Mike Brunt</dc:creator>
		<pubDate>Thu, 24 Jan 2008 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.webapper.net/blog/index.cfm/2008/6/30/A-New-Reason-to-Not-use-Global-Variables#comment-622</guid>
		<description>Steve if anyone can speak with authority on this it is you and I agree with you 100% we have gone off at a terrible tangent regarding frameworks.  I have spent the past 7-8 years troubleshooting CF and JRun apps.  Having a convoluted framework (which most now are) makes pinning down source problems near impossible and to be really heretical here; cfc&#039;s extending cfc&#039;s extending cfc&#039;s is really nothing much different to multi-layered cfinludes in my opinion.</description>
		<content:encoded><![CDATA[<p>Steve if anyone can speak with authority on this it is you and I agree with you 100% we have gone off at a terrible tangent regarding frameworks.  I have spent the past 7-8 years troubleshooting CF and JRun apps.  Having a convoluted framework (which most now are) makes pinning down source problems near impossible and to be really heretical here; cfc&#8217;s extending cfc&#8217;s extending cfc&#8217;s is really nothing much different to multi-layered cfinludes in my opinion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Nelson</title>
		<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/comment-page-1/#comment-623</link>
		<dc:creator>Steve Nelson</dc:creator>
		<pubDate>Thu, 24 Jan 2008 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.webapper.net/blog/index.cfm/2008/6/30/A-New-Reason-to-Not-use-Global-Variables#comment-623</guid>
		<description>I agree Mike. Extending CFCs is one of the big reasons code becomes hard to follow. It quickly becomes confusing as to where the code is. 

The second thing I think makes code hard to follow is not knowing where a variable was set. That&#039;s why I&#039;ve become focused on passing EVERY variable into a method through an argument. It seems obvious, but so often it isn&#039;t done. Variables come in from request and session scopes, then you have to hunt down how that works.

The third thing that makes code hard to follow are scattered directory structures. Frameworks tend to ease this pain a bit. 

The fourth thing is caching. Jebus does caching ever make debugging a PITA unless you wrote the code to begin with! Caching is often an unfortunate reality.

I can come up with another few dozen things. I&#039;m sure one of these days I will.</description>
		<content:encoded><![CDATA[<p>I agree Mike. Extending CFCs is one of the big reasons code becomes hard to follow. It quickly becomes confusing as to where the code is. </p>
<p>The second thing I think makes code hard to follow is not knowing where a variable was set. That&#8217;s why I&#8217;ve become focused on passing EVERY variable into a method through an argument. It seems obvious, but so often it isn&#8217;t done. Variables come in from request and session scopes, then you have to hunt down how that works.</p>
<p>The third thing that makes code hard to follow are scattered directory structures. Frameworks tend to ease this pain a bit. </p>
<p>The fourth thing is caching. Jebus does caching ever make debugging a PITA unless you wrote the code to begin with! Caching is often an unfortunate reality.</p>
<p>I can come up with another few dozen things. I&#8217;m sure one of these days I will.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Brunt</title>
		<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/comment-page-1/#comment-620</link>
		<dc:creator>Mike Brunt</dc:creator>
		<pubDate>Wed, 23 Jan 2008 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.webapper.net/blog/index.cfm/2008/6/30/A-New-Reason-to-Not-use-Global-Variables#comment-620</guid>
		<description>This is an interesting thread and I wonder what your collective thoughts are on frameworks that reside in the Application scope in ColdFusion?</description>
		<content:encoded><![CDATA[<p>This is an interesting thread and I wonder what your collective thoughts are on frameworks that reside in the Application scope in ColdFusion?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Abdul Qabiz</title>
		<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/comment-page-1/#comment-618</link>
		<dc:creator>Abdul Qabiz</dc:creator>
		<pubDate>Tue, 22 Jan 2008 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.webapper.net/blog/index.cfm/2008/6/30/A-New-Reason-to-Not-use-Global-Variables#comment-618</guid>
		<description>As you mentioned, it&#039;s not good idea to pollute global namespace. It might cause problem in garbage-collection also, if you use global variables to refer to object, you have to keep track of all such variables and set the reference to null.. 

Whether it&#039;s JavaScript/ActionScript, both use ReferenceCount method along with mark-and-sweep (used in browser-dom)...

Having your own namespace also creates global var, but just one which you can control...

-abdul</description>
		<content:encoded><![CDATA[<p>As you mentioned, it&#8217;s not good idea to pollute global namespace. It might cause problem in garbage-collection also, if you use global variables to refer to object, you have to keep track of all such variables and set the reference to null.. </p>
<p>Whether it&#8217;s JavaScript/ActionScript, both use ReferenceCount method along with mark-and-sweep (used in browser-dom)&#8230;</p>
<p>Having your own namespace also creates global var, but just one which you can control&#8230;</p>
<p>-abdul</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Nelson</title>
		<link>http://www.webapper.com/blog/index.php/2008/01/22/a-new-reason-to-not-use-global-variables/comment-page-1/#comment-619</link>
		<dc:creator>Steve Nelson</dc:creator>
		<pubDate>Tue, 22 Jan 2008 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.webapper.net/blog/index.cfm/2008/6/30/A-New-Reason-to-Not-use-Global-Variables#comment-619</guid>
		<description>Yeah, the namespace argument is pretty weak, like you said you can just make a top level variable.

But that&#039;s not why I dislike global variables. I&#039;m suggesting a new reason for not using global variables, unit testing. It&#039;s a bigger problem IMO than the namespace issue.</description>
		<content:encoded><![CDATA[<p>Yeah, the namespace argument is pretty weak, like you said you can just make a top level variable.</p>
<p>But that&#8217;s not why I dislike global variables. I&#8217;m suggesting a new reason for not using global variables, unit testing. It&#8217;s a bigger problem IMO than the namespace issue.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

