Frage von ThomasJNewton, 79

Wie erstelle ich PC-Programme?

Klar, da muss ich nur googlen. Aber nach allem Suchen bin ich so klug ach wie zuvor. Etliche Tage waren es schon, eher Wochen.

Dass keine Missverständnisse aufkommen, ich bin als Programmierer durchaus erfahren, habe 20 Jahre damit meine Brötchen verdient. Allerdings nicht auf dem PC, sondern auf anderen Plattformen, und mit urtümlichen Programmiersprachen wie /36-Assembler, RPG, COBOL und ABAP.

Und ich bin noch unentschieden, ob ich wirklich in der gefundenen Sprache und/oder Umgebung programmieren will, oder ob ich sie nur als Basis nehme, um eine eigene Sprache zu entwickeln, samt Precompiler, bis ich einen Assembler-Spezi ins Boot kriege. Und ja, ich weiß, worauf ich mich einlasse, auf Monate intensiver Arbeit. Ich bin da auch nicht unerfahren, was Codegenerierung angeht.

Jedenfalls habe ich mich etliche Wochen mit Java beschäftigt, durchaus mit Erfolg, aber auch mit einem toten Punkt. Irgendwann enden die Tutorials, und was danach kommt, zeigen die (mir) bekannten Java-Programme, ProjectX und JDownloader. Es sieht immer nach Java aus, und wirkt immer zurechtgestoppelt. Wenn es um Listen geht, gibt es keine einheitlichen Klassen, man bastelt halt. Da wird halt irgendwas extented oder implementiert.

Ich will Klassen nur benutzen, und sie sollen das können, was man von ihnen erwarten darf.

Und ansonsten nachfragen, über dargebotene Events, nicht über Implementierungen sondern über Methodennamen.

Ist das zuviel verlangt? Einfach nur programmieren zu können, ohne sich mit irgendwelchen kranken Konzepten rumzuplagen.

Ich will eine Liste anzeigen, vielleicht eine in einer Tab-Gruppe, und dazu Menüs anzeigen, und Tasten und Maus abfragen, und Drag&Drop, und das ohne gleich auf Assembler-Niveau abzutauchen. Und ohne :NET, JIT und ähnlichen Klumpatsch in Kauf zu nehmen.

Und das mit einer Dokumentation, die nicht bei Radiobuttons oder Löschen von Verzeichnissen aufhört.

Die muss es geben, sonst gäbe es nicht so viele Windows-Programme, die all das können, ohne "selbstgestoppelt" zu wirken.

Es muss auch nicht unbedingt Freeware sein, kaufen würde ich sie dann, wenn der Verkauf stimmt. Es soil so eine Entwickluingsumgebung nur erst mal geben.

Schönen Dank für das Lesen meiner ellenlangen Frage erstmal.

սoʇʍəN әɯoɹәԸ sɐաօч⊥

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von TomRichter, 79

Ich denke, Visual C++ wäre geeignet:

https://msdn.microsoft.com/de-de/library/60k1461a.aspx

Gibt es auch kostenlos. Die Doku kannst Du Dir vermutlich auch kostenlos im Netz zusammensuchen - ich empfehle aber den Kauf mehrerer Bücher.

> und wirkt immer zurechtgestoppelt

Das liegt daran, dass eine Benutzeroberfläche, die anders aussieht, viel Aufwand erfordert. Nicht beim Programmieren, sondern beim Designen. Ähnlich viel Aufwand wie die eigentliche Funktion des Programms.

Kommentar von ThomasJNewton ,

Ich hoffe mal, dass alle Antworter diesen Kommentar lesen, denn eigentlich wollte ich allen einzeln persönlich danken, aber dann merkte ich, dass es doch letztlich auf dasselbe hinausläuft:

So eine direkte Ansprache und Kritik bin ich nicht mehr gewohnt, weil ich seit einigen Jahren nicht mehr als Programmierer arbeite. Und erst kürzlich rein privat damit wieder angefangen habe, und auf dem PC ein Neuling bin.

Aber der Tonfall ist beim zweiten Lesen ein Willkommen zurück, denn ich zumindest war immer ein Nerd, schon als es den Begriff noch nicht gab. Man gibt einfach seine Meinung kund, und fragt nicht, wie sie ankommt.
Bei mir kommt sie jedenfalls gut an, und ich werde alles berücksichtigen, wenn ich meinen eigenen Weg suche und evtll. finde.

Ich weiß natürlich um die Probelmatik, im Alten verfangen zu sein, und meine, meine Skepsis mit der Neugier und den Aussichten in ein einigermaßen ausgewogenes Verhältnis bringen zu können.

Andererseits sehe ich aber auch, dass man nur ein oder zwei Datenfelder anzeigt, und dann im Debugger sieht, dass dazu mehr als 700 Ebenen erforderlich sind. Dazu gibt's Debugger, und SAP.

Und da ich erst mal nur "ganz einfach ein Programm schreiben will", ganz privat für mich, und im Hinterkopf habe, wie man das neue komplizierte erneuern und vereinfachen kann, war mit TomRichters Antwort einfach die hilfreichste.

Nach viel Rumstolpern mit Netbeans und Java, nicht ohne Erfolge, und c für Netbeans mit sehr sehr zähem Erfolg, habe ich mit Toms Empfehlung in 2 Tagen schon recht viel geschafft, ein Fenster mit Icon und Menü und vielen Hinweisen. Ich sehe Land, wie man so sagt.
Sogar mein Buch "C für Windows" aus dem Jahr 1993 ist da nicht völlig veraltet.

Und seinen wir mal ehrlich, gibt es einen wesentlchen Unterschied zwischen Windows 3.1 und Windows 10 außer den langen Dateinamen und den ausländischen Dateinamen? Ich sehe keinen.
Ich habe aber schon viele Moden kommen und gehen gesehen.

Und falls es in meinem Gesülze unterging, Dank an alle!

Kommentar von TomRichter ,

Danke, dass Du meine Antwort als hilfreich empfindest :-)

> Unterschied zwischen Windows 3.1 und Windows 10

Mit 3.1 konnte ich arbeiten, ohne nach jedem Rechnerumbau bei Microsoft anrufen zu müssen und denen zu versichern, dass ich immer noch nur eine einzige Kopie im Einsatz habe. 3.1 wollte auch nicht nach Hause telefonieren. Dafür riss ein Programmabsturz unter 3.1 häufig das Betriebssystem mit in den Abgrund.

Expertenantwort
von TeeTier, Community-Experte für programmieren, 44

Man merkt, dass du in alten Strukturen fest steckst, und dich nicht überwinden kannst, etwas neues zu lernen, was nicht in Einklang mit deinen bisherigen Kenntnissen zu bringen ist.

Das geht aber vielen älteren Entwicklern so.

Ich kann jetzt auch nicht nachvollziehen, was an Listen oder Events so kompliziert sein soll. Es sind keine "kranken Konzepte", sondern einfach nur der nächste logische Schritt, den man gehen muss, um von Spaghetti-Code wegzukommen.

Guck mal hier:

http://openbook.rheinwerk-verlag.de/javainsel/

Das ist kein kurzes Tutorial, sondern das Standardwerk für Java-Einsteiger in deutscher Sprache. Wenn dir die kostenlose Online-Version nicht zusagt, kannst du dir das ganze auch in Buchform kaufen. (Habe ich auch so gemacht, da mir Bücher wesentlich lieber sind als Bildschirmtexte ... ist aber wohl eher Geschmackssache.)

Dieses Buch hat etwas über 1300 Seiten, und deckt so ziemlich alles ab, was man wissen muss. Danach kaufst du dir den zweiten Teil, der aus 1400 Seiten besteht und die Standardbibliothek abdeckt.

Danach brauchst du nur noch die Java API-Docs um dich über dir unbekannte Klassen und Schnittstellen informieren zu können.

Die Zeit, die du bisher in Java investiert hast, kannst du getrost als verschwendet ansehen. Entweder man lernt etwas von Anfang an richtig, oder gar nicht.

Und wenn du nicht auf den Kopf gefallen bist, bist du mit beiden dicken Wälzern, die ich dir oben empfohlen habe, in einem Monat durch, und kannst dein neu erworbenes Wissen auch anwenden.

Dazu musst du dich natürlich auch mal zusammen reißen, und auch einige Sachen lernen, die dir gegen den Strich gehen, bzw. die du als "kranke Konzepte" bezeichnest. Einfach Augen zu und durch ... irgendwann wirst du den Sinn schon erkennen!

Aber von vornherein zu sagen: "Das ist offensichtlich Mist, so etwas lerne ich nicht", ist einfach nur falsch. Wenn du beide oben genannten Bücher durchgearbeitet hast, DANN bist du VIELLEICHT in der Lage zu entscheiden, ob ein Konzept Murks ist, oder nicht. Aber vorher auf gar keinen Fall, weil dir einfach zu viel Wissen fehlt!

Würden die Schüler im Mathematik-Unterricht nur das lernen, was sie selbst für sinnvoll halten, würden die meisten Zehntklässler vermutlich nicht über Addition und Subtraktion hinaus kommen. Gute Konzepte verstehen und anwenden zu können bedeutet, sie auch gelernt zu haben, aber ohne etwas gelernt zu haben, kann man unmöglich einschätzen, inwiefern etwas sinnvoll ist, oder nicht.

Dass du das, was du in Java nach mehreren Wochen Lernen implementieren willst, immer noch nicht hinbekommst, liegt nicht an Javas "kranken Konzepten", sondern an deiner Einstellung! Du sträubst dich einfach zu sehr, dich auf etwas völlig neues einzulassen.

Im Übrigen wirst du auch nicht mehr Erfolg bei Visual Basic, C++ mit Qt, oder Lazarus mit Pascal haben ... dieses moderne Zeug ist übersäht mit "kranken Konzepten"! :)

PS: Ein Fenster mit Menüs und Listen in Java so zu erstellen, dass es sich von nativen Programmen nicht unterscheidet, ist mit ein paar Zeilen Code sehr ordentlich zu bewerkstelligen. Das gilt für alle modernen Programmiersprachen und deren GUI-Bindings.

PPS: Wenn du ein Problem mit JIT hast, und dir moderne interpretierte Sprachen wie Python oder Ruby nicht zusagen, dann nimm doch einfach C oder C++. Zusammen mit FLTK kannst du da in wenigen Kilobyte deine GUIs zusammen bauen. Aber selbst FLTK hat "kranke Konzepte", also vorsicht! :)

PPPS: Du kannst auch deinen grafischen Schnickschnack z. B. unter Windows mit den Win32-Libs und reinem Assembler zusammen bauen. Ein Fenster, was das Bild der Webcam anzeigt, mit einfachem Menü, und der Fähigkeit einen Schnappschuss als Bild abzuspeichern benötigt ca. 800 Byte für eine EXE-Datei. Allerdings ist das dann Pfusch, und hat nichts mehr mit ordentlichem Programmieren zu tun.

Zu ordentlichem Programmieren gehören nun mal auch "kranke Konzepte" dazu! :)

Antwort
von zalto, 35

Ich kann die Frage gut nachvollziehen, aber das Konzept "einfach mal eine Windows-Desktop-Anwendung runterprogrammieren" als Mainstream-Lösung ist faktisch mit Visual Basic 6 gestorben.

Diese Einfach-Philosophie lebt noch in Nischenprodukten wie z.B. "Liberty Basic" und viele Entwickler wünschen sich eine Neuauflage von Visual Basic 6, aber durch Microsoft's Schwenk auf .NET Technologie und Managed Code ist äußerst unwahrscheinlich, dass sich da nochmal etwas tut. 

Die "alten Hasen" in der Programmierung sterben ja auch allmählich aus und die "jungen Hüpfer" kennen nichts anderes als die neuen Programmierparadigmen ("kranke Konzepte"). Die haben scheinbar auch noch bessere Nerven und kämpfen sich offenbar gerne durch 1000 Seiten++ Bücher, um sich auch nur in die Grundlagen einer Sprache einzuarbeiten...

Diese Konzepte haben unter Umständen aber durchaus eine Berechtigung, denn es gibt heutzutage viel höhere Anforderungen an die Anwendungen: Sie sollen plattformübergreifend laufen, gut in Teams verteilt entwickelbar sein, wahlweise ein Browser-Frontend haben können, cloudfähig sein und skalieren, auf mobilen Endgeräten funktionieren, Daten in beliebigen Datenbanken und (Cloud-)Speicherlösungen ablegen können u.v.m.

All das kann die typische VB6 Windows-Anwendung in der Regel nicht. Aber wenn man auf all das verzichten kann, z.B. für eine persönlich genutzte Produktivitätsanwendung, kommt einem der Overhead dafür natürlich gewaltig vor. Hilft nur alles nichts - da muss man dann durch.

Antwort
von jstafireman, 2

Lern erstmal die Grundlagen der Gemüse-Kunde und dann irgendwann mal kannst du dich mit C++ beschäftigen. 

Nur mal so, anstatt, dass du jetzt hier dumme Fragen stellst. Unnötige Fragen gibts ja nicht.

Antwort
von Mikkey, 61

Es tut mir leid, wenn das hart klingt, aber wenn die Programme zusammengestoppelt wirken, dann sind sie zusammengestoppelt programmiert.

Du hast auf PCs ein grafisches Display das besteht nicht mehr aus grün-weißen Buchstaben und Zahlen, sondern aus farbigen Punkten.

Wenn Du auf jedwedes Rahmenwerk verzichten willst, musst Du diese Punkte selbst zeichnen. Das nimmt Dir keine Sprache ab.

Mach' Dich (wieder) mit modularer Programmierung, mit mehrschichtigen Anwendungen vertraut, dann bringst Du auch etwas nicht zusammengestoppeltes zustande.

Antwort
von ThomasAral, 72

versuchs mal mit Visual Basic :)   zum Anfang die Version 6.  Mit etwas Tricks kriegste das völlig kostenlos auch unter Windows 7 zum Laufen.  Nur die Hilfe geht da halt nicht.  Da gibts aber massig ältere Hilfestelliungen im Netz.  Es werden   32-bit  Windows Anwendungen erstellt.  Ziemlich klein und die Bibliothek ist seit Windows ME bei allen folgenden Windowsversionen (auch Windows 7) schon vorhanden. Du musst nur Mini Progrämmchen zum Download anbieten.  (vielleicht 100k)

Kommentar von ThomasAral ,

natürlich nur auf Windows ME oder später zu empfehlen ... nicht auf LINUX

Keine passende Antwort gefunden?

Fragen Sie die Community