What are quality, well designed languages and badly designed languages? and...

Benjamin Brooks
Benjamin Brooks

What are quality, well designed languages and badly designed languages? and what is the use of them?

good designed:
Microsoft C# (used for desktop apps, web backend, business stuff, video games)
C (low level and embedded applications, drivers, operating systems)

medium designed:
C++ (used for AAA games, old software and desktop apps, operating systems)
Java (stupid business and banking software, stupid software for feature phones, stupid android software)

badly designed:
PHP (used for crap dynamic websites)

Where should we put JavaScript, Python, and other languages?
You could also rate some technologies that are not programming, like HTML, CSS, XML, SQL, Flash.

All urls found in this thread:
https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
https://eev.ee/blog/2017/08/09/growing-up-alongside-tech/
James Hughes
James Hughes

Care to substantiate that "PHP is badly designed" meme?

Anyway, for me, the best designed language is the one that gets in your way the least. So Python with its forced indentation is already out of consideration.

But in reality, there's too much focus on languages. It's almost autistic. Language doesn't matter, the programmer does. It's like endlessly arguing about which screwdriver is better. The one that helps you unscrew the screw, and that's it.

Henry Gomez
Henry Gomez

So Python with its forced indentation is already out of consideration
pajeet pls

Michael Gray
Michael Gray

He's right though.
formatting of file gets messed up
RIP unrecoverable

Dominic Lee
Dominic Lee

Certain tasks need certain style screwdrivers. You can't use a flathead for a torq-set screw, user.

Chase Taylor
Chase Taylor

Care to substantiate that "PHP is badly designed" meme?
stupid random functions with random names glued into the base language

Language doesn't matter, the programmer does.
Your wrong. It's both what matter. And there is no reasons to learn and use crap languages like PHP.
Also crap languages produce bad programmers.

Oliver Wilson
Oliver Wilson

I've never had this happen or heard of this happening. How does it happen, and why is it more likely than all braces disappearing?
I think Python's indentation is good at getting out of my way. I'm going to indent anyway, so I like not having to jump through additional hoops.

Logan Carter
Logan Carter

Care to substantiate that "PHP is badly designed" meme?
https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

Eli Ortiz
Eli Ortiz

Not coincidentally, this was the same era of my life that led me to write stuff like that PHP post, which you may notice I am conspicuously not even linking to. I don’t think I would write anything like it nowadays. I could see myself approaching the same subject, but purely from the point of view of language design, with more contrasts and tradeoffs and less going for volume. I certainly wouldn’t lead off with inflammatory puffery like “PHP is a community of amateurs”.
https://eev.ee/blog/2017/08/09/growing-up-alongside-tech/
Even eevee has grown up. So can you.

Brody Nguyen
Brody Nguyen

So a bunch of stuff that doesn't matter. That's what I thought.

I don't have the time or patience to respond to this pile of bullshit, but I'll tackle just one of these:

array_search, strpos, and similar functions return 0 if they find the needle at position zero, but false if they don’t find it at all.

So? That's exactly the way it should be designed. If it's at position 0, it returns just that. And if it has no position, it returns just that - FALSE. So what is this guy whining about?

Ok, I will tackle some more:

PHP parse errors generally just spew the parse state and nothing more, making a forgotten quote terrible to debug.

I debug it daily, and don't have a problem.

Most error handling is in the form of printing a line to a server log nobody reads and carrying on.

Then read the fucking log.

Extra arguments to a function are ignored (except with builtin functions, which raise an error). Missing arguments are assumed null.

So what is the better way to handle this? THERE ISN'T ONE.

How do you sort backwards? In Perl, you might do sort { $b <=> $a }. In Python, you might do .sort(reverse=True). In PHP, there’s a separate function called rsort().

Again, whining about nothing.

And more and more bullshit that has not bothered me at all in my 10 years of PHP programming - or even better, it's actually GREAT DESIGN.

The real question is why did this person even write this? He could have spent all that time coding instead of whining. He could have avoided all this frustration and maybe actually learrned to appreciate PHP. Because the stuff he is whining about doesn't matter or is actually great design.

Nathaniel Nguyen
Nathaniel Nguyen

Can you give some advice for some relative newbie who has found themselves in a job filled with loads of php programming and somehow being the sole php programmer?

Nicholas Moore
Nicholas Moore

I don't know. What kind of advice would you want? My advice is to not focus on tools but on your projects. Tools are means to an end.

Grayson White
Grayson White

Anyway, for me, the best designed language is the one that gets in your way the least.
Java is also out of consideration imo, unless you are coding Java bytecode.

I guess Lisp is god-tier?

Jaxon Nelson
Jaxon Nelson

I guess career wise if you felt there were any easily identifiable mistakes or things you feel like you should have done when you were younger.

Gavin Moore
Gavin Moore

So? That's exactly the way it should be designed. If it's at position 0, it returns just that. And if it has no position, it returns just that - FALSE. So what is this guy whining about?
It should return null. There are a shitload of functions that act usefully on a null. false forces you to use === and nothing else. Learn your basic types for fuck's sake

PHP parse errors generally just spew the parse state and nothing more, making a forgotten quote terrible to debug.
I debug it daily, and don't have a problem.
PHP got publically shamed into fixing one thing some time in the past five years so I guess it's perfect now according to Parse-Error-Erry-Day Pajeet, Ph.D over here

Most error handling is in the form of printing a line to a server log nobody reads and carrying on.
Then read the fucking log.
Read the second half of the sentence you dumb cunt. Even visual fucking basic doesn't default to "on error resume next".

Extra arguments to a function are ignored (except with builtin functions, which raise an error). Missing arguments are assumed null.
So what is the better way to handle this? THERE ISN'T ONE.
HOW ABOUT THE ONE PERL HAS? OR JAVASCRIPT HAS? OR FUCKING C EIGHTY-NINE IN MICROSOFT'S COMPILER HAS?

How do you sort backwards? In Perl, you might do sort { $b <=> $a }. In Python, you might do .sort(reverse=True). In PHP, there’s a separate function called rsort().
Again, whining about nothing.
You've never written a HTML table with sort buttons in ten years of using PHP?

or even better, it's actually GREAT DESIGN.
Dunning-Kruger: The Post.

Nathaniel Martin
Nathaniel Martin

good designed
C
Are you retarded? C belongs in the badly designed pile along with PHP and Javascript.

Blake Reyes
Blake Reyes

Tier 1
Java
Rust

Tier 2
C#, F#
Haskell, Python

Tier 3
C++

Tier 4
Go
C

Tier 5
All LISPs
JavaScript
Everything else

Daniel Garcia
Daniel Garcia

Quite right user, Rust is a pajeet-tier language. :^)

Juan King
Juan King

So you are saying INDIAN programmers are tier 1.

Brandon Perez
Brandon Perez

The language placement was sufficiently weird that any implication of one number being the best was completely lost anyway.

Charles Green
Charles Green

This. I was honestly thinking he was tiering from worst to best like a 1-5 stars thing, judging by the languages. Then I realized he had JavaScript on Tier 5 and I realized we're just dealing with a special kind of retarded.

Jace Rodriguez
Jace Rodriguez

PHP got publically shamed into fixing one thing some time in the past five years so I guess it's perfect now according to Parse-Error-Erry-Day Pajeet, Ph.D over here

Why the insults? Also, you seem to know the whole history of PHP's alleged fuckups. Even I don't know it. Maybe because I actually focus on coding.

HOW ABOUT THE ONE PERL HAS? OR JAVASCRIPT HAS? OR FUCKING C EIGHTY-NINE IN MICROSOFT'S COMPILER HAS?

Then use those languages. No one forces you to use PHP.

What was the point of your post? You sure showed that PHP guy who's boss. Now what?

Brody Anderson
Brody Anderson

C is extremely well designed for what it is - a replacement for writing assembly that can scale up to application development. It was so successful that it ended the days of hand-coded assembly and also took over application development for nearly 50 years, and is still so good that no one has managed to make a language yet that can fully replace it.

Ethan Rogers
Ethan Rogers

God tier: Scheme, Racket

Colton Ortiz
Colton Ortiz

C
High tier
Not today. Null terminated strings and lenghtless arrays made sense when even 2 or 3 extra bytes were a significant overhead, but nowadays they are the kind of stuff that makes people do dumb shit like wild guessing the length of an array passed to a function.

Nathan Butler
Nathan Butler

or even better, it's actually GREAT DESIGN.
I program in PHP daily. PHP7 isn't bad, but saying that PHP is GREAT DESIGN is retarded.

Camden Phillips
Camden Phillips

CSS3 - bad tier
SQL - medium tier?
HTML4 - good tier? or medium?
Pascal - medium/good tier?

Dominic Perry
Dominic Perry

It has some great design in it, as well as some average and even some bad! Just as every language. My aim wasn't to glorify PHP, but to show that it's just a tool and all those flaws really don't matter.

You have to wonder about those guys that write those giant articles shitting on a language. Like, why do they know so much about those languages then? I'd be out of there faster than you can blink, if I didn't like the language so much. I wouldn't even know about half of those "flaws" because I already wouldn't be using the language. But those guys just whine and whine.

Jose Lopez
Jose Lopez

I can rant for ages about the bourne shell, even though I know and use it, because there's no widely used better alternative within its niche. If I want my shell scripts to easily run everywhere they have to be sh or bash. It's still a badly designed language.
PHP is similar. My experience with PHP comes from a university course that taught it because it's available everywhere, and from interacting with a few existing codebases. I didn't choose PHP, but I ended up using it anyway. I don't have quite enough experience to feel comfortable ranting about it (and I haven't) but I could have had without at any point liking the language.
I do think there's a good chance a language that chose function names on the basis of having a variety of lengths to make the strlen-based lookup efficient has worse design than most.

Jason Turner
Jason Turner

HTML4 is shit tier. Why the fuck are textareas and drop down menus not <input>, even though even motherfucking buttons are? But wait, buttons can be buttons or inputs, because fuck consistency.

Juan Davis
Juan Davis

Maybe because I actually focus on coding.
Maybe because you've never solved a hard problem in your life

Grayson Sanchez
Grayson Sanchez

Excellent
Go

Good
Java, Python

OK
C#, Kotlin, C (in some areas)

Bad
Scala, F#, Haskell, Lisps, Ruby, C++, Rust

Shit
JavaScript, PHP

Sebastian Rogers
Sebastian Rogers

all these plebs
C is bad
some abortion of a scripting language is good
some shill/ironic language is great
lol nobody even trying to go for anything decent but obscure

Jacob Cook
Jacob Cook

Why the fuck are textareas and drop down menus not <input>
So you can put <applet>s inside them, of course

Brody Diaz
Brody Diaz

Fantastic design:
PHP
You may hate it, but it's incredibly cheap to develop in. Pajeet optimization pays off.

Great design:
C
The best language ever created.

Good design
Python
OOP and slow, but it forces you to write good code unless you want to fight the language.

Mediocre design:
C++
Okay language, has niche use cases, but not very well designed.

No design:
Assembly
Not intended to be user-friendly at all.

Lincoln Cook
Lincoln Cook

How are shell scripts badly designed? You can design them however you want and shoehorn any paradigm you want into them.

Charles Davis
Charles Davis

No lists, aside from $@ (sort of) and incompatible hacky solutions in various derivatives.
Unquoted things expand to multiple arguments, which is the wrong thing in 99.5% of cases, so you have to keep typing quotes everywhere.
[ is a shell command masquerading as syntax, which leads to unpleasant surprises if you don't know.

Grayson Peterson
Grayson Peterson

How are shell scripts badly designed?
Put a leading space in your home directory's name. Hope you have a backup.
Proper error and data handling are imppssible in shell script, and even the simple stuff is often nearly impossible. Nothing new should be written in it. Use python or perl.

Carson Butler
Carson Butler

shell is a programming language and its bad
don't use shell scripting
I won't use python or perl or whatever to invoke mpv with the contents of my clipboard, fuck you.
Or convert all the files in a directory and then run a couple of imagemagick commands, with an if statement depending on what the files are.
Reccomend or create a better scriptable user interface for running binaries if you have problems with bourne shell.

Juan Russell
Juan Russell

How is C# good designed and not straight up garbage?

Justin Torres
Justin Torres

fish, rc and Emacs' eshell all have various improvements over Bourne shell. oil looks nice but I haven't checked it out in detail yet. I suspect Powershell has ideas worth looking at but too much of it was garbage when I tried the Linux version.
Anyway, this is why I brought it up in the first place. I use it all the time because it somehow manages to be the most practical within its niche. But it's still a horrible language.

Luke Foster
Luke Foster

Fantastic design:
PHP
The language whose stupid decisions cost billions of dollars globally in dealing with breaches is poorly designed. That they didn't support positional parameters in their db interface for nearly a decade was almost malicious.
Assembly
Not intended to be user-friendly at all.
It literally only exists to make machine code user-friendly.

Chase Jones
Chase Jones

Reccomend or create a better scriptable user interface for running binaries if you have problems with bourne shell.
Doing one-liners is different than writing a script, Pajeet. But we do need a better interactive shell as otherwise one-liners often grow into hopelessly error-filled shell scripts. Shell script is Linux's cancer.
Microsoft tried with powershell (look into how it does structured pipes) but had Java devs work on it and it's comically verbose.

Cooper Myers
Cooper Myers

be specific about what you're talking about then.
"Shells are bad" is something retards will latch onto unmodified and without the understanding of context.

Hunter Nelson
Hunter Nelson

because some of us have jobs at microsoft sweetie ;^)

Cameron Reed
Cameron Reed

So a bunch of stuff that doesn't matter. That's what I thought.
lmao
array_search, strpos, and similar functions return 0 if they find the needle at position zero, but false if they don’t find it at all.
So? That's exactly the way it should be designed. If it's at position 0, it returns just that. And if it has no position, it returns just that - FALSE. So what is this guy whining about?
Go have fun when your code fails with ==. This is fucking retarded.
PHP parse errors generally just spew the parse state and nothing more, making a forgotten quote terrible to debug.
I debug it daily, and don't have a problem.
The article is from 2012, they better improve it.
Most error handling is in the form of printing a line to a server log nobody reads and carrying on.
Then read the fucking log.
You don't fucking understand. In case of an error PHP carries on, which is the exact opposite of what you want if you want correct results.
Extra arguments to a function are ignored (except with builtin functions, which raise an error). Missing arguments are assumed null.
So what is the better way to handle this? THERE ISN'T ONE.
How about throwing an exception when required arguments are missing/there are extra arguments, genius?
How do you sort backwards? In Perl, you might do sort { $b <=> $a }. In Python, you might do .sort(reverse=True). In PHP, there’s a separate function called rsort().
Again, whining about nothing.
The global namespace is polluted as fuck for no reason, and because it is a separate function, combined with the fact that you cannot store function pointers in variables in PHP, you're gonna repeat your code N times for N sorting variations. This is fucking retarded. Why not an optional argument?
And more and more bullshit that has not bothered me at all in my 10 years of PHP programming - or even better, it's actually GREAT DESIGN.
GREAT DESIGN
pic related
The real question is why did this person even write this? He could have spent all that time coding instead of whining. He could have avoided all this frustration and maybe actually learrned to appreciate PHP. Because the stuff he is whining about doesn't matter or is actually great design.
He worked on a shitton of PHP code, and got fed up and vented.
learned to appreciate PHP
I don't even fucking have words. Nobody wants to buy into your fucking cult.

Hudson Morgan
Hudson Morgan

<multi-dimensional arrays is composed of multiple arrays in php
<trying to remove elements in the middle results into having to go through each array, find the index and then remove it with unset function
isn't there a cool method for it

Andrew Sanders
Andrew Sanders

As in when you only have the value, not key? This is no different from C. Either rethink what you're doing, use one array (arr[x + y*line_len]), or keep it the way it is.

Joshua Cook
Joshua Cook

reddit spacing
unironically defending php

Lucas Brown
Lucas Brown

God tier
Scheme

Good tier
C
Common Lisp
Haskell

Shitty-but-useful tier
Python
C++
JavaScript
Go

Designed-for-retards tier
Java
Rust
JavaScript
Go

Cancer tier
PHP
Perl
Ruby

Go and JavaScript are in two categories because putting them in only one of the two just seemed dishonest.

Isaac Hernandez
Isaac Hernandez

Excellent: Rust

Disable AdBlock to view this page

Disable AdBlock to view this page