&gt; The whole it&#x27;s amazing that you can &quot;encode business logic in types&quot; thing I really don&#x27;t get. That&#x27;s basically the selling point of object oriented code.<p>With OOP languages those are mostly runtime errors rather than compile time errors. Encoding logic into the type system means that many application logic errors will be caught at compile time before your application goes into production.<p>&gt; I honestly think if it the benefits you tout were as great as you seem to think they are then there would be a far greater wealth of practical software written in it.<p>I honestly think if PHP were as bad as it seems there would be far less practical software written in it. Popularity doesn&#x27;t imply quality just like lack of popularity doesn&#x27;t imply lack of quality.