Clarifying the homomorphism's definition? So, I've heard a lot that homomorphism is a structure-preserving mapping between somewhat algebraic objects. Rigorous definition is: 
$f(x \circ y) = (f x) \circ (f y)$.
And it's not clear enough for me why operation from the left (denoted as $\circ$) remains unchanged on the right? Does it mean that homomorphism suppose to work only with algebraic objects sharing the same operation? Or this definition is just not enough explicit, shadowing the fact that $\circ$ gets mapped as well to a, let say, $\bullet$ and those are different in general? 
Intuitively it feels like $f(x \circ y) = (f x) \bullet (f y)$ would be more correct. 
 A: The theory of your algebraic structure introduces a language for expressing calculations. For example, the theory of a ring introduces symbols $0,1,+,-,\cdot$, and we have a language using those symbols to express calculation.
Usually, we express things in this language unless there is a compelling reason not to do so.
Among the things ring homomorphisms must satisfy is requires $f(x \cdot y) = f(x) \cdot f(y)$. When you read that equation, you should read both instances of $\cdot$ as referring to the operation given in the theory of a ring; in this sense, both sides refer to the "same operation". 
What's different about the two sides is the interpretation of the operation:


*

*In $f(x \cdot y)$, one interprets the operation in accordance with the domain of $f$

*In $f(x) \cdot f(y)$, one interprets the operation in accordance with the codomain of $f$


The (correct!) idea you are expressing is that these interpretations may be completely different functions between sets.
IF you were in a situation where you really did have cause to express arithmetic in terms of names for the specific functions that serve as the interpretations, then if the interpretation of $\cdot$ in the domain is a function we call $\circ$, and on the codomain is a function we call $\bullet$, then you would indeed translate $f(x \cdot y) = f(x) \cdot f(y)$ into the expression $f(x \circ y) = f(x) \bullet f(y)$.
A: You're right. It's an abuse of notation. More formally, you should have something like the following.
Suppose $(G,\oplus_G)$ and $(H,\oplus_H)$ are groups. Then $f:G\to H$ is a homomorphism if and only if $$f(x \oplus_G y ) =f(x) \oplus_H f(y)$$ for all $x,y\in G$.
The subscript is often dropped and inferred from context -- that's the "abuse".
A: And your intuition is correct. Usually, the homomorphism is between two algebraic structures with distinct operations.
A: Does it mean that homomorphism suppose to work only with algebraic objects sharing the same operation?
No. It means that, when working with algebraic objects, we usually share the same symbol for different operations.
Herstein's book (p. 67) explains this issue in the context of groups:

Definition. Let $G, G'$ be two groups; then the mapping $\varphi:G\to G'$ is a homomorphism if $\varphi(ab)=\varphi(a)\varphi(b)$ for all $a, b\in G$.
In this definition the product on the left side - in $\varphi (ab )$ - is that of $G$, while the product $\varphi(a)\varphi(b)$ is that of $G'$.

Analogously, for a general homomorphism $f(x \circ y) = (f x) \circ (f y)$, the symbol $\circ$ on the left stands for the operation in the domain, while the symbol $\circ$ on the right stands for the operation in the codomain.
A: Yes, you are right. Take, for instance, $A=B=\mathbb{R}$, and take the usual sum ($+$) on $A$ and the usual product ($\cdot$) on $B$. Then a homomorphism between the two structures $(A,+)$ and $(B,\cdot)$ is a function $f:A\longrightarrow B$ such that for each $x,y\in A$ we have
\begin{equation}
f(x+y)=f(x)\cdot f(y)
\end{equation}
An example of such function is the exponential, $f(x)=e^x$.
