<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki.apidesign.org/skins/common/feed.css?116"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.apidesign.org/index.php?action=history&amp;feed=atom&amp;title=Gradle</id>
		<title>Gradle - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.apidesign.org/index.php?action=history&amp;feed=atom&amp;title=Gradle"/>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;action=history"/>
		<updated>2026-05-01T17:48:58Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.12.0rc1</generator>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8306&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Post-Mortem */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8306&amp;oldid=prev"/>
				<updated>2015-03-22T08:52:29Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Post-Mortem&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:52, 22 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Post-Mortem ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Post-Mortem ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle|This essay]] attracted attention of [[Gradle]] community and [[I]] received some valuable feedback. [[I]] don't think it can change anything on the points raised in [[Gradle|this text]] as facts are facts, but it is useful to have wider context and understand motivation. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle|This essay]] attracted attention of [[Gradle]] community &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;(for example [http://delivervalue.blogspot.co.uk/2015/03/so-what-about-this-halting-problem-in.html Schalk Cronjé]'s post) &lt;/ins&gt;and [[I]] received some valuable feedback. [[I]] don't think it can change anything on the points raised in [[Gradle|this text]] as facts are facts, but it is useful to have wider context and understand motivation. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The road to hell is paved by best intentions - and [[I]] am sure [[Gradle]] guys know it. If you listen to whole (or just jump to 48th minute) [http://www.infoq.com/presentations/build-system-concepts presentation by Hans Dockter], the father of [[Gradle]], you will notice. Let me quote: &amp;quot;We just don't know if someone calls {{JDK|java/lang|System}}.currentTimeMillis() here... This is I would say the biggest design flaw!&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The road to hell is paved by best intentions - and [[I]] am sure [[Gradle]] guys know it. If you listen to whole (or just jump to 48th minute) [http://www.infoq.com/presentations/build-system-concepts presentation by Hans Dockter], the father of [[Gradle]], you will notice. Let me quote: &amp;quot;We just don't know if someone calls {{JDK|java/lang|System}}.currentTimeMillis() here... This is I would say the biggest design flaw!&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;See? [[I]] am not making anything up. The fact that [[Groovy]] is [[wikipedia:Turing_complete|Turing complete]] is the biggest design flaw according to father of [[Gradle]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;See? [[I]] am not making anything up. The fact that [[Groovy]] is [[wikipedia:Turing_complete|Turing complete]] is the biggest design flaw according to father of [[Gradle]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8277&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Cloud and Security Issues */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8277&amp;oldid=prev"/>
				<updated>2015-03-16T14:12:59Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Cloud and Security Issues&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 14:12, 16 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Maybe you are a [[Gradle]] fan and nothing mentioned so far convinced you. At the end, what is wrong on having build system subject of [[Wikipedia:halting_problem|unidentified complexity]]. You run it and when it computes the classpath, you write it down into static file which can then be consumed by various IDEs. Yes, this is possible, but it is upside down! Moreover unsecure.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Maybe you are a [[Gradle]] fan and nothing mentioned so far convinced you. At the end, what is wrong on having build system subject of [[Wikipedia:halting_problem|unidentified complexity]]. You run it and when it computes the classpath, you write it down into static file which can then be consumed by various IDEs. Yes, this is possible, but it is upside down! Moreover unsecure.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant or [[Groovy]] (in spite [[I]] would rather advocate using [[AnnotationProcessor]]s as much as possible). But the core aspects of the project should be understandable without running any code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;or [[Groovy]] (in spite [[I]] would rather advocate using [[AnnotationProcessor]]s as much as possible). But the core aspects of the project should be understandable without running any code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another issue is CPU time: there are tons of services around the globe ([[wikipedia:Ohloh|Ohloh]] comes to my mind) that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another issue is CPU time: there are tons of services around the globe ([[wikipedia:Ohloh|Ohloh]] comes to my mind) that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8276&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Post-Mortem */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8276&amp;oldid=prev"/>
				<updated>2015-03-16T12:05:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Post-Mortem&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:05, 16 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle|This essay]] attracted attention of [[Gradle]] community and [[I]] received some valuable feedback. [[I]] don't think it can change anything on the points raised in [[Gradle|this text]] as facts are facts, but it is useful to have wider context and understand motivation. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle|This essay]] attracted attention of [[Gradle]] community and [[I]] received some valuable feedback. [[I]] don't think it can change anything on the points raised in [[Gradle|this text]] as facts are facts, but it is useful to have wider context and understand motivation. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The road to hell is paved by best intentions - and [[I]] am sure [[Gradle]] guys know it. If you listen to whole (or just jump to 48th minute) presentation by Hans Dockter, the father of [[Gradle]], you will notice. Let me quote: &amp;quot;We just don't know if someone calls {{JDK|java/lang|System}}.currentTimeMillis() here... This is I would say the biggest design flaw!&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The road to hell is paved by best intentions - and [[I]] am sure [[Gradle]] guys know it. If you listen to whole (or just jump to 48th minute) &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[http://www.infoq.com/presentations/build-system-concepts &lt;/ins&gt;presentation by Hans Dockter&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;, the father of [[Gradle]], you will notice. Let me quote: &amp;quot;We just don't know if someone calls {{JDK|java/lang|System}}.currentTimeMillis() here... This is I would say the biggest design flaw!&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;See? [[I]] am not making anything up. The fact that [[Groovy]] is [[wikipedia:Turing_complete|Turing complete]] is the biggest design flaw according to father of [[Gradle]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;See? [[I]] am not making anything up. The fact that [[Groovy]] is [[wikipedia:Turing_complete|Turing complete]] is the biggest design flaw according to father of [[Gradle]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8275&amp;oldid=prev</id>
		<title>JaroslavTulach at 12:04, 16 March 2015</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8275&amp;oldid=prev"/>
				<updated>2015-03-16T12:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:04, 16 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle]] might have fixed few [[Maven]] bugs, but the flaw introduced in [[Gradle]]'s core ranks [[Gradle]] along [[Ant]]. Into [[Ant]]-age!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle]] might have fixed few [[Maven]] bugs, but the flaw introduced in [[Gradle]]'s core ranks [[Gradle]] along [[Ant]]. Into [[Ant]]-age!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== Post-Mortem ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Gradle|This essay]] attracted attention of [[Gradle]] community and [[I]] received some valuable feedback. [[I]] don't think it can change anything on the points raised in [[Gradle|this text]] as facts are facts, but it is useful to have wider context and understand motivation. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The road to hell is paved by best intentions - and [[I]] am sure [[Gradle]] guys know it. If you listen to whole (or just jump to 48th minute) presentation by Hans Dockter, the father of [[Gradle]], you will notice. Let me quote: &amp;quot;We just don't know if someone calls {{JDK|java/lang|System}}.currentTimeMillis() here... This is I would say the biggest design flaw!&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;See? [[I]] am not making anything up. The fact that [[Groovy]] is [[wikipedia:Turing_complete|Turing complete]] is the biggest design flaw according to father of [[Gradle]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8274&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Summary */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8274&amp;oldid=prev"/>
				<updated>2015-03-15T16:22:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Summary&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 16:22, 15 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 48:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Summary ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Summary ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;My friends keep talking about the greatness of [[Gradle]] and when I bring the problem of [[Wikipedia:Turing_Completeness|Turing completeness]] - e.g. [[Wikipedia:Halting_Problem|halting problem]] - they just nod their heads, admit &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;it &lt;/del&gt;is a problem, but continue to use [[Gradle]]. Fine with me. By writing this essay I don't expect people to stop using [[Gradle]] - [[I]] just want them to stop claiming [[Gradle]] is superior to [[Maven]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;My friends keep talking about the greatness of [[Gradle]] and when &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;I&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;bring the problem of [[Wikipedia:Turing_Completeness|Turing completeness]] - e.g. [[Wikipedia:Halting_Problem|halting problem]] - they just nod their heads, admit &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;tooling &lt;/ins&gt;is a problem, but continue to use [[Gradle]]. Fine with me. By writing this essay &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;I&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;don't expect people to stop using [[Gradle]] - [[I]] just want them to stop claiming [[Gradle]] is superior to [[Maven]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle]] might have fixed few [[Maven]] bugs, but the flaw introduced in [[Gradle]]'s core ranks [[Gradle]] along [[Ant]]. Into [[Ant]]-age!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle]] might have fixed few [[Maven]] bugs, but the flaw introduced in [[Gradle]]'s core ranks [[Gradle]] along [[Ant]]. Into [[Ant]]-age!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8273&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Cloud and Security Issues */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8273&amp;oldid=prev"/>
				<updated>2015-03-15T16:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Cloud and Security Issues&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 16:20, 15 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Cloud and Security Issues ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Cloud and Security Issues ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Maybe you are a [[Gradle]] fan and nothing mentioned so far convinced you. At the end, what is wrong on having build system subject of unidentified complexity. You &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;can &lt;/del&gt;run it and when it computes the classpath, you &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;can &lt;/del&gt;write it down into static file which can then be consumed by various IDEs. Yes, this is possible, but it is upside down! Moreover unsecure.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Maybe you are a [[Gradle]] fan and nothing mentioned so far convinced you. At the end, what is wrong on having build system subject of &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Wikipedia:halting_problem|&lt;/ins&gt;unidentified complexity&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;. You run it and when it computes the classpath, you write it down into static file which can then be consumed by various IDEs. Yes, this is possible, but it is upside down! Moreover unsecure.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant]] (&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;or &lt;/del&gt;[[&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Groovy&lt;/del&gt;]]). But the core aspects of the project should be understandable without running code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;or [[Groovy&lt;/ins&gt;]] (&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;in spite &lt;/ins&gt;[[&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;I]] would rather advocate using [[AnnotationProcessor&lt;/ins&gt;]]&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;s as much as possible&lt;/ins&gt;). But the core aspects of the project should be understandable without running &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;any &lt;/ins&gt;code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another issue is CPU time: there are tons of services around the globe ([[wikipedia:Ohloh|Ohloh]] comes to my mind) that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another issue is CPU time: there are tons of services around the globe ([[wikipedia:Ohloh|Ohloh]] comes to my mind) that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8271&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Cloud and Security Issues */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8271&amp;oldid=prev"/>
				<updated>2015-03-15T15:53:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Cloud and Security Issues&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:53, 15 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant]] (or [[Groovy]]). But the core aspects of the project should be understandable without running code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Generic information like classpath, etc. should be extractable without running unknown code. So the core of the build configuration should in fact be those files consumed by IDEs. If there is anything else needed for the actual build, it could be written in [[Ant]] (or [[Groovy]]). But the core aspects of the project should be understandable without running code. Because you don't want your IDE to hack your computer after you checkout a [[GitHub]] project and browse to its sources or open one of its files in editor!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another issue is CPU time: there &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;is &lt;/del&gt;tons of services around the globe that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Another issue is CPU time: there &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;are &lt;/ins&gt;tons of services around the globe &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;([[wikipedia:Ohloh|Ohloh]] comes to my mind) &lt;/ins&gt;that provide you indexing services over source code. Usually they just analyze commits, do static analysis of the code, etc. But there is nothing stopping them to understand structure of [[Maven]] projects and know cross-dependencies and resolve symbols to proper fully qualified names. However nobody is going to offer such service for generic [[Gradle]] projects! Because in order to analyze them you need to run foreign computation and that can eat enormous amount of CPU and do potentially anything and nobody is willing to offer free computation time so easily to everyone!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle]] is designed to be insecure and hackers (real ones, not coders) have to love that!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Gradle]] is designed to be insecure and hackers (real ones, not coders) have to love that!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;== Summary ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;My friends keep talking about the greatness of [[Gradle]] and when I bring the problem of [[Wikipedia:Turing_Completeness|Turing completeness]] - e.g. [[Wikipedia:Halting_Problem|halting problem]] - they just nod their heads, admit it is a problem, but continue to use [[Gradle]]. Fine with me. By writing this essay I don't expect people to stop using [[Gradle]] - [[I]] just want them to stop claiming [[Gradle]] is superior to [[Maven]].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Gradle]] might have fixed few [[Maven]] bugs, but the flaw introduced in [[Gradle]]'s core ranks [[Gradle]] along [[Ant]]. Into [[Ant]]-age!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8270&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Hacking vs. Defining Patterns */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8270&amp;oldid=prev"/>
				<updated>2015-03-15T15:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Hacking vs. Defining Patterns&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:37, 15 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;We have all heard about [[wikipedia:Design_pattern|design patterns]] and how useful they are. [[Maven]] in fact excels in defining such patterns: Do you want to compile using [[JavaC]]? Well, there is the ''maven-compiler-plugin'' - the plugin is in fact pattern - it is a solution to recurring problem. But rather than trying to recognize the ''pattern'' from a ([[Java]] or [[Groovy]]) source code, you directly speak the pattern's [[language]] - you name it in the pom file and declaratively adjust it to suite your particular use-case. The fact that one has to use different [[language]] (well over hyped [[XML]]) to express a use of a ''pattern'' is in fact perfect - one can stays [[clueless]] - and is not tempted to hack.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;We have all heard about [[wikipedia:Design_pattern|design patterns]] and how useful they are. [[Maven]] in fact excels in defining such patterns: Do you want to compile using [[JavaC]]? Well, there is the ''maven-compiler-plugin'' - the plugin is in fact pattern - it is a solution to recurring problem. But rather than trying to recognize the ''pattern'' from a ([[Java]] or [[Groovy]]) source code, you directly speak the pattern's [[language]] - you name it in the pom file and declaratively adjust it to suite your particular use-case. The fact that one has to use different [[language]] (well over hyped [[XML]]) to express a use of a ''pattern'' is in fact perfect - one can stays [[clueless]] - and is not tempted to hack.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Of course, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;something there is no &lt;/del&gt;existing &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;pattern &lt;/del&gt;(e.g. [[Maven]] &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;plugin&lt;/del&gt;) &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;to use&lt;/del&gt;. What one has to do? Define new pattern! E.g. create new [[Maven]] plugin - e.g. solution to recurrent problem - code it in [[Java]], but hide the code and expose only its declarative configuration. How structured! How architectural! How much better than classical hacking!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Of course, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;some things cannot be achieved by using &lt;/ins&gt;existing &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;patterns &lt;/ins&gt;(e.g. [[Maven]] &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;plugins&lt;/ins&gt;). What one has to do &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;then&lt;/ins&gt;? Define new pattern! E.g. create new [[Maven]] plugin - e.g. solution to recurrent problem - code it in [[Java]], but hide the code and expose only its declarative configuration. How structured! How architectural! How much better than classical hacking! &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Of course one can run into the [[wikipedia:halting_problem|halting problem]] issues in [[Java]], but it is far easier to verify correctness of implementation of few patterns than check correctness of every build script.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Because we all know what you do when ready made solution cannot be found in [[Ant]] and alas, also in [[Gradle]]: you hack. You use all the power of [[wikipedia:Turing_completeness|complete programming language]] around to write a solution. Thinking about patterns comes later - if ever! As a result majority of [[Gradle]] build scripts will have some non-standard customization.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Because we all know what you do when ready made solution cannot be found in [[Ant]] and alas, also in [[Gradle]]: you hack. You use all the power of [[wikipedia:Turing_completeness|complete programming language]] around to write a solution. Thinking about patterns comes later - if ever! As a result majority of [[Gradle]] build scripts will have some non-standard customization.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8269&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Hacking vs. Defining Patterns */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8269&amp;oldid=prev"/>
				<updated>2015-03-15T15:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Hacking vs. Defining Patterns&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:30, 15 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;We have all heard about [[wikipedia:Design_pattern|design patterns]] and how useful they are. [[Maven]] in fact excels in defining such patterns: Do you want to compile using [[JavaC]]? Well, there is the ''maven-compiler-plugin'' - the plugin is in fact pattern - it is a solution to recurring problem. But rather than trying to recognize the ''pattern'' from a ([[Java]] or [[Groovy]]) source code, you directly speak the pattern's [[language]] - you name it in the pom file and declaratively adjust it to suite your particular use-case. The fact that has to use different language (well [[XML]]) to express a use of a ''pattern'' is in fact perfect - one can &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;stay more &lt;/del&gt;[[clueless]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;We have all heard about [[wikipedia:Design_pattern|design patterns]] and how useful they are. [[Maven]] in fact excels in defining such patterns: Do you want to compile using [[JavaC]]? Well, there is the ''maven-compiler-plugin'' - the plugin is in fact pattern - it is a solution to recurring problem. But rather than trying to recognize the ''pattern'' from a ([[Java]] or [[Groovy]]) source code, you directly speak the pattern's [[language]] - you name it in the pom file and declaratively adjust it to suite your particular use-case. The fact that &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;one &lt;/ins&gt;has to use different &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;language&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;(well &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;over hyped &lt;/ins&gt;[[XML]]) to express a use of a ''pattern'' is in fact perfect - one can &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;stays &lt;/ins&gt;[[clueless]] &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;- and is not tempted to hack&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Of course, something there is no existing pattern (e.g. [[Maven]] plugin) to use. What one has to do? Define new pattern! E.g. create new [[Maven]] plugin - e.g. solution to recurrent problem - code it in [[Java]], but hide the code and expose only its declarative configuration. How structured! How architectural! How much better than classical hacking!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Of course, something there is no existing pattern (e.g. [[Maven]] plugin) to use. What one has to do? Define new pattern! E.g. create new [[Maven]] plugin - e.g. solution to recurrent problem - code it in [[Java]], but hide the code and expose only its declarative configuration. How structured! How architectural! How much better than classical hacking!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	<entry>
		<id>http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8268&amp;oldid=prev</id>
		<title>JaroslavTulach: /* Hacking vs. Defining Patterns */</title>
		<link rel="alternate" type="text/html" href="http://wiki.apidesign.org/index.php?title=Gradle&amp;diff=8268&amp;oldid=prev"/>
				<updated>2015-03-15T15:27:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Hacking vs. Defining Patterns&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:27, 15 March 2015&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;We have all heard about [[wikipedia:Design_pattern|design patterns]] and how useful they are. [[Maven]] in fact excels in defining such patterns: Do you want to compile using [[JavaC]]? Well, there is the ''maven-compiler-plugin'' - the plugin is in fact pattern - it is a solution to recurring problem. But rather than trying to recognize the ''pattern'' from a ([[Java]]) source code, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;just &lt;/del&gt;declaratively adjust it to your particular use-case. The fact that has to use different language (well [[XML]]) to express a use of a ''pattern'' is in fact perfect - one can stay more [[clueless]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;We have all heard about [[wikipedia:Design_pattern|design patterns]] and how useful they are. [[Maven]] in fact excels in defining such patterns: Do you want to compile using [[JavaC]]? Well, there is the ''maven-compiler-plugin'' - the plugin is in fact pattern - it is a solution to recurring problem. But rather than trying to recognize the ''pattern'' from a ([[Java&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;]] or [[Groovy&lt;/ins&gt;]]) source code, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;you directly speak the pattern's [[language]] - you name it in the pom file and &lt;/ins&gt;declaratively adjust it to &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;suite &lt;/ins&gt;your particular use-case. The fact that has to use different language (well [[XML]]) to express a use of a ''pattern'' is in fact perfect - one can stay more [[clueless]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Of course, something there is no existing pattern (e.g. [[Maven]] plugin) to use. What one has to do? Define new pattern! E.g. create new [[Maven]] plugin - e.g. solution to recurrent problem - code it in [[Java]], but hide the code and expose only its declarative configuration. How structured! How architectural! How much better than classical hacking!&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Of course, something there is no existing pattern (e.g. [[Maven]] plugin) to use. What one has to do? Define new pattern! E.g. create new [[Maven]] plugin - e.g. solution to recurrent problem - code it in [[Java]], but hide the code and expose only its declarative configuration. How structured! How architectural! How much better than classical hacking!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaroslavTulach</name></author>	</entry>

	</feed>