<br><br><div><span class="gmail_quote">On 3/6/07, <b class="gmail_sendername">Jared</b> &lt;<a href="mailto:jared@hatwhite.com">jared@hatwhite.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;&gt; The whole virtual machine concept implies that you are not<br>&gt;&gt; to be trusted as a developer. You are expected to trust<br>&gt;&gt; the language vendor more than your own programming skills.<br><br>&gt; This isn&#39;t the concept of the virtual machine. After all,
<br>&gt; it&#39;s really just a extremely CISC CPU intended to be<br>&gt; emulated. It&#39;s not part of the language.<br><br>I understand this. I still resist the notion of any limitation<br>between a programming language and the machine, because it is a
<br>dangerous trend to limit the developer from full, assembler-level<br>access to all hardware. Otherwise you incrementally stunt his<br>abilities, and that is sad. I am thinking about development fifty+<br>years in the future, when these issues are more mature, and from
<br>that perspective, the Java approach is incrementally more and<br>more limiting to the developer.<br><br>&gt;&gt; Java has cross-platform merits, but clearly, it was designed by the<br>&gt;&gt; marketing department, not by the geek squad.
<br><br>&gt; Java has cross-platform merits not because of the virtual machine,<br>&gt; but because of its extensive standard library giving abstractions<br>&gt; for most of what people need to do. C and C++ can be generally
<br>&gt; cross-platform, provided you only use the standard library, but<br>&gt; their stdlibs don&#39;t cover as much ground. Qt, on the other hand,<br>&gt; builds on C++ and replaces its standard library with one that is
<br>&gt; more flexible and has a broader range of support, including the<br>&gt; QtGui module which provides for graphical interfaces.<br><br>Java does have cross-platform merits because of the virtual machine.<br>Your observations on libraries are keen, but are not the only
<br>reason that Java has cross-platform merits. We&#39;re both right:<br><br>I quote from <a href="http://en.wikipedia.org/wiki/Cross-platform">http://en.wikipedia.org/wiki/Cross-platform</a>.<br><br>&nbsp;&nbsp;&nbsp;&nbsp; As previously noted, the Java platform is an exception
<br>&nbsp;&nbsp;&nbsp;&nbsp; to the general rule that an operating system is a software<br>&nbsp;&nbsp;&nbsp;&nbsp; platform. The Java language provides a virtual machine,<br>&nbsp;&nbsp;&nbsp;&nbsp; or a &quot;virtual CPU&quot; which runs all of the code that is<br>&nbsp;&nbsp;&nbsp;&nbsp; written for the language. This enables the same executable
<br>&nbsp;&nbsp;&nbsp;&nbsp; binary to run on all systems which support the Java<br>&nbsp;&nbsp;&nbsp;&nbsp; software, through the Java Virtual Machine. Java executables<br>&nbsp;&nbsp;&nbsp;&nbsp; do not run directly on the operating system; that is,<br>&nbsp;&nbsp;&nbsp;&nbsp; neither Windows nor Linux execute Java programs directly.
<br>&nbsp;&nbsp;&nbsp;&nbsp; Instead, a special computer program called the JVM, or<br>&nbsp;&nbsp;&nbsp;&nbsp; Java Virtual Machine, is run by the operating system, which<br>&nbsp;&nbsp;&nbsp;&nbsp; in turn runs the Java program.<br><br>Again, I&#39;m fine with Java as a language, if only the virtual layer
<br>could be removed.<br><br>&gt;&gt; If you can&#39;t crash a server, and crash it big with buggy<br>&gt;&gt; inline assembler, how are you ever going to learn grace<br>&gt;&gt; under pressure, which is a necessary component of any
<br>&gt;&gt; responsible world domination plan? ;)<br><br>&gt; You can&#39;t, or at least shouldn&#39;t be able to, crash a server<br>&gt; with mere userland code. In most cases, you can&#39;t provided<br>&gt; the server has been setup properly (eg, limiting forks to
<br>&gt; prevent forkbombs).<br><br>The logic behind &quot;limiting forks&quot; is a good idea for beginners.<br>But it is incrementalism in the wrong direction, not toward<br>freedom, and it removes useful tinkering ground from mature
<br>developers. Do not think that all geeks will always have the<br>freedoms they take for granted today. Classlines are already<br>being drawn. Be wise. Stake a claim in the ruling class because<br>you understand the underlying issues.
<br><br>Not far in the future, kernels will be considered &quot;finished&quot;<br>and stable, because hierarchical power structures will have<br>consolidated around them, and will prevent innovation, which<br>is a pattern easily measured by studying the social dynamics
<br>of any large religion: Initial Freedom followed by incremental<br>imprisonment of its own followers, until they are killing each<br>other over absolutely trivial issues.<br><br>We must recognize we are building the foundations of a future
<br>which will not always be as free as it is now -- unless we<br>look at these deeper issues and their long term consequences.<br><br>I prefer the geek to have full ability to crash the box --<br>and the wisdom and ethics not to do so; not a firewall of
<br>technology preventing him, but a firewall of ethics. It&#39;s like<br>the logic behind the 2nd Amendment to the Constitution.<br><br>You seem to prefer removing power from the geek by limiting<br>him, rather than relying upon the reputation economy to inspire
<br>geeks to do better, which is more perilous, but better in the<br>end.<br><br>The original rant remains standing: On a philosophical level,<br>virtual machine layers limit the geek. Some geeks like that.<br>This one prefers freedom.
<br><br>-Jared<br><br>_______________________________________________<br>Kclug mailing list<br><a href="mailto:Kclug@kclug.org">Kclug@kclug.org</a><br><a href="http://kclug.org/mailman/listinfo/kclug">http://kclug.org/mailman/listinfo/kclug
</a><br></blockquote></div><br>I think I&#39;m the complete opposite.&nbsp; I love the fact that
VMWare/QEmu/etc.. are coming along and creating a virtual machine where
I don&#39;t have to worry about hardware compatibility anymore.&nbsp; I&#39;d like
to eventually have preconfigured/pretuned virtual machines that are
specific to a job function become the norm.&nbsp; This makes server
migrations, turn-ups, turn-downs, etc.. far easier imho.&nbsp; But this is
coming from a SysAdmin, not a programmer, so that may be the
difference.
<br><br>-- <br>Kyle Sexton