In another thread the posts drifted towards a discussion on C v/s assembler. I tossed in the post below looking for a serious discussion, but as it was an obvious thread-jack I am now breaking that sub-thread out here.
The original thread is here: https://www.avrfreaks.net/index.p...
There was talk about Smileys book(s), and things like "C is easier".
My post in it read:
"Easier" than what?
This either war stuff, or a very interesting discussion emerging. It is quite obvious that some here argue that "assembler is easier than C", while there are others that argue the exact opposite.
Highly intelligent and educated people are present at both sides of the fence.
Me I'm on the "C is easier" side of the fence. I speak both languages pretty well, but things are much more easily expressed in C. Not to mention that rather C makes for rather more compact source as well. This in itself is of high value.
Example (just tossing something up):
i = 19876 + PORTB;
For me that is quite clear, short and concise. The same thing in assembler is not obvious by looking at it for two seconds. Not to mention when we get into control structures. A simple if-else-statement with largeish block in both "legs" takes me one or several minuters to analyze, whereas the C counterpart takes a moment or two.
This is from my point of view. It seems to me that both John and Jim, who over and over again post top-notch and smart posts here, have real tough struggles with C from time to time. I'm interested in why that is. Some kind of "difference in way of thinking" is involved. Some lack of knowledge also (I seem to recall the discussion we had when Jim first had to face and understand a separate compiling and linking tool chain, and how his posts in that discussion revealed a totally different background).
So, if we can avoid the pie-throwing for a while: Could you in some way, on some very concrete or more abstract level, describe what you find confusing/strange/obscure/totally-whacko etc with C? Could you relate to such things matching or not matching stuff in your background? Etc.
Again, I am seriously interested in this. I am in no way hunting a C v/s assembler argument. I am trying to understand how things look from your side of the fence.