<?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>Herman Venter, programming language enthusiast - All Comments</title><link>http://blogs.msdn.com/b/hermanventer/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Let’s start again</title><link>http://blogs.msdn.com/b/hermanventer/archive/2011/05/21/let-s-start-again.aspx#10328512</link><pubDate>Tue, 10 Jul 2012 19:46:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10328512</guid><dc:creator>Robert Stewart</dc:creator><description>&lt;p&gt;As a former users of one of your previous &amp;quot;exclusive club&amp;quot; languages, I look forward to seeing the new language...&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10328512" width="1" height="1"&gt;</description></item><item><title>re: How are Scripting Languages different from general Programming Languages?</title><link>http://blogs.msdn.com/b/hermanventer/archive/2012/01/02/how-are-scripting-languages-different-from-general-programming-languages.aspx#10256328</link><pubDate>Fri, 13 Jan 2012 14:39:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10256328</guid><dc:creator>Gary</dc:creator><description>&lt;p&gt;a program is compiled, a script isnt?&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10256328" width="1" height="1"&gt;</description></item><item><title>re: Let’s start again</title><link>http://blogs.msdn.com/b/hermanventer/archive/2011/05/21/let-s-start-again.aspx#10168316</link><pubDate>Wed, 25 May 2011 17:15:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10168316</guid><dc:creator>Herman Venter</dc:creator><description>&lt;p&gt;This is a perfectly reasonable reaction. I first enountered it in my student days when the professors debated whether to keep teaching in Fortran or perhaps switch to this new fangled Pascal thing the language enthusiasts were toting. No doubt the team creating Fortran had a lot of people advising them there is no need to make yet another language.&lt;/p&gt;
&lt;p&gt;It seems very likely, however, that there will be continued evolution. The JVM and the CLR will stick around for a very long time yet, as will Java and C#. But they will keep evolving in a slow and thoughtful manner. Meanwhile, the enthusiasts will do their thing. Perhaps a new language will come out of it and by 2020 JavaScript will no longer dominate the mindshare of new programmers. Perhaps not. But this blog is about the fun of thinking about that evolution and what comes next.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10168316" width="1" height="1"&gt;</description></item><item><title>re: Let’s start again</title><link>http://blogs.msdn.com/b/hermanventer/archive/2011/05/21/let-s-start-again.aspx#10167250</link><pubDate>Mon, 23 May 2011 09:14:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10167250</guid><dc:creator>Rik Hemsley</dc:creator><description>&lt;p&gt;I don&amp;#39;t understand why it&amp;#39;s desirable to make yet another new language.&lt;/p&gt;
&lt;p&gt;There are many great languages out there.&lt;/p&gt;
&lt;p&gt;Why push only one language as &amp;#39;the&amp;#39; client-side browser language?&lt;/p&gt;
&lt;p&gt;What I really want to see is browsers supporting a JVM or the .NET CLR, so I get a choice of language.&lt;/p&gt;
&lt;p&gt;I&amp;#39;d prefer the CLR, of course!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10167250" width="1" height="1"&gt;</description></item><item><title>re: Numbers are up</title><link>http://blogs.msdn.com/b/hermanventer/archive/2009/03/28/numbers-are-up.aspx#9555879</link><pubDate>Sun, 19 Apr 2009 23:03:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9555879</guid><dc:creator>hermanventer</dc:creator><description>&lt;p&gt;I expect that the numbers we already know and love will continue to be available and used. They are the way they are for good reasons and serve many purposes very well. The question at hand is mainly whether these numbers should have special status, or whether it would be sufficient to treat them as ordinary data types.&lt;/p&gt;
&lt;p&gt;As for the arbitrary precision &amp;quot;Rational&amp;quot; numbers that I'm wondering about, those are not an attempt to solve the unsolvable problem of using a finite computer to represent arbitrary numbers from an infinite domain, but a speculation that for casual arithmetic, we may be better off with a representation that does not lose any precision that is expressed in the language source code (by using a fixed number of bits or converting from decimal to binary) and also preserves the expectations we have from high school arithmetic in common cases.&lt;/p&gt;
&lt;p&gt;I don't mean to might light of a complex subject of which I am no expert, but I also find it unsatisfying to accept that the current state of the art is &amp;quot;as good as it gets&amp;quot;.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9555879" width="1" height="1"&gt;</description></item><item><title>re: Numbers are up</title><link>http://blogs.msdn.com/b/hermanventer/archive/2009/03/28/numbers-are-up.aspx#9551736</link><pubDate>Thu, 16 Apr 2009 02:03:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9551736</guid><dc:creator>Mihailik</dc:creator><description>&lt;p&gt;That's an arbitrary choice anyway. After all, how would you define a type of Math.Pi with your Rational approach? OK, at least specify the result type of Math.Sqr if you please.&lt;/p&gt;
&lt;p&gt;The problem is provable unsolvable, as you should know. There are numbers which cannot be finitely represented, whatever cunning system you choose. To be absolutely precise, most of numbers cannot be finitely represented.&lt;/p&gt;
&lt;p&gt;This all means Rational number type you are proposing has no clear preference over existing system.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9551736" width="1" height="1"&gt;</description></item><item><title>Common Compiler Infrastructure released on CodePlex</title><link>http://blogs.msdn.com/b/hermanventer/archive/2009/04/14/a-bit-of-help-compiling-your-next-net-hosted-programming-language.aspx#9551257</link><pubDate>Wed, 15 Apr 2009 22:31:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9551257</guid><dc:creator>Kirill Osenkov</dc:creator><description>&lt;p&gt;Great news – Herman Venter from Microsoft Research has released CCI (Common Compiler Infrastructure)&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9551257" width="1" height="1"&gt;</description></item><item><title>A bit of help compiling your next .NET hosted programming language | Microsoft Share Point</title><link>http://blogs.msdn.com/b/hermanventer/archive/2009/04/14/a-bit-of-help-compiling-your-next-net-hosted-programming-language.aspx#9550168</link><pubDate>Wed, 15 Apr 2009 09:58:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9550168</guid><dc:creator>A bit of help compiling your next .NET hosted programming language | Microsoft Share Point</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://microsoft-sharepoint.simplynetdev.com/a-bit-of-help-compiling-your-next-net-hosted-programming-language/"&gt;http://microsoft-sharepoint.simplynetdev.com/a-bit-of-help-compiling-your-next-net-hosted-programming-language/&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9550168" width="1" height="1"&gt;</description></item><item><title>infoblog &amp;raquo; Numbers are up</title><link>http://blogs.msdn.com/b/hermanventer/archive/2009/03/28/numbers-are-up.aspx#9516386</link><pubDate>Sun, 29 Mar 2009 01:23:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9516386</guid><dc:creator>infoblog &amp;raquo; Numbers are up</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://blog.a-foton.ru/index.php/2009/03/29/numbers-are-up/"&gt;http://blog.a-foton.ru/index.php/2009/03/29/numbers-are-up/&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9516386" width="1" height="1"&gt;</description></item><item><title>re: Is there a contract in your future?</title><link>http://blogs.msdn.com/b/hermanventer/archive/2008/03/05/is-there-a-contract-in-your-future.aspx#8509122</link><pubDate>Thu, 15 May 2008 23:12:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8509122</guid><dc:creator>Peter Torr - MSFT</dc:creator><description>&lt;p&gt;One thing that will be important for security is that contracts not just say &amp;quot;this will be true on exit&amp;quot; but also a guarantee that &amp;quot;...and nothing else will happen.&amp;quot; Many security bugs are caused by unforseen side-effects of code, or subtle changes in behaviour made to code over time. Silly example: eval() guarantees that if you pass in a valid expression, it will return the correct result... but it fails to mention that it might also format your hard-drive if you pass in a different kind of source code. This is a highly contrived example, but it highlights how developers (fail to) think about security problems. &lt;/p&gt;
&lt;p&gt;Unfortunately it is virtually impossible for the calling code to define a contract stating the totality of what can and cannot happen (or to even understand such a contract defined by the function implementor) since in theory the two pieces of code know nothing about each other and about what side-effects may or may not be acceptable. For example, the naive script developer would need to know that she needs to be worried about hard-drive formatting before she can correctly reason about the contracts / invariants needed for her program (which likely has nothing to do with hard drives at all).&lt;/p&gt;
&lt;p&gt;Security systems such as the CLR deal with this specific example (don't let web apps have access to the hard drive) but they rely on a LOT of hard work under-the-covers to enforce the security semantics (web apps *do* access the hard drive, just not directly) and they don't protect against &amp;quot;algorithmic&amp;quot; security problems (those that can't be fixed by gating access to a specific resource).&lt;/p&gt;
&lt;p&gt;From another angle, operating systems spend a large amount of time trying to abstract away the details of the underlying hardware, but those very details might be critical to the correct execution of the system (side-channel attacks on guessing AES keys, for example) even though in the vast majority of cases they will not be (hence the desire to have abstractions in the first place). &lt;/p&gt;
&lt;p&gt;A more holistic approach to program behaviour, resoure utilisation, etc. is needed to create significantly more secure code, but that sounds like a daunting task!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8509122" width="1" height="1"&gt;</description></item></channel></rss>