Jak to myslíš?
V PLC budeš vždy zaměřen na aplikaci, vyřešení problému reálného světa.
99 % komerčních programovacích pozic je o vyřešení problémů reálného světa.
To znamená že budeš typicky od programování abstrahován.
?
PLC bude vždy skládačka předpřipravovaných verifikovaných black boxů. Ty blackboxy psal nějaký programátor a verifikoval tester.
...
Z hlediska programátora to jsou svázané ruce.
A to je nějaký zásadní rozdíl od ostatních platforem? Ano v PLC jste jako programátor v kleci, docela malé kleci. Ale na jiných platformách jste většinou v kleci také. Sice větší kleci, ale pořád pracujete na nějakém verifikovaném HW. A často pracujete na closed-source OS, kde můžete používat systémová volání a to je tak všechno.
Naprostá většina komerčního programování v Javě/.NET v Česku jsou nějaké bussiness aplikace, kde pracujete tak, že ohýbáte nějaký framework k vašim potřebám, ale nesmíte ho ohnout moc, takže v čem se tak zásadně liší svázané ruce u PLC?
Jako PLC se většinou programuje dohromady s nějakým HMI systémem. A je fakt, že tvorba těch HMI aplikací občas připomíná mateřskou školku. Pracuješ s omezeným množtvím hotových komponent. Vlastní komponentu si udělat můžeš, ale prakticky to brutálně zabíjí výkon. Ve skriptech jsou zakázány konstrukce, které by mohly vést k zacyklení. Ale není to tak vždyky. Zejména u větších SCADA systémů jsou vývojová prostředí, kde je programátorská volnost mnohem větší.
Když programujete windows aplikaci, tak teoreticky můžete jít do velké hloubky. Prakticky vám to šéf projektu hodí na hlavu, protože čím méně kloužete po povrchu, tím větší je pravděpodobnost, že se vaše aplikace rozbije při dalším velkém windows updatu (nebo nové verzi windows).
Když programujete něco na linuxu, tak teoreticky můžete cokoliv. Můžete hackovat ten linux, upravovat jádro, bomba. Tedy do chvíle, než vám to admin hodí na hlavu, že tohle je neudržovatelné. Jistě, existují krabičky do kterých si výrobce ohne linux fakt hodně a pak si to dlouhodobě udržuje. Ale v praxi je to zlomek pracovních nabídek, které jsou na trhu.
Komerční programování PLC je pokoj s výhledem do dvora. Komerční programování většiny jiných platforem je pokoj s výhledem na moře, ke kterému je vstup zakázán.