Stop comparing programming languages
- Python is versatile
- JavaScript is powerful
- Ruby is elegant
- C is essential
- C++
- Java is robust
- PHP is old
- HTML is NOT A PROGRAMMING LANGUAGE!!!
- CSS is
︎ ︎ ︎ not alig-
︎ ︎ ︎ ned
PHP is old
Same age as Ruby, Java and JavaScript, but younger than Python, C, and C++. 😛
I’m guessing they meant “old” as in “no one uses it anymore, it’s dead”
Meanwhile PHP quietly runs 80% of the internet by being used for WordPress.
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.
I’m sorry. If you exclude the millions of sites using it, it is virtually unused.
The year they both came out (1995) I was coding in Visual Basic 3. Ack.
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
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
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…
This meme is older than rust.
actually it says 8h meaning it’s only 8 hours old
It will be 8 hours old forever.
Forever young…
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.
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.
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”.
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.
use typescript and don’t look too hard at the infrastructure
Lol any
Last company I worked at used Typescript, but used
any
for everything… I have no idea why. I never got an actual answer.Because they didn’t want to train their JS developers and didn’t want to cause friction for new projects. They get to say they’re using TS, with basically none of the real advantages. (Apart from general rational error checking.)
I tried, but the infrastructure collapsed on me.
deleted by creator
I have no idea.
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.
ITT: Rust programmers rewriting the joke in Rust.
C++ is focused on getting a strong degree of root control over the hardware of lots of systems. Which is part of why it’s difficult.
I mean, if you’re talking about CVEs permitting attackers to get control of the hardware of lots of systems, then yes, I agree
Only a part. A lot of the complexity is completely unnecessary.
Sorry, Undefined Behavior Everywhere was yelling way too loud to hear you clearly.
Were you talking about strong controlling anything with C++?
JavaScript is powerful
Old joke (yes, you can tell):
“JavaScript: You shoot yourself in the foot. If using Netscape, your arm falls off. If using Internet Explorer, your head explodes.”
Are those adjectives randomly chosen?
Yeah, JavaScript powerful? How?
By running everthing in a single thread obviously. Won’t get more powerful than that
good luck doing frontend development without it, but it can also do backend development
it can do everything
The thing it can do best is bewilder developers with it’s strange choices
i wouldn’t want to program in pure assembly either but asm is definitely powerful
I would argue that ASM isn’t “powerful”. It’s direct. You can access advanced features of a CPUs architecture with the trade off limited portability. Sometimes it’s necessary but power comes from being able to express complex control and data structures in a concise and readable amount of text.
The subjective topic of what “concise and readable” means is where the language wars come in.
but it can also do backend development
The same way a rusty spoon can dig a hole, sure.
That makes it versatile, not powerful.
When I hear powerful language, I think of languages that are good at intensive tasks like assembly, c, rust, Python (because of numpy, pandas, pyspark, cuda, etc.).
Python is powerful because it easily wraps C libraries that do real work! Just kidding mostly.
But yeah, js isn’t a language I would describe as powerful. Ubiquitous? More capable than you would expect given it’s history? Bloated?
Python is powerful because it easily wraps C libraries that do real work! Just kidding mostly.
Not kidding. There’s no rule against that though. It’s good at it’s niche.
Does that not put JS (node) back on the table?
I’d say it’s the low level language doing the heavy lifting, python or JS in this scenario are just front-ends.
Hell, I think FORTH has C bindings, that’s not power, that’s mental illness
Sure, but there are good and bad frontends. JavaScript has a tendency to silently fly off the handle in mysterious ways due to the crazy type system. Python will typically fail more predictably, and is famously easy to write. I know nothing about FORTH, honestly.
I exercised JavaScript out of some of my apps, and I’m happier for it.
Did they get a good workout?
if its acceptable to force javascript onto the backend and everywhere else, then why not write the frontend in rust, or anything else than can compile to wasm ?
WASM has no native ability to access most web APIs, including the DOM. JavaScript is literally unavoidable on the front end.
javascript cannot be compiled natively for the backend or desktop either…
also libraries like wasm bindgen allow a developer to write almost no javascript. and i wouldnt could a few lines of bootstrapping.
im dont advocate for wasm when its not necessary. nor do i advocate for backend js when its not necessary.
Sorry, I’m not sure what your point is. I realize that you can almost completely avoid JavaScript, but the point I’m making is merely that there is a real technical limitation that limits the choices developers can make for front-end code, and although WASM is making great strides in breaking down that barrier (something I’ve been thrilled to see happen, but which is going much more slowly than I had hoped), the limitation is still there. Conversely, such a barrier has never existed on the backend, except in the sense that C limits what all other languages can do.
my point is that languages have their places.
javascript is great for the frontend. not just because it’s the only choice, but it’s also a lot easier to write code for ui than say, C or rust.
however i do not see a reason why it needs to run on servers or desktop apps, bar a few cases. i know node is popular, but i think fullstack devs just like to have everything in the same language, even if it makes it harder to use and slower to run.
likewise C, rust, go, whatever, are great for backends, embedded etc, but they shouldnt be ran on in the browser, unless there is a specific reason like heavy computation with little dom interaction.
just because a barrier does not exist doesnt mean that we should write programs in a language not designed for the domain.
IIRC JavaScript + TypeScript is the biggest demographic of engineers in the industry if you go by GitHub stats
I suppose you could call that power in a way
JavaScript is AN UNAVOIDABLE HARDSHIP
Pretty much so.
The only reason I use C++ is because that’s what all the main audio plugin tools use. It’s warty and annoying, although I’m confused why Java would rank higher
So we just ignore JavaScript being on that list at sll?
I shit on JavaScript for years… but Deno (built around Rust) is honestly one of the most pleasant tools I’ve used for development, and you get all the completion in VS Code.
My main experience using C++ was because I got stuck modifying an app written with Qt Creator, an utterly insane cross-platform framework that used (still uses? I dunno, only people in Finland ever used it in the first place) C++ for the under-the-hood processing and Javascript for the UI. For good measure, the application developers had modified all the C++ stuff with macros to the point where it was barely even recognizable as C++. Fortunately, it mattered not at all because the app’s customers were ISPs who just wanted a Skype clone so they could say they had one even though none of their customers ever used the damn thing.
Oh, trust me, Qt is still primarily C++. It’s effectively a massive set of C++ libraries.
Couldn’t we use pure C or Pure Data with hvcc for this?
C++ is OVERWHELMINGLY SUPERIOR, if you ask any professional C++ developer.
I was a professional C++ developer for several years, and came to the conclusion that any professional C++ developers who don’t acknowledge its flaws have a form of Stockholm Syndrome.
This is true of every language. If you can’t think of things you don’t like about the language you’re working in (and/or its tooling) you just don’t know the language very well or are in denial.
Ehhh, I mean this more strongly. I’ve never met people more in denial about language design problems than C++ adherents. (Though admittedly I haven’t spent much time talking to Lisp fans about language design.)
It’s made worse by the fact C++11 made a lot of solutions for the deep problems in the language. As the C++ tradition dictates, the problems themselves are carefully preserved for backward compatibility, the solutions are like a whole different language.
And Lisp is small - the first Google result provides a Lisp interpreter in 117 lines of Python code.
C++11 also introduced new problems, such as the strange interaction between brace-initialization and initializer-lists (though that was partially fixed several years later), and the fairly arcane rules around move semantics with minimal compiler support (for example, it would be great if the standard required compilers to emit an error if a moved-from object were accessed).
I know Lisp is minimal, I’m just saying that I expect there are Lisp fans who won’t acknowledge (or would excuse) any shortcomings in the language, just as there are C++ fans who do the same for C++.
Can confirm. Chose to focus on C++ because it literally makes me superior to other people.
C++ EXISTS
what about Holy C? is it only usable to people that are actually god choosen programmers?
It’s racist
Calling Terry racist is ableist. He was very much equal opportunity, applying the hard r to pale white CIA agents (imagined or otherwise).
You are right he was egalitarian in that.
I also have it on good authority that he had a black friend which gave him the N word pass.
nah, he bought the N word pass from SHV
C# is also here
Shhh don’t tell people they’ll ruin it.
I’m a [primarily] C# turned JavaScript dev. I miss C#.
The ecosystem is really it, C# as a language isn’t the best, objectively Typescript is a much more developer friendly and globally type safe (at design time) language. It’s far more versatile than C# in that regard, to the point where there is almost no comparison.
But holy hell the .Net ecosystem is light-years ahead, it’s so incredibly consistent across major versions, is extremely high quality, has consistent and well considered design advancements, and is absolutely bloody fast. Tie that in with first party frameworks that cover most of all major needs, and it all works together so smoothly, at least for web dev.
deleted by creator
There is another That you might say is a little rusty
This meme only works if you don’t include any example that is better than others in every regard.
I keep seeing people talk about Rust, and to be honest I never thought much about it because I’ve never had a reason to use it.
But when so many people in a programmer meme sub are saying “actually no joke Rust is amazing” that makes me pay attention.
So I looked into it and found this: https://github.blog/2023-08-30-why-rust-is-the-most-admired-language-among-developers/
- Rust has safety and efficiency close to C
- Perl is processing most of your healthcare records
- Ada is doing space stuff
- Go is going places
Perl? Nah, in this country its vb6, C#, java, gupta/centura and javascript :')
Source: been working for multiple healthcare market leaders in this country for 5 years nowWhat happens if I run paint splatters through OCR? Hmmmmm that random output looks like Perl. Holy shit it is Perl!
This actually happening is one reason I love the internet.
-
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)
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
The only reason to use AI in programming is to simplify C++ error messages.
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”.
Rust is downloading 1546 dependencies
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
If you’re not using a venv for python development, that’s kind of on you
Venv is the way
Good for you. Not all of us have terabytes of free space on our computers.
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
If you’re naming variables like that in Java you should definitely switch to C.
fixed ive using rust for a while
-
C++ is all of those, provided you pick any 10% of it.
You’re not supposed to cast every spell in the evil grimoire.
Well, except “robust”, unless you have very strict code standards, review processes, and static analysis.
(And arguably it’s never elegant, though that’s almost purely a matter of taste.)
When the standard for “robust” is Java–
I see where you’re coming from, but no matter how many null pointer exceptions there are in Java code, you’re almost always protected from actually wrecking your system in an unrecoverable way; usually the program will just crash, and even provide a relatively helpful error message. The JVM is effectively a safety net, albeit an imperfect one. Whereas in C++, the closest thing you have to a safety net, i.e. something to guarantee that invalid memory usage crashes your program rather than corrupting its own or another process’s memory, is segfaults, which are merely a nicety provided by common hardware, not required by the language or provided by the compiler. Even then, with modern compiler implementations, undefined behavior can cause an effectively unlimited amount of “bad stuff” even on hardware that supports segfaults.
Additionally, most languages with managed runtimes that existed when Java was introduced didn’t actually have a static type system. In particular, Perl was very popular, and its type system is…uh…well, let’s just say it gives JavaScript some serious competition.
That said, despite this grain of truth in the statement, I think the perception that Java is comparatively robust is primarily due to Java’s intense marketing (particularly in its early years), which strongly pushed the idea that Java is an “enterprise” language, whatever that means.