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

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.

Other urls found in this thread:

eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
eev.ee/blog/2017/08/09/growing-up-alongside-tech/
twitter.com/NSFWRedditVideo

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.

pajeet pls

He's right though.

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

stupid random functions with random names glued into the base language

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.

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.

eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

eev.ee/blog/2017/08/09/growing-up-alongside-tech/
Even eevee has grown up. So can you.

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:


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:


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


Then read the fucking log.


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.

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?

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.

Java is also out of consideration imo, unless you are coding Java bytecode.

I guess Lisp is god-tier?

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.

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 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

Read the second half of the sentence you dumb cunt. Even visual fucking basic doesn't default to "on error resume next".

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().
You've never written a HTML table with sort buttons in ten years of using PHP?

Dunning-Kruger: The Post.

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

Tier 1
Java
Rust

Tier 2
C#, F#
Haskell, Python

Tier 3
C++

Tier 4
Go
C

Tier 5
All LISPs
JavaScript
Everything else

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

So you are saying INDIAN programmers are tier 1.

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

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.

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.


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?

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.

God tier: Scheme, Racket

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.

I program in PHP daily. PHP7 isn't bad, but saying that PHP is GREAT DESIGN is retarded.

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

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.

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.

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

Maybe because you've never solved a hard problem in your life

Go

Java, Python

C#, Kotlin, C (in some areas)

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

JavaScript, PHP

lol nobody even trying to go for anything decent but obscure

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

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.

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

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.

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.

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.

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

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.

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.
It literally only exists to make machine code user-friendly.

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.

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.

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

lmao
Go have fun when your code fails with ==. This is fucking retarded.
The article is from 2012, they better improve it.
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.
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().
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?
pic related
He worked on a shitton of PHP code, and got fed up and vented.
I don't even fucking have words. Nobody wants to buy into your fucking cult.

...

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.

...

Scheme

C
Common Lisp
Haskell

Python
C++
JavaScript
Go

Java
Rust
JavaScript
Go

PHP
Perl
Ruby

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

Excellent: Rust

neither

All weakly typed languages were a design mistake tbh. Same goes for all this dynamically typed and interpreted yolo garbage for hipsters. Mixing up those two together creates absolute design horror like JS and PHP.

Other than that it's all about finding balance between readability and conciseness and in my opinion all major pure-functional/functional-first languages are clear winners here. They're as concise as it gets without going full retard and thanks to type inference they're extremely readable when using any half-decent code editor/IDE, also due to the way they work, they're much safer than any imperative language will ever be. On second place there are languages like Java, C# etc. since they are imperative and have messy syntax but at least try to implement some goodies from functional world and overally seem to be heading in good direction. At the end there will be all purely imperative languages like Go etc.

2/10, the bait premise had potential but you couldn't wait even another paragraph to reveal your hand

Are you transferring your files by dictating them over the phone?

Windows/Google/Oracle/Someothershit, what does it have to do with language design? Are you mentally challenged or something?

Oops, my mistake user. Delegates revolutionised the world.

This tbh

i didnt know people can fall for the "C# is well designed" meme as well as being a C tard