You can also use insert path to abbreviate the coordinates.
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[bcs/.style args={#1|#2|#3}{insert path={--(barycentric
cs:a=#1,b=#2,c=#3)}}]
\coordinate (a) at (90:3cm);
\coordinate (b) at (210:3cm);
\coordinate (c) at (-30:3cm);
\node [above] at (a) {$a$};
\node [below left] at (b) {$b$};
\node [below right] at (c) {$c$};
\draw [thick,green, fill=green,opacity=0.5] (a)
[bcs={1|0|1},bcs={1|1|0}] -- cycle;
\draw [ultra thick] (a) -- (b) -- (c) --cycle;
\end{tikzpicture}
\end{document}

Another thing you could do is to locally change the TikZ parser. Then the whole path really boils down to
\begin{scope}[bary={a}{b}{c}]
\draw [thick,green, fill=green,opacity=0.5]
(1,0,0) -- (1,0,1) -- (1,1,0) -- cycle;
\end{scope}
where bary={a}{b}{c} install the barycentric coordinate system in the scope (we don't want it everywhere) and you really just have to specify the three numbers.
\documentclass[tikz,border=3.14mm]{standalone}
\makeatletter % https://tex.stackexchange.com/a/365418/121799
\tikzset{bary/.code n args={3}{
\def\tikz@parse@splitxyz##1##2##3,##4,{%
\def\@next{\tikz@scan@one@point##1(barycentric cs:#1=##2,#2=##3,#3=##4)}%
}}}
\makeatother
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (90:3cm);
\coordinate (b) at (210:3cm);
\coordinate (c) at (-30:3cm);
\node [above] at (a) {$a$};
\node [below left] at (b) {$b$};
\node [below right] at (c) {$c$};
\begin{scope}[bary={a}{b}{c}]
\draw [thick,green, fill=green,opacity=0.5]
(1,0,0) -- (1,0,1) -- (1,1,0) -- cycle;
\end{scope}
\draw [ultra thick] (a) -- (b) -- (c) --cycle;
\end{tikzpicture}
\end{document}
$x=(a)$just sets the "x" coordinate inxyzcoordinates to be the vector to(a)? – Seamus Jan 04 '19 at 17:03x=(a),y=(b),z=(c)than(x,y,z)is a point with coordinatesx.a+y.b+z.c. That's all. – Kpym Jan 04 '19 at 17:05