Stop comparing programming languages

  • Python is versatile
  • JavaScript is powerful
  • Ruby is elegant
  • C is essential
  • C++
  • Java is robust
199 points
  • PHP is old
  • HTML is NOT A PROGRAMMING LANGUAGE!!!
  • CSS is
    ︎ ︎ ︎ not alig-

︎ ︎ ︎ ned

permalink
report
reply
48 points

PHP is old

Same age as Ruby, Java and JavaScript, but younger than Python, C, and C++. 😛

permalink
report
parent
reply
32 points

I’m guessing they meant “old” as in “no one uses it anymore, it’s dead”

permalink
report
parent
reply
55 points

Meanwhile PHP quietly runs 80% of the internet by being used for WordPress.

permalink
report
parent
reply
31 points

Don’t tell my bosses that. Or the PHP community as a whole for that matter. Then I might have to get a real job.

permalink
report
parent
reply
2 points

The year they both came out (1995) I was coding in Visual Basic 3. Ack.

permalink
report
parent
reply
4 points

Modern php is not bad actually. Still kinda slow and dangerous, but A LOT better than it used to be :')
That said, i wouldnt build a web service with php still lol

permalink
report
parent
reply
1 point

Actual definitions (my opinion):

  • HTML is website
  • CSS is style
  • JS is everywhere
  • SQL is data
  • Python is simple
  • PHP is backend
  • Markdown is README
  • YAML is config
permalink
report
parent
reply
92 points
*
  • Python is NameError: name 'term_to_describe_python' is not defined

  • JavaScript is [object Object]

  • Ruby is TypeError: Int can't be coerced into String

  • C is segmentation fault

  • C++

  • Java is

Exception in thread "main" java.lang.NullPointerException: Cannot read the termToDescribeJava because is null at ThrowNullExcep.main(ThrowNullExcep.java:7)
Exec.main(ThrowNullExcep.java:7) 
  • CSS j ust # sucks
  • <HTML />
  • Kotlin is type inference failed. The value of the type parameter K should be mentioned in input types
  • Go is unused variable
  • Rust is Compiling term v0.1.0 (/home/james/projects/Term)
permalink
report
reply
23 points
*

C++ is std::__cxx11::list<std::__shared_ptr<table, (__gnu_cxx::_Lock_policy)0>, std::allocator<std::__shared_ptr<table, (__gnu_cxx::_Lock_policy)0> > >::erase(std::_List_const_iterator<std::__shared_ptr<table, (__gnu_cxx::_Lock_policy)0> >) /usr/include/c++/12/bits/list.tcc:158

permalink
report
parent
reply
6 points

I once forgot to put curly braces around the thing I was adding into a hashmap. If I remember correctly it was like ~300 lines of error code, non of which said “Wrong shit inside the function call ma dude”.

permalink
report
parent
reply
4 points

The only reason to use AI in programming is to simplify C++ error messages.

permalink
report
parent
reply
13 points

Rust is downloading 1546 dependencies

permalink
report
parent
reply
4 points

Crates aren’t exactly runtime dependencies, so i think that’s fine as long as the 1500+ dependencies actually help prevent reinventing the wheel 1500+ times

permalink
report
parent
reply
3 points

I’ll happily download 63928 depends so long as it continues to work. And it does, unlike python projects that also download 2352 depends but in the process brick every other python program on your system

permalink
report
parent
reply
8 points

If you’re not using a venv for python development, that’s kind of on you

permalink
report
parent
reply
-1 points

Good for you. Not all of us have terabytes of free space on our computers.

permalink
report
parent
reply
5 points

If you’re naming variables like that in Java you should definitely switch to C.

permalink
report
parent
reply
8 points

fixed ive using rust for a while

permalink
report
parent
reply
83 points

Mfw Rustaceans don’t exist :(

Also, JavaScript…why are you the way you are? Does anyone have advice for learning it so it makes sense? I can’t even get tutorial projects to run properly…

permalink
report
reply
55 points

This meme is older than rust.

permalink
report
parent
reply
37 points

actually it says 8h meaning it’s only 8 hours old

permalink
report
parent
reply
23 points
*

It will be 8 hours old forever.

permalink
report
parent
reply
34 points

use typescript and don’t look too hard at the infrastructure

permalink
report
parent
reply
12 points

Lol any

permalink
report
parent
reply
13 points

Last company I worked at used Typescript, but used any for everything… I have no idea why. I never got an actual answer.

permalink
report
parent
reply
6 points

I tried, but the infrastructure collapsed on me.

permalink
report
parent
reply
18 points

The mantra that got me through JavaScript was “almost nothing we do here is able to be synchronous”.

Everything about the language makes more sense, with that context.

permalink
report
parent
reply
17 points

I like Douglas Crockford’s talks about the “good parts” of JavaScript. They’re old and probably a bit outdated, but he explain quite well the history and why JavaScript is the way like it is.

It clicked for me when I saw them the first time. Still hate JavaScript though.

permalink
report
parent
reply
10 points

What Crockford did was enable a lot of devs to realize there was a viable development platform built into the most prolific and open network client in the world. For that he should be commended but it should have never been taken as “this is a viable general purpose language”.

permalink
report
parent
reply
2 points

He also showed that JavaScript has more resemblance to functional programming languages rather than object oriented ones. If you try to treat it as an object oriented language like Java (like the seem to imply), you will have a bad time.

This has changed with TypeScript though.

permalink
report
parent
reply
4 points

Can it even make sense tho? To me JS is an example of a not too good thing that people started too eagerly so now they’re trying to make it make sense.

permalink
report
parent
reply
1 point

I have no idea.

permalink
report
parent
reply
3 points

Start simple.

And that probably requires not going with a tutorial. Because the JS ecosystem scorns at “simple”. Just make some HTML scaffold and use MDN to understand the DOM.

permalink
report
parent
reply
68 points

Just accept it, all languages suck

permalink
report
reply
106 points

“There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

permalink
report
parent
reply
43 points

That’s why Haskell is so loved. Nobody uses it.

permalink
report
parent
reply
9 points

I love how after a decade pandoc is still Haskell’s “killer app”. smh

permalink
report
parent
reply
3 points

Fortran would like a word.

permalink
report
parent
reply
3 points

Writing raw byte binaries ftw!

(Jokes aside, all programming languages have their good and bad things. Some just have more bad than good. And i say that as a C/C#/typescript/asm developer :p

permalink
report
parent
reply
3 points

Not Scala and Rust. They are my beloved, my sweethearts, my knights in shining armor.

Ok Rust does have some major issues, but not Scala…

permalink
report
parent
reply
8 points

Oof, slow compile times to target, of all things, the JVM? Implicit methods? Some(null)? Function call syntax where the difference between a tuple argument and a sequence of non-tuple arguments can be determined by whether or not there’s a space before the parentheses?

There are definitely some major issues with Scala.

permalink
report
parent
reply
2 points
*

They also thought the best thing to take from Python is that version 3 should not be backwards compatible with version 2

permalink
report
parent
reply
2 points
*

I agree that the slow compile times are pretty bad (maybe even deal-breakingly for large projects). I think it’s kind of necessary for a language with as powerful of a syntax as Scala though, it’s pretty absurd how expressive you can get. Maybe if it didn’t target the JVM, it’d be able to achieve way faster compile times – I don’t really see a point of even targeting JVM other than for library access (not to say that that isn’t a huge benefit), especially when it has relatively poor compatibility with other JVM languages and it’s nearly impossible to use for Android (don’t try this at home).

Even more so, I think that null handling isn’t nice – I wish it were more similar to Kotlin’s. One thing I’m really confused as to why Scala didn’t go all-in on is Either/Result like in Rust. Types like that exist, but Scala seems to mostly just encourages you to use exceptions for error propogation/handling rather than returning a Monad.

A more minor grudge I have is just the high-level primitive types in general – it’s pretty annoying not being able to specify unsigned integers or certain byte-width types by default, but if it really is an issue than it can be worked around. Also things like mutable pointers/references – I don’t actually know if you can do those in Scala… I’ve had many situations where it’d be useful to have such a thing. But that’s mostly because I was probably using Scala for things it’s not as cut out to do.

With the tuple arguments point, I get it but I haven’t found it much of an issue. I do wish it wasn’t that way and it consistently distinguished between a tuple and an argument list though, either that or make functions take arguments without tuples like in other functional languages or CLI languages (but that’d probably screw a lot of stuff up and make compile times even LONGER). I saw someone on r/ProgrammingLanguages a while back express how their language used commas/delimiters without any brackets to express an argument list.

I think an actually “perfect” language to me would basically just be Rust but with a bunch of the features that Scala adds – of course the significant functional aspect that Scala has (and the clearly superior lambda syntax), but also the significantly more powerful traits and OOP/OOP-like polymorphism. Scala is the only language that I can say I don’t feel anxious liberally using inheritance in, in fact I use inheritance in it constantly and I enjoy it. Scala’s “enum”/variant inheritance pattern is like Rust enums, but on crack. Obviously, Rust would never get inheritance, but I’ve found myself in multiple situations where I’m thinking “damn, it’s annoying that I have to treat <X trait> and <Y trait> as almost completely serparate”. It would especially be nice in certain situations with const generic traits that are basically variants of each other.

Plus, I’ve always personally liked function overloading and default arguments and variadics/variadic generics and stuff, but the Rust community generally seems to be against the former 2. I just really hate there being a hundred functions, all a sea of underscores and adjectives, that are basically the same thing but take different numbers of arguments or slightly different arguments.

The custom operators are a double-edged sword, I love them and always use them, but at the same time it can be unclear as to what they do without digging into documentation. I guess Haskell has a similar problem though, but I don’t think Scala allows you to specify operator precedence like Haskell does and it just relies on the first character’s precedence. I would still want them though.

How it goes now, though, is I use Scala 3 for project design/prototyping, scripting, and less performance-sensitive projects, and Rust for pretty much everything else (and anything involving graphics or web). Scala has good linear algebra tooling, but honestly I’ll usually use C++ or Python for that most of the time because they have better tooling (and possibly better performance). I would say R too, but matplotlib has completely replaced it for literally everything regarding math for me.

permalink
report
parent
reply
2 points

not zig

permalink
report
parent
reply
2 points

Yes, just flip binary directly to the cpu

permalink
report
parent
reply
66 points

ITT: Rust programmers rewriting the joke in Rust.

permalink
report
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 9.4K

    Monthly active users

  • 861

    Posts

  • 33K

    Comments