@fediverse What type of social media do you feel is lacking most in the fediverse?
To elaborate, there are a lot of different types of social media already on the fediverse such as microblogs, regular blogs, image sharing, link sharing and video sharing.
Personally, I’d love to see a gaming-focused social media platform on the fediverse.
@remcoboerma What’s wrong with PHP? 😁 I’m not that much of a techie
@dave @ch0ccyra1n
+1 on this. As a techie, what IS wrong with php?
@PeterPoopshit @petrescatraian
* String concatenation using a “.” character (instead of a “+” like everyone else)
* Namespaces using a backslash as path separator (“\” is for escaping!)
* The whole idea of running an interpreter on every page request.
* Untyped variables
Just to name a few things on top of my head.
String concatenation with
+
is evil. Well-designed languages (Lua, for example, among many others—I’m not calling PHP well-designed!) doesn’t do this.Why?
Because
+
, in every other context is commutative, but suddenly, in the case of concatenation, it is not. This is an unnecessary cognitive burden for no material gain.Concatenation can be accomplished by juxtaposition (e.g. SNOBOL4, Rexx, much of the C family tree), by
..
(Lua), by.
(Perl, PHP), by||
(PL/I, Rexx again), by&
(Ada, some BASIC dialects), etc. without this added cognitive burden of overloading+
for no good reason.I’ve never bought this argument. It really doesn’t take much brain power to figure out that if you are dealing with strings, the left side is going to be on the left and the right side will be on the right. That’s incredibly intuitive logic.
I would offer up a different reason that neither should be used. Format strings do the trick nicely and allow you to start including literals, convert other types to strings, etc. as needed.
A whole lot of misdesigns are only a “small amount of brain power” to use. As your language accumulates these, however, the load builds up.
This also has the extra problem that overloading in general brings with it. What is the result of
3 + "string"
? What is the result of"string" + 3
? You have to have rules for this. These rules have to be learned. They have to be kept in mind. There is room for error. And of course the way different languages react to them will vary strongly.For example in Rexx, Python, and Ruby these are errors (and with the latter two the error changes depending on which order). In Awk and Perl the result is 3 in both cases.
Format strings are better than
+
as concatenation, to be fair, but are still not very good compared to separate concatenation operators. It’s hard to make them type-safe. They separate the value from its location in the string.Using actual concatenation operators has the advantage of format strings, but add the possibility for type safety. For example in Ada:
... Put_Line("Distance: " & Distance_Value'Image & "km"); ...
See here,
&
will only concatenate string types. If you want to print something that’s not a string, you have to convert it to a string. This means you can’t accidentally mix types. Further, it’s immediately obvious where a given value will show up in the output. Compare and contrast with the C equivalent:... printf("Distance: %skm\n", distance_value); ...
Not only is location of the value obfuscated—trivial to spot here, but in a complicated string it’s very difficult to spot at times. And it’s easy, too, to have the format code not match the value. As this example illustrates. Again, easy to spot in trivial code like this, but horrifically hard in real-world code, especially if the variable type changes.
@petrescatraian @dave @ch0ccyra1n
Just a matter of preference. I hack python, not php. Since I haven’t found a zot library yet, and it’s a too big a job to write one myself, I can’t hack on zot. And I think it *might* be better than activitypub.
@remcoboerma
I see. That makes sense 😁
@dave @ch0ccyra1n
@dave @remcoboerma @petrescatraian @ch0ccyra1n IME, the language is full of footguns. It’s possible to write good code in PHP, and I don’t doubt that many people do, but it’s difficult for beginners to figure out the right way to do things. It doesn’t help that many tutorials teach outdated, insecure ways of doing things.