<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comments on: Never build upon closed-source frameworks	</title>
	<atom:link href="https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/</link>
	<description>Blog of Rob Galanakis (@robgalanakis)</description>
	<lastBuildDate>Sun, 24 Jun 2012 15:35:17 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.4.1</generator>
	<item>
		<title>
		By: Rob Galanakis		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-30402</link>

		<dc:creator><![CDATA[Rob Galanakis]]></dc:creator>
		<pubDate>Sun, 24 Jun 2012 15:33:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-30402</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-30243&quot;&gt;Pablo M.&lt;/a&gt;.

No, not at all. See my comments- .NET is a proven framework, my offhand comment was about the library ecosystem around it. I&#039;m editing the post now since so many seem to have understandably took it to mean more than it said.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-30243">Pablo M.</a>.</p>
<p>No, not at all. See my comments- .NET is a proven framework, my offhand comment was about the library ecosystem around it. I&#8217;m editing the post now since so many seem to have understandably took it to mean more than it said.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Pablo M.		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-30243</link>

		<dc:creator><![CDATA[Pablo M.]]></dc:creator>
		<pubDate>Sun, 24 Jun 2012 02:04:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-30243</guid>

					<description><![CDATA[Let me see if I understood well about .Net. If I have the source code is fine but if not, switch to something else?]]></description>
			<content:encoded><![CDATA[<p>Let me see if I understood well about .Net. If I have the source code is fine but if not, switch to something else?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Dmitry		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-29641</link>

		<dc:creator><![CDATA[Dmitry]]></dc:creator>
		<pubDate>Fri, 22 Jun 2012 06:14:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-29641</guid>

					<description><![CDATA[&lt;a href=&quot;#comment-29373&quot; rel=&quot;nofollow&quot;&gt;@Arseny Kapoulkine&lt;/a&gt; 
sorry for non English: I&#039;m just want to say &quot;Hello&quot; to my ex-college =)

Арсений, привет от бывшего коллеги по Криату =) Это Дима Астапкович. Индустрия такая маленькая =)]]></description>
			<content:encoded><![CDATA[<p><a href="#comment-29373" rel="nofollow">@Arseny Kapoulkine</a><br />
sorry for non English: I&#8217;m just want to say &#8220;Hello&#8221; to my ex-college =)</p>
<p>Арсений, привет от бывшего коллеги по Криату =) Это Дима Астапкович. Индустрия такая маленькая =)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Rob Galanakis		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-29550</link>

		<dc:creator><![CDATA[Rob Galanakis]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 22:29:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-29550</guid>

					<description><![CDATA[Dmitry: Thanks, my pleasure.
Arseny: I should clarify, there is a difference between “using” and “building upon.” Using a physics or sound library is usually not “building upon.” Using Unreal 3 would be. How much work are you doing that directly deals with and extends the framework (build upon it), and how much of it is just calling library functions and putting your own interface around it (“using”  the framework). I have no problem “using” closed-source frameworks, even if they’re a bit unproven but novel, if you can replace it relatively easily. However if you’d basically have to redo all the work done so far to change it (as you would in this example), then my advice holds.

Regarding .NET- closed source DLL&#039;s have given me too much grief and if they&#039;re obfuscated you can&#039;t really get good decompiled results, even for debugging. There were 3rd party controls in HeroEngine, and one of them would create a potentially several MB string each time you queried the text displayed in a control- which meant if you wrote lots of strings to it quickly, you&#039;d get LOH fragmentation and crash! I understand the decisions but, we could certainly have optimized for this case. Lots of examples like that- they&#039;re even worse than the copy-paste controls I used to find people sneak into our codebase! Mostly its the shitty middleware providers on Windows (who provide &quot;enterprise&quot; solutions in the form of awful dlls) that I detest.

Robert: See my statements above. Regarding not having enough time- that&#039;s why I try to set down some hard and fast rules like &quot;never build upon closed source frameworks&quot; :) CAT doesn&#039;t even become an option. Now of course we are free to break the rule but it makes the worst case the expected case so of course you have time to research now.]]></description>
			<content:encoded><![CDATA[<p>Dmitry: Thanks, my pleasure.<br />
Arseny: I should clarify, there is a difference between “using” and “building upon.” Using a physics or sound library is usually not “building upon.” Using Unreal 3 would be. How much work are you doing that directly deals with and extends the framework (build upon it), and how much of it is just calling library functions and putting your own interface around it (“using”  the framework). I have no problem “using” closed-source frameworks, even if they’re a bit unproven but novel, if you can replace it relatively easily. However if you’d basically have to redo all the work done so far to change it (as you would in this example), then my advice holds.</p>
<p>Regarding .NET- closed source DLL&#8217;s have given me too much grief and if they&#8217;re obfuscated you can&#8217;t really get good decompiled results, even for debugging. There were 3rd party controls in HeroEngine, and one of them would create a potentially several MB string each time you queried the text displayed in a control- which meant if you wrote lots of strings to it quickly, you&#8217;d get LOH fragmentation and crash! I understand the decisions but, we could certainly have optimized for this case. Lots of examples like that- they&#8217;re even worse than the copy-paste controls I used to find people sneak into our codebase! Mostly its the shitty middleware providers on Windows (who provide &#8220;enterprise&#8221; solutions in the form of awful dlls) that I detest.</p>
<p>Robert: See my statements above. Regarding not having enough time- that&#8217;s why I try to set down some hard and fast rules like &#8220;never build upon closed source frameworks&#8221; :) CAT doesn&#8217;t even become an option. Now of course we are free to break the rule but it makes the worst case the expected case so of course you have time to research now.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Arseny Kapoulkine		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-29373</link>

		<dc:creator><![CDATA[Arseny Kapoulkine]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 13:41:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-29373</guid>

					<description><![CDATA[While there is some truth to your statement, .NET in particular is proven and sort of comes with a source (there are disassembly tools like ILSpy - the source they give is very good - and the shared source initiative that can get you the original source code).

Ultimately, open/closed source is just another factor to take into consideration when choosing middleware. It is an important factor (in my book), but it is not something that unequivocally determines the winner. I.e. the choice between closed-source FMOD and open-source Audiere usually boils down to licensing/features, not to source availability.

Of course, source availability also affects the price (free open-source libraries / expensive source licenses for otherwise appropriately priced middleware) and the cost (support, etc.) - still, it is a factor, not the factor.]]></description>
			<content:encoded><![CDATA[<p>While there is some truth to your statement, .NET in particular is proven and sort of comes with a source (there are disassembly tools like ILSpy &#8211; the source they give is very good &#8211; and the shared source initiative that can get you the original source code).</p>
<p>Ultimately, open/closed source is just another factor to take into consideration when choosing middleware. It is an important factor (in my book), but it is not something that unequivocally determines the winner. I.e. the choice between closed-source FMOD and open-source Audiere usually boils down to licensing/features, not to source availability.</p>
<p>Of course, source availability also affects the price (free open-source libraries / expensive source licenses for otherwise appropriately priced middleware) and the cost (support, etc.) &#8211; still, it is a factor, not the factor.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Dmitry		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-29280</link>

		<dc:creator><![CDATA[Dmitry]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 07:36:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-29280</guid>

					<description><![CDATA[&lt;a href=&quot;#comment-29241&quot; rel=&quot;nofollow&quot;&gt;@Dmitry&lt;/a&gt; 
Heh, sometimes I just forget to check my messages for misspelling =(]]></description>
			<content:encoded><![CDATA[<p><a href="#comment-29241" rel="nofollow">@Dmitry</a><br />
Heh, sometimes I just forget to check my messages for misspelling =(</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Dmitry		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-29241</link>

		<dc:creator><![CDATA[Dmitry]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 05:34:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-29241</guid>

					<description><![CDATA[Another excellent essence of experience and wisdom, Rob. Thanks for putting it all together. 

BTW I have change the studio couple oа weeks ago, and I&#039;m thinking about your GDC talk about the culture all the time. That was and is really true.]]></description>
			<content:encoded><![CDATA[<p>Another excellent essence of experience and wisdom, Rob. Thanks for putting it all together. </p>
<p>BTW I have change the studio couple oа weeks ago, and I&#8217;m thinking about your GDC talk about the culture all the time. That was and is really true.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: robert		</title>
		<link>https://www.robg3d.com/2012/06/never-build-upon-closed-source-frameworks/#comment-29208</link>

		<dc:creator><![CDATA[robert]]></dc:creator>
		<pubDate>Thu, 21 Jun 2012 02:35:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.robg3d.com/?p=991#comment-29208</guid>

					<description><![CDATA[could just say never build on frameworks, although it wouldn&#039;t be very practical ;) 

I think open source is not so much the issue here. There&#039;s many open source projects which, in theory, are serviceable by their users, but in practice are just too complex/advanced to do so, unless the problem is superficial or can be pinpointed easily and has few dependencies.

The issue I see here is: how much do you want to depend on 3rd parties?

Pick your frameworks, libraries and core technology carefully. Think it through for all your dependencies. Who maintains it? How long has it been around? How long will it be around? Has the feature changed significantly in the past? Is it an active project? Could you compile / fix it yourself (to what degree?), is there a community of users? Are there alternatives? Anyone else in your company has experience with it? How much functionality of the framework/library do you need? Can you write the required functions yourself? Is it portable (to older/newer versions of another framework/OS/target app)?

Downside: answering all this requires research and time and often we don&#039;t have that. Short term time saving (well you turned to CAT to begin with ;) ) seems often more important than long consequences.
(especially when the fire is burning and they&#039;re calling the tech art firefighters :/ ).]]></description>
			<content:encoded><![CDATA[<p>could just say never build on frameworks, although it wouldn&#8217;t be very practical ;) </p>
<p>I think open source is not so much the issue here. There&#8217;s many open source projects which, in theory, are serviceable by their users, but in practice are just too complex/advanced to do so, unless the problem is superficial or can be pinpointed easily and has few dependencies.</p>
<p>The issue I see here is: how much do you want to depend on 3rd parties?</p>
<p>Pick your frameworks, libraries and core technology carefully. Think it through for all your dependencies. Who maintains it? How long has it been around? How long will it be around? Has the feature changed significantly in the past? Is it an active project? Could you compile / fix it yourself (to what degree?), is there a community of users? Are there alternatives? Anyone else in your company has experience with it? How much functionality of the framework/library do you need? Can you write the required functions yourself? Is it portable (to older/newer versions of another framework/OS/target app)?</p>
<p>Downside: answering all this requires research and time and often we don&#8217;t have that. Short term time saving (well you turned to CAT to begin with ;) ) seems often more important than long consequences.<br />
(especially when the fire is burning and they&#8217;re calling the tech art firefighters :/ ).</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
