<div dir="ltr"><font size="4">Hi there Thomas,</font><div><font size="4"><br></font></div><div><font size="4">I watched that video on the Altair 8800. Oh my god!!! How confusing!!! How many years ago were engineers and programmers actually working with computers like that? Wow! It really makes me appreciate the abstraction of higher-level languages such as Python!</font></div><div><font size="4"><br></font></div><div><font size="4">Thanks for the YouTube link. That was really interesting.... and also kind of frightening!</font></div><div><font size="4"><br></font></div><div><font size="4">Best,</font></div><div><font size="4"><br></font></div><div><font size="4">Douglas.</font></div><div><font size="4"><br></font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 7, 2015 at 3:10 PM, Thomas Johnson <span dir="ltr"><<a href="mailto:thomas.j.johnson@gmail.com" target="_blank">thomas.j.johnson@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Because:<div>* Different computers use different instruction sets (i.e., different version of machine language)</div><div>* The compiler is almost certainly better than you are at generating optimized machine language from your high-level language. See some examples of the kind of optimization options gcc has here: <a href="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html" target="_blank">https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html</a></div><div>* Unless you are an expert at assembly, you will be more productive in a higher level language</div><div>* We used to, and it wasn't pleasant <a href="https://www.youtube.com/watch?v=EV1ki6LiEmg" target="_blank">https://www.youtube.com/watch?v=EV1ki6LiEmg</a></div></div><div class="HOEnZb"><div class="h5"><br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 7, 2015 at 3:05 PM Lewit, Douglas <<a href="mailto:d-lewit@neiu.edu" target="_blank">d-lewit@neiu.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><font size="4">Thanks for the correction Naomi, but that didn't really answer my question. Why don't we all just study machine language and that's it?</font></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 7, 2015 at 2:10 PM, Naomi Ceder <span dir="ltr"><<a href="mailto:naomi.ceder@gmail.com" target="_blank">naomi.ceder@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On 7 December 2015 at 13:57, Lewit, Douglas <span dir="ltr"><<a href="mailto:d-lewit@neiu.edu" target="_blank">d-lewit@neiu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><font size="4">Hi everyone,</font><div><font size="4"><br></font></div><div><font size="4">I was reading an article on the web about how all programming languages are "Turing complete". I believe that basically means that all programming languages are able to communicate with the computer's CPU using the binary codes of machine language. </font></div></div></blockquote><div><br></div></span><div>Uh, that's not actually what "Turing Complete" means... It doesn't have anything to do with binary or machine language... from Wikipedia (<a href="https://en.wikipedia.org/wiki/Turing_completeness" target="_blank">https://en.wikipedia.org/wiki/Turing_completeness</a>):</div><div><br></div><div>"<span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">To show that something is Turing complete, it is enough to show that it can be used to simulate some Turing complete system. For example, an </span><a href="https://en.wikipedia.org/wiki/Imperative_language" title="Imperative language" style="text-decoration:none;color:rgb(11,0,128);font-family:sans-serif;font-size:14px;line-height:22.4px;background-image:none;background-repeat:initial" target="_blank">imperative language</a><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px"> is Turing complete if it has </span><a href="https://en.wikipedia.org/wiki/Conditional_branching" title="Conditional branching" style="text-decoration:none;color:rgb(11,0,128);font-family:sans-serif;font-size:14px;line-height:22.4px;background-image:none;background-repeat:initial" target="_blank">conditional branching</a><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px"> (</span><i style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">e.g.</i><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">, "if" and "goto" statements, or a "branch if zero" instruction. See </span><a href="https://en.wikipedia.org/wiki/One_instruction_set_computer" title="One instruction set computer" style="text-decoration:none;color:rgb(11,0,128);font-family:sans-serif;font-size:14px;line-height:22.4px;background-image:none;background-repeat:initial" target="_blank">OISC</a><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">) and the ability to change an arbitrary amount of</span><a href="https://en.wikipedia.org/wiki/Computer_memory" title="Computer memory" style="text-decoration:none;color:rgb(11,0,128);font-family:sans-serif;font-size:14px;line-height:22.4px;background-image:none;background-repeat:initial" target="_blank">memory</a><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px"> locations (</span><i style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">e.g.</i><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">, the ability to maintain an arbitrary number of variables). Since this is almost always the case, most (if not all) imperative languages are Turing complete if the limitations of finite memory are ignored."</span></div><div><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px"><br></span></div><div><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px">Cheers,<br>Naomi</span></div><div><span style="color:rgb(37,37,37);font-family:sans-serif;font-size:14px;line-height:22.4px"><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><div dir="ltr"><div><font size="4">Okay then.... so why don't we get rid of C, C++, Java, Python, Ruby, Perl, Ocaml, Haskell, C#, F#, etc, etc and why don't we call just code in machine language? Bear in mind that I'm asking this question from the point of view of the Devil's Advocate because I know almost nothing about machine language. But it's an interesting question. It's related to the question, "Why don't we have one universal natural language? Let's get rid of English, French, Spanish, German, Russian, Chinese, Japanese, Arabic, Hebrew, etc, etc, and replace them all with one universal language that everyone understands".</font></div><div><font size="4"><br></font></div><div><font size="4">I'm interested in reading your thoughts and ideas. Thanks.</font></div><div><font size="4"><br></font></div><div><font size="4">Best,</font></div><div><font size="4"><br></font></div><div><font size="4">Douglas.</font></div><div><font size="4"><br></font></div><div><font size="4">P.S. Sorry to hear about the Django Study Group. I thought Mark Graves was very friendly and did a great job of demonstrating various web applications using Python. </font></div></div>
<br></span>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/chicago" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Naomi Ceder<br><a href="https://plus.google.com/u/0/111396744045017339164/about" target="_blank">https://plus.google.com/u/0/111396744045017339164/about</a><br></div>
</font></span></div></div>
<br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/chicago" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br></div>
_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/chicago" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><br>
</blockquote></div>
</div></div><br>_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org">Chicago@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/chicago" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><br>
<br></blockquote></div><br></div>