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 4 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

    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

        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
        #37

        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
        • 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
          #38

          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
          • 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
                      • W wizardzz

                        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 Offline
                        G Offline
                        gggustafson
                        wrote on last edited by
                        #45

                        When I write a technical opinion, it is just that. Tone and wording are not part of the opinion. If someone differs about what I say then I want to hear from them; if someone takes offense, I fear that lessens their views significantly. You make an assumption about C++. I have only once had to program in that language and that was to create a C-invokable entry point. My programming languages have included RPG, AutoCoder, COBOL, FORTRAN, Pascal, C, Ada, and C#. As I replied to another respondent, I do not believe that any language is intrinsically better than any other. Each has its purpose. And my programming experience: lots of database (pre MS QL and Oracle); lots of real-time (e.g., weapons, telecommunications, trainers, etc.); lots of user interfaces without C# or the .Net frameworks (even had to roll my own button code); lots of user interfaces and user controls with C# and the .Net frameworks; and lots of support to management and other programmers. C# hides the complexities that support it. And people who think its debugged are sure, someday, to find that some obscure method is flawed. Were it not for the snobbery that exudes from the "software assemblers", I would not have written my opinion. But the elitists and prima donna who thrive in my profession are a bane to that same profession. Intellectual arrogance should be a reason for termination. Lastly, please remember, these are my opinions. Until I become emperor, you may disregard them.

                        Gus Gustafson

                        J 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

                          J Offline
                          J Offline
                          jschell
                          wrote on last edited by
                          #46

                          gggustafson wrote:

                          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.

                          Then your OP with the negative take on C# immediately followed by your analogy of language usage by a child was either very inept or very badly phrased.

                          G 1 Reply Last reply
                          0
                          • J jschell

                            gggustafson wrote:

                            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.

                            Then your OP with the negative take on C# immediately followed by your analogy of language usage by a child was either very inept or very badly phrased.

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

                            But I have a negative take on the immature C# language and the bloated .Net framework!

                            Gus Gustafson

                            J 1 Reply Last reply
                            0
                            • G gggustafson

                              When I write a technical opinion, it is just that. Tone and wording are not part of the opinion. If someone differs about what I say then I want to hear from them; if someone takes offense, I fear that lessens their views significantly. You make an assumption about C++. I have only once had to program in that language and that was to create a C-invokable entry point. My programming languages have included RPG, AutoCoder, COBOL, FORTRAN, Pascal, C, Ada, and C#. As I replied to another respondent, I do not believe that any language is intrinsically better than any other. Each has its purpose. And my programming experience: lots of database (pre MS QL and Oracle); lots of real-time (e.g., weapons, telecommunications, trainers, etc.); lots of user interfaces without C# or the .Net frameworks (even had to roll my own button code); lots of user interfaces and user controls with C# and the .Net frameworks; and lots of support to management and other programmers. C# hides the complexities that support it. And people who think its debugged are sure, someday, to find that some obscure method is flawed. Were it not for the snobbery that exudes from the "software assemblers", I would not have written my opinion. But the elitists and prima donna who thrive in my profession are a bane to that same profession. Intellectual arrogance should be a reason for termination. Lastly, please remember, these are my opinions. Until I become emperor, you may disregard them.

                              Gus Gustafson

                              J Offline
                              J Offline
                              jschell
                              wrote on last edited by
                              #48

                              When I see words like "immature", "inconsistent" and even "bloated" the first word to categorize them that comes to my mind is most certainly not "technical". As an example if I stated that your comments were "immature" would you take that to be a technical response or a personal one?

                              gggustafson wrote:

                              C# hides the complexities that support it.

                              Kind of wonder about your experience in other languages. Myself I have worked with Basic, C, C++, #, Perl, assembler and a variety of SQL variants. All of them were embedded within 'frameworks' that represented the context in which the application ran. The fact that, especially years ago, I (or others within my group) had to create the framework versus using something that came with the language didn't change that. Additionally when I started programming the additional libraries were very few, often ill-documented, often only suited for very technical niches. In comparison the ANSI C++ library is much bigger than the simple api documented in "The C Programming Language" probably by several orders of magnitude. I certainly haven't seen people suggesting that C++ should rip all that out. Matter of fact the new ANSI C++ is adding to that significantly.

                              gggustafson wrote:

                              C# hides the complexities that support it.

                              And if someone else writes the code it won't have bugs?

                              gggustafson wrote:

                              Were it not for the snobbery that exudes from the "software assemblers", I would not have written my opinion. But the elitists and prima donna who thrive in my profession are a bane to that same profession. Intellectual arrogance should be a reason for termination.
                               
                              Lastly, please remember, these are my opinions. Until I become emperor, you may disregard them.

                              But not a "technical" opinion.

                              1 Reply Last reply
                              0
                              • G gggustafson

                                But I have a negative take on the immature C# language and the bloated .Net framework!

                                Gus Gustafson

                                J Offline
                                J Offline
                                jschell
                                wrote on last edited by
                                #49

                                One can only wonder then how your reconcile that with your previous statement... "But never that one was better than another."

                                G 1 Reply Last reply
                                0
                                • J jschell

                                  One can only wonder then how your reconcile that with your previous statement... "But never that one was better than another."

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

                                  As a senior developer with many years of technical lead experience, I am often asked by management to suggest a language of implementation. In 2005, I suggested C# over Delphi. So for that case C# was better than Delphi. Not liking what's happening to a language (i.e., Microsoft playing around for no technical reasons) is not a contraction to the above.

                                  Gus Gustafson

                                  1 Reply Last reply
                                  0
                                  • G gggustafson

                                    Don't tell me the languages with which you are familiar. Tell me the ones that went through as many revisions as C#

                                    Gus Gustafson

                                    M Offline
                                    M Offline
                                    Mike Ellison
                                    wrote on last edited by
                                    #51

                                    gggustafson wrote:

                                    Tell me the ones that went through as many revisions as C#

                                    I think he did.

                                    www.MishaInTheCloud.com

                                    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