Why There are no Asm Apps

From: Randall Hyde (randyhyde_at_earthlink.net)
Date: 06/13/04

  • Next message: f0dder: "Re: Why There are no Asm Apps"
    Date: Sun, 13 Jun 2004 18:37:32 GMT
    
    

    There are a ton of people bellyaching around here, asking
    the question "Why aren't there more applications in assembly?
    This would demonstrate assembly language's viability as a programming
    language to the great unwashed masses."

    You hear comments like "gee, if only someone would implement
    Microsoft Office in assembly language, the world could see how
    effective assembly language is as an application development tool."

    Well, "Earth to A.L.A. posters...." Microsoft Office is what is known
    in Software Engineering terms as a *large* project (on the order of
    millions of lines of code). I'm sorry, but a determined little hacker
    working on his own is *not* going to produce something like
    Microsoft Office on their own. Of course, you hear some people
    say that "we ought to develop such a product as a team effort.
    There are two problems with that:

    1. Putting the team together. There were literally *hundreds* of
    developers involved in the creation of MS Office (if not thousands).
    Even counting all the lurkers around here, you're not going to find
    that many people working on a project just to glorify assembly
    language. Oh, the project may start off well enough, but such large
    projects rarely get anywhere. Generally, it's only small projects,
    those than can be done by one or two people, that really get done.

    2. Getting the team to agree one which tools to use. Even if you
    *could* scrape 30 or 40 programmers together from a newsgroup
    such as this one to work on your grand project, convincing them all
    to use the same tools (e.g., the same assemblers, linkers, OSes, etc.,
    etc.) is an insurmountable problem. And convince people to work
    on a project where pieces are done in different assemblers? Well,
    if you can convince the RosAsm crowd of that idea, then I'm sold
    on it :-).

    ----------------------------------------------------------------------
    Some will argue that we don't need to go full bore on something like
    MS Office. After all, the original Visicalc and Lotus 1-2-3 were
    written in assembly language. Why not just do a spread *** as
    a demo program?

    Well, this is a fine idea, but I argue that it will probably wind up
    doing *more* damage to the cause of assembly than good.
    After all, if you create a Visicalc-like spread ***, written in
    assembly, it really doesn't matter how small or fast it is. People
    are going to compare it agains MS Excel and MS Office and say
    things like "see, this proves assembly is a poor application
    development language, it's too much work to implement a
    real spread*** (e.g., Excel) in assembly."

    And even if you did implement a decent spread*** in assembly,
    people would start saying things like "one application doesn't
    prove anything; if assembly were really approriate, you'd see a
    lot more people using it for a wide variety of applications."

    and on and on and on.

    --------------------------------------------------------------------

    I'd argue that the case for assembly as an application development
    language is best made by having a large number of small applications.
    Not demos mind you, but actual, complete, applications. Small apps
    that people wouldn't normally consider writing in assembly language.
    This would prove to some people sitting on the fence out there that
    assembly *is* a viable tool for the small projects they're considering
    working on.

    The only problem, of course, is that most people would rather gripe
    about the lack of important killer apps rather than work towards the
    goal of providing tons of little applications that demonstrate assembly
    language can be used as an application development tool.

    Worse yet, when someone *does* write such an app, they tend to
    get derided for it. Around here, no less. Gee, I can see C programmers
    in a C forum poking fun at someone writing apps in assembly, but in
    an assembly forum? By the same people who in previous posts
    complain about the lack of apps in assembly? Give me a break.

    I'm speaking of course about several people's reactions to Paul Pank's
    Adventure Game. Here's a *perfect* example of an application most
    people wouldn't ever consider writing in assembly language. The fact
    that Paul implemented his game in assembly tells the uninitiated one
    important thing - assembly is a viable tool for developing such
    applications.

    So what happens around here? People bitch about the fact that
    "no one plays text adventure games anymore" or "you're using HLA
    to develop the game" (i.e., "you're not using *my* favorite assembler")
    and even "assembly language just isn't an appropriate language for
    developing text-based adventure games." Also, you hear lots of
    people griping about Paul's assembly programming skills (who admits
    he wrote the game in HLA specifically to learn assembly, so what do
    you expect?).

    Has it occured to no one else that this is exactly *why* there are
    no apps in assembly? Gee, if *I* was considering writing applications
    and assembly was on my short list of languages to use, it would only
    take about 10 minutes in this newsgroup to convince me to use some
    other language where I might actually get some support and advice
    about the application rather than some misguided opinions on what
    is and what is not assembly language.

    Heck, if I was Paul, I'd go back to programming my games in
    BASIC. It's somewhat confusing to meet a crowd of people
    who are begging others to write apps in assembly, you deliver
    an app in assembly, and then all they do is criticize you. That's
    one less assembly programmer helping push the good news of
    assembly programming, folks. Think about it.

    Maybe people like Rene Tournois and certain members of the
    RosAsm team really believe this fantasy that when ReactOS
    arrives, people will automagically switch from C/C++ to assembly
    for application development. Such people need to seek help
    because it's a complete delusion. The only way to build up
    the ranks of assembly language programmers is one beginner
    at a time. The only way to get a large number of applications
    written in assembly language is to encourage those who are
    writing apps in assembly to write more (and encourage new
    beginners to start). Criticizing beginning programmer's work
    in assembly is just going to frighten them away and send them
    back to their HLLs.

    I'm sure Rene and a few RosAsmites (or other anti-HLA zealouts)
    will have all kinds of interesting things to say about this post
    (along the lines of "well, HLA isn't an assembly language anyway,
    so criticizing HLA users doesn't count" :-)). Of course, their
    posts are exactly the kind of nonsense I'm talking about around here.

    If you want the ranks of assembly programmers and users to grow,
    you need to encourage that growth. It's one thing to criticize a
    product. It's another thing entirely to criticize individuals who've
    done what you've been begging for (develop applications in
    assembly).

    Just a thought,
    Randy Hyde


  • Next message: f0dder: "Re: Why There are no Asm Apps"
  • Quantcast