Schnell und einfach Programme mit grafischer Oberfläche erstellen. Welche Sprache?

  • Ersteller Ersteller silent artist
  • Erstellt am Erstellt am
S

silent artist

Gast
Guten Abend zusammen,
mein Anliegen ist es, eine Programmiersprache zu lernen, mit der man schnell und einfach Programme mit einer grafischen Oberfläche zaubern kann.

In letzter Zeit bin ich häufiger mit Delphi in Kontakt gekommen und hab da mit relativ geringem Aufwand, ganz brauchbare Ergebnisse erzielen können.

Ich wollte mich nur einmal versichern, ob dies die einfachste Methode ist, unkompliziert simple Programme zu erstellen.

Vielleicht ein paar Worte zu dem was ich realisieren möchte:
Ich möchte ein Programm erstellen, dass verschiedene Drop Down Menüs hat, über die man andere Programme startet.
Warum ich nicht einfach Verknüpfungen nehme, werden sich jetzt einige fragen.

Nun, ich will sozusagen eine kleine Schaltzentrale für meinen PC in Form eines Programmes bauen und das dann vllt noch ein bisschen ansprechend mit Grafiken ausgestalten.
Hier mal ein Skizze wie das Programm aussehen soll:



Jede Kategorie hat einen Namen (also mittels eines einfachen Labels realisiert)
Darunter befindet sich eine Grafik, wenn man auf diese Grafik klickt, öffnet sich ein Kontextmenü.
Hier kann man dann die einzelnen Verknüpfungen zu den Programmen anwählen.

1. Ist das mit Delphi zu realisieren? Geht das mit Delphi am einfachsten/schnellsten oder gibt es da eine noch unkompliziertere Programmiersprache?

2. Ich habe mich wie gesagt in letzter Zeit schon ein wenig mit Delphi auseiander gesetzt und ich muss sagen es macht wirklich Spass mit Delphi zu arbeiten, auch wenn es wohl keine "richtige" Programmiersprache ist. Lohnt es sich denn, diese Sprache weiter zu verfolgen und zu lernen oder gibt es andere/bessere Sprachen die für Anfänger eher geeignet sind? Was werde ich damit alles realisieren können, wenn ich sie richtig gut kann?
Ist es vllt sogar sinnvoll erst solch ein Sprache zu lernen um später auf eine schwere Programmiersprache (C++ etc.) umzusteigen?

Ich würde mich über ausführliche Antworten sehr freuen :)
Denn wie ihr seht habe ich null Plan in Sachen Programmiersprachen ;)

MfG
silent artist
 
Wieso ist Delphi keine richtige Programmiersprache? Wer hat dir denn sowas erzählt?
Nimm einfach das, was du kannst und gerade zu Hand hast. Deine Anforderung ist ja nun wirklich nichts sehr spezielles.
 
Hallo,

schau Dir mal das .NET Framework an, mit der Programmiersprache bist du damit flexibel und es bietet ähnliche Möglichkeiten wie Delphi.
NET bei Wiki

Gegen die Verwendung von Delphi spricht eigentlich nur das es hier bisher keinen 64 Bit Compiler gibt.

Professionelle Softwareentwicklung erfolgt häufig mit C/C++ oder Java. Für berufliche Projekte ist dementsprechend Vorwissen bei diesen Sprachen hilfreich.

Zum schnellen (Windows-)Programmiereinstieg mit grafischer Oberfläche empfinde ich Visual Basic.NET für kleinere Programme als geeignet:
- keine Speicherverwaltung durch Programmierer
- einfache Syntax
- Makrosprache von MS Office (Kenntnisse wiederverwendbar)
Visual Basic

... welche Sprache am besten gewählt wird ist aber Geschmackssache, letztlich sollte es diejenige sein mit der man am effektivsten ans Ziel kommt.
 
AutoIt, ist eine Scriptsprache, kann GUI, unterstützt auch VBScript und kann dazu auch
viele Windows-Funktionen.

Vorteil:
- ist einfach
- sehr gute Hilfe mit Beispielen
- ist umsonst
- kann .exe erstellen (x86 oder x64)

Es gibt auch Plug-Ins die diverse Funktionen erfüllen wie z.B. Firefox fernsteuern usw...
 
Also die Wahl der Programmiersprache ist natürlich immer so eine Sache.

Grundsätzlich gibt es ja die BigPlayer, die alle visuelle Designer für Anwendungen liefern.

.NET-Framework
Java
C++
Delphi (Standard oder Delphi.NET)

Die Wahl welche Programmiersprache du dir aussucht solltest du von den Vor. und Nachteilen der Sprache abhängig machen.

.NET Framework
+ Gute Entwicklungsumgebung (Express-Edition kostenlos)
+ Für verschiedene Anwendungsfälle immer das gleiche Framework (Website, WinApp, HandyApp)
+ Nette Zusatztechnologien wie beispielsweise WCF, LINQ, WPF oder mein Favorit Microsoft Oslo
+ Gute Dokumentation und Support von Microsoft

- Läuffähig nur unter Windows (abgesehen von Mono vielleicht, aber das gelbe vom Ei ist das auch nicht)
- Langsamer als C/C++

Die anderen Programmiersprachen kenne ich nur rudimentär bis mittelmäßig gut und hoffe, dass vielleicht andere User hier im Forum einmal Pro- und Contra aufführen.


Zudem hätte ich da noch zwei Kommentare zu den Aussage von Polkappe.

1) Auch wenn ich ein absoluter .NET Framework Fan bin und es für mich das beste "Werkzeug" ist, so ist das .NET Framework nicht 100% flexibel, da es nicht Plattformunabhängig ist.

2) Professionelle Softwareentwicklung erfolgt keinesfalls häufig nur mit Java und C/C++. Professionalität hängt nicht ausschließlich mit der Sprache zusammen. Wenn die Architektur der Anwendung für den Müll ist, dann bist du Java genauso unprofessionell wie mit C++ oder C#. Professionalität hat da meiner Ansicht nach ganz andere Faktoren, die wenig mit der Sprache gemeinsam haben. Professionell ist es lediglich nur die richtige Sprache für den passenden Einsatzzweck zu verwenden.
 
Zuletzt bearbeitet:
Cyba_Mephisto schrieb:
Das ist im Regelfall schlichtweg Blödsinn.

Nur weil du einen Geschwindkeitsunterschied nicht merkst, was bei der Hardware heute kein Wunder ist, dann bedeutet das nicht, dass es keinen gibt. Es hängt natürlich auch von Fall zu Fall ab.

Ich gebe dir aber in einer Sache recht. Ich hätte das dazuschreiben müssen. ;)
 
Und deine Rechtfertigung ist, dass er so klein ist, dass er einfach niemals messbar ist?

Gut, dann gibt es einen Geschwindigkeitsunterschied zumindest bei deiner Definition.

Denkst du die 0 ist bei C# anders als bei C?
Denkst du es wird in C mit einer mysteriösen Formel addiert, die einen Geschwindigkeitsvorteil einbringt?

Mit "Regelfall" meinte ich eher was vergleichbares mit einem Axiom.
 
btw
Wieso will eigentlich jeder so´n billiges "Starter"-Programm schreiben bzw. eines haben?
 
weil es nervt hunderte programme entweder in der taskleiste zu haben oder übers startmenü aufzurufen. ich leg z.b. nich die komplette office suite (hab mso 07 und ooo installiert), sowie jedes entwicklungstool (visual studio 10 + 08, spy++, notepad++, netbeans, ...), multimediaprogramm (mpc hc, media center, foobar, wmp, ...) und und und da rein. dann brauch ich 5 zeilen allein für programme, welche ich immerzu brauche, aber nicht dauerhaft offen hab.

und zur geschwindigkeit von c++/c#: http://www.coding-board.de/board/showthread.php?t=2096
c++:
Code:
Square Root: 10218 ms for 18 iterations; 568 ms per iteration
Vector: 127 ms for 100000000 iterations; 1 ns per iteration
List: 29 ms for 25000000 iterations; 1 ns per iteration
Blur: 57 ms for 4940180 iterations; 12 ns per iteration
Runge-Kutta: 47 ms for 500000 iterations; 94 ns per iteration
Memory: 26 ms for 20000 iterations; 1300 ns per iteration
c#:
Code:
Square Root: 13849 ms for 18 iterations; 769 ms per iteration
Vector: 637 ms for 100000000 iterations; 6 ns per iteration
List: 611 ms for 25000000 iterations; 24 ns per iteration
Blur: 291 ms for 4940180 iterations; 59 ns per iteration
Runge-Kutta: 194 ms for 500000 iterations; 388 ns per iteration
Memory: 73 ms for 20000 iterations; 3650 ns per iteration
beide als release kompiliert und nichts abgeändert.
 
Vielen Dank für eure Anworten ;)

@ Cyba_Mephisto
Joa genau der Grund den claW. schon dargelegt hat, es ist bei vielen Programmen die man oft braucht, einfach extrem nützlich ;)
 
Aus demselben Thread mal zitiert:
Dass .Net, wie in den geposteten Benchmarks zu sehen ist, mitunter deutlich langsamer als natives C/C++ ist, dürfte zum Grossteil auch an der Runtime liegen. Die einfache und sichere Programmierung erkauft man sich halt durch einen im Hintergrund laufenden GC und jede Menge Runtime-Checks.

Wenn man das bedenkt, sind die Geschwindigkeitsunterschiede schon wieder fast akzeptabel. Bei normalen Anwendungen bemerkt man den Unterschied sowieso kaum.

Diese ganzen Komponenten müssen schließlich auch initialisiert werden, und da das wohl in anderen Threads gemacht wird, haben wir wohl die Antwort für diese Ergebnisse. Im Endeffekt ist der Kram halt einfach genauso schnell. Mal abgesehen davon, dass der Thread im Forum ja mal uralt ist und .Net da gerade in den Kinderschuhen steckte.
Pure Augenwischerei.
 
Zuletzt bearbeitet:
Hallo silent_artist,

etwas spät meine Antwort aber vielleicht ein wenig hilfreich. Vergiss die anderen Sprachen und bleibe erstmal bei Delphi. Und zwar aus den Gründen, die du bereits am Anfang geschrieben hast:

a) es macht dir Spass
b) du hast schon was damit gemacht
c) es macht dir Spass ;)

Lerne die Sprache bis zur absoluten Vergasung, dann wirst du feststellen dass du für deine Heimprojekte keine andere Sprache brauchst. Performance usw. ist erstmal auch nebensächlich, da du ja erst anfängst zu programmieren.

Wenn du irgendwann die Nase voll hast von Delphi und wirklich nicht mehr weiter weißt, DANN schau dich nach anderen Sprachen um. Mach nicht den Fehler, 2 oder mehr Sprachen auf einmal zu lernen. Bleib immer bei einer, bis du das Gefühl hast nichts Neues mehr erlernen zu können. Aber bis dahin werden wohl noch Jahre vergehen. Im übrigen macht sich der Umstieg zu neuen Sprachen leichter, wenn du mind. 1 Sprache beherrschst und damit meine ich nicht, dass du alle Konstrukte, Funktionen, Syntaxelemente etc. auswendig kennst, sondern das was du kennst auch wirklich effektiv einsetzt.

Viel Erfolg...
 
Zuletzt bearbeitet:
Cyba_Mephisto schrieb:
Diese ganzen Komponenten müssen schließlich auch initialisiert werden, und da das wohl in anderen Threads gemacht wird, haben wir wohl die Antwort für diese Ergebnisse. Im Endeffekt ist der Kram halt einfach genauso schnell.
sachen, welche initialisiert aber nicht genutzt werden, verbrauchen keine rechenzeit sondern lediglich ram. und genauso schnell wird es nie sein wie du siehst, denn dann wäre es komplett obsolet und man könnte wieder auf c/c++ zurückgreifen ohne diesen ganzen managed kram. fakt ist nun mal, dass c# langsamer ist als c/c++. ändern kann man dies nunmal nicht, egal ob da nun ein garbage collector im hintergrund läuft, irgendwelche type checks oder sonstwas.
Cyba_Mephisto schrieb:
Mal abgesehen davon, dass der Thread im Forum ja mal uralt ist und .Net da gerade in den Kinderschuhen steckte.
was hat das mit aktuellen builds und runtimes zu tun? code der vor 4 jahren zum benchen verwendet wurde, lässt sich heutzutage genauso zum benchen verwenden. der kernel von windows wird ja auch nicht immer von grund auf neu programmiert und trotzdem wird der arbeitsfluss im windows von version zu version besser.
 
Wenn du schon erfolgreich mit Delphi zu Gange bist, wieso nicht dabei bleiben?

Als ich den Titel und den ersten Satz deines Postings gelesen hatte, hab ich schon an Delphi gedacht, bevor du es dann selbst erwähnt hast ;)

Klar ist es vielleicht nicht ganz so mächtig wie C++, aber bis man damit als Lernender mit deinen Ansprüchen an ernsthafte Grenzen stösst, dürfte es trotzdem ne Weile dauern.
 
Prinzipiell würde ich da Claw recht geben,

im .Net gibt es nunmal eine ganze Menge Overhead den man sich durch die Typensicherheit und das GarbageCollecting einhandelt. Desweiteren wird der IntermediateLanguage Code erst zur Laufzeit und zwar erst dann, wenn die Methode, oder was auch immer, gebraucht wird in nativen Code übersetzt. Die Stärke von C++ ist nun mal das die Optimierung während des Kompilierens erfolgt und dann der Programmcode direkt ausgeführt wird ohne wenn und aber. Das Manko von .Net ist aber der JITTER der auch eine gewisse Zeit benötigt und je nach gewählter Compileroption auch noch mal weiter optimiert um dann den Code in Maschinencode zu übersetzen.

Insofern ist es auch nicht unbedingt eine klare Aussage ob der Code in .Net langsamer läuft als bei C++, da der eine erst zur Laufzeit compiliert und der andere schon dann, wenn der Programmierer den Quellcode kompiliert. Ein richtiger Test wäre wohl das Benchmark bei .Net erst dann zu starten, wenn der eigentliche Code auch tatsächlich vom Jitter "bearbeitet" wurde. Desweiteren muss ein "schnelles" Konstrukt in der Sprache X nicht zwangsläufig ein schnelles Konstrukt in Sprache Y sein. Das dann aber als Referenz für eine Aussage über die Geschwindigkeit zu nehmen ist entweder dumm oder naiv! Im übrigen sind Objekte im Speicher bei .Net einer ständigen Prüfung unterzogen, was wiederum ebenfalls Rechenzeit kostet egal in welchem Thread das gemacht wird. Jeder Thread nimmt sich ein Teil der Rechenzeit die einem Programm/Prozess zugeordnet wurde. Während der Wechsel zwischen den Threads wird ebenfalls Rechenzeit verbraten, da hier die Register / States der CPU gesichert und neu initialisert werden. C++ kommt ohne diesen Threading Kram aus, wenn es sich um einfache Programme handelt. .Net hat schon beim Start 2 Threads die konkurieren. Also alles in allem ist es müsig zu diskutieren, weil letzten Endes die Unterschiede für eine "normalo" Windows Forms Applikation unerheblich sind. Wenn dann so ein Krümmelkacker aber auf die Millisekunden schaut, die ein sogenannter Referenzbenchmark liefert, dann stellt sich die Frage ob er nicht dabei die eigentlichen Flaschenhälse übersieht! Was nutzen Benchmarks? Grafikkartenhersteller optimieren Ihre Treiber um bei den Benchmarks gut zu punkten. Irgendwo las ich mal das Intel seine Prozessoren für ihren C++ Compiler optimiert. Nunja dann wird jede Sprache langsamer sein als C++.

Aber sei es wie es sei. .Net ist kein Konkurrent von C++! Laut Bjarne Stroustrup soll zwischen C++ und der Machine kein Platz für eine weitere Sprache sein. Somit ist es hinfällig, Sprache X mit C++ zu vergleichen.

PS: Ist es euch nicht langsam langweilig immer über das selbe Thema zu sprechen???
 
Rossibaer schrieb:
Irgendwo las ich mal das Intel seine Prozessoren für ihren C++ Compiler optimiert. Nunja dann wird jede Sprache langsamer sein als C++.
anders rum: der c compiler is extra auf die cpus angepasst. wobei das selbst aber noch kein problem is, denn wenn der compiler in verbindung mit sse optimierten code (z.b.) benutzt wird und diese anwendung dann auf einem amd läuft, der amd evtl. (ka ob es der regelfall ist oder selektiv geändert werden kann) keinen sse code ausführt, sondern auf x87-code ausweicht (welcher natürlich langsamer ist). irgend ein programm von futuremark ist da sehr gut drin (pcmark? passmark? irgendwie so...) wenn man die gleiche cpu verwendet und lediglich den identifier wechselt (via und amd schneiden dort immer/teils enorm schlechter ab).
 
Cyba_Mephisto schrieb:
Und deine Rechtfertigung ist, dass er so klein ist, dass er einfach niemals messbar ist?

Zwischen messbar und merklich besteht ein himmelweiter Unterschied. Guck dir den Benchmark von claW an. Da wirst du sehr wohl einen messbaren Unterschied feststellen. Ich bezweifel jedoch, dass du ns- oder ms-Bereich große Unterschiede "wahrnehmen" würdest.

Mehr sage ich dazu jetzt auch nicht ;)
 
.net/java
alles andere macht imo keinen sinn als einstieg, openbooks gibts dazu genug, ansonsten kann man die head first reihe von oreilly empfehlen.

definitiv die finger lassen von sachen mit komischer syntax (vb, die ganzen skriptsprachen die da rumkrebsen ala autoit), mit cpp wuerde ich erst arbeiten wenn ich verstanden hab wie die programmierwelt tickt.

edit um auch meinen senf dazu zu geben:
code, der im richtigen leben geschrieben wird (also möglichst in kurzer zeit, gut zu lesen und vor allem EINFACH) ist nicht bis ins kleinste eck optimiert. das ist der grund warum die durchschnittliche javaapp/lib (serverjvm) fuer gewöhnlich schneller läuft als das .net pendant, welches normalerweise schneller läuft als cpp. das liegt einfach daran, dass die .net/java vms kleiner zauberkisten sind die zur laufzeit (gc, hotspot) unglaublich optimieren können (vor allem normalen (langsamen) code).

perfekter code läuft natürlich in cpp schneller als in ner vm, da hier einfach nix mehr zu optimieren ist, allerdings: wer hat schon mal schon mal perfekten code geschrieben?
 
Zuletzt bearbeitet:
Zurück
Oben