<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: To boldly go where&#8230;</title>
	<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/</link>
	<description>Ashwin's musings on technology, music and just about anything else...</description>
	<pubDate>Fri, 16 May 2008 06:55:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>

	<item>
		<title>By: ashwin</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-113</link>
		<author>ashwin</author>
		<pubDate>Wed, 17 Jan 2007 04:19:37 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-113</guid>
		<description>Mike - I'm sorry that CF seems to frustrate you as much as it does. CF 8 should ease some of these concerns. As for running enterprise sites, I would suggest that you check out Ben Forta's list of enterprise &lt;a href="http://www.forta.com/cf/using/" rel="nofollow"&gt;sites running CF&lt;/a&gt; - there are lots of them. You may find the "Business and Commerce" section of particular interest, since many of these are high volume public sites. And lest we forget, let me point out that we eat our own dogfood - Adobe.com is pretty high volume, and runs on CF.</description>
		<content:encoded><![CDATA[<p>Mike - I&#8217;m sorry that CF seems to frustrate you as much as it does. CF 8 should ease some of these concerns. As for running enterprise sites, I would suggest that you check out Ben Forta&#8217;s list of enterprise <a href="http://www.forta.com/cf/using/" rel="nofollow">sites running CF</a> - there are lots of them. You may find the &#8220;Business and Commerce&#8221; section of particular interest, since many of these are high volume public sites. And lest we forget, let me point out that we eat our own dogfood - Adobe.com is pretty high volume, and runs on CF.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike P</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-112</link>
		<author>Mike P</author>
		<pubDate>Tue, 16 Jan 2007 22:34:41 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-112</guid>
		<description>ColdFusion needs the following:

- Real-time monitoring - what's running, what's hung, what's going on. Thread-dumps and stack traces are a pain. Plus they say nothing about what happended.

- Good logging functionality. Why is my server hanging? CF logs are barely useful since they don't tell me what happened.

- Better memory configuration, i.e. JVM and Garbage Collection.

- CF is horribly weak at protecting itself. Far too many outages. Even CF 7 is like Windows NT 3.5x. Anything can kill a CF server. Seen it happen far too often.

- What's the point of "Timeout Requests after x seconds" when this doesn't work?

Adobe needs to do a far better job of making CF robust and stable before people trust it to run heavy-duty enterprise sites. They should have been doing this with CF 6. Now we have to wait for CF 8 to at least give us decent monitoring???</description>
		<content:encoded><![CDATA[<p>ColdFusion needs the following:</p>
<p>- Real-time monitoring - what&#8217;s running, what&#8217;s hung, what&#8217;s going on. Thread-dumps and stack traces are a pain. Plus they say nothing about what happended.</p>
<p>- Good logging functionality. Why is my server hanging? CF logs are barely useful since they don&#8217;t tell me what happened.</p>
<p>- Better memory configuration, i.e. JVM and Garbage Collection.</p>
<p>- CF is horribly weak at protecting itself. Far too many outages. Even CF 7 is like Windows NT 3.5x. Anything can kill a CF server. Seen it happen far too often.</p>
<p>- What&#8217;s the point of &#8220;Timeout Requests after x seconds&#8221; when this doesn&#8217;t work?</p>
<p>Adobe needs to do a far better job of making CF robust and stable before people trust it to run heavy-duty enterprise sites. They should have been doing this with CF 6. Now we have to wait for CF 8 to at least give us decent monitoring???</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ashwin</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-111</link>
		<author>ashwin</author>
		<pubDate>Fri, 08 Sep 2006 03:26:06 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-111</guid>
		<description>Thanks for the suggestions, Stacy. Damon's in Bangalore this week; I'll be sure to bring this up to see if we can do anything in this space for Scorpio.</description>
		<content:encoded><![CDATA[<p>Thanks for the suggestions, Stacy. Damon&#8217;s in Bangalore this week; I&#8217;ll be sure to bring this up to see if we can do anything in this space for Scorpio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stacy Young</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-110</link>
		<author>Stacy Young</author>
		<pubDate>Mon, 04 Sep 2006 14:50:58 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-110</guid>
		<description>I am baffled by the apparent lack of discussion on CFs scheduling capabilites. Along with CFC serialization, it's one area of the product that has yet to graduate to the Enterprise level.

What's missing?

- Scheduler needs to be cluster-aware. Define a task anywhere and have each instance updated. This can help load balance the scheduling load as well as provide fail-over for when one of more servers need to be taken down in a cluster.

- Extensible. We need to be able to store scheduler information in a JDBC datasource rather than local xml file. Many times I've wanted to either add some additional information to a scheduled item or simply relate to another database table.

- Local invocation. Why HTTP request only? If the scheduler were cluster-aware then local cfc invocation would be possible ...and most likley preferred in most instances. How many scheduled items are simply posted back to the same box?

We use CF as a reporting platform. Scheduler enhancements would close the door on competitors for a good long while!</description>
		<content:encoded><![CDATA[<p>I am baffled by the apparent lack of discussion on CFs scheduling capabilites. Along with CFC serialization, it&#8217;s one area of the product that has yet to graduate to the Enterprise level.</p>
<p>What&#8217;s missing?</p>
<p>- Scheduler needs to be cluster-aware. Define a task anywhere and have each instance updated. This can help load balance the scheduling load as well as provide fail-over for when one of more servers need to be taken down in a cluster.</p>
<p>- Extensible. We need to be able to store scheduler information in a JDBC datasource rather than local xml file. Many times I&#8217;ve wanted to either add some additional information to a scheduled item or simply relate to another database table.</p>
<p>- Local invocation. Why HTTP request only? If the scheduler were cluster-aware then local cfc invocation would be possible &#8230;and most likley preferred in most instances. How many scheduled items are simply posted back to the same box?</p>
<p>We use CF as a reporting platform. Scheduler enhancements would close the door on competitors for a good long while!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ashwin</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-109</link>
		<author>ashwin</author>
		<pubDate>Tue, 29 Aug 2006 13:27:38 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-109</guid>
		<description>Your comments are indeed of help, Brandon! Our QA-to-Engineering ratio is 1:1 on the team, and there are periods at the end of ever development cycle when everyone pitches in to do QA, but even with all that testing, there will always be a variety of real world scenarios we may miss out on.</description>
		<content:encoded><![CDATA[<p>Your comments are indeed of help, Brandon! Our QA-to-Engineering ratio is 1:1 on the team, and there are periods at the end of ever development cycle when everyone pitches in to do QA, but even with all that testing, there will always be a variety of real world scenarios we may miss out on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon Harper</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-108</link>
		<author>Brandon Harper</author>
		<pubDate>Sun, 27 Aug 2006 21:43:32 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-108</guid>
		<description>No problem Ashwin, hopefully my comments are of some help!  I forgot to revise #6 so there is a slight typo there. I meant to say that I've noticed that the creation of Java objects in CFScript is much faster than in regular CFML (it seems to avoid all of the auto-scalarizing magic and casts Java correctly without introspecting it, IIRC).

I'm not sure if that's actually true for regular components or not, but I am curious about that now.</description>
		<content:encoded><![CDATA[<p>No problem Ashwin, hopefully my comments are of some help!  I forgot to revise #6 so there is a slight typo there. I meant to say that I&#8217;ve noticed that the creation of Java objects in CFScript is much faster than in regular CFML (it seems to avoid all of the auto-scalarizing magic and casts Java correctly without introspecting it, IIRC).</p>
<p>I&#8217;m not sure if that&#8217;s actually true for regular components or not, but I am curious about that now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ashwin</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-107</link>
		<author>ashwin</author>
		<pubDate>Sun, 27 Aug 2006 10:49:11 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-107</guid>
		<description>Thanks very much for your considered comments, Brandon. This is exactly the kind of feedback we need. We do hope to  be able to address many of these issues, and more, with Scorpio.</description>
		<content:encoded><![CDATA[<p>Thanks very much for your considered comments, Brandon. This is exactly the kind of feedback we need. We do hope to  be able to address many of these issues, and more, with Scorpio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon Harper</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-106</link>
		<author>Brandon Harper</author>
		<pubDate>Sun, 27 Aug 2006 08:52:35 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-106</guid>
		<description>Ashwin:

Here are some problems I have with scalibility/stability/selling the CF platform (I work for a large public company with lots and lots of servers, etc).  Some of these are off of the top of my head, so I don't have the exact data sitting in front of me.  Anyhow... here are some constructive criticisms based on my own experiences:

1.  No built in mechanism to automagically kill threads which have been running past the execution time requested.  This is a big problem particularly when dealing with unstable 3rd party resources, such as legacy database servers.  Eventually all threads become hung over time, and the server stops serving requests.

2. ColdFusion (running under J2EE mode on JRun) seems to occupy around 2x as many threads as a normal Java application, thereby reducing the number of requests it can handle at one time.   When doing thread dumps it seems like there are tons of threads occupying resources which don't need to be.  I'd personally rather take the extra time to write an application in Java if it can handle twice as many requests given the same resources.  My boss (uber Java guy back in the day.. contributed code to the JVM, architect for the most popular phone system in the world, etc) harps on this pretty frequently...

3. ColdFusion is a bit of a management and deployment nightmare when you start getting into a large amount of servers.  I covered this more in depth a few weeks ago on my "ColdFusion 8 Wishlist"

4.  It's way too easy to write code with concurrency issues because you must var local variables.  This is the opposite of every other language I've worked with... you should have to explictly define variables in a function which /aren't/ function local, rather than the inverse being true.  I feel like I spend way too much time at work troubleshooting other people's code to find that a concurrency issue to be the problem.

5.  Simple component instantiation is way too expensive.

6.  Component instantiation in CFScript is MUCH faster than doing it using CFML.

7.  I think it's hard to sell to management for many reasons.. among them:

a) People who are only familliar with the ColdFusion of the 90's
b) Much easier to find quality .NET and Java programmers.
c) ColdFusion is a "black box" beyond those who are intimiately familliar with it.. should be more transparent to both novice developers and sysadmins.
d) Doesn't integrate as well with other existing Java applications and frameworks as touted because of old libraries and other case-by-case issues.
e) Lack of serious developer tools from Adobe.. ie.. editors, testing, monitoring, etc
f) No industry buzz about CF.  You hear stuff about Flash and Flex sometimes, but nothing seems to gain much attention from CTO's and the like as far as CF is concerned.   You also never hear about people moving TO ColdFusion from another platform, only away from it...   While we talk amongst ourselves a lot, most developers and higher roll their eyes if you mention you work with ColdFusion.</description>
		<content:encoded><![CDATA[<p>Ashwin:</p>
<p>Here are some problems I have with scalibility/stability/selling the CF platform (I work for a large public company with lots and lots of servers, etc).  Some of these are off of the top of my head, so I don&#8217;t have the exact data sitting in front of me.  Anyhow&#8230; here are some constructive criticisms based on my own experiences:</p>
<p>1.  No built in mechanism to automagically kill threads which have been running past the execution time requested.  This is a big problem particularly when dealing with unstable 3rd party resources, such as legacy database servers.  Eventually all threads become hung over time, and the server stops serving requests.</p>
<p>2. ColdFusion (running under J2EE mode on JRun) seems to occupy around 2x as many threads as a normal Java application, thereby reducing the number of requests it can handle at one time.   When doing thread dumps it seems like there are tons of threads occupying resources which don&#8217;t need to be.  I&#8217;d personally rather take the extra time to write an application in Java if it can handle twice as many requests given the same resources.  My boss (uber Java guy back in the day.. contributed code to the JVM, architect for the most popular phone system in the world, etc) harps on this pretty frequently&#8230;</p>
<p>3. ColdFusion is a bit of a management and deployment nightmare when you start getting into a large amount of servers.  I covered this more in depth a few weeks ago on my &#8220;ColdFusion 8 Wishlist&#8221;</p>
<p>4.  It&#8217;s way too easy to write code with concurrency issues because you must var local variables.  This is the opposite of every other language I&#8217;ve worked with&#8230; you should have to explictly define variables in a function which /aren&#8217;t/ function local, rather than the inverse being true.  I feel like I spend way too much time at work troubleshooting other people&#8217;s code to find that a concurrency issue to be the problem.</p>
<p>5.  Simple component instantiation is way too expensive.</p>
<p>6.  Component instantiation in CFScript is MUCH faster than doing it using CFML.</p>
<p>7.  I think it&#8217;s hard to sell to management for many reasons.. among them:</p>
<p>a) People who are only familliar with the ColdFusion of the 90&#8217;s<br />
b) Much easier to find quality .NET and Java programmers.<br />
c) ColdFusion is a &#8220;black box&#8221; beyond those who are intimiately familliar with it.. should be more transparent to both novice developers and sysadmins.<br />
d) Doesn&#8217;t integrate as well with other existing Java applications and frameworks as touted because of old libraries and other case-by-case issues.<br />
e) Lack of serious developer tools from Adobe.. ie.. editors, testing, monitoring, etc<br />
f) No industry buzz about CF.  You hear stuff about Flash and Flex sometimes, but nothing seems to gain much attention from CTO&#8217;s and the like as far as CF is concerned.   You also never hear about people moving TO ColdFusion from another platform, only away from it&#8230;   While we talk amongst ourselves a lot, most developers and higher roll their eyes if you mention you work with ColdFusion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ashwin</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-105</link>
		<author>ashwin</author>
		<pubDate>Sun, 27 Aug 2006 04:54:11 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-105</guid>
		<description>Ronan - what kinds of scalability problems have you faced? Do note that practically all of adobe.com runs on CF. See Sean's &lt;a rel="nofollow" href="http://www.corfield.org/blog/index.cfm/do/blog.entry/entry/Web_Services_ColdSpring_and_Reactor"&gt; piece&lt;/a&gt; on the web services architecture he's rolling out to get an idea of the size and complexity of the production apps that are being built with CF.

I see that the kind of createObject() + function call + attribute reference expression that you've pointed out is still an issue with CFMX 7. Thanks for pointing it out - I'll be sure to put it into our bug tracking system. On a related note, please do file any other issues and enhancement requests you have at &lt;a rel="nofollow" href="http://www.adobe.com/go/wish"&gt;www.adobe.com/go/wish&lt;/a&gt;.

Sudhaman, thanks for the suggestion; definitely sounds like that could be a good idea. I'll be sure to pass it on to &lt;a rel="nofollow" href="http://www.buntel.com"&gt;Tim&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>Ronan - what kinds of scalability problems have you faced? Do note that practically all of adobe.com runs on CF. See Sean&#8217;s <a rel="nofollow" href="http://www.corfield.org/blog/index.cfm/do/blog.entry/entry/Web_Services_ColdSpring_and_Reactor"> piece</a> on the web services architecture he&#8217;s rolling out to get an idea of the size and complexity of the production apps that are being built with CF.</p>
<p>I see that the kind of createObject() + function call + attribute reference expression that you&#8217;ve pointed out is still an issue with CFMX 7. Thanks for pointing it out - I&#8217;ll be sure to put it into our bug tracking system. On a related note, please do file any other issues and enhancement requests you have at <a rel="nofollow" href="http://www.adobe.com/go/wish">www.adobe.com/go/wish</a>.</p>
<p>Sudhaman, thanks for the suggestion; definitely sounds like that could be a good idea. I&#8217;ll be sure to pass it on to <a rel="nofollow" href="http://www.buntel.com">Tim</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ronan</title>
		<link>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-104</link>
		<author>Ronan</author>
		<pubDate>Fri, 25 Aug 2006 21:21:20 +0000</pubDate>
		<guid>http://blogs.sanmathi.org/ashwin/2006/08/21/to-boldly-go-where/#comment-104</guid>
		<description>Ashwin,

The item 1 (above) is:

carName = CreateObject("component", "Cars").init().name</description>
		<content:encoded><![CDATA[<p>Ashwin,</p>
<p>The item 1 (above) is:</p>
<p>carName = CreateObject(&#8221;component&#8221;, &#8220;Cars&#8221;).init().name</p>
]]></content:encoded>
	</item>
</channel>
</rss>
