Assembly language can cause Arrogance in some people?

This is a thought I really considered for the first time after some experience here.
Luckily it is now settled as far as I understand it.

I also have to verify ethics myself, I know.

But I was really thinking, it's the usage of assembler that can make people very arrogant.

After a while you'd maintain a holographic programming style, the elegant relocation tables you implemented somehow spawn up their own universe, including these are of course populated by some weird ancestors who even if we can't always see it directly, have their own daily lives, and to some of us, it is like they are giving us signs, when you smoke some, they really even talk, and definitively there is a cool grove which is not part of the original BGM design here:

I really listened to it all over again for hours some day, and I can hear the same groove definitively which is not part of the original design.

Well arrogance, or is it having your own universe that makes sense perfectly just not everyone is automatically aware of it?

On the undesireable downend, and you may please forgive me my language usage, I only quote a web page that I saw years ago, there is something called "Assmebler". Yes not "Assembler", and I am not quite sure if this is a typo or indeed for some more weird coders out there it indeed is, or results in, "Assmebler".

Then recently I sometimes see assembler source, and I just think "NOOOO".

And I liked it, really, not only for MCU. I used it for years, and I wrote some large sources.

So my question (and topic) is, has usage of assembler corrupted the personality of some programmers to a point where they think what they do say make and be is totally eloquent, while others at time are pointing their finger towards their head, repeating it, and it's more kind of a knock knock joke thingy?

Are I am the only one affected?

Luckily I've pulled the plug, recently.

But I am not only adding Arduino skills and circuits and programs to my inventory, also Freescale seriously is considered.

I'd have to use assembler as we know it sometimes, I want to be able to use it, yes, but I don't want to use it the way I did anymore.

Without it, would it be better? The Windows world largely has decided so.
I think it can help a lot to see programming tasks from a different point of view aka the machine is the rule, not the compiler syntax, let's talk assembler to the compiler :slight_smile:

Until yesterday I never spent time maintaining the idea that using assembler leads to corruption and a high level of arrogance.

I hope I have not offended peopole with my thought here I write as fast as I can and that's that and it is true for me and it makes sense I am not a bot. Yes I really bought an Arduino. You don't see any particular "interface controller" mentioned here in the post or do you? I don't even know if this association is true or has anything to do with reality.

By the way at first when I started with WoW I did choose Alliance, and I can remember my track to a large degree. Then I stopped for a year or even more, got some free game time, and because I was so bored already, well you know what happened. Is it weird I feel a lot better over there? Well what is weird I stopped playing again for more than a month, did not keep record of the exact date then had the feeling I wanted to play some more, about one hour or maybe two, I get the notification "your game time will expire in 30 minutes". That's so weird I could have used it during a timespan more than a month but I didn't, apparently, and now I am upset about the wasted funds.

I am the only one affected?

That's my take on it :slight_smile:

Anyway assembly (or is it Arsmedler) programers aren't arrogant, they are unassuming and comfortable in their superiority.


Rob

There was one cooky guy in the 70s with staggered a waltz on the magnetic drum control codes, which runtime modified the program.

It looked total correct and normal but then staggered to a double layer execution sequence.

The bad thing is scientists looked at it and there really was nothing it was never programmed.

I recognise most of the words in that last post, but I'm struggling to pick out the meaning.

Is this a Turing test?

Yes it reprogrammed itself in a funky and cooky way,

and thus,

passed the Turing test- It could emulate and replicate itself,
if it wanted to.

It also understands self inherent answers and questions quite well.

AWOL:
I recognise most of the words in that last post, but I'm struggling to pick out the meaning.

Is this a Turing test?

Well - maybe; but it seems like the OP is relating the "Story of Mel":

http://catb.org/jargon/html/story-of-mel.html

???

:smiley:

passed the Turing test- It could emulate and replicate itself,
if it wanted to.

That is wrong the Turing test is described here.

Mike, I think this particular bot is confusing the Turing Test with Turing Completeness.

Using assembly language and a young age may spawn arrogance. I'm both too old and too lazy now to use assembly. There's much more logic and less details using a high-level/mid-level language, which is possibly my personal preference or just an age thing. As I age, I care more about logic and less about details. But I still think a good programmer should learn assembly and become arrogant for a while and brought back down to reality just for the experience. Read my motto.

I think it's pretty common for many when they first are exposed to a general purpose computer and 'get' that they can create inside that machine, just about anything they can think of. And using machine language via assembler is about as close to true understanding about how to control this machine one can get, cycle by cycle. This can bring about a sense of arrogance. Thankfully most mature out of that state of mind as it's definitely not such an exclusive club anymore and we all stand on the shoulders of many that came before us in the endeavor.

Lefty

Assembler is just another arrow in the quiver. For some things it is the only way to go. For other projects any on of a number of language tools may be much better. For small fast code, nothing beats assembler because it makes no assumptions to protect you from yourself. (It is interesting that that used to be the complaint about C.) Arduino C makes certain assumptions to keep itself protected and reliable. Some of those assumptions cause it to add a lot of code in simple projects (a lot of pushing and popping of registers,(which is done to protect the rest of the code) but it might be that none of those registers are used. I recently coded a step/direction driver using a ATtiny2313. The code in Arduino was 1200 bytes, in assembler I did it with 88 bytes. Both do the same thing, the assembler does it quicker. The Arduino code had nothing in Loop() but it still pushed and popped all the registers (which would be proper in there was other code in the program other than the 1 interrupt routine)

Each tool has its place. Sometimes you use a crescent wrench and sometimes you use the vise grips. Using the right tool is often more efficient and cheaper.

Oh - Assembler on the AVR chips is really rather easy. Just remember to initialize ALL registers before use. They tend to have 0xFF which may cause a problem is using X , Y or Z... And the simulator doesn't load them with the proper values...

I remember being 14... boy, those were some days!

kf2qd: I shutter. :fearful:
Both a "crescent" brand adjustable wrench and a "vise-grip" brand locking pliers are tools (usually) chosen when one does not have the correct fixed size open-end or box style wrench (exception is using locking pliers as a clamp). Both of these tools should be avoided as they will round (damage) the fastener and cause damage to the project and frequently the operator. :disappointed_relieved:

Similarly, use the correct computer language (tool) for the project.

To get the full potential out of hardware, in particular in environments with tight constraints of time or memory (as is the case with micro controllers), nothing beats taking directly to the hardware. Using an assembler to generate machine instructions in a well defined way is the best way to go. :cold_sweat:

Using a higher level language like C (C++) may work well for proof of concept or when time and space permit. When a limit is reached, depending on the optimization of the compiler usually doesn't help since that has been active all along.

Use FORTRAN (really) for projects with many complex (as in real,imaginary) calculations with floating point numbers.

Of course knowing your own limits is most important. :wink:

Some say FORTRAN optimizes for simultaneous calculations among multiple processors on mainframes. Maybe true. I've never seen assembly or C++ have that built-in standard.

It's easier to just pick a more expensive MCU if you run into limits with C++. Unless you make 100,000 of your devices and $2 extra per device is too much for you, you don't want to waste your time writing machine codes. If you optimize say by not pushing/popping all the time, you risk lose sanity when trying to copy/paste code won't work. If you try to optimize for copy/paste-able code for reuse, you're better off with C++. Cost of time to make large projects in assembly (say 10,000 machine code) is pretty high. Just my 2cents.

liudr:
Some say FORTRAN optimizes for simultaneous calculations among multiple processors on mainframes. Maybe true. I've never seen assembly or C++ have that built-in standard.

This old thread seems to talk something about this:

What things are like today, dunno. Googling "parallel fortran" brought up some interesting links. I think, though, that if you had such a problem that was suited for parallel processing (multi cpu/multi machine/etc), that there are many libraries out there for most compiled languages that can be used (especially if the problem can be converted into a vector/matrix calculation)...

I'd get some time to learn and write some assembly and when I'd get a break again the chips changed and there were 20+ new things to learn or the code wouldn't be as good as compiled C on the new compilers.

What little I can't do with C on these ATMELs, I probably don't want to do on these ATMELs.

Whatever the language, what you want to learn is organization, flow and logic.

GoForSmoke:
I'd get some time to learn and write some assembly and when I'd get a break again the chips changed and there were 20+ new things to learn or the code wouldn't be as good as compiled C on the new compilers.

What little I can't do with C on these ATMELs, I probably don't want to do on these ATMELs.

Whatever the language, what you want to learn is organization, flow and logic.

I'm in this line.

One thing I liked about Forth that attracted me to C is the use of addresses/pointers as a basic feature. It lets me get closer to the metal.

One thing I really LIKE about Forth is that I don't need to come up with names for any variables except what globals I choose to have. I did a -lot- of coding over a 20 year period and for me, coming up with names for each and every numeric used does make a noticeable drain on creative energy. For some, yes, fine, the names suggest themselves but with Forth the action is through the stack. At command line I can type 1 2 + and get back 3. When I spec Forth words, I spec what is expected on the stack, the word name, and what is to be left on the stack. It's really very clean and faster than an interpreter has any right to be.
But the BIG thing is that Forth is Object Oriented through builds - does (sometimes creates - does) structures. I learned the basics of OOP using an 8K cartridge on a 5k VIC-20 back in 1983 and it changed my coding life forever.

I have looked at an AVR-Forth suitable for stand-alone. User I/O is through serial terminal.
http://amforth.sourceforge.net/

amforth needs approx. 8KB Flash memory, 80 bytes EEPROM and approx 200 bytes RAM for the core system (including the compiler words).

The dictionary is located in the flash memory. The built-in compiler extends it directly.

Your application is a Forth word that you define and in this case that's enough to have it saved to the chip right then. No external IDE or OS and computer needed to extend the dictionary, ie your program.

I saw an Arduino Forth environment in an archive thread but it didn't look to be past alpha stage.

No, I don't think I need to play with AVR assembler.