DEV Community

Discussion on: Which mainstream programming language has the ugliest syntax?

Collapse
 
michaelgv profile image
Mike

PHP: it’s not a bad syntax, it’s just not what some people like, and they’ve formed opinionated debates over it.

Collapse
 
anasik profile image
Anas Ismail Khan

I agree. There's nothing bad about the syntax. True, the language could be better. There are 99 reasons to dislike PHP but syntax is definitely not one of them.

Thread Thread
 
jeroendedauw profile image
Jeroen De Dauw

PHP has been my main language for 10 years.

-> instead of . is rather unfortunate. Much harder to type :/

$var instead of var is also not idea if you ask me, though at least not as silly as needing to hit 3 keys.

That does not make the syntax as a whole ugly though.

Thread Thread
 
ryanhaber profile image
Ryan Haber

Lol. It helps. :D

Collapse
 
ryanhaber profile image
Ryan Haber

True enough. The syntax isn't bad as in defective or overly verbose. It does look inelegant to me, though.

Collapse
 
antjanus profile image
Antonin J. (they/them) • Edited

Especially if you look at more modern PHP. I really like Laravel's code style.

For non-PHP developers, a few syntax niceties:

  1. All variables have a $ prefix. So $post = getPost($id).
  2. Accessing class properties (non-static) is done via an arrow: $request->has('name')
  3. Accessing static properties is done via :: (by far my favorite). Route::get('/api/posts', function() {});

I also like PHP namespacing:

namespace Vendor\Lib\Class;

and accessing the namespace:

use Vendor\Lib\Class;
Thread Thread
 
ethan profile image
Ethan Stewart

As someone who's used PHP in the past, all of your niceties are among the many reasons I don't care for the language 😆 to each their own though! 🤷🏻‍♂️

Thread Thread
 
antjanus profile image
Antonin J. (they/them)

Haha, I can understand that. I actually liked the namespacing so much, I wrote a babel plugin that rewrites import paths in JS to work similarly. Not EXACTLY the same, but it's very similar.

Thread Thread
 
moopet profile image
Ben Sinclair

I really dislike PHP namespacing.