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. A New Kind of Fail?

A New Kind of Fail?

Scheduled Pinned Locked Moved The Lounge
comhelpquestion
27 Posts 16 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.
  • J Jim Crafton

    Who names their language Noop[^]? No-op, No Operation, i.e. nothing's gonna happen here. Why oh why would you name a computing language this, and then expect people to rush over to it? Are web "developers" truly so clueless that they are unaware of what "noop" means? I go to the project's web site and of their two "blogs" that they list, the first link just collapses in an error! In their list of "features" they list that they are all for "Immutability" - why? You can only change something once? What the hell is up with that? And no implementation subclassing? Have I missed something here? Is there something I'm being blind to?

    ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

    H Offline
    H Offline
    Henry Minute
    wrote on last edited by
    #8

    I had similar feelings a few days ago when I tried out MSP from those nice people over at JetBrains[^]. It's not them, as such, I like Resharper, which is why I decided to give MSP a go. I followed their tutorial and I'm afraid that I just don't 'get it'. To me it seems to complicate things by a factor of about 10. As I say, it could just be me, but I would be interested to know if anyone else has tried it and thought it useful.

    Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.”

    J 1 Reply Last reply
    0
    • H Henry Minute

      I had similar feelings a few days ago when I tried out MSP from those nice people over at JetBrains[^]. It's not them, as such, I like Resharper, which is why I decided to give MSP a go. I followed their tutorial and I'm afraid that I just don't 'get it'. To me it seems to complicate things by a factor of about 10. As I say, it could just be me, but I would be interested to know if anyone else has tried it and thought it useful.

      Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.”

      J Offline
      J Offline
      Jim Crafton
      wrote on last edited by
      #9

      Holy cow, that's insane - I'm looking at: http://www.jetbrains.com/mps/docs/tutorial.html[^] Gag. That's a serious, serious case of Second System Syndrome!

      ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

      H R Steve EcholsS 3 Replies Last reply
      0
      • D Dan Neely

        AIUI, I've never used one myself, when you need to change an object you end up creating a new one from scratch. This <magic happens here> allows the compiler to produce massively parallelizable code.

        The latest nation. Procrastination.

        J Offline
        J Offline
        Jim Crafton
        wrote on last edited by
        #10

        So I have foo. Then I write

        foo.count = 10;

        And under the hood instead of just modifying the count value (or whatever the hell it is) directly, a complete new instance is created with it's count set to 10, and then, presumably, the old foo instance is tossed? That seems like an insane amount of extra work just to allow for thread safety, which is what you're alluding to, right? //edit Actually it's worse than that - if they copy the new instance, they have to copy ALL of the state of the old instance, how does it handle complex objects, references to other objects, collections, and all that crap? Seriously nasty.

        ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

        D 1 Reply Last reply
        0
        • J Jim Crafton

          Holy cow, that's insane - I'm looking at: http://www.jetbrains.com/mps/docs/tutorial.html[^] Gag. That's a serious, serious case of Second System Syndrome!

          ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

          H Offline
          H Offline
          Henry Minute
          wrote on last edited by
          #11

          Yup! I had to go and lie down in a darkened room, after finishing it. :)

          Henry Minute Do not read medical books! You could die of a misprint. - Mark Twain Girl: (staring) "Why do you need an icy cucumber?" “I want to report a fraud. The government is lying to us all.”

          1 Reply Last reply
          0
          • J Jim Crafton

            So I have foo. Then I write

            foo.count = 10;

            And under the hood instead of just modifying the count value (or whatever the hell it is) directly, a complete new instance is created with it's count set to 10, and then, presumably, the old foo instance is tossed? That seems like an insane amount of extra work just to allow for thread safety, which is what you're alluding to, right? //edit Actually it's worse than that - if they copy the new instance, they have to copy ALL of the state of the old instance, how does it handle complex objects, references to other objects, collections, and all that crap? Seriously nasty.

            ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

            D Offline
            D Offline
            Daniel Grunwald
            wrote on last edited by
            #12

            It's a completely different programming paradigm. You simply don't do foo.count = 10; there. And no, you don't have to copy ALL state (references to other objects). Because objects never change once created, it's perfectly safe to reuse the existing objects. The reason why string in C# is so easy to use is because it does precisely this. Immutable types are generally easier to work with. And there are efficient implementations for most data structures. There's no need to create a full copy of a collection just to remove some element in it; instead the collection is interally arrange as some sort of tree and will share subtrees that didn't change. Of course, for some purposes you need mutation. How those cases are handled differs from language to language. In "pure" functional languages, you might use something like the Haskell "State" monad to solve this. In other languages (like F#), it's perfectly possible to modify existing objects just as in C# (but of course you lose all benefits of immutability as soon as you do so).

            J A 2 Replies Last reply
            0
            • J Jim Crafton

              So in functional languages (I have only a very basic understanding of Lisp) if you have objects, you are not allowed to modify them at all? That seems silly to make as a unilateral rule. But what the hell do I know, I just program for a living.

              ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

              B Offline
              B Offline
              Brady Kelly
              wrote on last edited by
              #13

              You shouldn't really have objects. That implies state. :laugh:

              I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.

              R A 2 Replies Last reply
              0
              • P peterchen

                In other news, my new language "SHíT" (pronounced "just purrfect") hits the shelves tomorrow. What do you mean "dependency injection support right in the language"? Does that mean it has (*GASP*!) interfaces and (*SWOON!*) constructors receiving parameters or even (*ICANTBELIEVETHEYDIDTHAT!*) public properties? [edit] On second thought, maybe .NET has put enough pressure on JVM performance that it's time to build a nice language on top of it.

                Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
                | FoldWithUs! | sighist

                B Offline
                B Offline
                Brady Kelly
                wrote on last edited by
                #14

                I had a flash of Hannah Montana fans as I read that. :~

                I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.

                P 1 Reply Last reply
                0
                • D Daniel Grunwald

                  It's a completely different programming paradigm. You simply don't do foo.count = 10; there. And no, you don't have to copy ALL state (references to other objects). Because objects never change once created, it's perfectly safe to reuse the existing objects. The reason why string in C# is so easy to use is because it does precisely this. Immutable types are generally easier to work with. And there are efficient implementations for most data structures. There's no need to create a full copy of a collection just to remove some element in it; instead the collection is interally arrange as some sort of tree and will share subtrees that didn't change. Of course, for some purposes you need mutation. How those cases are handled differs from language to language. In "pure" functional languages, you might use something like the Haskell "State" monad to solve this. In other languages (like F#), it's perfectly possible to modify existing objects just as in C# (but of course you lose all benefits of immutability as soon as you do so).

                  J Offline
                  J Offline
                  Jim Crafton
                  wrote on last edited by
                  #15

                  Thanks, that makes more sense. Though I'm still holding on to making fun of Noop. :)

                  ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                  1 Reply Last reply
                  0
                  • B Brady Kelly

                    You shouldn't really have objects. That implies state. :laugh:

                    I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.

                    R Offline
                    R Offline
                    Rajesh R Subramanian
                    wrote on last edited by
                    #16

                    You're assuming that usage of objects implies they will have a state. That may not be always true in practice. :laugh:

                    It is a crappy thing, but it's life -^ Carlo Pallini

                    B 1 Reply Last reply
                    0
                    • J Jim Crafton

                      Who names their language Noop[^]? No-op, No Operation, i.e. nothing's gonna happen here. Why oh why would you name a computing language this, and then expect people to rush over to it? Are web "developers" truly so clueless that they are unaware of what "noop" means? I go to the project's web site and of their two "blogs" that they list, the first link just collapses in an error! In their list of "features" they list that they are all for "Immutability" - why? You can only change something once? What the hell is up with that? And no implementation subclassing? Have I missed something here? Is there something I'm being blind to?

                      ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                      D Offline
                      D Offline
                      Distind
                      wrote on last edited by
                      #17

                      As far as I'm aware this isn't new, what's new is people expect others to actually care. I've seen a few projects like this which started out as a 'Well someone else in the world has to think this is a good idea too, I'll put it on the Internet'. Generally that idea has proven wrong. Could just be the college crowd is more prone to it, haven't run into half as many instances of this since graduating.

                      1 Reply Last reply
                      0
                      • R Rajesh R Subramanian

                        You're assuming that usage of objects implies they will have a state. That may not be always true in practice. :laugh:

                        It is a crappy thing, but it's life -^ Carlo Pallini

                        B Offline
                        B Offline
                        Brady Kelly
                        wrote on last edited by
                        #18

                        No, they may even be functions themselves. :)

                        I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.

                        1 Reply Last reply
                        0
                        • J Jim Crafton

                          Holy cow, that's insane - I'm looking at: http://www.jetbrains.com/mps/docs/tutorial.html[^] Gag. That's a serious, serious case of Second System Syndrome!

                          ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                          R Offline
                          R Offline
                          Rama Krishna Vavilala
                          wrote on last edited by
                          #19

                          DSL is pretty hot these days. Have you looked at M[^]. The thing is that people are just inventing without actually knowing what real world really wants.

                          1 Reply Last reply
                          0
                          • J Jim Crafton

                            So in functional languages (I have only a very basic understanding of Lisp) if you have objects, you are not allowed to modify them at all? That seems silly to make as a unilateral rule. But what the hell do I know, I just program for a living.

                            ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                            S Offline
                            S Offline
                            Stuart Dootson
                            wrote on last edited by
                            #20

                            Only in pure functional languages do you have complete immutability. No state, just what you pass around as parameters. Tail call optimisation means that a recursive call is really a loop, so a recursive call with modified parameters is equivalent to looping with modified state. Big gains w.r.t concurrency - no state means no shared state! The compiler can do more precise reasoning about your code. I tend to program a lot in a functional style in C++ - replacing an object can often be a lot more reliable than updating state.

                            Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p

                            1 Reply Last reply
                            0
                            • J Jim Crafton

                              Holy cow, that's insane - I'm looking at: http://www.jetbrains.com/mps/docs/tutorial.html[^] Gag. That's a serious, serious case of Second System Syndrome!

                              ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                              Steve EcholsS Offline
                              Steve EcholsS Offline
                              Steve Echols
                              wrote on last edited by
                              #21

                              Holy Shit! I think I would rather be water boarded than be forced to use anything like that.


                              - S 50 cups of coffee and you know it's on! Code, follow, or get out of the way.

                              • S
                                50 cups of coffee and you know it's on!
                                Code, follow, or get out of the way.
                              1 Reply Last reply
                              0
                              • J Jim Crafton

                                Who names their language Noop[^]? No-op, No Operation, i.e. nothing's gonna happen here. Why oh why would you name a computing language this, and then expect people to rush over to it? Are web "developers" truly so clueless that they are unaware of what "noop" means? I go to the project's web site and of their two "blogs" that they list, the first link just collapses in an error! In their list of "features" they list that they are all for "Immutability" - why? You can only change something once? What the hell is up with that? And no implementation subclassing? Have I missed something here? Is there something I'm being blind to?

                                ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

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

                                What's in a name?

                                D 1 Reply Last reply
                                0
                                • P PIEBALDconsult

                                  What's in a name?

                                  D Offline
                                  D Offline
                                  Dan Neely
                                  wrote on last edited by
                                  #23

                                  The origin of a mutual suicide. :doh:

                                  The latest nation. Procrastination.

                                  1 Reply Last reply
                                  0
                                  • B Brady Kelly

                                    I had a flash of Hannah Montana fans as I read that. :~

                                    I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.

                                    P Offline
                                    P Offline
                                    peterchen
                                    wrote on last edited by
                                    #24

                                    :~ too

                                    Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel]
                                    | FoldWithUs! | sighist

                                    1 Reply Last reply
                                    0
                                    • D Daniel Grunwald

                                      It's a completely different programming paradigm. You simply don't do foo.count = 10; there. And no, you don't have to copy ALL state (references to other objects). Because objects never change once created, it's perfectly safe to reuse the existing objects. The reason why string in C# is so easy to use is because it does precisely this. Immutable types are generally easier to work with. And there are efficient implementations for most data structures. There's no need to create a full copy of a collection just to remove some element in it; instead the collection is interally arrange as some sort of tree and will share subtrees that didn't change. Of course, for some purposes you need mutation. How those cases are handled differs from language to language. In "pure" functional languages, you might use something like the Haskell "State" monad to solve this. In other languages (like F#), it's perfectly possible to modify existing objects just as in C# (but of course you lose all benefits of immutability as soon as you do so).

                                      A Offline
                                      A Offline
                                      AspDotNetDev
                                      wrote on last edited by
                                      #25

                                      Daniel Grunwald wrote:

                                      instead the collection is interally arrange as some sort of tree and will share subtrees that didn't change

                                      Actually, my StringBuilderPlus makes use of this technique. It's very effective for "changing" a portion of a very large immutable structure.

                                      Visual Studio is an excellent GUIIDE.

                                      1 Reply Last reply
                                      0
                                      • B Brady Kelly

                                        You shouldn't really have objects. That implies state. :laugh:

                                        I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.

                                        A Offline
                                        A Offline
                                        Adar Wesley
                                        wrote on last edited by
                                        #26

                                        Immutability does not mean "no state at all". It does mean that if you do have state, once it's created, it will never change. If the state does not change it can be shared between threads safely. --- Adar Wesley

                                        1 Reply Last reply
                                        0
                                        • J Jim Crafton

                                          Who names their language Noop[^]? No-op, No Operation, i.e. nothing's gonna happen here. Why oh why would you name a computing language this, and then expect people to rush over to it? Are web "developers" truly so clueless that they are unaware of what "noop" means? I go to the project's web site and of their two "blogs" that they list, the first link just collapses in an error! In their list of "features" they list that they are all for "Immutability" - why? You can only change something once? What the hell is up with that? And no implementation subclassing? Have I missed something here? Is there something I'm being blind to?

                                          ¡El diablo está en mis pantalones! ¡Mire, mire! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Personal 3D projects Just Say No to Web 2 Point Blow

                                          K Offline
                                          K Offline
                                          Kevin McFarlane
                                          wrote on last edited by
                                          #27

                                          I agree on the name. I'm also interested in seeing whether they come up with something better than the C-style syntax which we should have dumped years ago.

                                          Kevin

                                          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