Re: Why Not Assembly?




JGCASEY wrote:
>
>
> A HLL shields you from the low level stuff of
> an operating system and that is the part you have
> to know to use assembler. That is the part I
> haven't had the time to learn. When reading
> assembler examples for Windows it is like reading
> a recipe example without any idea of why they
> call this API or have to set up this structure.
> There is no simple overall explanation of how
> it all fits together and how to use (and find)
> what is required to implement a program idea.

HLLs don't shield you from this. Many a C programmer grew up with the
Win32 API, and it's just as miserable for C as it is for assembly.

Newer languages, like Delphi and VB (of course) shield you from a lot
of this, but this doesn't have as much do with with HLLs vs assembly as
it does available library code and tools.

Certainly one advantage of HLLs is that companies and programmers are
willing to invest big bucks in the development of such tools (or, at
least, they have been willing in the past). Such effort does not exist
for assembly. There are several hobbyist-level attempts at a "visual
assembly language" but most of them haven't gotten very far (thus far,
people have created editors and project manages, and that's about it --
nothing like Delphi or VB yet). It remains to be seen if assembly will
ever reach that level.

OTOH, software development tools are almost all free now. Borland,
Microsoft, IBM, and all the big corporations that developed tools in
the past (and sold them) are giving them away. No doubt FSF and GCC
have had a lot to do with this, but the end result is that we *aren't*
going to see as much money spent developing tools as we have in the
past. There's no financial incentive to do so. CPU manufacturers will
always work on great C/C++ compilers (not assemblers) in order to make
their CPUs look good, but that's about it. The days of making a good
living by developing programming languages is long gone. And that means
we're going to start seeing such development stagnate.

That being the case, hobbyist attempts may actually start to catch up
to the commercial products. Hobbyist projects are *not* bound by their
ability to produce a profit, but by the hobbyist's love for what
they're doing. Take Ro$A$m as an example, a complete failure in the
marketplace, but its development team labors on because they love what
they do and they believe in the product. Had it been a commercial
product, it would have been still born. Whether or not something like
RadAsm, HIDE, or Fresh takes assembly language to the next level will
be an interesting question to have answered. I've been hearing promises
of a "visual assembler" ever since Delphi first appeared. I've seen
lots of projects die on the vine (though RadAsm and HIDE have made some
very good progress, lately). Fundamentally, a product like Delphi is
*too* big for an individual or even small team to develop, so it's
doubtful you'll see such a thing for assembly. It's nice to dream about
it, though.


>
> A good example was a book on writing games for
> windows for C programmers. The writer wisely
> provided a framework in which programmers who
> didn't have time to "learn the latest techniques"
> could make use of DirectX for graphics and sound.

By definition, a book cannot teach you the latest techniques. By the
time the book has gone through proof-reading, those techniques are
obsolete :-(

>
> This is how the top programmers could help the
> low level programmers to get an app up and
> running if they so desired. When I asked about
> accessing high res graphics the expert advice
> was to mumble something about VESA and give
> incomplete examples. Computers are unforgiving
> and snippets of code out of context don't cut it.

You're assuming those people knew what they were doing?

The assembly community is *very* small. Look around this newsgroup.
You'll find about 20 people who post on a regular basis, another 50 or
so that post occasionally. Maybe another couple hundred lurkers. Many
of them are students, fresh graduates, dropouts, or not-in-school yet
(school meaning a University). You're not going to find a wide range of
experiences here. Now go over to a C newsgroup and check out the crowd
there. Completely different.

It doesn't help that this newsgroup has got Rene Tournois, who has
managed to scare away a lot of experienced people over the years. :-(
But even without his help, there isn't *that* much experience present
here (compared to what you will find for other programming languages).



>
> I have ideas as regards using visual data from
> a video camera. The programs are simple and
> don't require "advanced programming techniques".
> But the example given on a FASM web site may
> as well be written in Chinese to anyone not up
> to speed with "advanced programming techniques".

FASM is a great assembler, but the lack of good FASM documentation is
its major failing. If you're looking for lots of good programming
examples, you really have three and a half choices: MASM, HLA, NASM,
and Gas. (Gas being half a choice, there are a couple of decent
textbooks that use Gas, but the Gas manual is non-existent to
horrible).

>
> You guys are experts but appear to be low on
> ideas on what to do with your skills. You need
> a "boss" to tell you what to do and according
> to Randy Hyde that "boss" wants you to use a HLL.

In the workplace, that's generally correct. But what the "boss" wants
doesn't apply to people who program in assembly on their spare time.

>
> Just as many sick die because they cannot afford
> a doctor many ideas go undone because they cannot
> afford a programmer.

Fundamentally, many ideas die because people don't have the time to
implement them. As Edison said, genius is 1% inspiration and 99%
perspiration. You see lots of stupid little demos in assembly language
because tiny projects don't take a lot of effort. And few people
working on hobby projects are willing to put in that 99% of the effort
that's not fun and interesting, but necessary to produce a quality
product. It's a lot more fun to produce 10 programs, each a couple
hundred lines long, than it is to produce one program that's a couple
thousand lines long. And a couple-thousand-line program is *not* a
major project. Yet how many of them do you see being discussed around
here? Consider HLA v1.x, it's probably better than 150,000 lines of
assembly, Flex, Bison, and C code (and that's not counting all the
lines of code that have been thrown out over the years). Few people
have the time or inclination to get involved in such a project and
stick with it to completion. That's the real reason so many ideas go
undone -- once it's no longer interesting, people move on to other
things and the project never gets finished.
Cheers,
Randy Hyde

.



Relevant Pages

  • Re: Your opinion on the Agner fog manuals.
    ... Perhaps the fact that those "advanced assembly language programmers" ... Boy, you're really stuck on that *one sentence* in the documentation, ... Try searching for information about the LISA assembler sometime. ...
    (alt.lang.asm)
  • Library Design, the script kiddies nightmare.
    ... good across the board of assembler programming. ... With languages that have the capacity, libraries of reusable code make ... comes at a cost that some of the older assembler programmers will not ... The virtue of writing code in this modular format is that you can use ...
    (alt.lang.asm)
  • Re: Born again
    ... nowadays), that HLLs were _easy_, that Assembly was difficult, ... Assembly is an extreemely simple Language. ... That's why 10,000 times more programmers have been able to pick up ... Libraries and high-level assembler constructs certainly improve the ...
    (alt.lang.asm)
  • Structs in Assembly
    ... implementation in assembly language. ... support this facility. ... programmers who don't know much about assembly. ... Now if your assembler doesn't support structs, ...
    (alt.lang.asm)
  • Re: moving from vb.net to c#
    ... I'm assembling a compilation of all the ... VB language hides a lot from the developer and allows for and automatically ... >>> Why not just code in Assembler then? ... > I bet there WERE programmers who were upset. ...
    (microsoft.public.dotnet.framework.aspnet)