<?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 for Programming for Scientists</title>
	<atom:link href="http://www.programming4scientists.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programming4scientists.com</link>
	<description>Software development wisdom and common-sense for the scientist-programmer</description>
	<lastBuildDate>Mon, 14 Nov 2011 14:47:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>Comment on &#8220;Should I switch to Python?&#8221; by Jack</title>
		<link>http://www.programming4scientists.com/2009/11/17/should-i-switch-to-python/comment-page-1/#comment-520</link>
		<dc:creator>Jack</dc:creator>
		<pubDate>Mon, 14 Nov 2011 14:47:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=613#comment-520</guid>
		<description>Just to pipe in here quickly, I have recently made the switch from Matlab to Python with Numpy/Scipy and MatplotLib), mainly for things like signal processing and related...

Some of the most important advantages noone has pointed out yet are:
Operating System Independent - Now I know Matlab has versions for Windows, *nix and OSX, but an institution will not always pay for licences for all three. At least with Python you can easily switch between systems at no additional cost. I guess this would fall under the category of free though, but the convenience that comes with the possibility to work on whatever operating system you happen to boot up your machine in is worth considering.

Also, once you write your script it&#039;s a real program. Often people will use Matlab to prototype something up and then, once verified they will implement it again in another language. If you implement it in python to start with, it&#039;s already a real program which just needs to be altered. The same script can be used as a command line script, can be expanded with a GUI, or can be used as the back-end for a web application. I know Matlab has the GUIDE and a websever but they are Matlab specific. At least Python has bindings for GUI frameworks you may already use, e.g. wx, QT etc...

I may be biased since I am a fan of open-source. I will say this though, I haven&#039;t looked back since I first took the plunge.

YMMV though,

Cheers,

Jack</description>
		<content:encoded><![CDATA[<p>Just to pipe in here quickly, I have recently made the switch from Matlab to Python with Numpy/Scipy and MatplotLib), mainly for things like signal processing and related&#8230;</p>
<p>Some of the most important advantages noone has pointed out yet are:<br />
Operating System Independent &#8211; Now I know Matlab has versions for Windows, *nix and OSX, but an institution will not always pay for licences for all three. At least with Python you can easily switch between systems at no additional cost. I guess this would fall under the category of free though, but the convenience that comes with the possibility to work on whatever operating system you happen to boot up your machine in is worth considering.</p>
<p>Also, once you write your script it&#8217;s a real program. Often people will use Matlab to prototype something up and then, once verified they will implement it again in another language. If you implement it in python to start with, it&#8217;s already a real program which just needs to be altered. The same script can be used as a command line script, can be expanded with a GUI, or can be used as the back-end for a web application. I know Matlab has the GUIDE and a websever but they are Matlab specific. At least Python has bindings for GUI frameworks you may already use, e.g. wx, QT etc&#8230;</p>
<p>I may be biased since I am a fan of open-source. I will say this though, I haven&#8217;t looked back since I first took the plunge.</p>
<p>YMMV though,</p>
<p>Cheers,</p>
<p>Jack</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to&#8230;optimise Matlab by Fedor</title>
		<link>http://www.programming4scientists.com/2010/02/05/how-to-optimise-matlab/comment-page-1/#comment-518</link>
		<dc:creator>Fedor</dc:creator>
		<pubDate>Mon, 26 Sep 2011 21:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=630#comment-518</guid>
		<description>I use mex-functions for Matlab often, exactly because of the for-loop reasons. It is quite straightforward for the usual data types (double, int, strings, etc.): the C-function has to call some Matlab functions to convert Matlab arrays into C arrays. The for-loops are of course becoming much much quicker (and also - the memory constraints of Matlab often do not apply! ). The complexity in this case depends on how familiar you are with C, and how complex your algorithm is to code it element-wise.

I did not use mex-functions for passing and handling objects though (structures, cell arrays, etc.)</description>
		<content:encoded><![CDATA[<p>I use mex-functions for Matlab often, exactly because of the for-loop reasons. It is quite straightforward for the usual data types (double, int, strings, etc.): the C-function has to call some Matlab functions to convert Matlab arrays into C arrays. The for-loops are of course becoming much much quicker (and also &#8211; the memory constraints of Matlab often do not apply! ). The complexity in this case depends on how familiar you are with C, and how complex your algorithm is to code it element-wise.</p>
<p>I did not use mex-functions for passing and handling objects though (structures, cell arrays, etc.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on A big list of programming languages by R Darkins</title>
		<link>http://www.programming4scientists.com/2008/08/22/a-big-list-of-programming-languages/comment-page-1/#comment-505</link>
		<dc:creator>R Darkins</dc:creator>
		<pubDate>Wed, 18 May 2011 17:07:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=46#comment-505</guid>
		<description>A handy reference, thank you.

Although, I feel that Fortran is somewhat undersold here. One of the main reasons Fortran is still so popular today is not just because the old fuddy-duddies can&#039;t be bothered to learn C and recode commonly-used libraries, but is because for many problems (particularly in science) it is simply faster than many of its counterparts, including C/C++. This is, for instance, due to it having stronger aliasing rules for memory pointers.</description>
		<content:encoded><![CDATA[<p>A handy reference, thank you.</p>
<p>Although, I feel that Fortran is somewhat undersold here. One of the main reasons Fortran is still so popular today is not just because the old fuddy-duddies can&#8217;t be bothered to learn C and recode commonly-used libraries, but is because for many problems (particularly in science) it is simply faster than many of its counterparts, including C/C++. This is, for instance, due to it having stronger aliasing rules for memory pointers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The basics of &#8230; Java by R Darkins</title>
		<link>http://www.programming4scientists.com/2009/03/23/the-basics-of-java/comment-page-1/#comment-504</link>
		<dc:creator>R Darkins</dc:creator>
		<pubDate>Wed, 18 May 2011 16:48:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=485#comment-504</guid>
		<description>@P Warnes, Java does not allocate 4 bytes for all primitives (although it does allocate an entire byte for booleans).

With regards to speed, well-written Java code generally isn&#039;t much slower than C++ from version 5 up. The main bottleneck, in my experience, is with the maths functionality - particularly trig - but this can often be circumvented with the use of precomputed lookup tables.</description>
		<content:encoded><![CDATA[<p>@P Warnes, Java does not allocate 4 bytes for all primitives (although it does allocate an entire byte for booleans).</p>
<p>With regards to speed, well-written Java code generally isn&#8217;t much slower than C++ from version 5 up. The main bottleneck, in my experience, is with the maths functionality &#8211; particularly trig &#8211; but this can often be circumvented with the use of precomputed lookup tables.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to explain programming to your Mum by Andrew</title>
		<link>http://www.programming4scientists.com/2009/08/18/how-to-explain-programming-to-your-mum/comment-page-1/#comment-503</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Fri, 06 May 2011 04:51:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=583#comment-503</guid>
		<description>I usually explain it like this:

I am designing a machine. It&#039;s a virtual machine that&#039;s invisible to us, but it&#039;s a machine nonetheless. The machine needs to have certain functionality, but it is totally up to me how it will carry out its functions, and there are million ways it could be done.

Since I am designing a machine, I need to break it down into its components, and figure out how they will fit together in the end. I also need to figure out which components I need to make myself and which ones I can find ready-made. If I use ready-made ones, I need to make sure they will work and figure out how to use them properly

Once I&#039;ve assembled my machine, it often doesn&#039;t work quite right at first, and I need to pay close attention to all its components as it operates in order to locate the hang-up.</description>
		<content:encoded><![CDATA[<p>I usually explain it like this:</p>
<p>I am designing a machine. It&#8217;s a virtual machine that&#8217;s invisible to us, but it&#8217;s a machine nonetheless. The machine needs to have certain functionality, but it is totally up to me how it will carry out its functions, and there are million ways it could be done.</p>
<p>Since I am designing a machine, I need to break it down into its components, and figure out how they will fit together in the end. I also need to figure out which components I need to make myself and which ones I can find ready-made. If I use ready-made ones, I need to make sure they will work and figure out how to use them properly</p>
<p>Once I&#8217;ve assembled my machine, it often doesn&#8217;t work quite right at first, and I need to pay close attention to all its components as it operates in order to locate the hang-up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Writing a simple profiler by Sean</title>
		<link>http://www.programming4scientists.com/2008/09/12/writing-a-simple-profiler/comment-page-1/#comment-493</link>
		<dc:creator>Sean</dc:creator>
		<pubDate>Sat, 16 Oct 2010 15:24:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=189#comment-493</guid>
		<description>Just implemented this and it works great. Excellent, thank you very much!</description>
		<content:encoded><![CDATA[<p>Just implemented this and it works great. Excellent, thank you very much!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 4 ways to become a better programmer by 10 Websites On How To Be A Better Programmer</title>
		<link>http://www.programming4scientists.com/2009/03/03/4-ways-to-become-a-better-programmer/comment-page-1/#comment-492</link>
		<dc:creator>10 Websites On How To Be A Better Programmer</dc:creator>
		<pubDate>Thu, 09 Sep 2010 12:50:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=457#comment-492</guid>
		<description>[...] 5. 4 ways to become a better programmer [...]</description>
		<content:encoded><![CDATA[<p>[...] 5. 4 ways to become a better programmer [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on 4 ways to become a better programmer by Vijay</title>
		<link>http://www.programming4scientists.com/2009/03/03/4-ways-to-become-a-better-programmer/comment-page-1/#comment-491</link>
		<dc:creator>Vijay</dc:creator>
		<pubDate>Thu, 26 Aug 2010 20:02:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=457#comment-491</guid>
		<description>Good article, thanks.</description>
		<content:encoded><![CDATA[<p>Good article, thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on How to explain programming to your Mum by Harlan</title>
		<link>http://www.programming4scientists.com/2009/08/18/how-to-explain-programming-to-your-mum/comment-page-1/#comment-490</link>
		<dc:creator>Harlan</dc:creator>
		<pubDate>Mon, 16 Aug 2010 19:05:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=583#comment-490</guid>
		<description>Excellent!  I find it hard to explain to non-programmers the sorts of things I do in my daily job.

This short article definitely helps.</description>
		<content:encoded><![CDATA[<p>Excellent!  I find it hard to explain to non-programmers the sorts of things I do in my daily job.</p>
<p>This short article definitely helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Links to some great articles on programming by Coder</title>
		<link>http://www.programming4scientists.com/2009/01/19/links-to-some-great-articles-on-programming/comment-page-1/#comment-489</link>
		<dc:creator>Coder</dc:creator>
		<pubDate>Wed, 28 Jul 2010 15:26:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.programming4scientists.com/?p=406#comment-489</guid>
		<description>Thanks for posting these links to cool articles! :-)</description>
		<content:encoded><![CDATA[<p>Thanks for posting these links to cool articles! :-)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

