title: Why is the C++ syntax so complicated?
body: <p>I'm a novice at programming although I've been teaching myself Python for about a year and I studied C# some time ago.</p>
  
  <p>This month I started C++ programming courses at my university and I just have to ask; "why is the C++ code so complicated?"</p>
  
  <p>Writing "Hello world." in Python is as simple as "print 'Hello world.'" but in C++ it's:</p>
  
  <pre><code># include &lt;iostream&gt;
  using namespace std;
  
  int main ()
  {
      cout &lt;&lt; "Hello world.";
      return 0;
  }
  </code></pre>
  
  <p>I know there is probably a good reason for all of this but, why...</p>
  
  <ul>
  <li>... do you have to include the &lt;iostream&gt; everytime? Do you ever <em>not</em> need it?</li>
  <li>... same question for the standard library, when do you not need std::*?</li>
  <li>... is the "main" part a function? Do you ever call the main function? Why is it an integer? Why does C++ need to have a main function but Python doesn't?</li>
  <li>... do you need "std::cout &lt;&lt; "? Isn't that needlessly long and complicated compared to Python?</li>
  <li>... do you need to return 0 even when you are never going to use it?</li>
  </ul>
  
  <p>This is probably because I'm learning such basic C++ but every program I've made so far looks like this, so I have to retype the same code over and over again. Isn't that redundant? Couldn't the compiler just input this code itself, since it's always the same (i.e. afaik you always include &lt;iostream&gt;, std, int main, return 0)</p>