Talk:YourLanguageSucks
From TheoryOrg
Contents |
CSS Sucks
- Contrary to your argument given for a lack of transparency, CSS actually does support transparency as of CSS3. This is implemented via the opacity attribute. --Crazy Pothead 23:58, 4 October 2007 (PDT)
- CSS 3 is not an official spec yet and is not supported by all browsers. --Matt Chisholm
- This is not a problem of CSS A71104
- CSS 3 is not an official spec yet and is not supported by all browsers. --Matt Chisholm
Python sucks
- Removed There are strings, and then there are Unicode strings. No justification was given. Python's Unicode strings allow for superior Unicode support than Ruby & PHP, and nothing in Python forces you to use Unicode strings -- you can write an entire application that uses only byte strings and do encoding support the Ruby/PHP way.
Object-oriented programming sucks? Perhaps not.
- "Object-oriented programming is an exceptionally bad idea which could only have originated in California." --Edsger Dijkstra.
-
- Well he was dumb. OOP dramatically improves the scalability of programs. --Matt Chisholm
- I agree; remember the "arrogance in computer science is measured in nano-Dijkstra's" thing? A71104
- Well he was dumb. OOP dramatically improves the scalability of programs. --Matt Chisholm
-
- Object oriented programming has been shown to have no significant difference in productivity than standard procderal programming.
-
- That's actually just not true.
-
- If this "has been shown" then cite the source. --Matt Chisholm
-
C++ sucks? Perhaps not.
I think the reasons for why C++ sucks are vague and in some cases debatable. I would like to see more concrete examples.
- C++ doesn't enforce a single paradigm. Neither procedural or object-oriented are enforced resulting in unnecessary complication.
-
- Isn't that a good thing?
-
- None of the languages on this page enforce a single paradigm. How is this problem specific to C++? --Matt Chisholm
- Not true: Java enforces object oriented programming (you can't do procedural programming in Java, there are no functions). A71104
- None of the languages on this page enforce a single paradigm. How is this problem specific to C++? --Matt Chisholm
-
- It requires a bulky runtime.
-
- That's not true. You don't have to use MFC, and you can program really small programs if you turn off function header generation at the linker.
-
- What does "bulky" mean? C++'s runtime is lightweight compared to every other language on this page. --Matt Chisholm
- You're right, I removed that point. --A71104
- What does "bulky" mean? C++'s runtime is lightweight compared to every other language on this page. --Matt Chisholm
-
- Not practical for low level system development and quickly becomes a mess for user level applications.
-
- That's actually not true. The __asm {} construct allows you to make fairly arbitrary code so long as you tell the compiler to ignore function headers.
-
- Why is it not practical for low-level system development?
-
- Why does it quickly become a mess for user level applications? --Matt Chisholm
- Because it supports multiple programming paradigms, so a programmer could write object oriented parts and procedural parts, leading to a very heterogeneous and really ugly design, which complicates code maintenance. --A71104
- Why does it quickly become a mess for user level applications? --Matt Chisholm
-
- The standard has no implementation for exception handling and name mangling. This makes cross-compiler object code incompatible.
- Why does the lack of exception handling make cross-compiler object code incompatible? --Matt Chisholm
- Not the lack of exception handling, but the lack of any specification that forces an implementation of exception handling; we are talking about *binary* incompatibility. A71104
- Why does the lack of exception handling make cross-compiler object code incompatible? --Matt Chisholm
- C++ supports 'goto'.
-
- Are we complaining that C++ is too high level or too low level here? Even if it didn't, you could do
-
register int f = *location -
__asm_ volatile ("jmp eax", "a=", f)- Neither of them; we are complaining (as it's widely accepted) that the goto construct brings to really bad designs, and modern languages should just *not* offer such a deadly instrument. A71104
-
- No widely use OS supports the C++ ABI for syscalls.
-
- And why should they? The ABI necessitates an underlying operating system (vtables et. al don't appear by magic ya' know), and if C++ enforced them it would make C++ unable to do low level systems programming. Silly.
-

