this post was submitted on 18 Apr 2026
0 points (50.0% liked)
Programming
26752 readers
286 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
javascript exists; his point is invalid
Would be true except it is not a programming language, it is a scripting language.
it's turing complete and has syntax. you're splitting hairs.
I am not. A programming language can be directly compiled into assembly to program the instructions. A scripting language isn't compiled and can only provide instructions on when and what to do to a program that has already been told how by an actual programming language.
This distinction is both illogical and ahistorical. Python is a scripting language that has a compiler. Indeed, any scripting language can be translated into a compilable language and then compiled, a process called transpiling.
There's also Java, which definitely compiles down to bytecode, but for a machine which physically doesn't exist. The Java Virtual Machine is an emulator that runs on supported hardware, in order to execute Java programs. Since the Java compiler does not produce, say, x86 assembly, your definition would assert that Java is not a compiled language, despite obviously having a compiler.
As an exercise for everyone else, also have a look at Lisp, a very-clear programing language with a compiler, but some specially-built machines were constructed that optimized for Lisp programs, with hardware support to do checks that would take longer on other architectures.
I also agree that Javascript is worse. C++ has two excuses for being bad:
Javascript has neither of those two excuses. People only use it today because of the ubiquity of web programming. In fairness, it did kill off a few other technologies, like Flash and Java applets, but that was more Webkit and Chrome picking it as the winner than anything else.
Maybe these arguments are a bit hand-wavy, but the way I see it, it's like the C of the web programming era.
My Brother Here are 2 for you from a java guy:
It also has a Lot of footguns but isnt nearly as cluttered and complicated and lets you Focus on your task at hand more
Sure, I'm familiar with the conditions under which Javascript was created, but those are all political issues, not technical ones.
If you had to go back and recreate another C++, you would be forgiven for creating a bad language, because making a good, usable language without a garbage collector is really hard, and even moreso when it has to be compatible with C. If you had to recreate Javascript... I would think it would be expected that you don't make a language with the same kinds of flaws JS has today. There were plenty of examples of languages Javascript could have been based off of when it was written (like Java).
Case in point: it took decades for Rust to come around which was the first real challenge to C++. In the same period of time, we saw several GC languages appear (Java, C#, Go, PHP, Swift, Ruby, Python, all younger than C++), all competing against each other. Javascript would have been abandoned if it didn't have a monopoly on web programming.
Serious question: Why does it Need c compatibility? The compatibility is incrddibly superficial (Syntax wise)
Ease of adoption, if I'm not mistaken (so I was told 20-ish years ago when I started learning C++). Think back to the early/mid '90s - there was a lot of existing C code out there back then, people really didn't want to throw it away but had few options if they wanted to use something else. C compatibility offered a way for large companies to incrementally adopt C++. All you had to do was change your compiler and your existing C code would compile, and you could write new stuff in C++. In the mean time, other languages could only leverage that existing code by using message passing or FFI-like frameworks. For example, you would have to use JNI if you were writing Java I think - maybe there were other options, but it was a big pain to deal with at the time, especially since tooling was probably not as polished back then.
Maybe it's not as much of an issue today, but they have to maintain compatibility with earlier versions, so while it helped adoption a lot, it also is a big challenge for the language and its ability to move forward.