Talk:YourLanguageSucks

From TheoryOrg

Jump to: navigation, search

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

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.

  1. "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
  2. Object oriented programming has been shown to have no significant difference in productivity than standard procderal programming.
    • That's actually just not true.

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.

  1. 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
  2. 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
  3. 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 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
  4. 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
  5. 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
  6. 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.
Personal tools