Welche Programmiersprache nutzen

Squicky

Lt. Commander
Registriert
Sep. 2002
Beiträge
1.404
Hallo

Ich spiele mit dem Gedanken das Tool utorrent zu 100 % (bzw. zu 99 % ;-) ) portabel zu machen.

Am liebsten würde ich Java nutzen. Denn es ist eine Objektorientiert Sprache, man muss sich um die Speicherverwaltung keine Gedanken machen (garbitch collector) und es gibt ein gute einfache Entwicklungsumgebung mit Debugger: Eclipse
Ich habe auch noch (ganz) kleine C (nicht C++), Visual Basic Skript und alte Delphi Erwahrungen.

Um das oben genannte Projekt durch zu führen, müsste ich von existierenden Dateien mehrere Byte austauschen. ( Mal müssten 10 Bytes gegen 50 Byte, dann aber auch mal 50 gegeben 10 Bytes ausgetauscht werden. Dies müsste an mehreren Dateien mehrfach pro Datei gemacht werden. )

Welche zukunftssichere Programmiersprache könnt ihr mir empfehlen? (Eine Begründung wäre super.) Java kann ich für dieses Vorhaben nicht nutzen, da nicht sichergestellt werden kann, dass auf jedem PC eine Java Virtual Maschine installiert ist.

Danke für eure Hilfe.

Gruß
Squicky
 
Ist utorrent Open Source? Wenn ja, dann solltest du die selbe Sprache verwenden wie die, in der utorrent geschrieben wurde.
Falls nein, so habe ich ernsthafte Zweifel daran ob du dich nicht ohnehin übernimmst.
 
Falls Du mit utorrent den µTorrent meinst, von dem bekommst Du laut der Webseite nicht mal den Source-Code. Ich gehe mal davon aus, daß das Programm in einer Hochsprache geschrieben und anschliessend in Maschinencode übersetzt wurde. Somit müsstest Du das Programm disassemblieren, verstehen und dann entsprechend patchen. Viel Spaß :D

Dafür wirst Du somit x386-Assembler lernen müssen. Ausserdem wirst Du Dir gewissen Kenntnisse der Windows-Programmierung aneignen müssen, sonst wirst Du viele Aufrufe in dem Programm einfach nicht verstehen.

Unter portabel machen verstehe ich, daß das Programm auf verschiedenen Plattformen (z.B. auch Linux) laufen soll. Solange das Programm in einer Hochsprache wie C/C++ geschrieben ist und gegen Betriebssystembibliotheken von z.B. Windows oder Mac gelinkt ist, würde ich das ohne den Sourcecode gleich sein lassen. Da schreibst Du das Programm besser selber neu.

Wenn Du nur grundsätzlich programmieren lernen willst, dann ist die Sprache erstmal sekundär. Wichtig ist es einfach zu lernen, wie man eine Anwendung strukturiert. Das ist aber ein sehr komplexes Thema, bei dem man auch als Softwareentwickler ständig dazulernt.
 
portable <=> das Programm kann man von einem USB Stick nutzen. Und es funktioniert immer gleich, egal welchen Laufwerksbuchstaben der USB Stick hat. µTorrent kann keine Download fortsetzen, wenn sich der Ordern (oder Laufwerksbuchstabe) ändert <-> Dies möchte ich ändern.

Keine Angst: Wenn ich mich wirklich mit diesem Projekt übernehmen sollte, dann habe ich wenigstens eine neue Programmiersprache gelernt.
Aber ich glaube nicht, dass ich mich übernommen habe. Ich habe die utorrent Dateien mit einem Byte-Editor analysiert: Es ist machbar. (Für einen Download habe ich dies auch schon gemacht. Ich musste zwar die ganzen Bytes in den Dateien von Hand ändern, dies hat zwar 15 Min gedauert, aber es hat funktioniert.)
Ich möchte nun ein Programm schreiben, dass diese Änderungen für alle Downloads automatisch macht.


Deshalb zurück zur meiner Frage, welche Programmiersprache dafür die richtige wäre.

Danke
 
Hallo,

ich würde bei C bleiben, da kannst du eigentlich schön direkt mit Pointer im Speicher arbeiten und deine Bytes tauschen. Unter höheren Sprachen stell ich mir dass einwenig schwieriger vor. Mit meinen (rudimentären) JAVA Kenntnissen stell ich mir das gleiche Programm in JAVA um einiges schwieriger vor ...
Achso, einfache Entwicklungsumgebungen gibt es für C auch

Bleib also erstmal bei dieser Sprache. OK?
 
Ich denke du könntest durchaus auch C++ benutzen. Oder was wären hier die Nachteile gegenüber C?
C++ wäre halt auch objektorientiert und bietet (meiner Meinung nach) in vielen Bereichen Vorteile gegenüber C.

Gruß,

badday
 
Es müssen ja nicht nur ein paar Bytes eins-gegen-eins ausgetauscht werden, sondern:
Es müssen pro Dateien mehrere "Byte-Stellen" gegen andere ausgetauscht werden. z.B. Mitten in der Datei gibt es 5 Bytes in Folge, diese sollen gegen 20 Byte ausgetauscht werden.

Ist dies auch in C "einfach" umzusetzen. Oder gibt es eine bessere Sprache?
 
Plattformunabhängigkeit steht in einem kleinen Widerspruch in sich zu hardwarenaher Programmierung. Dieses Faktum sollte dir klar sein in dem Sinne, dass die Tendenz zum einen Pol den anderen Pol in dessen Ausführung/Anwendbarkeit erschwert, wenn nicht gar fast ausschließt.

Ich würde an deiner Stelle trotzallem Java nehmen, auch auf das Risiko hin, dass der ein oder andere User (prozentual gesehen sicherlich ein sehr geringer Anteil) kein Java installiert hat.

Die entscheidende Frage ist halt ob du den bestehenen Quellcode anpassen willst oder das Programm neu aufziehen willst und beispielsweise nur die GUI übernimmst... Diese Frage solltest du dir zuerst stellen bevor du eine entsprechende Sprache wählst. Ausserdem kann ich dir bei beiden Varianten eines sagen: Dein Vorhaben ist komplizierter als es sich im ersten Moment anhört. Viel Glück dabei. Das Ergebnis würde mich allerdings interessieren...
 
Plattformunabhängigkeit? Davon habe ich nicht gesprochen/geschireben.

utorrent gibt es doch nur für WIndows. Oder?
egal: Mein Programm soll ja nur für Windows sein.

Java werde ich leider nicht nutzen, da mann nicht zu 100 % sicher sein kann, dass auf jedem WIndows PXJava läuft.

Welche zukunftssichere Programmiersprache lohnt sich daher dafür zu lernen?

.net oder c# sollen ja recht modern und gut sein. Oder?

Danke
 
Zuletzt bearbeitet:
Warum ist Java in deinen Augen keine moderne Programmiersprache? Du scheinst noch nicht mal eine Programmiersprache richtig zu beherschen und erlaubst dir schon ein Urteil über eine Sprache zu fällen, in der du laut eigener Aussage gar keine Erfahrung hast.
 
Zuletzt bearbeitet:
Für mich ist Java eine (sehr) moderne Sprache!
Leider braucht man dafür eine VM, und da nicht auf allen PCs eine Java VM läuft, möchte ich Java nicht nutze.

Gibt es eine sprache die mind. genau so modern, objektorientiert und "benutzerfreundlich" wie Java ist, so nennt mir diese.

Deshalb zurück zu meiner Frage:

Welche zukunftssichere Programmiersprache lohnt sich daher dafür zu lernen?
.net oder c# sollen ja recht modern und gut sein. Oder?


Danke

Gruß
Squicky
 
frage 1, warum nicht µtorrent-portable nutzen?
frage 2, warum nicht notfalls schnell µtorrent installen?
also zusammengefasst: warum so nen aufwand fuer nichts?
 
Zuletzt bearbeitet:
fi**en32 schrieb:
frage 1, warum nicht µtorrent-portable nutzen?
frage 2, warum nicht notfalls schnell µtorrent installen?
also zusammengefasst: warum so nen aufwand fuer nichts?

1. Weil es kein echtes µtorrent-portable gibt. Wenn die Mobile Festplatte oder der USB Stick auf dem zweitem Rechner einen neuen Laufwerksbuchstaben bekommt, kann man die Download nicht fortsetzen!

2. Weil Download fortgesetzt werden sollen. und weil man nicht immer Instalaltionsrechte hat!

XamBonX schrieb:
Mit dem Unterschied, dass sie keine VM brauchen, sondern die .net Bibliotheken. Hat auch nicht jedes System.

Also bleibt nur C++ als wirklich unabhängige Programmiersprache ?
 
linux und mac os ;)

edit: hab mono überlesen
aber ist eigentlich wieder der gleiche blödsinn, da ist ne java vm gleich besser
 
Ich würde mit C# arbeiten. Ist moderner (neuer) als C,C++ und Java und ich glaube jeder Rechner hat mittlerweile .net drauf! Also sollte es keine Probleme beim nutzen des Programms geben.
 
dieser thread macht mich ganz fertig..
@Squicky, nicht böse gemeint und versteh mich nicht falsch, aber ich an deiner stelle würd nicht meine zeit damit verschwenden. nimm dir besser mal was einfachers vor.
allein, dass deine einzige sorge vor der implementierung das austauschen von irgendwelchen bytes ist zeigt nicht wirklich von erfahrung. du solltest deine herangehensweise etwas ändern und die ganze problemstellung etwas abstrakter bzw modellierter sehen. andernfalls wirst du nicht weit kommen - versprochen ;)
 
Zurück
Oben