Welche Programmiersprache lernen? C, C++, .NET, C# ?
-
Ist zwar keine Hochsprache, aber so hardwarenah ist keine (die ich kenne):
Assembler
-
Hallo,
danke für die Antworten.
Leider habe ich immer noch nicht rausgefunden, wie man mit der WinAPI folgende Aufgabe lösen kann:
Ich will ein Programm, welches folgende Daten in eine Textdatei ausgibt:
<LAUFWERKSBUCHSTABE>, <Hardware, die dazu gehört, z.B. "USB CompactFlash Card Reader">, <STATUS (Fehler im Gerätemanager, OK, kein Treiber installiert, etc...>Ich kann mit Perl zwar den Gerätemanager und auch die Registry oder die WMIC auslesen, allerdings konnte ich das Problem mit Perl nicht lösen.
Hier einige Aufgaben, welche wir z.Zt haben:
1. Programm zum Überwachen von bestimmten Geräten:
Das Programm soll im Hintergrund von Widnows laufen, und regelmäßig die Funktion von CompactFlash, Xd, SD, MMC, MS, SM, Bluetooth und IrDA prüfen.
Wenn eines dieser Geräte ausfällt, wird der PC neu gestartet. Ist das Problem weg, ok. Wenn nicht, Mail an Admin.
Dieses Programm soll mitels MSI Installer, oder so ähnlich instlliert werden können.2. Programm zum Installieren von Logos und Bezeichnungen für 6in1 Kartenleser.
Diese Kartenleser tauchen im Arbeitsplatz mit 6x Wechseldatenträger auf.
Hier soll ein anderes Bild und eine andere Bezeichnung vergeben werden.
Dieses Programm soll nur mit bestimmten Kartenlesern funktionieren (mit unseren, keinen Fremdprodukten). Daher muss vor der Installation die VID und die PID (Vendor ID und Product ID, im Gerät festgelegt) geprüft werden.3. SmartCard Reader
Ein einfaches Programm, um eine Krankenversicherungskarte auszulesen.
Natürlich nur mit bestimmten Lesegeräten...Diese werden im Moment von einer anderen Firma entwickelt, aber es wäre schön, wenn ich sowas auch könnte.
@ GPC :
Ich kann kein C oder C++, also kann ich auch nicht dabei bleiben.
Ich Frage mich, ob ich besser C, C++, .Net oder C#, oder ganz was anderes lernen soll..@ Glamdrink:
Kann man mit Assembler GUI-Anwendungen erstellen?
Ist mir jetzt neu, ich dachte sowas nehme ich, wenn ich eine .exe hacken will?Danke für die Antworten
mfg
trequ
-
Hallo,
du kannst in Assembler alles schreiben, die Frage ist nur, ob das sinnvoll ist. Die Sachen, die du da aufzählst, hören sich für mich auch nicht gerade nach Einsteigerproblemen an.
Wenn du noch überhaupt kein C, C++ oder C# kannst, dürfte das innerhalb kurzer Zeit auch nicht zu lösen sein (behaupt ich mal, kann mich aber auch irren
).
Ob man sowas überhaupt in C# machen kann, weiss ich nicht. Grundsätzlich kannst du aber alles das, was du mit C machen kannst, auch in C++ machen, nur objektorientiert. Du solltest auch erstmal die Standards der entsprechenden Sprache lernen, bevor du sowas machst wie IRQs und son Zeuchs zu überprüfen.
However, alle Sprachen, die du aufgezählt hast, lernt man nicht in einer Woche, und das ganze Hardwaregedöns muss man auch noch verstehen. Also rechne mal mit einem etwas längeren Zeitraum zum Lernen.
-
Willst du auch Treiber schreiben? Dann solltest du C und Assembler beherrschen.
Andernfalls bringt dir Assembler überhaupt nichts unter Windows, da sowieso nur Treiber in der Lage sind auf Hardware direkt zuzugreifen.
Höchstens, wenn du ein Programm extrem Geschwindigkeits-optimieren willst, kann Assembler hilfreich sein.Das hardwarenachste, was ein normales Windows Programm machen kann, ist die WinAPI zu benutzen und die kann man am besten über C oder C++ ansprechen.
Es gibt aber auch noch andere APIs, die leichter zu benutzen sind, aber nicht unbedingt immer sämtliche Funktionen der WinAPI bieten. Diese sind meistens für C++ ausgelegt.Ausserdem gibt es noch C# und NET. NET ist eine API, die ab der nächsten Windows Version die WinAPI ersetzen wird. Das heisst, ab der nächsten Windows Version wird NET das hardwarenachste sein, das einem Windows Programm zur Verfügung steht, ausser natürlich du schreibst Treiber.
NET lässt sich am besten mit C# benutzen, mit C++ geht es aber ebenfalls.
c# hat ausserdem den Vorteil, dass es leichter zu erlernen ist als C++.NET kann man aber schon jetzt verwenden. Man muss es halt nur installieren.
Wenn man bedenkt, dass sich das Erlernen der WinAPI sowieso nicht mehr lohnt, da sie immer weniger benutzt und bald ganz ersetzt wird, solltest du lieber eine andere API erlernen. Das könnte z.B. eine der vielen C++ APIs sein, die es gibt oder NET.
Mit NET bist du von der Sprache relativ unabhängig, da man es sowohl mit C# als auch mit C++ und auch einigen anderen Sprachen benutzen kann. Hat aber momentan noch den Nachteil, dass jeder, der dein Programm benutzen will, erst NET installieren muss. In der nächsten Windows Version verschwindet dieser Nachteil jedoch und man hat fast nur noch Vorteile, ausser was die Platformunabhängigkeit angeht. Da ist eine der anderen APIs besser.
-
trequ schrieb:
Hallo,
ich suche gegenwärtig nach einer Weiterbildung zur Programmiersprache C.
Kenntnisse in Perl, PHP, mySQL (ja, ich weiß keine Sprache)
Logisch is das eine Sprache. Nur eben eine Nichtprozedurale.
Da ich in der Arbeit eine Sprache brauche, welche möglichst nah an der Hardware ist, überlege ich welche Sprache ich mir in der Weiterbildung beibringen lassen soll.
Was würdet Ihr mir raten?mfg
trequWenn du möglichst nahe an der Hardware schreiben willst, würde ich dir zu C/C++ und Assembler raten. C# ist da definitiv die falsche Wahl.
-
interpreter schrieb:
Wenn du möglichst nahe an der Hardware schreiben willst, würde ich dir zu C/C++ und Assembler raten. C# ist da definitiv die falsche Wahl.
Wie ich schon sagte gilt dies nur für Treiber Programmierung.
Ich vermute aber, dass er nicht hardwarenah meinte, sondern verschiedene Hardware ansprechen will, wie z.B. USB Geräte, in einem normalen Windows Programm.
Damit wäre dann Assembler definitiv die falsche Wahl. C# und C++ dagegen eine gute.
-
interpreter schrieb:
trequ schrieb:
mySQL (ja, ich weiß keine Sprache)
Logisch is das eine Sprache. Nur eben eine Nichtprozedurale.
Hä? SQL ist eine Sprache, mySQL doch nicht.
-
Hallo,
ich dachte, mySQL ist ein Befehlssatz für die Datenbank.
Man liest immer wieder, es sei keine "richtige" Programmiersprache.
HTML ist ja auch keine "richtige" Sprache, keine Variablen und Co, nur eine Seitenbeschreibung.Es wird wohl auf C++ rauslaufen.
Wie groß sind die Unterschiede von C++ nach C#?
Wenn ich wirklich mal umsteigen muss, muss ich dann alles neu lernen, oder geht es mir so wie mit Perl und PHP?
PHP ist ja Perl sehr ähnlich und wer Perl kann, hat PHP schnell drin...mfg
trequ
-
ich dachte, mySQL ist ein Befehlssatz für die Datenbank.
Man liest immer wieder, es sei keine "richtige" Programmiersprache.
HTML ist ja auch keine "richtige" Sprache, keine Variablen und Co, nur eine Seitenbeschreibung.Es gibt Auszeichnungssprachen und Programmiersprachen. HTML ist eine Auszeichnungssprache (englisch Markup-Language).
Haskell hat auch kein richtigen Variablen, ist dennoch eine Programmiersprache.
mySQL ist eine populäre Open-Source-Datenbank und hat mit einer Sprache absolut ganrichts zu tun.
-- helium
-
trequ schrieb:
Hallo,
ich dachte, mySQL ist ein Befehlssatz für die Datenbank.
Man liest immer wieder, es sei keine "richtige" Programmiersprache.
HTML ist ja auch keine "richtige" Sprache, keine Variablen und Co, nur eine Seitenbeschreibung.Es wird wohl auf C++ rauslaufen.
Wie groß sind die Unterschiede von C++ nach C#?
Wenn ich wirklich mal umsteigen muss, muss ich dann alles neu lernen, oder geht es mir so wie mit Perl und PHP?
PHP ist ja Perl sehr ähnlich und wer Perl kann, hat PHP schnell drin...mfg
trequMySQL ist eine Datenbank, aber die Sprache zum Steuern der Datenbank - SQL - zaehlt wirklich zu den Programmiersprachen. HTML hingegen nicht, das ist eine Auszeichnungssprache.
Unterschiede C++ zu C# ist mit Perl zu PHP gut zu vergleichen. Der Umstieg wird aehnlich einfach fallen; C++ ist "detailierter", hardwarenaeher als C#. Aber die Syntax ist zum groessten Teil der selbe, nur nimmt dir C# viel Arbeit ab, die man mit C++ manuell machen muss.