flat assembler
Message board for the users of flat assembler.

Index > Heap > Serious assembly programming

Goto page Previous  1, 2, 3, 4  Next

Do you work on some pure assembly project?
Rather big project.
38%
 38%  [ 14 ]
Middle to small project.
27%
 27%  [ 10 ]
Small, educational programs.
27%
 27%  [ 10 ]
I have some ideas, but no time, knowledge, etc.
5%
 5%  [ 2 ]
Total Votes : 36

Author
Thread Post new topic Reply to topic
edfed



Joined: 20 Feb 2006
Posts: 4237
Location: 2018
edfed
yeah, it is better.

this word cannot be closer to the exactness.

it happens a lot of times, in an assembly coder, to laugh about a bug.

some bugs are really funny, looks like some artificial dumbness.
Post 13 Jun 2011, 13:35
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17249
Location: In your JS exploiting you and your system
revolution
edfed: I think JohnFound was intending meaning #2 as described here, [weighty].
Post 13 Jun 2011, 13:51
View user's profile Send private message Visit poster's website Reply with quote
MHajduk



Joined: 30 Mar 2006
Posts: 6034
Location: Poland
MHajduk
edfed wrote:
Quote:
Serious assembly programming

this title have a bug, assembly programming is a lot of things, but can't be serious
"Spurious and furious assembly programming". Image
Post 13 Jun 2011, 13:53
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Assembly programming as a process is fun, but this topic is for the result, not the process.
Saying "serious" I meant projects that are intended to be used as a useful piece of software for the end users. Not for "fun" like asm written demos, games and other software and not as teaching piece of source, like tutorials and other example projects.
Actually, I believe assembly written software is not "reinventing of the wheel" at least because there are thousands kind of wheels out there and there is nothing bad in this fact.
Actually, almost every program, written in assembly becomes better than the one written in HLL, with the same functionality. So, the quality of the assembly written software is higher than the quality of the HLL written software.
Post 13 Jun 2011, 14:13
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 821
Location: Jakarta, Indonesia
TmX
JohnFound wrote:
So, the quality of the assembly written software is higher than the quality of the HLL written software.


In what terms?

- High speed execution/low memory footprint?
Probably, but not many applications require this, typically like business apps. And now most companies are moving from desktop apps to web apps, so asm is pretty irrelevant here.

- Bug
Read this somewhare (can't remember where) that being a low level language, asm is very bug prone. Very easy to introduce bugs.

- Maintainability
Like COBOL, I think asm skill among programmers are diminishing these days. Unless you know asm, you'll probably have a hard time finding programmers to help you maintain your softwares.
Post 13 Jun 2011, 14:43
View user's profile Send private message Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u
Quote:

In what terms?
- Bug
Read this somewhare (can't remember where) that being a low level language, asm is very bug prone. Very easy to introduce bugs.

This type of thing is put about by none ASM coders, i would say that there is in most cases a lot less bugs in ASM.

Why because for one programming is hard, you need to put in a lot of work to become a good coder, So what do they do, they come up with higher and higher level programming language to hide the fact that its hard.
But there no hiding it, So the people that take the easy higher level languages want to put less and less effort into learning to code.
The out come is they are not as good as programmer of low level language.

Next reason is as most ASM programmers do not use lib, they code the whole lot, they understand the full picture, any bugs, are there bugs, so are easy to find and fix.
Post 13 Jun 2011, 15:49
View user's profile Send private message Reply with quote
bitshifter



Joined: 04 Dec 2007
Posts: 764
Location: Massachusetts, USA
bitshifter
Mostly i screw around and bash other peoples code.
Its my way of learning how the code and coder works.

I have made some small tools like this in the past.
http://board.flatassembler.net/topic.php?t=11615

My real interest is size optimization using asm.
At the moment i am writing < 8kb 8086 assembler.
I have little interest in modern instructions or PC's.

When it comes to big projects i prefer to use C/C++ languages.
Only when performance matters i will patch some asm code in.
Post 13 Jun 2011, 18:10
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
TmX wrote:
- High speed execution/low memory footprint?


In modern programming, there is a myth that performance and size are rather incompatible matters. I.e. you must choose what application you need "small" or "fast" and it is a matter of trade-off.
Assembly gives you an option to have both - small and fast application. This of course is "high quality software" by any definition.

Quote:
Probably, but not many applications require this, typically like business apps. And now most companies are moving from desktop apps to web apps, so asm is pretty irrelevant here.


Every application requires this. The thing about "This application does not need to be small and fast" are product of people that simply can't make their software small and fast.
My contention here is that if you have small and fast software you can make your computer to perform more, for less time - so this computer will be more useful, than the one that makes less work for more time.

Anyway, the modern business model needs to sell you less for more money. That is why they promote web based applications and in generally there is an attempt to shift the whole computer world from "goods supply model" to "service supply model". Some people dreams about the time when the user will have nothing and will pay for everything.
But do you need software that you have to pay "per click" and "per key pressed? Twisted Evil

P.S. About the bugs - I am totally agree with Dex4u - assembly applications have less bugs that HLL applications, simply because there is more understanding how the application works. As an example you can see how few bugs exists in FASM and how fast they disappear, once discovered.
Post 14 Jun 2011, 06:14
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17249
Location: In your JS exploiting you and your system
revolution
JohnFound wrote:
In modern programming, there is a myth that performance and size are rather incompatible matters. I.e. you must choose what application you need "small" or "fast" and it is a matter of trade-off.
Assembly gives you an option to have both - small and fast application. This of course is "high quality software" by any definition.
Oh no. That definition is far too narrow. Indeed I expect very few people even consider judging software quality by size and speed alone. More critical is for the software to be able to perform its intended function correctly. Another critical factor is ease of use.
Post 14 Jun 2011, 06:26
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
revolution wrote:
Oh no. That definition is far too narrow. Indeed I expect very few people even consider judging software quality by size and speed alone. More critical is for the software to be able to perform its intended function correctly. Another critical factor is ease of use.


Well, I am making comparisons only by equal other conditions.
I.e. lets say, we have two applications that looks and acts equally. One of them is small and fast and the other big and slow.
It is obvious that the first one is higher quality than the second one. Right?

I didn't discuss functionality and ergonomics, simply because these properties of the software does not depend on the language used. Every function and behavior of the program can be implemented in any language.
Post 14 Jun 2011, 06:52
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JoeCoder1



Joined: 13 Jun 2011
Posts: 62
JoeCoder1
I work on assembler for my job. Typical product is around 3-5 million LOC, some more than 10 million.But this is not on x86!

Now I'm learning x86 a little with NASM and FASM.


Last edited by JoeCoder1 on 04 Jul 2011, 08:16; edited 1 time in total
Post 14 Jun 2011, 07:14
View user's profile Send private message Reply with quote
JoeCoder1



Joined: 13 Jun 2011
Posts: 62
JoeCoder1
JohnFound wrote:


In modern programming, there is a myth that performance and size are rather incompatible matters. I.e. you must choose what application you need "small" or "fast" and it is a matter of trade-off. Assembly gives you an option to have both - small and fast application. This of course is "high quality software" by any definition.


I agree with you.

JohnFound wrote:
The thing about "This application does not need to be small and fast" are product of people that simply can't make their software small and fast.


Java, Python, etc.

JohnFound wrote:
My contention here is that if you have small and fast software you can make your computer to perform more, for less time - so this computer will be more useful, than the one that makes less work for more time.


That is so obvious you would think it goes without saying. In reality it doesn't go without saying.

Many of the companies pushing bloatware sell hardware. They realize the best way to get you to need more hardware every year is to write Java etc.
Post 14 Jun 2011, 07:19
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
One stupid guess came into my mind... Is it possible, that users like slow and big programs, because of their (users) technophobia??? Shocked
The recent development of all popular OSes prove it is plausible...
But if it is true, it is not a problem - the power of assembly gives us the opportunity to create the super over-bloated software in extremely controllable way. Laughing Twisted Evil
Post 14 Jun 2011, 09:29
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JoeCoder1



Joined: 13 Jun 2011
Posts: 62
JoeCoder1
I think it all gets back to graphical UI. Most of them cause bloat because of the way they need so many libraries.
Post 14 Jun 2011, 10:49
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
JoeCoder1 wrote:
I think it all gets back to graphical UI. Most of them cause bloat because of the way they need so many libraries.


There are many examples that the GUI itself can be made small and fast without sacrificing usability. The problem is not in the libraries, but in the way they are used. Even X with its horrible client-server architecture, can be made fast enough with careful design.
Post 14 Jun 2011, 11:07
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JoeCoder1



Joined: 13 Jun 2011
Posts: 62
JoeCoder1
I haven't seen one yet. But I probably have different standards than you.
Post 14 Jun 2011, 12:50
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 821
Location: Jakarta, Indonesia
TmX
JohnFound wrote:

Anyway, the modern business model needs to sell you less for more money. That is why they promote web based applications and in generally there is an attempt to shift the whole computer world from "goods supply model" to "service supply model"


Yes. It's called SaaS. Maybe I'll try to learn how to write web services in asm, instead of PHP or Python, for example Very Happy


JohnFound wrote:
One stupid guess came into my mind... Is it possible,
that users like slow and big programs, because of their (users) technophobia??? Shocked


Probably because it's relatively easy to code, and takes less time to write?
A friend of mine once prototyped a simple shopping chart in Ruby on Rails, less than a week.
Of course, by asm programmers' standard, Ruby is slow (it's interpreted) and big.

I cannot imagine if such things are going to be written in asm Shocked
Post 14 Jun 2011, 16:12
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 17249
Location: In your JS exploiting you and your system
revolution
In general: programmer time expense >>> computer time expense.

For a business intent upon maximising profit, often the sensible decision is to get it working quickly.

But not all projects can afford to throw away CPU cycles nonchalantly, sometimes things just absolutely have to work as fast as possible and programmers time is less important.

Not all project's goals are the same. It depends upon the project.
Post 14 Jun 2011, 16:18
View user's profile Send private message Visit poster's website Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1408
Location: Toronto, Canada
AsmGuru62
Code re-use in ASM is a big issue. If a component (or a function) can be re-used easily - then problem of developing a big project in ASM becomes kind of not that significant. Since I am working on IDE this issue is very sensitive for me. How to share code between projects? I can do it on a basis of including source code or loading DLLs and using code inside of these DLLs. Both methods have pros and cons.
Post 14 Jun 2011, 16:33
View user's profile Send private message Send e-mail Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
TmX wrote:
Maybe I'll try to learn how to write web services in asm, instead of PHP or Python, for example.
It is not so big deal, btw. There was some examples in internet...
Quote:
I cannot imagine if such things are going to be written in asm
It is possible and also not so hard. I have some experience with writing pretty big database applications in ASM and these programs still works in the factory where I am working. (it is good example about the bugs - the biggest program was written and put in operation in a week in 2005. Then, after one or two months, there was revealed some bugs, that was fixed and several more features was introduced. Totally there was 2 or 3 versions released. Since this moment, the program works until now, 24 hours a day, without single complain.)
AsmGuru62 wrote:
Code re-use in ASM is a big issue. If a component (or a function) can be re-used easily - then problem of developing a big project in ASM becomes kind of not that significant. Since I am working on IDE this issue is very sensitive for me. How to share code between projects? I can do it on a basis of including source code or loading DLLs and using code inside of these DLLs. Both methods have pros and cons.
Well, I stake on source level code reusing. IMHO, this approach is more compatible with assembly way of programming. BTW, did you saw FreshLib it is created with not only code reusing, but with portability in mind.
Post 14 Jun 2011, 17:33
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2, 3, 4  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar.

Powered by rwasa.