Hacker News new | ask | show | jobs
by zer00eyz 747 days ago
I started writing PHP back in the 3 and 4 days... I have been writing go for over a decade.

If I had to add a few dynamic elements to a static HTML site, php is still king.

If we're building an API, go will win hands down. Not only in LOC but performance, and reporting.

When you get into whole pages (think blogs or shopping or... ) a lot of that is going to depend on what framework you're grabbing on the PHP side. There arent a lot of "batteries included" solutions on the golang side... You might end up writing fewer lines of code in the first week but by the end of the month were going to be at feature parity and your quickly going to fall behind.

The moment I need a SPA, on page interactive GUI you're going to end up with a JS framework and an API back end... here again, go will shine.

1 comments

> If we're building an API, go will win hands down.

I'm not so sure of that. Writing business logic in PHP is usually more concise than in Go, and more flexible. Also, I can think of a number of json schemas that are impossible to replicate in Go's type system but work just fine in PHP.

>> Also, I can think of a number of json schemas that are impossible to replicate in Go's type system but work just fine in PHP.

Not at all. There are some that would be painful to write "by hand". An expansive and nested set of null fields would suck if I had to spell it all out...

https://sqlc.dev << changes everything. If you add in the YAML (and I hate yaml) you can get your JSON to DB mapping in there, as well as your validations (all output as struct tags).

Everything else that you're going to want (transforming inputs to/from json, logging, auth) is some pretty simple middleware.

You can't fully replicate JSON schemas in either language without writing logic.

In terms of just static definitions, Go has typed container types while PHP has not. That's a pretty common case for JSON. PHP is more convenient at another common case which is heterogeneous maps. Neither of those languages make me particularly happy in that regard.

It also depends on what you're doing with the JSON. If you want/need to walk through it in a single pass fashion, then Go is definitely more fitting.

> Go has typed container types while PHP has not.

I suggest looking at https://github.com/Crell/Serde, if that is a requirement in PHP.

> PHP is more convenient at another common case which is heterogeneous maps.

Or arbitrary, user-defined keys...

> If you want/need to walk through it in a single pass fashion, then Go is definitely more fitting.

array_map, array_reduce, array_column is pretty good at walking through arrays very quickly, assuming you parsed the json into arrays instead of objects.

Go has builtin typed container types while PHP has not.