# Welche Programmiersprache lernen und wie?



## Rifel (29 Oktober 2009)

Hi Folks,
ich hoffe es ist nicht allzu schlimm, dass ich in das 61131 Forum eine Frage zu einer anderen Programmiersprache schreibe aber die anderen Bereiche schienen mir noch weniger zu passen.
Meine Frage ich programmiere derzeit 61131 mit Codesys und Beckhoff (Twin CAT) und Step 7 und möchte meinen Horizont erweitern. 
Welche Programmiersprache (WinCC, C, C++, C#, Visual Basic) würdet Ihr mir empfehlen um komplexere Steuerungen und Anlagen programmieren zu können, warum gerade diese und wie soll ich Sie mir aneignen (Literatur, Kurs ...)?
Mir geht es eigentlich darum neben den oben genannten von mir beherrschten Sprachen auch die gängigste freie Sprache zu beherrschen. Ich möchte sie danach auch nicht 100%ig können sondern wissen wie ich was zu machen habe und ein Programm, das in der jeweiligen Sprache geschrieben ist verstehen und ggf. verändern können.
Das Lernen müsste neben der Arbeit gehen und sollte nicht allzu kostenintensiv sein (< 1000€) also keine teure Software benötigen da ich diesen Wunsch privat hege (weiß auch nicht warum aber stillstand ist der Tod..)  und nicht durch meine Firma unterstützt werde.

Vielen Dank im Voraus
Thomas


----------



## marlob (29 Oktober 2009)

WinCC ist keine Programmiersprache. Aber in WinCC kannst du in C (C-Skript)
und VBS programmieren. Un die gängigste Programmiersprache gibt es eigentlich auch nicht.
Du wirst so ziemlich jede Anlage/Maschine mit einer der 61131 Programmier
sprachen programmieren können. Es gibt aber auch Prozessrechner die du in C/C++
programmierst. VBS kommt oft in SCADA-Paketen vor. Manche bauen ihre GUIs selber
und benutzen dafür VBA, C++, C# oder Delphi.
Zu all diesen Programmiersprachen gibt es freie Compiler, Tutorials usw.
im Netz. Bei Delphi müsstest du dann aber auf Lazarus ausweichen, da Delphi meines Wissens nach nur kommerziell vertrieben wird.
Was solltest du jetzt also lernen. Um die Grundlagen eines Computers zu verstehen könntest du mit C/C++ anfangen. Mit VBA kommst du sicher schneller zu Ergebnissen. Das ist aber nicht unbedingt die Programmiersprache um sauber programmieren zu lernen
Pascal war immer die Lehrsprache und Delphi ist ja quasi der Nachfolger. Warum also nicht damit anfangen bzw. der Freeware-Alternative Lazarus.
Es gibt noch eine Menge anderer Programmiersprachen, die in der Automatisierungswelt aber seltener eingesetzt werden, aber auch ganz interessant sind sich die mal anzugucken.


----------



## MasterOhh (29 Oktober 2009)

Ich denke mal mit C++ kann man nicht viel falsch machen obwohl einige Leute behaupten das C# die Zukunft ist. 
VBA habe ich bisher nur gebraucht um mir Makros und Skripte für Excel zu basteln.


----------



## RobiHerb (30 Oktober 2009)

*Sprache*



MasterOhh schrieb:


> Ich denke mal mit C++ kann man nicht viel falsch machen obwohl einige Leute behaupten das C# die Zukunft ist.
> VBA habe ich bisher nur gebraucht um mir Makros und Skripte für Excel zu basteln.



Im Prinzip steht hinter den Sprachen das gleiche Konzept. Man kann lediglich pro und contra nennen, ich möchte mal einen Ansatz geben.

Pascal, Delphi: 
PRO: Wer CoDeSys ST macht, fühlt sich hier zuhause in der Familie/Verwandschaft, die ST ist in vielen Syntaktischen Elementen aus Pascal hervorgegangen. Die Sprache ist einfach zu erlernen.
Contra: Die Konzepte sind veraltet, die Aussichten für den Einsatz in der Zukunft sind eher schlecht.

C/C++:
PRO: Universalsprache, sehr weit verbreitet, mit Vorsicht auch von Anfängern zu beherrschen, für Fortgeschrittene DAS Universalwerkzeug. Wohl die Sprache, die heute eingesetzt wird, wenn es um Projekte > 100 Mannjahre geht.
Contra: Bei grösseren Dingen kann der Anfänger schon mal leicht Architektur Fehler produzieren, die nur durch Abriss und Neubau zu korrigieren sind. Lernzeit bis zum professionellen Einsatz 1 bis 2 Jahre.

C#:
PRO: Hinter dieser Sprache steht Microsoft mit seiner gesamtem Markt- und Entwickler Macht. Sie bietet mit .NET eine Wahnsinns Produktivitäts Basis, wenn man einmal die Lernkurve etwas hochgeklettert ist.
Contra:Hinter dieser Sprache steckt Microsoft, sie macht von MS abhängig und ist auf den PC allein ausgerichtet. Sie ist sehr dynamisch in der Entwicklung, alle 2 Jahre wird sie quasi neu erfunden und braucht in der Entwicklung und Runtime enorme Resourcen (alle 2 Jahre neuen Laptop...).
Sie ist ein entschärftes C++ aber durch das .NET ist die Komplexität für einen Anfänger ein extrem harter Brocken. Lernzeit für den Professionellen Einsatz 1 bis 2 Jahre, im Prinzip aber unendlich.

Also Facit? Das kommt auf die Zukunft an, wohin will man sich entwickeln, was wird man in der Firma damit anfangen können...


----------



## Werner29 (30 Oktober 2009)

Ich bin ein Fan von C# und .Net. Ich denke tatsächlich dass es eher weniger komplex und leichter zu verstehen und beherrschen ist als C++ in Verbindung mit der (alten) Windows API.
Natürlich ist man von Microsoft abhängig, aber das ist man sofort, wenn man Windows-Applikationen entwickelt.
Ich würde auf alle Fälle das Visual Studio Express Edition von Microsoft empfehlen (kostenfrei). Damit kann man dann sowohl C++ als auch C# Applikationen entwickeln.


----------



## RobiHerb (30 Oktober 2009)

*Noch ein paar Infos*



Werner29 schrieb:


> ...
> 1. Natürlich ist man von Microsoft abhängig, aber das ist man sofort, wenn man Windows-Applikationen entwickelt.
> 
> 2.Ich würde auf alle Fälle das Visual Studio Express Edition von Microsoft empfehlen (kostenfrei). Damit kann man dann sowohl C++ als auch C# Applikationen entwickeln.



Zu 1: Man kann Windows sehr wohl ohne Microsoft Tools entwickeln. Z.B. mit C++ und Qt (dahinter steckt der Riese Nokia und der verschenkt die IDE) oder mit Java und Eclipse (dahinter stehen auch einige Riesen und die Tools sind umsonst). Diese Sprachen aber sind sozusagen geschütztes "WeltKulturErbe", sprich da darf MS nix dran drehen, wie sie es zuletzt bei Java per Gericht verboten bekommen haben. Auch nicht vergessen, neben SPS und PC gibt es andere Anwendungen: auf 1 Intel PC Prozessor kommen ca. 8 ARM Prozessoren in den Handel.

2.Express Edition ist frei, es gibt aber auch Bücher für ca.50 Euro da ist eine laufzeitbegrenzte Professional Edition von VS dabei. Laufzeit von 3 Monaten abgelaufen einfach mit Systemeinstellungen/Software deinstallieren, danach neu installieren und man kann weiter lernen. Wen es interessiert bitte PN (bin weder mit dem Autor noch Verlag unter einer Decke)


----------



## Werner29 (30 Oktober 2009)

Natürlich muss man sich weder von MS-Tools noch von der MS-Programmiersprache C# abhängig machen. Aber Windows selbst ist halt auch MS. Das meinte ich und nicht mehr.


----------



## marcengbarth (30 Oktober 2009)

RobiHerb schrieb:


> Pascal, Delphi:
> Contra: Die Konzepte sind veraltet, die Aussichten für den Einsatz in der Zukunft sind eher schlecht.



Absoluter Quatsch! Schau dir mal die aktuellste Version an und wenn es anstatt Win32 .Net sein soll. Dann schau dir mal Delphi Prism an. Das ist C# usw. um Welten voraus. http://embarcadero.com/de/products/delphi-prism


----------



## marlob (30 Oktober 2009)

marcengbarth schrieb:


> Absoluter Quatsch! Schau dir mal die aktuellste Version an und wenn es anstatt Win32 .Net sein soll. Dann schau dir mal Delphi Prism an. Das ist C# usw. um Welten voraus. http://embarcadero.com/de/products/delphi-prism


Gibt es da denn auch eine Expressedition (wie beim Visual Studio) von, die ich gratis nutzen kann. Oder haben die nur die 30-Tage Trial?


----------



## marcengbarth (30 Oktober 2009)

Da gibt es zur Zeit keine kostenlose Version von. Zum Testen musst du die Trial nehmen.


----------

