Знаете, как расшифровывается PHP?
(невелика загадка, у них на сайте в title написано - PHP: Hypertext Preprocessor)
PHP создавался как шаблонизатор (выражаясь современным языком) для гипертекста, т.е. html. Изначально закладывадось, что писать на нем будут примерно так:
<html>
<head>
<title>PHP is<? if ($a): ?> cool<? else: ?> not cool<? endif; ?></title>
</head>
<body>
<h1><?=$head1 ?></h1>
</body>
</html>
сейчас такое назвали бы говнокодом, и обычно такое разве что генерируют современные шаблонизаторы. Но во времена PHP 3 примерно весь код был в этом стиле.
Открывающий тег
<?
на самом деле короче и удобнее, чем
<?php
, но он, например, конфликтует синтаксически с тем же XML:
<?xml version="1.0" encoding="UTF-8"?>
...
что нередко ломало, кроме прочего, подсветку синтаксиса, поэтому от него в итоге отказались совсем.