<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx</link><description>Came across a post by Justin Etheredge discussion whether changing between languages is just a matter of syntax. Or, to pick a specific example, can a Java programmer quickly and easily learn to write C# code? The answer is obviously "yes". Development</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9804815</link><pubDate>Fri, 26 Jun 2009 08:22:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9804815</guid><dc:creator>zproxy</dc:creator><description>&lt;p&gt;What if you are able to express yourself and to program in one language (c#) and have a certain tool to take care of the syntax translation to other languages (java, actionscript, php, javascript) and have a certain library to take care of the base class library mappings?&lt;/p&gt;
&lt;p&gt;Have a look at this:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://jsc.sourceforge.net"&gt;http://jsc.sourceforge.net&lt;/a&gt;&lt;/p&gt;</description></item><item><title>re: Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9805318</link><pubDate>Fri, 26 Jun 2009 15:20:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805318</guid><dc:creator>Bobby Cannon</dc:creator><description>&lt;p&gt;I agree that programming is a generic skill. Programming is a thought process about how to create solutions of for lack of a better word problems. The problem may not be a problem but a desire. Anyway back to the point. Programming is about being able to mentally grasp the issue then design and create a solution.&lt;/p&gt;
&lt;p&gt;A language must be selected base on the solution. Not all languages are equal nor can you just pick one up and learn the syntax and away you go. I feel that languages are like a carpenters tools but way more advanced. If languages were like hammers then yes it would be easy just pick up any hammer and swing it at your problem but it's not that easy. You must dig deep and learn the tool of choice (C#, C++, Perl, PHP, ASP.NET). &lt;/p&gt;
&lt;p&gt;Even languages like ASP.NET have specific things you must know before developing a web application. For example C# ASP.NET application uses C# syntax but you may still need to understand more about Win Forms.&lt;/p&gt;
&lt;p&gt;Basically you must learn the tool in order to use the tool effectively. Just my thoughts...&lt;/p&gt;</description></item><item><title>re: Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9805412</link><pubDate>Fri, 26 Jun 2009 16:12:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805412</guid><dc:creator>J</dc:creator><description>&lt;p&gt;I'll make an analogy to learning natural languages. Learning your first language is difficult, because you've never done it before, and you have to learn to think about language in a totally different way. If you've studied German for a while, and gotten the knack for it, learning Spanish will still be difficult, but you're a leg up on the person in your class that has never studied a language before. You are now familiar with the concept of nouns having gender, and what direct objects are, etc.&lt;/p&gt;
&lt;p&gt;I think the same applies to programming. When you learn your first language, you're also learning to program: concepts of variables functions, data types, conditional logic etc. When you pick up your second (third, fourth) languages, you've got many of the basic concepts down, so your time to fluency is much shorter than the person just starting out.&lt;/p&gt;
&lt;p&gt;That being said, there are some languages in which the paradigms are so different, it is probably better to come in with no baggage of other languages. In the natural world, studying German will probably not help much in learning Chinese because the thought process is just completely different. I think the same divide exists between imperative and functional languages, because you have to approach problem solving from two very different avenues.&lt;/p&gt;</description></item><item><title>re: Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9805649</link><pubDate>Fri, 26 Jun 2009 19:23:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9805649</guid><dc:creator>ericgu</dc:creator><description>&lt;p&gt;zproxy, &lt;/p&gt;
&lt;p&gt;My experience with translation sorts of projects is that they don't tend to produce very good results. Just to take an obvious example, if I'm writing code in C# I might use iterators (ie &amp;quot;yield return&amp;quot;) to make my code easier to use, but the translation of that into Java is going to be problematic, because there's a bunch of language support under the covers. You're not going to get idiomatic Java out of it because you wouldn't express that conceptually the same way in Java. &lt;/p&gt;
&lt;p&gt;J,&lt;/p&gt;
&lt;p&gt;I agree, especially about the divide between imperative and functional languages. I think I might make the statement about scripting vs high-level languages. &lt;/p&gt;
</description></item><item><title>re: Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9806279</link><pubDate>Sat, 27 Jun 2009 06:50:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9806279</guid><dc:creator>Mike Martinez</dc:creator><description>&lt;p&gt;~Logic~ is a generic skill. &amp;nbsp;Writing programming code in a given language is a very specific skill. &amp;nbsp;They are separate and different skills, and you need to have them both. Logic is definitely the easier to master.&lt;/p&gt;</description></item><item><title>It's not about language syntax it's about platform</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9808252</link><pubDate>Mon, 29 Jun 2009 09:57:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9808252</guid><dc:creator>Reboltutorial</dc:creator><description>&lt;p&gt;I don't think it's really about syntax but about platform. Java and C# are rather close in syntax since both derived from C++ and C# derived from J#.&lt;/p&gt;
&lt;p&gt;It's more about platform, knowledge of libraries. ADO.NET has a huge set of features for example a Java Developer would have a rather steep learning curve.&lt;/p&gt;</description></item><item><title>re: Is programming a generic skill?</title><link>http://blogs.msdn.com/ericgu/archive/2009/06/25/is-programming-a-generic-skill.aspx#9847292</link><pubDate>Fri, 24 Jul 2009 09:37:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9847292</guid><dc:creator>zproxy</dc:creator><description>&lt;p&gt;I have considered supporting &amp;quot;yield return&amp;quot;.&lt;/p&gt;
&lt;p&gt;It will create a rather complex iterator type. At this time my compiler is not yet capable of converting it to another language, but it can be done. The code will look somewhat verbose tho.&lt;/p&gt;
&lt;p&gt;For example the implementation for Enumerable.Select without the actual use of yield return will look like this:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://jsc.svn.sourceforge.net/viewvc/jsc/core/ScriptCoreLib.Query/Shared/Query/Enumerable.Select.cs?view=markup"&gt;http://jsc.svn.sourceforge.net/viewvc/jsc/core/ScriptCoreLib.Query/Shared/Query/Enumerable.Select.cs?view=markup&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note, that this code can be converted to actionscript/javascript with the current version of the compiler.&lt;/p&gt;
&lt;p&gt;The next step would be to make the compiler support yield keyword, but it would cost resources to do that...&lt;/p&gt;</description></item></channel></rss>