Welche Programmiersprache soll ich nehmen?

10/14/2013 21:12 MrSm!th#16
Quote:
Originally Posted by Graphicscore View Post
Ich hab noch nicht genau verstanden was du machen möchtest.
Wenn du auf "Stabilität" gehen willst und interessiert an Dekompilierbarkeit bist dann würde ich generall .NET sprachen empfehlen wie C# oder VB, VB ist aufgrund der extrem einfachen Handhabung meiner Meinung nach ein halbwegs guter Allrounder. Wenn du mit GUI's garnichts am hut hast nimm Python kann ich auch nur wärmstens empfehlen. Wenn das nichts ist dann bleibt dir nur C/C++ und deren Abwandlungen.
Was sind denn so Abwandlungen von C/C++?
10/15/2013 15:15 XxharCs#17
Da Java erwähnt wurde:

Du kannst Java genauso in Maschinencode compilieren lassen, wie es C/C++ Compiler normal machen und dadurch die gewünschte Perfomance bekommen wie bei C/C++


Da du Nativ auch erwähnst, du kannst Java genauso auch Nativ compilen lassen.
Ein Nachteil dabei ist, dass manche Java Eigenschaften entfallen wie die Plattformunabhägigkeit oder das nachträgliche Einbinden von Javaklassen.

Eine zweite Möglichkeit wär Postcompiling. Da wird Javacode in Bytecode übersetzt und dann Bytecode in Maschinencode. Dieses Verfahren wird für Serveranwendungen häufig verwendet, da somit eine plattformunabhängige Anwendung erstellt wird.

Leider wissen es nicht viele, dass Java solche Möglichkeiten/Tricks bietet/mitliefert :rolleyes:


Wenn man sich mit Java gut auseinandersetzt kann man sehr viel erreichen und heutzutage verwenden viele Firmen intern Java-Software.

Ich empfehle dir gerne Java, da wie schon gesagt du viele Möglichkeiten hast.
GUIs sind ebenfalls leicht erstellbar in Java(falls verlangt). MVC-Patterns, verschiedene Frameworks usw. sind ebenfalls leicht zu verstehen und in Java umsetzbar.


Edit:
Da du dich Hobbymäßig beschäftigen willst, dann empfehle ich dir zu gern Java! :)
Edit 2: Mit Java kannst du auch DLLs erstellen, wenn du wie oben schon erwähnt, Nativ compilieren willst. ;)
10/15/2013 18:04 MrSm!th#18
Java ist overhyped.
10/15/2013 19:19 Netzgeist#19
Zum lernen? Java oder Scala.

Beide eignen sich ausgezeichnet um die meisten wichtigen Programmierparadigmen zu vermitteln(wenn du die grundsätzlichen Konzepte erst kennst bist du eher in der Lage die passende Programmiersprache für dein jeweiliges Projekt abzuwägen). Wenn du aber nur 1-2 konkrete Probleme lösen willst und nur genau soviel lernen willst um sie zu lösen, nimm irgendne scriptsprache. Python hat ne tolle Doku und Community. Finger weg von php und AutoIt(Es seih denn du hälst dich strickt an gescheite Lektüre), zu beiden geistern viel zu viele schlechte Codebeispiele im Netz mit denen du auf garkeinen Fall lernen solltest.
10/15/2013 20:42 YatoDev#20
was hast du gegen php ? ^^
10/16/2013 13:09 Graphicscore#21
Quote:
Originally Posted by MrSm!th View Post
Was sind denn so Abwandlungen von C/C++?
Objective-C zum Beispiel.
10/16/2013 14:51 masterplc#22
Quote:
Originally Posted by Netzgeist View Post
Wenn du aber nur 1-2 konkrete Probleme lösen willst und nur genau soviel lernen willst um sie zu lösen, nimm irgendne scriptsprache. Python hat ne tolle Doku und Community. Finger weg von php und AutoIt(Es seih denn du hälst dich strickt an gescheite Lektüre), zu beiden geistern viel zu viele schlechte Codebeispiele im Netz mit denen du auf garkeinen Fall lernen solltest.

AutoIt kann ich ja schon perfekt^^ (Habe es mit einem E-Book aus nem deutschen AutoIt Forum und der Befehlsreferenz gelernt)
Ich lerne nicht für 2 konkrete Probleme,sondern für die Möglichkeit mir selbst jederzeit meine möglichen Probleme lösen zu können.Aber da ich letztens was mit WinHttp und Memoryhacking versucht habe (AutoIt hat KLÄGLICH versagt.Alles vom Browser bis zum AutoIt Programm ist abgeschmiert.Und nein es lag nicht an mir sondern daran das die Threads wegen der Lahmheit nicht korrekt gearbeitet haben.) wollte ich mir eine neue Programmiersprache aussuchen.Da ich schon häufiger versucht habe was mit C++ zu machen und jetzt endgültig zu dem Schluss gekommen bin das mir C++ einfach zu nervig ist(Man muss wirklich jede Kleinigkeit selbst machen.Ich meine warum muss ich unbedingt ein Problem lösen für das es schon sehr gute vorgefertigte Lösungen gibt?) habe ich mir jetzt C# und Java ausgesucht(anfangs habe ich noch eher zu Delphi tendiert.Aber als ich mir einen Quellcode angeguckt hab dachte ich mir "Nein das tue ich mir dann doch nicht an").Als erstes werde ich mir C# ansehen und für den unwahrscheinlichen Fall das mich die Sprache ankotzt oder ich ausgelernt habe(was frühstens in 2-3 Jahren der Falls ist) nehme ich Java.Ich kann jetzt zwar C++ und C recht gut lesen,jedoch werde ich diese Sprachen nie wieder oder nur wenn es unbedingt notwendig ist anrühren.Das die Anwendungen decompiled werden könnten ist mir inzwischen auch egal,da ich 99% eh nicht sharen werde.(Ausserdem programmiere ich so unübersichtlich das jeder Obfuscator dagegen Code erzeugt der Laufstegreif ist^^)

Danke an alle für eure tolle Beratung ;)
master
10/16/2013 17:32 Shadow992#23
Quote:
Originally Posted by masterplc View Post
AutoIt kann ich ja schon perfekt^^ (Habe es mit einem E-Book aus nem deutschen AutoIt Forum und der Befehlsreferenz gelernt)
Ich lerne nicht für 2 konkrete Probleme,sondern für die Möglichkeit mir selbst jederzeit meine möglichen Probleme lösen zu können.Aber da ich letztens was mit WinHttp und Memoryhacking versucht habe (AutoIt hat KLÄGLICH versagt.Alles vom Browser bis zum AutoIt Programm ist abgeschmiert.Und nein es lag nicht an mir sondern daran das die Threads wegen der Lahmheit nicht korrekt gearbeitet haben.) wollte ich mir eine neue Programmiersprache aussuchen.Da ich schon häufiger versucht habe was mit C++ zu machen und jetzt endgültig zu dem Schluss gekommen bin das mir C++ einfach zu nervig ist(Man muss wirklich jede Kleinigkeit selbst machen.Ich meine warum muss ich unbedingt ein Problem lösen für das es schon sehr gute vorgefertigte Lösungen gibt?) habe ich mir jetzt C# und Java ausgesucht(anfangs habe ich noch eher zu Delphi tendiert.Aber als ich mir einen Quellcode angeguckt hab dachte ich mir "Nein das tue ich mir dann doch nicht an").Als erstes werde ich mir C# ansehen und für den unwahrscheinlichen Fall das mich die Sprache ankotzt oder ich ausgelernt habe(was frühstens in 2-3 Jahren der Falls ist) nehme ich Java.Ich kann jetzt zwar C++ und C recht gut lesen,jedoch werde ich diese Sprachen nie wieder oder nur wenn es unbedingt notwendig ist anrühren.Das die Anwendungen decompiled werden könnten ist mir inzwischen auch egal,da ich 99% eh nicht sharen werde.(Ausserdem programmiere ich so unübersichtlich das jeder Obfuscator dagegen Code erzeugt der Laufstegreif ist^^)

Danke an alle für eure tolle Beratung ;)
master
Also, dass du AutoIt perfekt kannst wage ich enorm zu bezweifeln. Abgesehen davon besteht das Programmieren an sich nicht aus "Ach ich lern jetzt einmal 100 neue/andere Befehle bzw. andere Syntaxen um mich fortzubilden".
Programmieren ist einfach kein Vokabeln lernen, sondern ein Verknüpfen von bereits bestehenden Wissen zu neuem Wissen um große und komplexe Themen zu lösen und genau aus diesem Grund finde ich genau AutoIt eine der interessantesten Sprachen das logische Verknüpfen zu lernen.
Weil wenn ich hier schon lese: "Da muss es doch irgendwelche fertigen Skripts geben", verstehst du programmieren falsch.

AutoIt bietet für Anfänger jede Menge Skripte und 95% davon sind tatsächlich scheiße. Wenn man jedoch erst einmal über diese Anfänger-Phase hinaus ist, dann trennt sich die Spreu vom Weizen, denn ab einem gewissen Grad ist man dazu gezwungen sich Lösungen selbst zu erarbeiten und nicht so wie bei den anderen Sprachen, vorallem bei .Net-Sprachen, alles zu kopieren.

Ich sehe in AutoIt nur Vorteile, was Fortbildung und Lernen angeht.

Die Meisten AutoItler bemühen sich aber nicht über die Anfänger-Phase hinaus zu kommen, sondern behaupten bereits wenn sie ca 25% der Befehle auswendig können, dass sie perfekt AutoIt können.

Ganz ehrlich bleib bei AutoIt, wenn du dich wirklich Weiterbilden willst, versuche einmal selbst deine Probleme zu lösen z.B. mit Hilfe der WinApi, ASM und DllCalls.

Am besten wäre natürlich eine andere Sprache zu lernen und gleichzeitig sich Lösungen selbst zu erarbeiten und nicht direkt aufzugeben, wenn es für diese ein Sprache kein copy und paste Code gibt.

Du kannst auch gerne einen neuen Thread im Forum erstellen und dort nach Hilfe fragen, in 90% der Fälle wird dir da auch geholfen.
10/16/2013 19:08 Schlüsselbein#24
Quote:
Da ich schon häufiger versucht habe was mit C++ zu machen und jetzt endgültig zu dem Schluss gekommen bin das mir C++ einfach zu nervig ist(Man muss wirklich jede Kleinigkeit selbst machen.Ich meine warum muss ich unbedingt ein Problem lösen für das es schon sehr gute vorgefertigte Lösungen gibt?)
Könntest du das mal etwas genauer ausführen? Modernes C++ zusammen mit ner Menge Libs nehmen einem sogar sehr viel ab.
10/16/2013 20:49 MrSm!th#25
Quote:
Originally Posted by masterplc View Post
Ich meine warum muss ich unbedingt ein Problem lösen für das es schon sehr gute vorgefertigte Lösungen gibt?)
Richtig, warum machst du es dann? Gibt genug Libs.

Und ausgelernt hat man nie.
10/16/2013 21:52 Master674b#26
Quote:
Originally Posted by Graphicscore View Post
Objective-C zum Beispiel.
D mehr oder weniger auch.
10/17/2013 00:52 masterplc#27
Quote:
Originally Posted by Shadow992 View Post
Also, dass du AutoIt perfekt kannst wage ich enorm zu bezweifeln. Abgesehen davon besteht das Programmieren an sich nicht aus "Ach ich lern jetzt einmal 100 neue/andere Befehle bzw. andere Syntaxen um mich fortzubilden".
Programmieren ist einfach kein Vokabeln lernen, sondern ein Verknüpfen von bereits bestehenden Wissen zu neuem Wissen um große und komplexe Themen zu lösen und genau aus diesem Grund finde ich genau AutoIt eine der interessantesten Sprachen das logische Verknüpfen zu lernen.
Weil wenn ich hier schon lese: "Da muss es doch irgendwelche fertigen Skripts geben", verstehst du programmieren falsch.

AutoIt bietet für Anfänger jede Menge Skripte und 95% davon sind tatsächlich scheiße. Wenn man jedoch erst einmal über diese Anfänger-Phase hinaus ist, dann trennt sich die Spreu vom Weizen, denn ab einem gewissen Grad ist man dazu gezwungen sich Lösungen selbst zu erarbeiten und nicht so wie bei den anderen Sprachen, vorallem bei .Net-Sprachen, alles zu kopieren.

Ich sehe in AutoIt nur Vorteile, was Fortbildung und Lernen angeht.

Die Meisten AutoItler bemühen sich aber nicht über die Anfänger-Phase hinaus zu kommen, sondern behaupten bereits wenn sie ca 25% der Befehle auswendig können, dass sie perfekt AutoIt können.

Ganz ehrlich bleib bei AutoIt, wenn du dich wirklich Weiterbilden willst, versuche einmal selbst deine Probleme zu lösen z.B. mit Hilfe der WinApi, ASM und DllCalls.

Am besten wäre natürlich eine andere Sprache zu lernen und gleichzeitig sich Lösungen selbst zu erarbeiten und nicht direkt aufzugeben, wenn es für diese ein Sprache kein copy und paste Code gibt.

Du kannst auch gerne einen neuen Thread im Forum erstellen und dort nach Hilfe fragen, in 90% der Fälle wird dir da auch geholfen.
Es kann sein das ich das falsch sehe aber meiner Meinung nach kommt man um das Vokabel lernen nicht herum. Am Ende muss man aber in der Lage sein die erlernten Befehle soweit mit den Schlüsselwörtern Verknüpfen zu können das man die Probleme wegen derer man das Programmieren gelernt hat lösen kann . Ausserdem kann es sein das du eine andere Definition von Perfektion hast. Schreibe sie mir doch bitte mal per pm dann können wir gerne darüber diskutieren. Jedoch meine ich das ich AutoIT soweit gelernt habe das ich nahezu alle Probleme wegen den ich AutoIT gelernt habe lösen konnte was meiner Ansicht nach bedeutet das ich AutoIT kann. Schreib mir doch deine Definition von können und nicht können.

Ich stimme dir zu das autoit eine sehr gute Sprache zum lernen ist. Jedoch geht mir langsam aber sicher die lahmheit und die Instabilität an komplizierten stellen auf den Senkel(da ich ja schon häufiger um nähere Ausführungen gebeten wurde:Eingriffe in den Speicher, der Umgang mit Hooks, alles was mit TCP zu tun hat, schlechte Zusammenarbeit der Multithreads usw. Ich könnte noch ein wenig mehr schreiben, aber ich habe wohl das wichtigste aufgezeigt).

Zu den weiteren Postern die über die verschiedenen libs von C++ geschrieben haben:Könnt ihr mir einige empfehlen? Wäre super.
10/17/2013 01:10 マルコ#28
Quote:
Originally Posted by masterplc View Post
Eingriffe in den Speicher, der Umgang mit Hooks, alles was mit TCP zu tun hat, schlechte Zusammenarbeit der Multithreads usw. Ich könnte noch ein wenig mehr schreiben, aber ich habe wohl das wichtigste aufgezeigt).

Zu den weiteren Postern die über die verschiedenen libs von C++ geschrieben haben:Könnt ihr mir einige empfehlen? Wäre super.
Ich denke, dass eine Menge deiner Probleme nicht an der Sprache liegen, sondern daran, dass dir Wissen fehlt. Damit die genannten Themen funktionieren reicht es nicht zu wissen, was für Befehle du brauchst, sondern du benötigst auch Hintergrundwissen, wie man vorgehen muss, was genau passiert und was z.B. das Betriebssystem so alles macht.
Zum Beispiel: Ohne Wissen über Semaphore wirst du Probleme mit Threading haben, egal wie viel du über die Befehle und Struktur von Threads weißt.

Libs, die hilfreich sind:
Boost kann man fast immer brauchen. Und dann kommt es stark drauf an, was du machen willst. Wenn du grafisch etwas erstellen willst, dann gibt es u.a. SFML. Für Networking gibt es so Sachen wie eNet. Brauchst du Physik? Schau dir z.B. Bullet an. Ich könnte hier ewig weiter aufzählen.
10/17/2013 01:12 Mr|NFNx#29
c# :)
10/17/2013 01:18 YatoDev#30
Quote:
Originally Posted by masterplc View Post
Ich stimme dir zu das autoit eine sehr gute Sprache zum lernen ist. Jedoch geht mir langsam aber sicher die lahmheit und die Instabilität an komplizierten stellen auf den Senkel(da ich ja schon häufiger um nähere Ausführungen gebeten wurde:Eingriffe in den Speicher, der Umgang mit Hooks, alles was mit TCP zu tun hat, schlechte Zusammenarbeit der Multithreads usw. Ich könnte noch ein wenig mehr schreiben, aber ich habe wohl das wichtigste aufgezeigt).
Zum ersten teil deines posts : AutoIT wie du es schreibst hat eine ganz andere bedeutung wie das richtig geschriebene AutoIt

Ich nehm mir deinen post jetzt mal nacheinander vor .....

-Lahmheit : Welchen geschwindigkeitsverlusst siehst du der so schlimm ist das er dir auf die nerfen geht
-Instabilität : Instabil ist bei mir noch nie ein script gelaufen , der interpret erst recht nicht. Was meinst du damit ?
->Eingriffe in den speicher dauern nicht lange, 0,2 millisekunden vielleicht :o
->Mit Hooks umgehen kann autoit selber schonmal garnicht.... Wenn schon über die DllCalls wobei du da natürlich auch so viel geschwindigkeit verlierst (Anstatt die funktion sofort ausführen DllCall auf die funktion) :p
->TCP ist nur minimal langsamer als in anderen sprachen und läuft ganz normal.
->Schlechte zusammenarbeit der multithreads ... Hast du jemals was mit autoit gemacht ? Dazu sag ich jetzt nichts weiter
->noch mehr schreiben wäre nett ;)

(Komm jetzt bloß nicht damit das du einen anderen thread über die win api aufrufst .... das ist nichts eigenes von autoit läuft aber trotzdem gut wenn man beachtet was der code dann nicht darf ...)

Mein fazit zu autoit ist das es keine nachteile gibt außer das nicht vorhandene multithreading