<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Why Learning Assembly is Still Important for CS Undergrads</title>
	<atom:link href="http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/</link>
	<description>By Jason Ernst</description>
	<lastBuildDate>Thu, 15 Jul 2010 16:17:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Farooq Azam</title>
		<link>http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/comment-page-1/#comment-1611</link>
		<dc:creator>Farooq Azam</dc:creator>
		<pubDate>Wed, 17 Mar 2010 09:10:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.jasonernst.com/?p=725#comment-1611</guid>
		<description>For these reasons: 
 
1) To understand how high level applications execute on a microprocessor. 
2) Useful for the development of embedded devices where the memory space is limited. 
 </description>
		<content:encoded><![CDATA[<p>For these reasons: </p>
<p>1) To understand how high level applications execute on a microprocessor.<br />
2) Useful for the development of embedded devices where the memory space is limited.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: suvarna</title>
		<link>http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/comment-page-1/#comment-1551</link>
		<dc:creator>suvarna</dc:creator>
		<pubDate>Thu, 04 Feb 2010 05:18:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.jasonernst.com/?p=725#comment-1551</guid>
		<description>Assembly isn&#039;t something I use on a daily basis, but I think if you are going to school to learn about computers, you&#039;d better study the subject in depth and come out with as many tools in your belt as you can. Besides, it&#039;s kind of fun. 
 </description>
		<content:encoded><![CDATA[<p>Assembly isn&#039;t something I use on a daily basis, but I think if you are going to school to learn about computers, you&#039;d better study the subject in depth and come out with as many tools in your belt as you can. Besides, it&#039;s kind of fun.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Kaufman</title>
		<link>http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/comment-page-1/#comment-1486</link>
		<dc:creator>Jeff Kaufman</dc:creator>
		<pubDate>Mon, 21 Dec 2009 23:31:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.jasonernst.com/?p=725#comment-1486</guid>
		<description>&quot;To me learning only high level languages without any assembly would be like skipping Newton&#8217;s physics models and going straight to quantum mechanics. You can probably describe many phenomenon much easier and better than with Newtons models, but without learning about Newton first you would not understand how quantum physics really works. You would not be convinced that certain properties are true and you would loose some of the ability to question what is really happening in some ways. It would be more difficult to extend ideas and even challenge existing paradigms. It really removes much of scientific component of program.&quot; 
 
I agree with your main point, that assembly language is useful in understanding how a program will actually run, but this analogy is really flawed.  It&#039;s a problematic enough analogy that I think it would go better in reverse: high level languages are like Newtonian physics: simple, clean, and fast to work in.  Assembly is like modern physics: messy, closer to the way things really work, harder to work with.  I don&#039;t really like either of these analogies, though.  Perhaps a better one would be between learning to do arithmetic by hand (assembly) and with a calculator (high level language)? </description>
		<content:encoded><![CDATA[<p>&quot;To me learning only high level languages without any assembly would be like skipping Newton&rsquo;s physics models and going straight to quantum mechanics. You can probably describe many phenomenon much easier and better than with Newtons models, but without learning about Newton first you would not understand how quantum physics really works. You would not be convinced that certain properties are true and you would loose some of the ability to question what is really happening in some ways. It would be more difficult to extend ideas and even challenge existing paradigms. It really removes much of scientific component of program.&quot; </p>
<p>I agree with your main point, that assembly language is useful in understanding how a program will actually run, but this analogy is really flawed.  It&#039;s a problematic enough analogy that I think it would go better in reverse: high level languages are like Newtonian physics: simple, clean, and fast to work in.  Assembly is like modern physics: messy, closer to the way things really work, harder to work with.  I don&#039;t really like either of these analogies, though.  Perhaps a better one would be between learning to do arithmetic by hand (assembly) and with a calculator (high level language)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MariJewel</title>
		<link>http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/comment-page-1/#comment-1476</link>
		<dc:creator>MariJewel</dc:creator>
		<pubDate>Wed, 16 Dec 2009 23:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.jasonernst.com/?p=725#comment-1476</guid>
		<description>Yes, I believe and agree with your post. Learning assembly is really hard. But I agree that this is the first step for CS grads. I had actually undergone this step. And thanks to your post. The message is clear. Hope the CS grads will take note of this. </description>
		<content:encoded><![CDATA[<p>Yes, I believe and agree with your post. Learning assembly is really hard. But I agree that this is the first step for CS grads. I had actually undergone this step. And thanks to your post. The message is clear. Hope the CS grads will take note of this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: catphive</title>
		<link>http://www.jasonernst.com/2009/12/02/why-learning-assembly-is-still-important-for-cs-undergrads/comment-page-1/#comment-1462</link>
		<dc:creator>catphive</dc:creator>
		<pubDate>Wed, 02 Dec 2009 19:01:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.jasonernst.com/?p=725#comment-1462</guid>
		<description>I agree assembly is handy, assuming you do some C or C++ programming, and who doesn&#039;t? Inline assembly is not that uncommon. For instance, in the older version of GCC we use at my work, you need to write assembly to do atomic variable increments and decrements for thread safe reference counting. 
 
The kernel also uses assembly in various places, like dispatching syscalls on a software interrupt. I&#039;ve had to trace a problem from python, down to the syscall layer before, so it was handy to know a little x86 in that case. 
 
Also, if you work on embedded devices, which more and more people do, you really need to be good with assembly. 
 
Assembly isn&#039;t something I use on a daily basis, but I think if you are going to school to learn about computers, you&#039;d better study the subject in depth and come out with as many tools in your belt as you can. Besides, it&#039;s kind of fun. 
 
That said, I think it&#039;s pretty pointless to learn assembly for non-extant hardware. x86 is a little crufty, but it is still easy to pick up, and practical to use. Plus there&#039;s a ton of x86 books and tools out there... and you can run your executable through your normal debugger. </description>
		<content:encoded><![CDATA[<p>I agree assembly is handy, assuming you do some C or C++ programming, and who doesn&#039;t? Inline assembly is not that uncommon. For instance, in the older version of GCC we use at my work, you need to write assembly to do atomic variable increments and decrements for thread safe reference counting.</p>
<p>The kernel also uses assembly in various places, like dispatching syscalls on a software interrupt. I&#039;ve had to trace a problem from python, down to the syscall layer before, so it was handy to know a little x86 in that case.</p>
<p>Also, if you work on embedded devices, which more and more people do, you really need to be good with assembly.</p>
<p>Assembly isn&#039;t something I use on a daily basis, but I think if you are going to school to learn about computers, you&#039;d better study the subject in depth and come out with as many tools in your belt as you can. Besides, it&#039;s kind of fun.</p>
<p>That said, I think it&#039;s pretty pointless to learn assembly for non-extant hardware. x86 is a little crufty, but it is still easy to pick up, and practical to use. Plus there&#039;s a ton of x86 books and tools out there&#8230; and you can run your executable through your normal debugger.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
