I agree with everything you said Michael - we should not get into some arbitrary speed argument in the end IT DEPENDS.<br><br>When people spout Java, and .NET Propaganda I become frustrated - Very frustrated. <br>Why?<br><br>
Because Java and .NET are the WORSE offenders.<br><br>Also Propaganda about Garbage Collection - in essence there isn&#39;t such a
thing - there is a virtualization engine in the background that looks
for crap that you forgot to remove/unlink/dereference and best guesses... ( It&#39;s wizardry
and hackory, thats partly why there are upteenth versions of the JVM )<br>If
you need an engine (a program) running in the background to collect old
memory for your PROGRAM I have a philosophical problem with your
program!<br><br>Python, Perl, and PHP are C interpreted languages.<br>(They BIND to C - and use the C data Stack)<br>If
you wrote an interpreter in C to generate OpCodes / ByteCode you would
get a language similar in speed to C if the developer and the
interpreter were as close to &#39;perfect&#39; as they could be ... This is
because of the layout and maturity of the C compiler, how it generates
processor opcodes, and how it references memory.<br>.NET and JAVA are
not &#39;classic c type stack languages&#39; - in order to accomplish their
goal they  both implement proprietary data stacks.<br>
They all are compiled into intermediate code and executed by what is a
considered a &quot;Virtual Engine&quot; - There are VAST differences between what
a &quot;virtual engine means in reality&quot; but the real difference is the DATA
stack that the virtual engine creates.<br>
<br>
.NET and JAVA both have to use a proprietary Data Stack in order to
support (in .NET) cross language CLR compilation and interaction, and
in JAVA specialized data types.<br>
<br>
This is a HUGE and important difference.<br>
<br>
If you code C++ in .NET you lose your C data stack and throw it out for what Microsoft came up with in a few years.<br>
I work for a programming company, and one of the iPhone developers here
used to work on the COM spec at Microsoft, he left when .NET was being
designed to replace COM and would be happy to go on an hour long rant -
It&#39;s bad.<br><br>Java&#39;s own documentation says &quot;Your program may get
faster as it runs, because of JAVA Engine optimizations during
runtime.&quot;  This fact alone should point out a key difference between an
interpreted STATELESS DATA STACK, and interpreted STATEFUL data stack. (scary)<br>
<br>
Java and .Net are GREAT in theory - I love the idea. But just download
and run eclipse PDT for a few hours and put yourself in my shoes. 
JAVA&#39;s data management is awful, which is why Google threw out the Java
VM when they implemented their own VM for Android.<br>
<br>
Java Language Good JVM BAD.<br>
C# Good, .NET API GOOD, CLR BAD.<br>
<br>
.NET is better but has it&#39;s own host of problems - most importantly being wasteful with memory (and proprietary).<br>
.NET claims to be better for business like higher taxes claim to be better for the populace.<br>
<br>
As computers continually get faster we will continue to have background
VM wizardry and memory pagination in order to get languages that
implement features that are so far disconnected from Processor OPCODES,
Instruction Sets, and the way memory is stored that SLOW and bad is the
only possible outcome.<br>
<br>
There is a reason no modern commercial games run in .NET or JAVA - There is also a reason Microsoft will Abandon XNA soon.<br>Oddly
enough the only Game I know that has been successful and had
World-Class graphics is written in Python (WITH C BINDINGS!) - EVE
ONLINE!<br>
<br>
>From Microsofts own site:<br>
<span class="txt">&quot;There&#39;s a synergy between DirectX and hardware, particularly 
when it comes to graphics.</span>&quot; - HMM I wonder if thats because its not running in a VM.<br>
<br>
UGHH<br>
<br>
I am so annoyed I am going to have to go into the third person<br>
<br>
Ben is a programmer, he programs a lot, and Ben has to deal with people
who write awful .NET and Java applications because the bar is set so
low to write a functional program in Eclipse and Visual Studio that a
trained monkey can do it...  <br>
<br>
web.config makes me want to kill myself........... I am done!<br>
<br>
:)<br>
<br>
My apologies ahead of time for everyone...<br>
<br><div class="gmail_quote">On Thu, Jul 16, 2009 at 3:24 PM, Michael Mol <span dir="ltr">&lt;<a href="mailto:mikemol@gmail.com">mikemol@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Thu, Jul 16, 2009 at 10:36 AM, Ben DeMott&lt;<a href="mailto:ben.demott@gmail.com">ben.demott@gmail.com</a>&gt; wrote:<br>
&gt; Should be typed.... Java and .Net are measurably slower than Python,<br>
&gt; especially Java, and especially in real world applications.<br>
<br>
</div>Um, as a guy who pays attention to different languages and their<br>
capabilities, may I recommend we avoid falling into an argument of<br>
which language has been measured to be faster than another?<br>
<br>
A number of factors will affect how an application written for one<br>
language will perform compared to that same application written for<br>
another, and most of these factors are in fact controllable and<br>
tunable by the sufficiently savvy developer.  Everything from being<br>
aware of low-level constructs to being aware of the behavior of GC to<br>
&quot;syntactic sugar&quot; that lets compilers and JIT optimizers do a better<br>
job at reducing a high level concept into an efficient sequence of<br>
low-level concepts.<br>
<br>
In short, tuning is key. If you write your code strictly from a<br>
program flow standpoint, and if you don&#39;t consider what&#39;s going on at<br>
the next level down, you&#39;re not going to get the performance you can,<br>
and you&#39;re not going to recognize when some weird construct or pattern<br>
of behavior in your code is causing the problems.<br>
<font color="#888888"><br>
--<br>
:wq<br>
</font><div><div class="h5">_______________________________________________<br>
grlug mailing list<br>
<a href="mailto:grlug@grlug.org">grlug@grlug.org</a><br>
<a href="http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug" target="_blank">http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug</a><br>
</div></div></blockquote></div><br><br><br><div class="gmail_quote">On Thu, Jul 16, 2009 at 4:00 PM, Adam Tauno Williams <span dir="ltr">&lt;<a href="mailto:awilliam@whitemice.org">awilliam@whitemice.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt;Garbage Collection.  In managed platforms like .NET and Java, it&#39;s very important to understand if you want to get any kind of performance out of a &quot;large&quot; application.<br>

<br>
It matters in &#39;unmanaged&#39; environments like Objective-C and Python as well (and in PHP, Perl, etc...).    Most of these use reference counting to auto release old objects.   But reference counting can fail in interesting ways,  even assuming there are no bugs in the implementation.  Maybe these are &#39;quasi-managed&#39; enviroments?<br>

<br>
And unmanged C, etc... has GC problems as well - where the GC is the programmer. :)<br>
<div><div></div><div class="h5">_______________________________________________<br>
grlug mailing list<br>
<a href="mailto:grlug@grlug.org">grlug@grlug.org</a><br>
<a href="http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug" target="_blank">http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug</a><br>
</div></div></blockquote></div><br>