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. Assembly versus Programming

Assembly versus Programming

Scheduled Pinned Locked Moved The Lounge
csharpasp-netdesignhelplearning
51 Posts 30 Posters 3 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.
  • G gggustafson

    I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

    Gus Gustafson

    G Offline
    G Offline
    Gary R Wheeler
    wrote on last edited by
    #25

    gggustafson wrote:

    The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target

    I call myself a .NET developer at the moment; I'm a software developer, and I'm currently using .NET. The term is therefore descriptive. I'll ignore your pejorative use of the term. 'Bloated framework'? The strength of the CLR is the fact that it provides well-documented and thoroughly tested solutions for thousands of common programming tasks, from data structures to user interfaces, multithreading, and so on. One key to being a proficient ".NET developer" is learning to look for functionality in the CLR before rolling your own. Big? Definitely. Hard to find what you need? Maybe; that's why God made Google. Bloated? Not hardly. 'Inconsistent with language design principles'? Whose principles? Yours? To my mind C# is a great language. I've got two years experience in C#, and over ten in C++. One of the principle defects of the C++ programming language is how the designers constrain language features due to their inability to satisfy a small number of edge cases. Document the edge cases, but give me the language features that make most of my life easier. Microsoft and C# do that.

    gggustafson wrote:

    When I taught the computer science core curricula at a west coast university

    I thought I detected the stench of academic piety.

    gggustafson wrote:

    programming is applied mathematics

    And the final piece of the puzzle is in place. I had a couple math professors in college who taught programming classes. While they understood mathematical principles behind programming, neither one could program their way out of a paper bag. This is a specific example of a general attitude you get from mathematicians: since they believe they can model anything using their field of expertise, they believe that makes them an expert in everything.

    Software Zen: delete this;

    G G 2 Replies Last reply
    0
    • A Aamir Butt

      You, Sir, got a 1-vote from me only because of this line: The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles Care to explain why you think so?

      A year spent in artificial intelligence is enough to make one believe in God

      G Offline
      G Offline
      gggustafson
      wrote on last edited by
      #26

      One of the more important language design principles is orthogonality. That means that a language offers its users (programmers) only one way to perform a specific action. C# is not orthogonal (e.g., for and while should have been while and repeat - test before and test after). for and foreach exude the same problem. However, I'll give C# if and switch (only because there are significant differences in the manner of testing predicates). I really don't know why Microsoft didn't follow the American standards track. I have a feeling that the ECMA track was less contentious. Maybe Microsoft didn't want "their" language to be submitted to intense scrutiny (in the same way that the US DOD used the Ada Board to avoid the same scrutiny). But to me, an ex member of the US Pascal technical committee, I think that Microsoft has fallen into the trap of providing every little feature thought to be important, but that in fact causes more clutter. If you don't think that the .Net framework is bloated, try considering it in the light of that question. Do you know how many entry points are in .Net? In one dll alone, user32.dll, there are more than 700. That's bloated! For fun, consider a recent problem of mine. I needed to convert an HTML color (like #FF00FF) into its red, green, and blue Color components. I wrote a simple algorithm that used shifts. But did you know that there is a method, ColorTranslator.FromHtml, that "translates an HTML color representation to a GDI+ Color structure?" Wow, talk about bloat! I would never have thought that such a thing existed. And that's what bloat does. Programmers cannot find the entry points they need when they don't know anything about their existence. They are also overwhelmed. Another problem with bloat is lessening orthogonality. Most of the problems in this area are caused by inserting helpful but unnecessary features into a language or its framework. Features that perform the same function as other code.

      Gus Gustafson

      A R B 3 Replies Last reply
      0
      • G Gary R Wheeler

        gggustafson wrote:

        The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target

        I call myself a .NET developer at the moment; I'm a software developer, and I'm currently using .NET. The term is therefore descriptive. I'll ignore your pejorative use of the term. 'Bloated framework'? The strength of the CLR is the fact that it provides well-documented and thoroughly tested solutions for thousands of common programming tasks, from data structures to user interfaces, multithreading, and so on. One key to being a proficient ".NET developer" is learning to look for functionality in the CLR before rolling your own. Big? Definitely. Hard to find what you need? Maybe; that's why God made Google. Bloated? Not hardly. 'Inconsistent with language design principles'? Whose principles? Yours? To my mind C# is a great language. I've got two years experience in C#, and over ten in C++. One of the principle defects of the C++ programming language is how the designers constrain language features due to their inability to satisfy a small number of edge cases. Document the edge cases, but give me the language features that make most of my life easier. Microsoft and C# do that.

        gggustafson wrote:

        When I taught the computer science core curricula at a west coast university

        I thought I detected the stench of academic piety.

        gggustafson wrote:

        programming is applied mathematics

        And the final piece of the puzzle is in place. I had a couple math professors in college who taught programming classes. While they understood mathematical principles behind programming, neither one could program their way out of a paper bag. This is a specific example of a general attitude you get from mathematicians: since they believe they can model anything using their field of expertise, they believe that makes them an expert in everything.

        Software Zen: delete this;

        G Offline
        G Offline
        gggustafson
        wrote on last edited by
        #27

        I find your response offensive. I was a teacher while I was a senior member of the technical staff of a major company. Flaming does not become you.

        Gus Gustafson

        1 Reply Last reply
        0
        • G gggustafson

          I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

          Gus Gustafson

          R Offline
          R Offline
          Roger Wright
          wrote on last edited by
          #28

          Any attempt to make a machine follow a set of predetermined execution steps is programming. Some approaches are more challenging than others, but all are programming.

          Will Rogers never met me.

          1 Reply Last reply
          0
          • G gggustafson

            I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

            Gus Gustafson

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

            C# is a mature language that is also very consistent. I would agree that too many people drag and drop components and call it coding, but, they always did. Writing a decent website does involve some HTML, but it also involves a good amount of programming. At the end of the day, I'd say that a label is irrelevant, if you're doing it, then you know what it is, and what it means. I don't care what other people think of me, except my managers. For the record, I work on web and desktop apps and I don't think that one is programming and the other is not.

            Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

            1 Reply Last reply
            0
            • G gggustafson

              One of the more important language design principles is orthogonality. That means that a language offers its users (programmers) only one way to perform a specific action. C# is not orthogonal (e.g., for and while should have been while and repeat - test before and test after). for and foreach exude the same problem. However, I'll give C# if and switch (only because there are significant differences in the manner of testing predicates). I really don't know why Microsoft didn't follow the American standards track. I have a feeling that the ECMA track was less contentious. Maybe Microsoft didn't want "their" language to be submitted to intense scrutiny (in the same way that the US DOD used the Ada Board to avoid the same scrutiny). But to me, an ex member of the US Pascal technical committee, I think that Microsoft has fallen into the trap of providing every little feature thought to be important, but that in fact causes more clutter. If you don't think that the .Net framework is bloated, try considering it in the light of that question. Do you know how many entry points are in .Net? In one dll alone, user32.dll, there are more than 700. That's bloated! For fun, consider a recent problem of mine. I needed to convert an HTML color (like #FF00FF) into its red, green, and blue Color components. I wrote a simple algorithm that used shifts. But did you know that there is a method, ColorTranslator.FromHtml, that "translates an HTML color representation to a GDI+ Color structure?" Wow, talk about bloat! I would never have thought that such a thing existed. And that's what bloat does. Programmers cannot find the entry points they need when they don't know anything about their existence. They are also overwhelmed. Another problem with bloat is lessening orthogonality. Most of the problems in this area are caused by inserting helpful but unnecessary features into a language or its framework. Features that perform the same function as other code.

              Gus Gustafson

              A Offline
              A Offline
              Aamir Butt
              wrote on last edited by
              #30

              I guess you are right about bloat. But I don't think MS gives too much importance to Language Design Principles anyway. Their focus mostly seems to be ease for developers. That's why Visual Studio is like this with all the intellisense and debugging features etc. So, in that respect, C# follows this principle i.e., give developers freedom to do a lot of things in a lot of different ways. For language purists like yourself, these might be bad but for Application Developers, these features always come in handy to ship software quickly. On a similar note, I believe C++ is bloated as well because there are certain features which can be substituted by others. For example, you can achieve dynamic programming using Function Pointers, so on a theoretical level, why should we have Polymorphism and vitual functions? All of this can be achieved by smart programmers using plain old C-Style Function pointers. Your point is valid but only from a language design point of view. In real world, when you have to develop business applications real fast, its always good to have options provided that a programmer knows about majority of the pitfalls and black holes. I believe there has to be a trade-off between Language Design and Bloat. MS tends to lean towards bloat a bit too much even for my liking but I won't say C# is inconsistent and bad language only because of this.

              A year spent in artificial intelligence is enough to make one believe in God

              1 Reply Last reply
              0
              • C Chris Losinger

                assembly is a huge support system, when compared to machine language. mnemonics? symbols? labels? luxury! and anyone who uses an OS is just a lazy poser.

                image processing toolkits | batch image processing

                O Offline
                O Offline
                Oakman
                wrote on last edited by
                #31

                Chris Losinger wrote:

                and anyone who uses an OS is just a lazy poser

                I use Poser - oh wait, that's when I am doing graphics work -- never mind.

                “Reality is merely an illusion, albeit a very persistent one." ~ Albert Einstein

                1 Reply Last reply
                0
                • S smcnulty2000

                  And we didn't have zeros, we had to make do with the letter "O".

                  _____________________________ Give a man a mug, he drinks for a day. Teach a man to mug...

                  O Offline
                  O Offline
                  Oakman
                  wrote on last edited by
                  #32

                  smcnulty2000 wrote:

                  And we didn't have zeros, we had to make do with the letter "O".

                  I had toggle switches and lights that went on and off

                  “Reality is merely an illusion, albeit a very persistent one." ~ Albert Einstein

                  1 Reply Last reply
                  0
                  • G gggustafson

                    I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

                    Gus Gustafson

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

                    I don't do that Web crap, but I still recognize it as programming/coding/development/whatever. I stick with backend and database because it's easier! Developing for the Web is like trying to nail a tree to some Jello.

                    1 Reply Last reply
                    0
                    • G gggustafson

                      As a programmer fluent in COBOL, FORTRAN, Pascal, C, Ada, and C# (in their order of being learned - without help from academia), I have never, in my long and jaded career, suggested that one language was better than another. Each has their purpose. And as a senior programmer at that, I may have had to suggest that one language was better for a particular task. But never that one was better than another.

                      Gus Gustafson

                      P Offline
                      P Offline
                      Pete OHanlon
                      wrote on last edited by
                      #34

                      As you deleted your reply to my post, I'll put it back up here for all to revel in: "I never said nor suggested that having a framework means that you can't program. Nor did I say or suggest that using one made you less of a programmer. But, in my opinion, the best, most stable framework that I've ever used was Win32. And it's still here, sitting behind .Net Gus Gustafson" Win 32 isn't a framework - it's an API.

                      Forgive your enemies - it messes with their heads

                      My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

                      G 1 Reply Last reply
                      0
                      • G gggustafson

                        I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

                        Gus Gustafson

                        R Offline
                        R Offline
                        R Giskard Reventlov
                        wrote on last edited by
                        #35

                        You get a 1 from me for being far too precious and more than a little condescending (though not entirely wrong). You miss the point: software is a tool for constructing objects that carry out a task. That's it: you choose the tool that best fits the job and get on with it. Right now the people that pay the money like the web so you pick a tool to create what they want so you can make some money. Anything else is frippery. On the other hand I see far too many young developers coming out of uni with no sense of discipline and an inability to figure it out for themselves. I'm not sure if it's that the youngsters today are the problem or the tutors not teaching their subjects properly.

                        "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                        P 1 Reply Last reply
                        0
                        • G Gary R Wheeler

                          gggustafson wrote:

                          The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target

                          I call myself a .NET developer at the moment; I'm a software developer, and I'm currently using .NET. The term is therefore descriptive. I'll ignore your pejorative use of the term. 'Bloated framework'? The strength of the CLR is the fact that it provides well-documented and thoroughly tested solutions for thousands of common programming tasks, from data structures to user interfaces, multithreading, and so on. One key to being a proficient ".NET developer" is learning to look for functionality in the CLR before rolling your own. Big? Definitely. Hard to find what you need? Maybe; that's why God made Google. Bloated? Not hardly. 'Inconsistent with language design principles'? Whose principles? Yours? To my mind C# is a great language. I've got two years experience in C#, and over ten in C++. One of the principle defects of the C++ programming language is how the designers constrain language features due to their inability to satisfy a small number of edge cases. Document the edge cases, but give me the language features that make most of my life easier. Microsoft and C# do that.

                          gggustafson wrote:

                          When I taught the computer science core curricula at a west coast university

                          I thought I detected the stench of academic piety.

                          gggustafson wrote:

                          programming is applied mathematics

                          And the final piece of the puzzle is in place. I had a couple math professors in college who taught programming classes. While they understood mathematical principles behind programming, neither one could program their way out of a paper bag. This is a specific example of a general attitude you get from mathematicians: since they believe they can model anything using their field of expertise, they believe that makes them an expert in everything.

                          Software Zen: delete this;

                          G Offline
                          G Offline
                          GuyThiebaut
                          wrote on last edited by
                          #36

                          I gave you a 5 because you put into words what I would have said myself. As for your response being met with "I find your response offensive." - I find it no more offensive than the original post - you have just pointed out what is the case in your experience(and my experience :laugh: ).

                          Continuous effort - not strength or intelligence - is the key to unlocking our potential.(Winston Churchill)
                          1 Reply Last reply
                          0
                          • G gggustafson

                            One of the more important language design principles is orthogonality. That means that a language offers its users (programmers) only one way to perform a specific action. C# is not orthogonal (e.g., for and while should have been while and repeat - test before and test after). for and foreach exude the same problem. However, I'll give C# if and switch (only because there are significant differences in the manner of testing predicates). I really don't know why Microsoft didn't follow the American standards track. I have a feeling that the ECMA track was less contentious. Maybe Microsoft didn't want "their" language to be submitted to intense scrutiny (in the same way that the US DOD used the Ada Board to avoid the same scrutiny). But to me, an ex member of the US Pascal technical committee, I think that Microsoft has fallen into the trap of providing every little feature thought to be important, but that in fact causes more clutter. If you don't think that the .Net framework is bloated, try considering it in the light of that question. Do you know how many entry points are in .Net? In one dll alone, user32.dll, there are more than 700. That's bloated! For fun, consider a recent problem of mine. I needed to convert an HTML color (like #FF00FF) into its red, green, and blue Color components. I wrote a simple algorithm that used shifts. But did you know that there is a method, ColorTranslator.FromHtml, that "translates an HTML color representation to a GDI+ Color structure?" Wow, talk about bloat! I would never have thought that such a thing existed. And that's what bloat does. Programmers cannot find the entry points they need when they don't know anything about their existence. They are also overwhelmed. Another problem with bloat is lessening orthogonality. Most of the problems in this area are caused by inserting helpful but unnecessary features into a language or its framework. Features that perform the same function as other code.

                            Gus Gustafson

                            R Offline
                            R Offline
                            Rick York
                            wrote on last edited by
                            #37

                            one minor point : user32.dll is not actually part of .net. It is part of the operating system and has been around since windoze 95.

                            1 Reply Last reply
                            0
                            • G gggustafson

                              I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

                              Gus Gustafson

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

                              gggustafson wrote:

                              Another is the failure to recognize that programming is applied mathematics.

                              That's not actually true, not even remotely. And, the fact you use the word 'assembly' to mean anything other than low level programming, shows you're not a programmer, not really. But, you're welcome to your views, and I'm sure they are most applicable to the ivory tower you appear to live in. :-)

                              Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.

                              1 Reply Last reply
                              0
                              • R R Giskard Reventlov

                                You get a 1 from me for being far too precious and more than a little condescending (though not entirely wrong). You miss the point: software is a tool for constructing objects that carry out a task. That's it: you choose the tool that best fits the job and get on with it. Right now the people that pay the money like the web so you pick a tool to create what they want so you can make some money. Anything else is frippery. On the other hand I see far too many young developers coming out of uni with no sense of discipline and an inability to figure it out for themselves. I'm not sure if it's that the youngsters today are the problem or the tutors not teaching their subjects properly.

                                "If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair. nils illegitimus carborundum me, me, me

                                P Offline
                                P Offline
                                Paul M Watt
                                wrote on last edited by
                                #39

                                digital man wrote:

                                On the other hand I see far too many young developers coming out of uni with no sense of discipline and an inability to figure it out for themselves

                                I think the internet has a bit to do with this. It has made certain programming tasks a commodity. You can find bits and chunks of code that does what you need at the moment, but don't quite understand it, tie it together and ship it. Developers can function quite well with this strategy for new code. The problem appears a year or two later when that app with no structure needs to be maintained. I am not saying this is how most developers work, but I have worked with many of them that do.

                                1 Reply Last reply
                                0
                                • G gggustafson

                                  I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

                                  Gus Gustafson

                                  0 Offline
                                  0 Offline
                                  0bx
                                  wrote on last edited by
                                  #40

                                  You write websites in Assembler? Wow, just wow... :doh:

                                  Giraffes are not real.

                                  1 Reply Last reply
                                  0
                                  • G gggustafson

                                    One of the more important language design principles is orthogonality. That means that a language offers its users (programmers) only one way to perform a specific action. C# is not orthogonal (e.g., for and while should have been while and repeat - test before and test after). for and foreach exude the same problem. However, I'll give C# if and switch (only because there are significant differences in the manner of testing predicates). I really don't know why Microsoft didn't follow the American standards track. I have a feeling that the ECMA track was less contentious. Maybe Microsoft didn't want "their" language to be submitted to intense scrutiny (in the same way that the US DOD used the Ada Board to avoid the same scrutiny). But to me, an ex member of the US Pascal technical committee, I think that Microsoft has fallen into the trap of providing every little feature thought to be important, but that in fact causes more clutter. If you don't think that the .Net framework is bloated, try considering it in the light of that question. Do you know how many entry points are in .Net? In one dll alone, user32.dll, there are more than 700. That's bloated! For fun, consider a recent problem of mine. I needed to convert an HTML color (like #FF00FF) into its red, green, and blue Color components. I wrote a simple algorithm that used shifts. But did you know that there is a method, ColorTranslator.FromHtml, that "translates an HTML color representation to a GDI+ Color structure?" Wow, talk about bloat! I would never have thought that such a thing existed. And that's what bloat does. Programmers cannot find the entry points they need when they don't know anything about their existence. They are also overwhelmed. Another problem with bloat is lessening orthogonality. Most of the problems in this area are caused by inserting helpful but unnecessary features into a language or its framework. Features that perform the same function as other code.

                                    Gus Gustafson

                                    B Offline
                                    B Offline
                                    BobJanova
                                    wrote on last edited by
                                    #41

                                    for/while/if/switch come all the way through from C, and Basics, Pascal/Delphi etc all have similar constructs. So you're saying that all C family languages are bad – yet you are just ranting about C#, and apparently you like Win32, a C API (i.e. called in a language that is just as bad). User32 isn't part of .Net (in fact it's part of your beloved Win32!). The one point you kind of have is that a large framework can make it difficult to find things. But it's far easier to find things in .Net or Java than it is in the Win32 API, for example, because they've been organised in a relatively logical way.

                                    G 1 Reply Last reply
                                    0
                                    • P Pete OHanlon

                                      As you deleted your reply to my post, I'll put it back up here for all to revel in: "I never said nor suggested that having a framework means that you can't program. Nor did I say or suggest that using one made you less of a programmer. But, in my opinion, the best, most stable framework that I've ever used was Win32. And it's still here, sitting behind .Net Gus Gustafson" Win 32 isn't a framework - it's an API.

                                      Forgive your enemies - it messes with their heads

                                      My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility

                                      G Offline
                                      G Offline
                                      gggustafson
                                      wrote on last edited by
                                      #42

                                      And what exactly do you think the .Net framework is if not an API?

                                      Gus Gustafson

                                      1 Reply Last reply
                                      0
                                      • B BobJanova

                                        for/while/if/switch come all the way through from C, and Basics, Pascal/Delphi etc all have similar constructs. So you're saying that all C family languages are bad – yet you are just ranting about C#, and apparently you like Win32, a C API (i.e. called in a language that is just as bad). User32 isn't part of .Net (in fact it's part of your beloved Win32!). The one point you kind of have is that a large framework can make it difficult to find things. But it's far easier to find things in .Net or Java than it is in the Win32 API, for example, because they've been organised in a relatively logical way.

                                        G Offline
                                        G Offline
                                        gggustafson
                                        wrote on last edited by
                                        #43

                                        I've never heard that phrase "C family of languages" until now. And I'm certain that Pascal is not a member of such a family since its design predates C. I never said that there weren't problems with other languages, although I believe that Pascal was (unfortunately - was) one of the best designed languages. Its demise was caused by purists on the X3J9 Pascal technical committee who wanted to keep Pascal as specified in its User Manual and Report. As such, there was no linkage between separately compiled units. I tried but could not get that "extension" into the language. User32.dll is as much a part of the .Net frameworks as any other piece. Its source doesn't matter. Many new programmers (especially assemblers) don't recognize ancestry. The problem with any API (.Net framework included) is very much your point of indexing. Although I am a fan of well organized APIs, I've never really quite figured out how to make their contents available so that a programmer can quickly find what's needed. Google may be the answer. I don't know.

                                        Gus Gustafson

                                        1 Reply Last reply
                                        0
                                        • G gggustafson

                                          I know that many of today's programmers would disagree, but I don't think assembling web pages is "programming." I think that the term should be "software assembler" not "programmer." It's akin to automotive plant assembly versus automotive engineering. Of course, maybe the current phrase ".NET developer" encapsulates my view. Although I have not joined the growing anti-Microsoft throng, I can certainly see where they are coming from. The extraordinarily bloated frameworks and languages (especially C#) that are immature and inconsistent with language design principles, makes Microsoft an easy target. But so too is academia. If a child is taught a language (e.g., English, French, German, etc.) in a vulgar manner, the child will use that language as taught. Only with extra effort, will the child be cultivated to a more gentile and socially acceptable language. So too with programming language instruction. When I taught the computer science core curricula at a west coast university, I made sure that reasonable coding guidelines were included. Thus, one problem with today's programmers is failure to understand that programming is a discipline. Another is the failure to recognize that programming is applied mathematics.

                                          Gus Gustafson

                                          W Offline
                                          W Offline
                                          wizardzz
                                          wrote on last edited by
                                          #44

                                          I do agree with a lot of your views, however, the tone and broadness of your statements comes off as written by say, a C++ snob. I'm not saying you are, but I'm sure others felt that, too. I am now primarily a C# developer, not by choice either, I started in C++ 13 years ago, used it for ages, but was assigned a major C# project at my last job. I left and now I'm in a C# shop. I can see both sides, but I think people were simply sensitive to your tone/wording.

                                          "I have a theory that the truth is never told during the nine-to-five hours. " — Hunter S. Thompson My comedy.

                                          G 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