Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Most head-slapping feature in a language

Most head-slapping feature in a language

Scheduled Pinned Locked Moved The Lounge
javascriptdatabasecomlounge
36 Posts 27 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    Chris Maunder
    wrote on last edited by
    #1

    @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

    cheers Chris Maunder

    W P J M M 21 Replies Last reply
    0
    • C Chris Maunder

      @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

      cheers Chris Maunder

      W Offline
      W Offline
      W Balboos GHB
      wrote on last edited by
      #2

      Quote:

      Len("hello") = Len("hello ")

      I was thinking how char vs. varchar are treated in SQL and messed around trying to get the LEN('HELLO ') != LEN('HELLO') It's like an incorrect passing/appenidng/using VARCHAR(MAXLEN): if it passes through anything not of MAXLEN it's truncated (to 8K or, to 'HELLO'). Lesson learned, although I've not declared an actual char field [ >char(2) ] in years, and even that, only rarely.

      Ravings en masse^

      "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

      "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

      1 Reply Last reply
      0
      • C Chris Maunder

        @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

        cheers Chris Maunder

        P Offline
        P Offline
        PIEBALDconsult
        wrote on last edited by
        #3

        Of those, I use only SQL, and it's worse than that. (Transact-SQL at least.) Remember that RTRIM and LTRIM remove only SPACEs, not all whitespace. Basically, LEN (and RTRIM and LTRIM) work on bytes, so it does the same things with VARBINARY as it does with VARCHAR. So I should not have been surprised when performing LEN on a VARBINARY ignores 0x32 at the end as well. :sigh:

        1 Reply Last reply
        0
        • C Chris Maunder

          @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

          cheers Chris Maunder

          J Offline
          J Offline
          Jorgen Andersson
          wrote on last edited by
          #4

          Also remember that T-SQL != SQL. Just saying. Having been working with SQL server for a couple of years now I have to say that the string handling have a lot more to wish for. X|

          Wrong is evil and must be defeated. - Jeff Ello

          1 Reply Last reply
          0
          • C Chris Maunder

            @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

            cheers Chris Maunder

            M Offline
            M Offline
            MacSpudster
            wrote on last edited by
            #5

            Well, in SQL:

            Len('hello') = Len(' hello')

            is false (5 = 6). This is my fave thing to do in a query window for a quick update:

            IF (1=2)
            BEGIN

            BEGIN TRAN UPDATE [SomeTable] SET [someColumn] = 'someNewValue' WHERE [someID] = 0

            ROLLBACK

            COMMIT

            END

            I still get intellisense within the BEING/END area and, should I accidentally press F5 or run the silly thing w/o selecting the code to run, no harm done. Yeah, I know, gotta make sure I include the WHERE clause, and also BEGIN TRAN. I then select and run COMMIT.

            The best way to improve Windows is run it on a Mac. The best way to bring a Mac to its knees is to run Windows on it. ~ my brother Jeff

            M 1 Reply Last reply
            0
            • M MacSpudster

              Well, in SQL:

              Len('hello') = Len(' hello')

              is false (5 = 6). This is my fave thing to do in a query window for a quick update:

              IF (1=2)
              BEGIN

              BEGIN TRAN UPDATE [SomeTable] SET [someColumn] = 'someNewValue' WHERE [someID] = 0

              ROLLBACK

              COMMIT

              END

              I still get intellisense within the BEING/END area and, should I accidentally press F5 or run the silly thing w/o selecting the code to run, no harm done. Yeah, I know, gotta make sure I include the WHERE clause, and also BEGIN TRAN. I then select and run COMMIT.

              The best way to improve Windows is run it on a Mac. The best way to bring a Mac to its knees is to run Windows on it. ~ my brother Jeff

              M Offline
              M Offline
              MacSpudster
              wrote on last edited by
              #6

              Officially, I actively choose to not slap myself becuz of a (programming) language's nuance(s). :doh:

              The best way to improve Windows is run it on a Mac. The best way to bring a Mac to its knees is to run Windows on it. ~ my brother Jeff

              B 1 Reply Last reply
              0
              • C Chris Maunder

                @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                cheers Chris Maunder

                M Offline
                M Offline
                megaadam
                wrote on last edited by
                #7

                English! fish equals ghoti :cool: Ghoti - Wikipedia[^]

                "If we don't change direction, we'll end up where we're going"

                S 1 Reply Last reply
                0
                • C Chris Maunder

                  @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                  cheers Chris Maunder

                  S Offline
                  S Offline
                  Super Lloyd
                  wrote on last edited by
                  #8

                  You had me at Javascript baby! ;P

                  A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                  1 Reply Last reply
                  0
                  • M megaadam

                    English! fish equals ghoti :cool: Ghoti - Wikipedia[^]

                    "If we don't change direction, we'll end up where we're going"

                    S Offline
                    S Offline
                    Super Lloyd
                    wrote on last edited by
                    #9

                    ghoti and chips today, yum! ;P

                    A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                    1 Reply Last reply
                    0
                    • C Chris Maunder

                      @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                      cheers Chris Maunder

                      C Offline
                      C Offline
                      Christian Graus
                      wrote on last edited by
                      #10

                      The point of === is that "1" == 1 but "1" !== 1, that is, "1" === 1 will return false, due to the differing types

                      S R 2 Replies Last reply
                      0
                      • C Chris Maunder

                        @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                        cheers Chris Maunder

                        P Offline
                        P Offline
                        Peter_in_2780
                        wrote on last edited by
                        #11

                        I had a colleague who insisted on occasionally writing the (perfectly valid but ummm counter-intuitive) form

                        index[array]

                        in C. He also worked out some multi-dimensional extensions, which my marginal brain is too small to contain. And yes, he did have a shot at the The International Obfuscated C Code Contest[^] Cheers, Peter

                        Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012

                        S A E 4 Replies Last reply
                        0
                        • C Christian Graus

                          The point of === is that "1" == 1 but "1" !== 1, that is, "1" === 1 will return false, due to the differing types

                          S Offline
                          S Offline
                          Super Lloyd
                          wrote on last edited by
                          #12

                          So obvious! :omg: :rolleyes: :laugh:

                          A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                          C 1 Reply Last reply
                          0
                          • P Peter_in_2780

                            I had a colleague who insisted on occasionally writing the (perfectly valid but ummm counter-intuitive) form

                            index[array]

                            in C. He also worked out some multi-dimensional extensions, which my marginal brain is too small to contain. And yes, he did have a shot at the The International Obfuscated C Code Contest[^] Cheers, Peter

                            Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012

                            S Offline
                            S Offline
                            Super Lloyd
                            wrote on last edited by
                            #13

                            What a legend! :D

                            A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                            1 Reply Last reply
                            0
                            • S Super Lloyd

                              So obvious! :omg: :rolleyes: :laugh:

                              A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!

                              C Offline
                              C Offline
                              Christian Graus
                              wrote on last edited by
                              #14

                              The reason programming pays well is that you need to learn how the languages work :)

                              1 Reply Last reply
                              0
                              • C Chris Maunder

                                @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                                cheers Chris Maunder

                                C Offline
                                C Offline
                                Christian Graus
                                wrote on last edited by
                                #15

                                I remember being frustrated by the fact C# 1.0 had a default container called ArrayList. Is it an Array, or a List? These are very different things. Is it a fancy container that somehow has worked out how to get the benefits of both? The documentation never said.

                                G 1 Reply Last reply
                                0
                                • C Chris Maunder

                                  @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                                  cheers Chris Maunder

                                  Sander RosselS Offline
                                  Sander RosselS Offline
                                  Sander Rossel
                                  wrote on last edited by
                                  #16

                                  Try the Predict the Output Challenge (C#)[^]. It shows some fun C# quirks (especially part 1) with types, enumerables etc. :D

                                  Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly

                                  1 Reply Last reply
                                  0
                                  • C Chris Maunder

                                    @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                                    cheers Chris Maunder

                                    D Offline
                                    D Offline
                                    Davyd McColl
                                    wrote on last edited by
                                    #17

                                    I'm sure your first one should be: ``` "1" == 1 is true ``` `===` specifically takes type into account. Javascript's type co-ercion can be a win or a lose, depending on what you want. If type matters, use `===` and `!==`

                                    1 Reply Last reply
                                    0
                                    • C Chris Maunder

                                      @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                                      cheers Chris Maunder

                                      C Offline
                                      C Offline
                                      CodeWraith
                                      wrote on last edited by
                                      #18

                                      That kind of things already existed when our ancestors began to cast logic into silicon[^]. Of course, there also were well designed CPUs[^] that had exactly 256 opcodes, with only 0x68 being reserved as prefix for future expansions of the instruction set. And of course there are the opcodes 0xE0 - 0xEF, the 'Set X Register' instruction for registers 0x0 - 0xF, short SEX. Absolutely no confusion here.

                                      I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.

                                      1 Reply Last reply
                                      0
                                      • C Chris Maunder

                                        @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                                        cheers Chris Maunder

                                        S Offline
                                        S Offline
                                        Simon_Whale
                                        wrote on last edited by
                                        #19

                                        Chris Maunder wrote:

                                        SQL: Len("hello") = Len("hello ")

                                        That is a fun one that I came across a while ago. for some reason SQL Server ignores the trailing spaces hence they match. LEN (Transact-SQL) - SQL Server | Microsoft Docs[^]

                                        Every day, thousands of innocent plants are killed by vegetarians. Help end the violence EAT BACON

                                        1 Reply Last reply
                                        0
                                        • C Chris Maunder

                                          @Forogar and I were having a chat about unintended programming features (ahem) due to things like: Javascript's truthy: "1" == 1 is true Rexx: " Hello " == "Hello" and 0.0 == 0 is not the same as 0 == 0.0 SQL: Len("hello") = Len("hello ") I'm just wondering what other family favourites there are out there. (Edited because clearly I’ve lost track of what’s up and what’s down)

                                          cheers Chris Maunder

                                          M Offline
                                          M Offline
                                          markchagers
                                          wrote on last edited by
                                          #20

                                          erm, typo?

                                          "1" === 1 is false
                                          "1" == 1 is true (truthy rather)

                                          C 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups