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. Mark Chu-Carroll on Go (programming language)

Mark Chu-Carroll on Go (programming language)

Scheduled Pinned Locked Moved The Lounge
csharpc++phpcom
90 Posts 18 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.
  • M Member 96

    Rajesh R Subramanian wrote:

    I think that you're completely misunderstood

    :-D Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff". ;)


    "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

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

    I think they are already saying the first three words, so you're well on your way! :)

    ¡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

    M 1 Reply Last reply
    0
    • M Member 96

      Rajesh R Subramanian wrote:

      I think that you're completely misunderstood

      :-D Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff". ;)


      "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

      N Offline
      N Offline
      Nemanja Trifunovic
      wrote on last edited by
      #74

      John C wrote:

      Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff"

      :) My only issue with your posts is that you tend to generalize your specific situation to "99%" of developers. Otherwise, I fully agree that for most real-world software, watching for every single CPU cycle is a waste of time. In fact, when I was developing some accounting sowtware in late 1990s I proudly used VB6 and everybody was happy with it.

      utf8-cpp

      M R 2 Replies Last reply
      0
      • J Jim Crafton

        I think they are already saying the first three words, so you're well on your way! :)

        ¡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

        M Offline
        M Offline
        Member 96
        wrote on last edited by
        #75

        :laugh:


        "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

        1 Reply Last reply
        0
        • N Nemanja Trifunovic

          John C wrote:

          Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff"

          :) My only issue with your posts is that you tend to generalize your specific situation to "99%" of developers. Otherwise, I fully agree that for most real-world software, watching for every single CPU cycle is a waste of time. In fact, when I was developing some accounting sowtware in late 1990s I proudly used VB6 and everybody was happy with it.

          utf8-cpp

          M Offline
          M Offline
          Member 96
          wrote on last edited by
          #76

          Nemanja Trifunovic wrote:

          My only issue with your posts is that you tend to generalize your specific situation to "99%" of developers.

          Yeah I know, it just gets tedious qualifying everything over and over sometimes like I'm writing a license agreement or something. There seem to be a vocal minority in the lounge that are into unusual areas of work and I try to balance that against what I know to be the vast majority that are grinding out bog standard business apps (which you can see from the questions in the forums) and don't post here but lurk a lot.


          "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

          1 Reply Last reply
          0
          • J Jim Crafton

            Normally I'd ignore this, and bitch to myself, but I'm going to try and take the time to respond to this, so I suppose this will end up being a mini-rant. First this smells suspiciously of unix-like laziness. When I start to hear things like "minimalism" and "simple as possible", my bullshit meter starts to go off. Why? Because this is frequently bandied about in regards to *nix type systems as being a feature. In practice what it means (in my experience) is that the developers of said system (or library) want to do as little work as possible in implementing the system, so they make things simple for themselves, which is convenient for them, but usually makes it a total pain in the ass to use or develop with. X-Winblows is a great example of this. It's a lowest common denominator approach that's a total pain to program under and has held back unix GUI's for *decades* (at this point). Other things like this are unix's approach to data (everything's a file!), security, etc. Writing software is hard. Writing *good* software is harder. Implementing details that help the user and/or developer and ensure a certain clarity in the system is a lot of work. But when done properly you end up with great results and powerful tool. Unfortunately people don't like to hear this. Just looking at one of the first examples:

            func fib(n) (val int, pos int) {
            if n == 0 {
            val = 1;
            pos = 0;
            } else if n == 1 {
            val = 1;
            pos = 1;
            } else {
            v1, _ := fib(n-1);
            v2,_ := fib(n-2);
            val = v1 + v2;
            pos = n;
            }
            return;
            }

            Huh? I've got "=", "==", *AND* ":="? WTF? First of all "==" is the bane of peoples existence. How many bugs have been caused by the accidental use of this? It's stupid and should be gotten rid of. That leaves us with, apparently (I haven't read the language spec yet, so I'm going on this guys article and one other one I glanced at) two ways to assign values? Grody. Seriously grody. No OO. None whatsoever, despite the "basic object-oriented features" claim. This seems ridiculous. OO is an incredibly useful tool when used correctly. Just because there are a large number of clueless dolts out there who can't be bothered to learn their craft properly and screw things up, doesn't mean you need to drop it from the language. Make it optional. You don't need to force it down peoples throats (like Java does), but you don't need to take it away either. "There's an allocation operator, "new" - but it doesn't initialize values. You can't p

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

            Jim Crafton wrote:

            but you don't bother to initialize variables, even stuff like ints, etc to 0?

            From the spec: " The zero value When memory is allocated to store a value, either through a declaration or make() or new() call, and no explicit initialization is provided, the memory is given a default initialization. Each element of such a value is set to the zero value for its type: false for booleans, 0 for integers, 0.0 for floats, "" for strings, and nil for pointers, functions, interfaces, slices, channels, and maps. This initialization is done recursively, so for instance each element of an array of structs will have its fields zeroed if no value is specified. "

            J 1 Reply Last reply
            0
            • P PIEBALDconsult

              Jim Crafton wrote:

              but you don't bother to initialize variables, even stuff like ints, etc to 0?

              From the spec: " The zero value When memory is allocated to store a value, either through a declaration or make() or new() call, and no explicit initialization is provided, the memory is given a default initialization. Each element of such a value is set to the zero value for its type: false for booleans, 0 for integers, 0.0 for floats, "" for strings, and nil for pointers, functions, interfaces, slices, channels, and maps. This initialization is done recursively, so for instance each element of an array of structs will have its fields zeroed if no value is specified. "

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

              Good. That's a relief to see. What I read in the guys article and the previous one hadn't mentioned that.

              ¡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 1 Reply Last reply
              0
              • S Shelby Robertson

                PIEBALDconsult wrote:

                I also don't want to forget how to in C

                Because sometime you need code that actually, you know, performs well.

                Ennis Ray Lynch, Jr. wrote:

                Unpaid overtime is slavery.

                Trollslayer wrote:

                Meetings - where minutes are taken and hours are lost.

                CPalliniC Offline
                CPalliniC Offline
                CPallini
                wrote on last edited by
                #79

                Shelby Robetson wrote:

                PIEBALDconsult wrote: I also don't want to forget how to in C Because sometime you need code that actually, you know, performs well.

                FFY.

                Shelby Robetson wrote:

                PIEBALDconsult wrote: I also don't want to forget how to in C Because sometime you need code that actually, you know, performs well.

                FFY (reprise). :-D

                If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                [My articles]

                In testa che avete, signor di Ceprano?

                1 Reply Last reply
                0
                • N Nemanja Trifunovic

                  I like Mark Chu-Carroll's[^] writing style. A very balanced and knowledgable guy, IMHO. Anyway, here's his opinion on Go[^]

                  utf8-cpp

                  CPalliniC Offline
                  CPalliniC Offline
                  CPallini
                  wrote on last edited by
                  #80

                  Good article, thank you for posting the link. :)

                  If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                  This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                  [My articles]

                  In testa che avete, signor di Ceprano?

                  1 Reply Last reply
                  0
                  • J Jim Crafton

                    Good. That's a relief to see. What I read in the guys article and the previous one hadn't mentioned that.

                    ¡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
                    #81

                    Yeah, and I don't understand that := operator either; I don't know that it is actually useful. I'm still reading the spec and not understanding much of it (parts are difficult to relate to languages I know). It's not object-oriented, but you can write functions in a way that they become methods which seem similar to Extension Methods. Then duck-typing comes in to provide what OO might have provided. I'm not a fan of duck-typing, but that seems interesting. And no Exceptions, but functions can return tuples. Still, the oddest thing so far is the implicit public :confused: -- what if you don't want to start with a Latin character?

                    J 1 Reply Last reply
                    0
                    • P PIEBALDconsult

                      Yeah, and I don't understand that := operator either; I don't know that it is actually useful. I'm still reading the spec and not understanding much of it (parts are difficult to relate to languages I know). It's not object-oriented, but you can write functions in a way that they become methods which seem similar to Extension Methods. Then duck-typing comes in to provide what OO might have provided. I'm not a fan of duck-typing, but that seems interesting. And no Exceptions, but functions can return tuples. Still, the oddest thing so far is the implicit public :confused: -- what if you don't want to start with a Latin character?

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

                      Yeah, it feels like someone's R&D toy more than anything. The channels and goroutines are admittedly cool, but I can't see how this is something ready to be used other than fooling around with.

                      ¡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 1 Reply Last reply
                      0
                      • M Member 96

                        Rajesh R Subramanian wrote:

                        I think that you're completely misunderstood

                        :-D Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff". ;)


                        "Creating your own blog is about as easy as creating your own urine, and you're about as likely to find someone else interested in it." -- Lore Sjöberg

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

                        Most everyone is right about a lot of stuff. It's the ones that are wrong about a lot of stuff that you gotta watch out for.

                        Visual Studio is an excellent GUIIDE.

                        1 Reply Last reply
                        0
                        • J Jim Crafton

                          Yeah, it feels like someone's R&D toy more than anything. The channels and goroutines are admittedly cool, but I can't see how this is something ready to be used other than fooling around with.

                          ¡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
                          #84

                          I finished going through the spec and I think the very strangest part is that (unless I misunderstood) for functions with a variable number of parameters you can't specify the type and you need to use reflection to get the values -- crazy.

                          J 1 Reply Last reply
                          0
                          • P PIEBALDconsult

                            I finished going through the spec and I think the very strangest part is that (unless I misunderstood) for functions with a variable number of parameters you can't specify the type and you need to use reflection to get the values -- crazy.

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

                            Do they have reflection? That would be pretty useful if they did, I'd be shocked to find out this was true though!

                            ¡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 1 Reply Last reply
                            0
                            • J Jim Crafton

                              Do they have reflection? That would be pretty useful if they did, I'd be shocked to find out this was true though!

                              ¡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
                              #86

                              Maybe not with a capital-R: " Passing arguments to ... parameters When a function f has a ... parameter, it is always the last formal parameter. Within calls to f, the arguments before the ... are treated normally. After those, an arbitrary number (including zero) of trailing arguments may appear in the call and are bound to the ... parameter. Within f, the ... parameter has static type interface{} (the empty interface). For each call, its dynamic type is a structure whose sequential fields are the trailing arguments of the call. That is, the actual arguments provided for a ... parameter are wrapped into a struct that is passed to the function instead of the actual arguments. Using the reflection interface, f may unpack the elements of the dynamic type to recover the actual arguments. " The spec doesn't go into it further.

                              1 Reply Last reply
                              0
                              • J Jim Crafton

                                Not to kick a dead horse, but if you're just starting this the VCF might be of help for the UI and other parts, as it has both threaded functions, and thread pooling (as well as run loops, and various other thread stuff in it, all completely independent from the UI junk).

                                ¡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
                                Rajesh R Subramanian
                                wrote on last edited by
                                #87

                                Using it in the office is completely out of scope. From all the discussions I've had there, my understanding is that they don't want anything new to come into it for UI. They have valid reasons - as far as their windows UI code is concerned, they have a very large codebase, which is MFC based (some libraries and many components). So, all the new UI should happen with MFC, unless I could prove the need for something different. I've always had a desire to do stuff with VCF (in any of my personal projects), but there's this excuse of not having enough time. But eventually I will do it. :)

                                “Follow your bliss.” – Joseph Campbell

                                J 1 Reply Last reply
                                0
                                • N Nemanja Trifunovic

                                  John C wrote:

                                  Story of my life I'm afraid. Oh well there's always posthumous understanding I guess. Some day they'll say "remember old man JohnC, man was he ever right about so much stuff"

                                  :) My only issue with your posts is that you tend to generalize your specific situation to "99%" of developers. Otherwise, I fully agree that for most real-world software, watching for every single CPU cycle is a waste of time. In fact, when I was developing some accounting sowtware in late 1990s I proudly used VB6 and everybody was happy with it.

                                  utf8-cpp

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

                                  Nemanja Trifunovic wrote:

                                  I proudly used VB6 and everybody was happy with it.

                                  I'm tempted to use that as my signature, without providing a link to this post in it. :-\

                                  “Follow your bliss.” – Joseph Campbell

                                  1 Reply Last reply
                                  0
                                  • R Rajesh R Subramanian

                                    Using it in the office is completely out of scope. From all the discussions I've had there, my understanding is that they don't want anything new to come into it for UI. They have valid reasons - as far as their windows UI code is concerned, they have a very large codebase, which is MFC based (some libraries and many components). So, all the new UI should happen with MFC, unless I could prove the need for something different. I've always had a desire to do stuff with VCF (in any of my personal projects), but there's this excuse of not having enough time. But eventually I will do it. :)

                                    “Follow your bliss.” – Joseph Campbell

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

                                    Well I totally understand that. If you ever want some ammunition for using something different just let me know and I can give you some fairly detailed reasons, especially on the Windows platform, as well as some detailed notes on how to partially migrate from MFC to the VCF (unlike Qt, the VCF can be partially integrated into an MFC app so it's not an all or nothing proposition).

                                    ¡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
                                    • L leppie

                                      Nemanja Trifunovic wrote:

                                      I like Mark Chu-Carroll's[^] writing style.

                                      Me too :) I wonder how long it will take for IronGo to appear? ;P

                                      xacc.ide
                                      IronScheme - 1.0 RC 1 - out now!
                                      ((λ (x) `(,x ',x)) '(λ (x) `(,x ',x))) The Scheme Programming Language – Fourth Edition

                                      K Offline
                                      K Offline
                                      Karl Home
                                      wrote on last edited by
                                      #90

                                      Oh goody. Just another way of making the machine do what I say instead of what I want :). The difference, as far as I can tell, is that they've restricted the number of things I can tell it to do.

                                      Good advice is always certain to be ignored, but that's no reason not to give it.

                                      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