Welche Programmiersprache ist für meine Zwecke die richtige?
-
Verdammt, ja klar.
Ich meinte ja auch VBa{sic}
-
Dazu kommt, fuer den Fall man will durch c++ gehen, dass man allein mit der sprache, das project nicht realisieren kann, sondern noch vor der wahl steht was man nutzten und lernen will: winapi,Mfc, .NET, *-Framework, Sound mit ?? dx, wdm, framrework etc...
Und es ist ohne Vorwissen schwer abzuschaetzten was die beste wahl fuer den Zweck ist.
-
Na na, er koennt sich hoechstens im BCB das Grundgeruest zusammenklicken, wenn er den noch irgendwo herkriegt, aber stimmt, C++ ist wohl zu aufwaendig.... ich wuerd auch Python vorschlagen
-
Shade Of Mine schrieb:
Ich weiss leider nicht ob es eine freie Delphi IDE gibt...
Delphi gehört Borland, und Borland ist meines wissens die einzige Firma, die Compiler nebst IDE anbietet. Gab mal ne kostenlose nicht-kommerzielle Version auf borland.com. Weiß aber nicht, ob's die immer noch gibt.
Wie gesagt würde sich Delphi auch gut eignen.
-
Danke für Eure zahlreichen Antworten. In einem Punkt habe ich mich etwas falsch ausgedrückt: Nur mal schnell für ein Projekt eine Programmiersprache lernen, ist auch für meine Begriffe etwas übertrieben. Selbstverständlich geht es mir auch grundsätzlich darum, mir Kenntnisse zur Entwicklung eigener Software anzueignen - allein schon aus einem Forscher-Trieb heraus und aus der Lust etwas von Grund auf selbst zu entwickeln.
Ich habe bei meinem ganzen Rumfragen so das Gefühl, dass C++ auch ein guter Ausgangspunkt ist, um darauf aufzubauen (z. B. Java Script). Mir sind auch einige Begriffe untergekommen, die ihr auch oben erwähnt habt. Dazu möchte ich Euch nochmal kurz strapazieren:
Was ist - aus der Praxis heraus gesprochen - der Unterschied zwischen C++ und C# (außer dass C# eine Weiterentwicklung ist). Und was hat es mit diesen .NET-Framework auf sich?
Gruß
Stefan
-
nun, also C++ ist eigentlich kein sehr toller Ausgangspunkt, da es eine sehr, sehr komplexe Sprache ist, und es lange dauern wird, bis du Erfolge (im Sinne von "so tolle Programme mit grafischer Oberflaeche") erzielen wirst.
C# bietet neben einigen neuen Programmiersprachkonstrukten vor allem eben das .NET Framework. Das ist - ganz vereinfacht ausgedrueckt - ein Haufen von bereits geschriebenen Code, der haeufig vorkommende Probleme loest. z. B. ists mit dem .NET Framework wesentlich einfacher, grafische Oberflaechen zu erstellen... Das .NET Framework kann man aber auch mit C++ verwenden!
C# ist auch mehr "high level", d.h. du brauchst dir um "hardware-naehere" PRobleme, z. B. die Speicherverwaltung keine Gedanken mehr machen, bei C++ schon noch...
ich persoenlich rate jedenfalls von C++ ab, lieber die Grundlagen der Programmierung anderweitig (Python, Java, etc.) lernen. Dann bei Interesse C++ lernen
-
Was ist denn an C++ _komplex_??? Komplex heißt doch das etwas undurchschaubar oder schwer durchschaubar ist. Ist es das? Meiner Meinung nach nein! Es ist lädiglich umfangreich und somit _mächtig_. Verwendet doch nicht einfach falsche Begrifflichkeiten.
Und was heißt, das es bei C++ dauert, bis man Erfolge hat? In Java oder C# hat man keine schnelleren Erfolge. Es kommt einem nur so vor, weil in jedem Einsteiger-Tutorial zu diesen Sprachen nach den ersten 10 Seiten das erste GUI-Beispiel kommt. Was hindert einen in C++ ebenfalls so vorzugehen? Warum muß man erst Templates können, um eine GUI zaubern zu dürfen? Braucht man dafür doch garnicht. Und nur weil man vielleicht weiß, was Templates sind, heißt das nicht das man programmieren kann.
Man kann eine Sprache auch schlecht reden. Das ist aber typisch menschlich...
-
Hallo,
ich persoenlich rate jedenfalls von C++ ab, lieber die Grundlagen der Programmierung anderweitig (Python, etc.) lernen
Ich bin ebenfalls dafür.
Komplex heißt doch das etwas undurchschaubar oder schwer durchschaubar ist.
der Kom|plex; komplex(umfassend)
Verwendet doch nicht einfach falsche Begrifflichkeiten.
Man kann eine Sprache auch schlecht reden.
Tut er doch gar nicht. Mit Python ist es ganz einfach eine Oberfläche zu erstellen. Python installieren, Code abtippen, schon kann man was sehen:
import Tkinter from Tkinter import * root = Tkinter.Tk() Leinwand = Canvas(root) Leinwand.pack() Bild = PhotoImage(file="..//ocean2.gif") Leinwand.create_image(0,0,anchor = NW, image = Bild) root.mainloop()
Mit bereits 8 Zeilen Code und ohne nötiges Vorwissen ist es möglich eine graphische Oberfläche zu erstellen. Ich finde Python ganz toll und für (Programmier-) Anfänger sehr gut geeignet.
Um das Ganze mit MFC oder Java Swing zum Laufen zu bringen ist wesentlich mehr Wissen/Installationsaufwand notwenig.
MfG
-
Also mit Java Swing ist das aber auch nicht schwieriger.
import javax.swing.*; public class Bild { public static void main(String[] args) { JFrame frame=new JFrame(); ImageIcon picture=new ImageIcon("..//ocean2.gif"); frame.getContentPane().add(new JLabel(picture)); frame.pack(); frame.setVisible(true); } }
-
DrZoidberg schrieb:
Also mit Java Swing ist das aber auch nicht schwieriger.
import javax.swing.*; public class Bild { public static void main(String[] args) { JFrame frame=new JFrame(); ImageIcon picture=new ImageIcon("..//ocean2.gif"); frame.getContentPane().add(new JLabel(picture)); frame.pack(); frame.setVisible(true); } }
Dafür, dass das so einfach sein soll, hast du aber schon einen ziemlich großen Bug eingebaut: Dein Programm läßt sich nicht auf dem üblichen Weg beenden.
-
Achja, in C++ ist es viel schwieriger:
C++ mit gtkmm-Library:
#include <gtkmm.h> int main(int argc, char *argv[]) { Gtk::Main kit(argc, argv); Gtk::Window window; Gtk::Main::run(window); return 0; }
Man, ist das schwer und komplex um ein Fenster darzustellen!
C++ mit Qt-Library:
#include <qapplication.h> #include <qpushbutton.h> int main( int argc, char **argv ) { QApplication a( argc, argv ); QPushButton hello( "Hello world!", 0 ); hello.resize( 100, 30 ); a.setMainWidget( &hello ); hello.show(); return a.exec(); }
Man, ist das schwer in C++ ein Fenster mit einem Button auf dem "Hello World!" drauf steht darzustellen!
C++/CLI mit .NET-Library:
#using <mscorlib.dll> #using <System.dll> #using <System.Windows.Forms.dll> using namespace System::Windows::Forms; void __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, long lpCmdLine, int nCmdShow) { Application::Run(new Form); }
Man, eine Zeile ist schon viel! Wo doch den Rest die IDE für einen autom. generiert.
Alles klar! C++ muß man vieeeel mehr lernen als in den anderen Sprachen. Wenn man Phyton anfängt, kann man autom. alles. Nur in C++ muß man lernen wie das geht.
-
Artchi, c++ ist vom designstandpunkt unglaublich komplex, da es für jedes problem zich lösungsmöglichkeiten gibt, die _nicht_ gleichwertig sind. Deshalb ist c++ keine sprache für anfänger, da der anfänger nicht wissen kann, welcher lösungsansatz nun der erfolgversprechendste ist.
-
Artchi schrieb:
Alles klar! C++ muß man vieeeel mehr lernen als in den anderen Sprachen. Wenn man Phyton anfängt, kann man autom. alles. Nur in C++ muß man lernen wie das geht.
Das hat niemand gesagt.
Im Vergleich zu Sprachen wie C# und Java ist C++ nun mal um einiges komplexer und schwieriger. Weil für Dich als Profi alles kinderleicht ist, heißt es nicht, dass ein Anfänger auch spielend mit C++ zu recht kommt.@StefanVIII
Ich denke auch, dass .NET oder Java für Dich was wären. Kannst Dir ja mal VB.NET anschauen. Da Du ja schon Kenntnisse in Basic und VBA hast, wirst Du bestimmt schnell damit zu recht kommen.
-
Artchi schrieb:
Was ist denn an C++ _komplex_??? Komplex heißt doch das etwas undurchschaubar oder schwer durchschaubar ist. Ist es das? Meiner Meinung nach nein! Es ist lädiglich umfangreich und somit _mächtig_. Verwendet doch nicht einfach falsche Begrifflichkeiten.
Schwer durchschaubar: ja, ich halte C++ fuer einen Anfaenger fuer schwer durchschaubar. Getrennte Header und Implementierungsfiles, Eigenverantwortung fuer Heapspeicherverwaltung, tausende Tutorials die sich nicht an den Standard halten, Compiler & Linker... oder auch schon ganz simple Sachen wie Funktionsprototypen, Pointer usw.... Komisch, ich finde meine Begrifflichkeit nicht so falsch, aber vielleicht bin ich ja auch schwer von Begriff
Achja, in C++ ist es viel schwieriger:
[ code ....]
Man, ist das schwer und komplex um ein Fenster darzustellen
Den Anfaenger, der mit der gtkmm-Installation unter Windows (und das tut der normale Anfaenger) zurecht kommt, den will ich sehen... WinAPI & MFC sind dicke & veralterte Brocken, die Anfaengern nicht ans Herz gelegt werden koennen, Qt ist aussen vor wenn man nicht grad ein Buch kauft oder den MSVC6 verwendet (korrigiert mich, wenn ich fehlinformiert bin)... bleibt wxWidgets (ebenfalls nichttrivial bei der Installation) und managed C++ (schau dir deinen eigenen Code an: welcher Anfaenger soll den denn bitte verstehen?)... Nein, ich glaub, GUI Erfolgserlebnisse in C++ dauern eine kleine Weile. Aber ich will C++ gar nicht totreden. Ich waer nicht hier im Forum, wenn ich C++ nicht als eine meiner Lieblingssprachen betrachten wuerd. Aber fuer Anfaenger halt ich sie nunmal fuer ungeeignet...
BTW gings im Java- und Pythoncode darum, ein Bild darzustellen!
:p SCNR
-
Artchi schrieb:
Was ist denn an C++ _komplex_???
Gerade der Anfang ist sehr schwer, weil viele viele Sachen zusammenhängen. Du legst ne Klasse an, macht man ja schließlich so. Streng genommen mußt Du Dich jetzt schon mit Operatorüberladung auseinandersetzen, weil Du nämlich vom Compiler gratis nen op= geschenkt kriegst, den Du aber vielleicht nicht haben willst... aber das mußte erstmal wissen. Haste auch noch nen Konstruktor mit nur einem Parameter mußte Dir auch noch über implizite Konvertierung gedanken machen und ggf. mit explicit gegenwirken. Wenn jetzt noch const-Correctness dazukommt, dann ist das ein Berg den ein Anfänger nicht so ohne weiteres erklimmt. Fakt ist: Diese ganzen Probleme hat man in anderen Sprachen viel weniger, weil's das dort einfach nicht gibt. Und zum Einstieg um da mal ein paar Schleifen zu bauen und ein Fenster in dem man rumklicken kann sind die damit wahrscheinlich besser geeignet.
MfG Jester
-
Yop und im Hinblick darauf, das er gleich ein Projekt damit umsetzen möchte es ist es gänzlich ungeeignet. Auch wenn die Beispiele toll sind, aber als Anfänger in C++ hat man in der Regel doch schon Probleme auseinanderzuhalten, was gehört nun zum Toolkit und was ist Sprachstandard.
Ich hab irgendwan auch mit dem VS6 angefangen und laaaaange geglaubt, das ich ungestraft BOOL verwenden kann :).@StefanVIII
Ich finde für Dein Problem und Deinen Wissensstand die Liste der von Shade vorgeschlagenen Sprachen ganz gut. Ganz einfach, weil alles, was du für Dein Projekt brauchst dort IMO schon weitestgehend Bestandteil des jeweiligen Toolkits ist. Bei C++ und ich glaube auch Python müßtest du Dich vorher noch informieren, welches Toolkit du einbindest um Deine Aufgaben zu lösen.
-
TheBigW schrieb:
Bei C++ und ich glaube auch Python müßtest du Dich vorher noch informieren, welches Toolkit du einbindest um Deine Aufgaben zu lösen.
Python wird standardmäßig mit Tkinter ausgeliefert, das kann man also immer verwenden.