DEV Community

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

Collapse
 
ryanhaber profile image
Ryan Haber

PHP

Oldschool-wise, I can never forgive Pascal it's := operator.

Collapse
 
ben profile image
Ben Halpern

Can you tell me more about the := operator?

Collapse
 
lavigi profile image
eva

In Pascal, a:=33 would assign the value 33 to variable a. The is-equal operator was just =. It was less error prone than what finally stuck, thanks to C and Java ---> = to assign values, == to compare them.

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.

Collapse
 
databasesponge profile image
MetaDave 🇪🇺

You might have to blame ADA for that.

PL/SQL also uses it – it is very closely related to ADA.

Collapse
 
chainq profile image
Károly Balogh

I strongly disagree, with the Pascal remark, but I'm a Pascal lover, so I'm probably biased the other way. I'd say := vs. = is much better and a lot less error prone and ugly than = vs. == let alone === in some languages.

Also := was not even a Pascal invention, but much older. It comes from ALGOL actually, IIRC.

Collapse
 
ryanhaber profile image
Ryan Haber

All very fair points. I never minded Pascal as a language. Just that assignment operator.

I had forgotten it came from ALGOL.

But you agree PHP is hideous?

:D

Thread Thread
 
chainq profile image
Károly Balogh • Edited

I believe there's worse than PHP, but that alone doesn't make any PHP better for sure. :)

BTW, I always think about replacing : with be and = with equal in my mind when reading Pascal code. So a:=1; is let a be equal 1. Same works with colon elsewhere, for example type definitions like var x: integer; can be read as let var x be integer; ... It makes the whole syntax quite readable for me.

But I'm not a native English speaker, so sorry if this just makes it even worse. :P

Thread Thread
 
ryanhaber profile image
Ryan Haber

No, it's a nice thought. It does work, as far as I can remember. Maybe it's what Pascal's creators were thinking.

Collapse
 
qm3ster profile image
Mihail Malo

=== and !== look rad in Fira Code

Collapse
 
databasesponge profile image
MetaDave 🇪🇺

And there was me thinking it was from ADA ... it's like archaeology, this, just stripping layers away.

Thread Thread
 
ryanhaber profile image
Ryan Haber

Historical linguistics is a real discipline in natural languages. I love the analogies between natural languages and computer languages.

Thread Thread
 
databasesponge profile image
MetaDave 🇪🇺

Yes, and there's definitely a "thing" with code quality being correlated to natural readability too.

I come from an ORACLE background originally, and it would drive me insane to see people uppercasing their SQL, like it was an act of kindness to the compiler, and us humans have to suck up the inconvenience. I used to send people photos of major highway direction signs and ask "WHY DO YOU THINK WE DO NOT PUT INFORMATION THAT HAS TO BE QUICKLY ABSORBED IN UPPER CASE? Which do you find easier to read?".

I was also once instructed that all text in a BI system's reports should be in fixed pitch uppercase – got out of it by showing how wide that made every text-heavy report.

TL;DR; People are sometimes quite dumb.