Forum: PC-Programmierung Welche Programmiersprache für Windows-Oberfläche?


von Ben _. (burning_silicon)


Lesenswert?

Hi!

Ich schlage mich nun schon eine Weile mit der Frage rum, welche 
Programmiersprache ich am besten zur Erzeugung von Windows-Anwendungen 
verwenden soll. Bitte keine Zusammenklick-Sachen wie Delphi oder so, 
sondern schon eine "für mehr" brauchbare Programmiersprache, die auch 
Win32 bzw. Win64 Anwendungen kann.

Ich bin ganz gut in Basic (seit dem guten C64) und PHP. Somit ist auch 
klar zwischen welchen Programmiersprachen ich schwanke. PowerBasic/Win 
und C, bzw. einer Variante von C, von denen es unüberschaubar viele 
gibt.

Auch nach dem Lesen diverser Artikel darüber bin ich nicht wesentlich 
schlauer als vorher, es gibt einfach zuviel und alles hat seine Vor- und 
Nachteile.

Was mir wichtig wäre ist eine gute Oberfläche und schneller, kompakter 
Programmcode nach der Compilierung, der am Ende allein lauffähig sein 
soll (.EXE-Datei und evtl. ein paar DLLs). Geringe Investitionskosten 
sind ebenfalls nötig, das Programmieren ist ein Hobby von mir und soll 
keine Millionen kosten.

Schlagt mir doch bitte mal was vor, was brauchbar ist oder was ihr 
verwendet und wo man eine gute Entwicklungsumgebung für bekommt... 
Danke! Wenn C, dann bitte auch welche Variante genau ihr meint...

von dnag (Gast)


Lesenswert?

Hi,
Es kommt teils auf die Anwendung an und zum großen Teil ist es 
Geschmachssache.

Ich habe gute Erfahrungen mit Qt gemacht. Programmiert wird in C++ und 
eine freie Entwicklungsumgebung gibt es von Nokia. Es sind auch schon 
relativ viele Beispiele vorhanden, sodass der Einstieg leichter fällt. 
Außerdem laufen die Programme auch auf Linux.

Grüße
Dnag

von Gerd E. (robberknight)


Lesenswert?

Ja, Qt mit C++ wäre auch das was ich empfehlen würde. Ein weiterer 
Vorteil ist, daß das ganze dann quasi ohne Änderungen auch für Mac und 
Linux compilierbar ist und dort dann auch sauber funktioniert.

von Antivorurteil (Gast)


Lesenswert?

Ben _ schrieb:
> Bitte keine Zusammenklick-Sachen wie Delphi oder so,
> sondern schon eine "für mehr" brauchbare Programmiersprache, die auch
> Win32 bzw. Win64 Anwendungen kann.

Was geht mit Delphi nicht, was mit C++ geht?

von Sven B. (scummos)


Lesenswert?

+1 für C++ mit Qt. Gut dokumentiert, (größtenteils) durchdachte API, 
läuft auf allen größeren Plattformen. Qt ist nicht nur eine 
GUI-Bibliothek sondern hat zum Beispiel auch sehr schöne 
Containerklassen (Liste, Vektor, Hashmap), und Kram wie XML-Parser, 
Netzwerk-Bibliothek, Skript-Engine, Bilder lesen/schreiben/bearbeiten, 
... alles, was man mal brauchen könnte.
Alternativ ist auch Python mit Qt ziemlich cool. Geht doch flotter von 
der Hand als mit C++, wenn man viel rechnen will im Hintergrund wird man 
aber evtl. dann doch auf C zurückgreifen müssen.

btw: Nokia hat mit Qt so gut wie nichts mehr zu tun. ;)

von Ben _. (burning_silicon)


Lesenswert?

Bildschirm leeren unter DOS Assembler: <30 Byte .COM-Datei
Bildschirm leeren unter DOS PowerBasic: ~20kB .EXE-Datei
Leeres Fenster unter Delphi: paar-100-kB .EXE-Datei oO

Geht gar nicht! Und daß wohl Pascal drunter liegt geht erst recht nicht. 
Hätte man damals in der Schule nicht sinnlos Zeit damit verschwendet, 
uns diese Sackgasse von TurboPascal einzutrichtern, könnte ich heute C 
und hätte dieses Problem hier wahrscheinlich gar nicht!! **grummel** 
Nee, von allem was mit Pascal zu tun hat, habe ich die gelinde gesagt 
die Schnauze gestrichen voll.

Von Qt hab ich noch gar nicht gehört, muß mich da mal schlau machen. Wo 
ist die Entwicklungsumgebung und evtl. ein paar Tutorials zu finden? 
Erzeugt das am Ende eine ausführbare Datei, die alleinständig ausgeführt 
werden kann oder braucht das irgendwelche Zusatzkomponenten, die auf dem 
System installiert sein müssen wie zB. bei Java?

von Charlie (Gast)


Lesenswert?

Ben _ schrieb:
> Bildschirm leeren unter DOS Assembler: <30 Byte .COM-Datei
>
> Bildschirm leeren unter DOS PowerBasic: ~20kB .EXE-Datei
>
> Leeres Fenster unter Delphi: paar-100-kB .EXE-Datei oO

Wenn du Programme, die einfach nur den Bildschirm leeren und sich dann 
beenden, als deine Lebensaufgabe betrachtest, dann ist das eine 
sinnvolle Metrik. Und du bist mit Assembler gut bedient.

von Ben _. (burning_silicon)


Lesenswert?

Woher wußte ich, daß selbst bei so einfachen Fragen wieder Trolle mit 
völlig sinnfreien Postings ihren vergammelten Senf dazukippen müssen? 
Man muß es Dir schlecht gehen, daß Du mir auf Deibel komm raus versuchen 
mußt an die Karre zu pissen.

von Delphi Fan (Gast)


Lesenswert?

Ben _ schrieb:
> Bildschirm leeren unter DOS Assembler: <30 Byte .COM-Datei
> Bildschirm leeren unter DOS PowerBasic: ~20kB .EXE-Datei
> Leeres Fenster unter Delphi: paar-100-kB .EXE-Datei oO
>
> Geht gar nicht!

Das ist Äpfel mit Birnen verglichen. Delphi läuft nur unter Windows.

Ich Programmiere schon seit Delphi 1 mit Delphi, und es gibt FAST nix 
was Du mit Delphi nicht machen kannst ( FAST wegen Treiberprogramen und 
CO )

Geschwindigkeitsunterschiede merkst Du mit sicherheit kein. Ich habe 
Programme die sind total gleich programmiert und brauchen in C mehr 
platz wie in Delphi aber auch Programme die wiederum gleich Programmiert 
sind und in C weniger brauchen als in Delphi.

Deine einschränkende Denkensweise beschneidet somit die Wahrheit sehr.

Viel Glück bei der richtigen Programmiersprache.

Ach ja bin kein Troll, werde aber von Dir bestimmt zu einem gemacht weil 
ich gegen Deine Meinung schreibe ;-)

von Christian B. (casandro)


Lesenswert?

Nimm Lazarus. Das schaut zwar auf Anhieb nach "zusammenklicken" aus, und 
Du kannst das auch machen, aber Du kannst selbstverständlich Deine GUI 
auch zur Laufzeit erstellen. Plus Du kannst das auch auf Win32 und Win64 
laufen lassen, oder auch unter Linux, MacOSX oder gar Android. Plus die 
VCL hat relativ simpel zu bedienende Möglichkeiten damit sich die GUI an 
unterschiedliche Fenster- und Schriftgrößen anpasst.

http://lazarus.freepascal.org/

Natürlich macht das statisch gelinkte Binaries. Allerdings sind die auch 
nach dem Du die Debug-Informationen ausgebaut hast immer noch 2 
Megabytes.

von Delphi Fan (Gast)


Lesenswert?

Ben _ schrieb:
> Geht gar nicht! Und daß wohl Pascal drunter liegt geht erst recht nicht.
> Hätte man damals in der Schule nicht sinnlos Zeit damit verschwendet,
> uns diese Sackgasse von TurboPascal einzutrichtern, könnte ich heute C
> und hätte dieses Problem hier wahrscheinlich gar nicht!! **grummel**
> Nee, von allem was mit Pascal zu tun hat, habe ich die gelinde gesagt
> die Schnauze gestrichen voll.

Christian Berger schrieb:
> Nimm Lazarus. Das schaut zwar auf Anhieb nach "zusammenklicken" aus, und
> Du kannst das auch machen, aber Du kannst selbstverständlich Deine GUI
> auch zur Laufzeit erstellen. Plus Du kannst das auch auf Win32 und Win64
> laufen lassen, oder auch unter Linux, MacOSX oder gar Android. Plus die
> VCL hat relativ simpel zu bedienende Möglichkeiten damit sich die GUI an
> unterschiedliche Fenster- und Schriftgrößen anpasst.

Und genau das will er ja nicht. grins

von Peter II (Gast)


Lesenswert?

Ich würde C# verwenden, läuft auf jeder aktuellen windows Installationen 
ohne zustätzliche Installation. Es läuft sogar auf 32/64 oder ARM 
prozessoren ohne etwas am code zu ändern. Die Doku ist sehr gut und es 
gibt kostenlose IDEs.

Es bietet auch möglichkeiten wie reflexion.

von Ben _. (burning_silicon)


Lesenswert?

@Delphi Fan
Du hast ja auch 'ne echte Meinung geschrieben. Die respektiere ich und 
ich lasse Delphi ja auch seine Daseinsberechtigung. Wenn Leute damit gut 
klarkommen und brauchbare Ergebnisse erzielen können, dann ist das ja 
okay.

Allerdings mag ich es überhaupt nicht und möchte nichts, was irgendwie 
auf Pascal aufbaut. Hätte ich vielleicht im Anfangsposting schreiben 
sollen.

Ich hatte gehofft irgendwer kennt/nutzt eine C-basierte Umgebung, die 
das kann. Ich hab immer Schwierigkeiten wenn irgendwas "zu relativ" ist. 
Weiß nicht wie ich das ausdrücken soll, aber beim Aufbau des 
Anwendungsfensters wäre es mir lieb wenn ich sagen kann Fenster feste 
Größe, Text an Koordinaten blah, Eingabezelle an Koordinaten blub, 
Button mit Funktionsaufruf X an Koordinaten laberlaber... ;) Dann weiß 
ich vielleicht auch ohne langes Suchen wo der eigentliche Programmcode 
hin muß.

Oder wenn ich irgendein Fenster erzeugen kann, in dem ich frei grafisch 
zeichnen kann, sowas wäre auch schick.

Aber wenn die Benutzeroberfläche in Bibliothek A enthalten ist und mit 
dem Programm X bearbeitet werden muß, damit ich hinterher irgendwie 
Relationen zum Programmcode B herstellen kann, der mit Programm Y zu 
erzeugen ist, dann find ich das schwieriger als wenn alles in einem und 
evtl. etwas umständlicher zu programmieren ist.

von Delphi Fan (Gast)


Lesenswert?

Aber Du schränkst Dich halt wegen Deinem Vorurteil ein. Lazarus ist 
kostenfrei und eigentlich genau das was Du suchst.

Aber mach mal, Du machst das schon!

von Johannes E. (cpt_nemo)


Lesenswert?

Ben _ schrieb:
> Weiß nicht wie ich das ausdrücken soll, aber beim Aufbau des
> Anwendungsfensters wäre es mir lieb wenn ich sagen kann Fenster feste
> Größe, Text an Koordinaten blah, Eingabezelle an Koordinaten blub,
> Button mit Funktionsaufruf X an Koordinaten laberlaber... ;) Dann weiß
> ich vielleicht auch ohne langes Suchen wo der eigentliche Programmcode
> hin muß.

So etwas kann man mit wxWidgets (http://www.wxwidgets.org/) in C++ 
machen. Allerdings setzt das auch einen gewissen Lernaufwand voraus. 
Geht auch mit wxPython, allerdings hat man dann keine .exe-Datei, die 
man direkt ausführen kann.

Um mit wxWidgets glücklich zu werden, sollte man aber schon einigermaßen 
erfahren in C++ sein, sonst dauert es ziemlich lang, bis man damit 
wirklich effizient arbeiten kann.

Wenn du Pascal nicht magst und C/C++ nicht kannst, dafür Basic, dann 
würde ich an deiner Stelle mal Visual Basic testen. Das gibt es als 
Express-Version kostenlos.

von PSblnkd (Gast)


Lesenswert?

@Ben
Schon mal was von "AutoIt" gehört? -> 
http://www.autoit.de/index.php?page=Index.

Einfach zu erlernen, gut dokummentiert - auch in deutsch!
Alles Freeware. Ergibt sehr kleine exe-Datei ohne dass zusätzliches 
Beiwerk, wie Bibibliotheken oder Frameworks gebraucht wird. Läuft auf 
jedem Windows-PC ohne Installation.
In o.g. Forum kann man sich ansehen, was da so alles möglich ist - z.B. 
"Wir bauen uns ein CAD" (unter Projekte suchen)

Grüsse aus Berlin

PSblnkd

von Martin K. (frostbittenkl)


Lesenswert?

Hallo Ben,

wenn es dir wirklich nur um Windows Programme geht dann empfehle ich dir 
auch eine von Microsoft empfohlene Sprache zu verwenden.
Ob C++ oder C# kannst du dann selbst entscheiden. Als 
Entwicklungsumgebung kannst du dir eine Express Version von Visual 
C++/Visual C# kostenlos herunterladen, welche auch die nötigen 
Bibliotheken für grafische Benutzeroberflächen mitbringt - Stichwort 
".NET" .

Hierfür brauchst du keine tieferen Kenntnisse in Sachen Makefiles, etc. 
Daher für ein Hobby und zum "senkrecht Starten" sehr geeignet.

Hier gibts ein kostenloses Einsteiger Buch: 
http://openbook.galileocomputing.de/csharp/kap03.htm

Kleine Anmerkung noch am Rande: Wer heutzutage grafische Oberflächen 
noch selbst schreibt ist selber Schuld. Designer bei denen man z.B. 
Buttons einfach nur per Drag&Drop auf seiner Oberfläche platziert 
erleichtern dir das Leben ungemein ;-)

Edit: Visual Basic ist alternativ für dich vielleicht auch interessant, 
da du ja erwähntest dass du bereits gute Kenntnisse in Basic hast.

von skyperhh (Gast)


Lesenswert?

Ben _ schrieb:
> Von Qt hab ich noch gar nicht gehört, muß mich da mal schlau machen. Wo
> ist die Entwicklungsumgebung und evtl. ein paar Tutorials zu finden?
> Erzeugt das am Ende eine ausführbare Datei, die alleinständig ausgeführt
> werden kann oder braucht das irgendwelche Zusatzkomponenten, die auf dem
> System installiert sein müssen wie zB. bei Java?

Qt wurde von Trolltech entwickelt und dann von Nokia gekauft, dann 
weiterverkauft an Digia ... der OS-Part inklusive Doku ist hier zu 
finden --> http://qt-project.org/

Zur Verwendung eines kompilierten Programms mußt Du im selben Ordner 
noch die erforderlichen DLL's mit ausliefern, z.b. QtCore & QtGui für 
ein Hello World GUI Programm unter Windows... soweit die Theory.
Verwendest du den Visual Studio C++ Compiler von Windows (es reicht die 
Express Version von VS), gibt es "lustige" Nebenwirkungen, was 
DLL-Versionen etc. angeht... Deshalb existiert für jede Visual Studio 
Entwicklungsumgebung auch das passende "Redistributable package" welches 
auf dem Zielsystem dann einmal mit installiert werden sollte.
Alternative kann man auch den gcc aus der minGW-Portierung verwenden...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vorsicht: Auch wenn Microsoft das "C++" nennt, wenn es mit .Net 
zusammenarbeitet, ist es kein C++, sondern nur etwas ähnliches, 
nämlich "C++/CLI". Das anzugeben ist beispielsweise bei Hilfeanfragen 
von essentieller Wichtigkeit.

von Milord (Gast)


Lesenswert?

Mir ist nicht ganz klar warum er Qt verwenden soll? So weit ich weiß 
wird das von Windows 8 Modern UI garnicht unterstützt?
Damit wäre er also auf das Erstellen von "klassischen" Anwendungen 
eingeschränkt.

von Ben _. (burning_silicon)


Lesenswert?

So jetzt hab ich nochmal 'ne dumme Frage für zwischendurch... :)
Wo genau ist der Unterschied zwischen C, C++ und C#?

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Wo genau ist der Unterschied zwischen C, C++ und C#?

C und C++ sind verwandt also ähnlich. C# ist etwas ganz anderes. Aber 
sehr gut zu lesen.

von Ste N. (steno)


Lesenswert?

Ben _ schrieb:
> Ich hatte gehofft irgendwer kennt/nutzt eine C-basierte Umgebung, die
> das kann. Ich hab immer Schwierigkeiten wenn irgendwas "zu relativ" ist.
> Weiß nicht wie ich das ausdrücken soll, aber beim Aufbau des
> Anwendungsfensters wäre es mir lieb wenn ich sagen kann Fenster feste
> Größe, Text an Koordinaten blah, Eingabezelle an Koordinaten blub,
> Button mit Funktionsaufruf X an Koordinaten laberlaber... ;) Dann weiß
> ich vielleicht auch ohne langes Suchen wo der eigentliche Programmcode
> hin muß.
>
> Oder wenn ich irgendein Fenster erzeugen kann, in dem ich frei grafisch
> zeichnen kann, sowas wäre auch schick.
>
> Aber wenn die Benutzeroberfläche in Bibliothek A enthalten ist und mit
> dem Programm X bearbeitet werden muß, damit ich hinterher irgendwie
> Relationen zum Programmcode B herstellen kann, der mit Programm Y zu
> erzeugen ist, dann find ich das schwieriger als wenn alles in einem und
> evtl. etwas umständlicher zu programmieren ist.

Hallo Ben,

vielleicht wäre PureBasic was für dich? Dort wird es eigentlich genau so 
gemacht wie Du oben schreibst und der erzeugte Programmcode ist nur eine 
.exe und wirlich sehr kompakt!

http://www.purebasic.com/german/index.php

Gruß, Steffen

von Sebastian (Gast)


Lesenswert?

Wenn's denn kompakt und übersichtlich sein soll:
http://www.bloodshed.net/devcpp.html

Eine Bibliothek für Oberflächen kann man nach Wunsch hinzufügen - oder 
man benutzt eben die Windows-API, kompakt eben.

von nicht "Gast" (Gast)


Lesenswert?

Ihhh,

ausgerechnet der DevC++. Das ist eine ganz schlechte Idee. Der ist total 
verbuggt und wird schon seit Jahren nicht mehr weiterentwickelt. Wenn es 
schon unbedingt nicht VS Express sein muss, dann doch bitte den 
Code::Blocks.


Ach zum Topic:

Vote for C#. Ist eine schöne Sprache mit sehr mächtigem .Net Framework. 
Wenn man C++ kann, findet man sich auch sehr schnell zurecht.

Zum Oberflächen erstellen, hattte ich bisher C++/QT, Python/TKInter und 
eben C#. Letzteres bring bei mir die schnellsten und fehlerfreihesten 
Ergebnisse.


Grüße,

von Ben _. (burning_silicon)


Lesenswert?

Ich würde mal behaupten ich kann von C im Moment gar nichts.

Was ich nicht so ganz verstehe, bei vielen C-Sources, die man auch hier 
im Forum so sieht blicke ich nicht durch (auch teilweise wegen 
mangelndem Interesse, sich damit länger zu befassen), aber PHP geht 
super. Viele sagen aber wenn PHP gut geht, dann müßte auch C gut gehen 
weil das ja ähnlich sein soll... Welches C meinen die?

von Hans (Gast)


Lesenswert?

Falls es jemanden interessiert...

http://qt-project.org/wiki/Qt-5-on-Windows-8-and-Metro-UI

Meine Empfehlung ist ganz klar Qt Programmierung mit C++!

QtCreator ist eine recht komfortable IDE (man muss sich dran gewöhnen 
aber wenn man verstanden hat was die Entwickler wollten, ist sie 
ziemlich gut), Qt eine recht komfortable Lib, was will man mehr.

Nachdem valve und co nun ziemlich aktiv auf Linux portieren, dürfte die 
Metro-Oberfläche/Win8.. naja.. egal :)

Drawback: Recht große dlls unter windows damit's rennt (typischerweise 
packt mach die Qt-Dlls direkt mit dem Programm in den Installer)

Vorteil: Windows, Mac, Linux aus einem Source, in einer IDE

Die Geschwindigkeit ist auch phänomenal!

73

von Na (Gast)


Lesenswert?

Schonmal was von Java gehört? Nur so ne Idee...

von W7 (Gast)


Lesenswert?

Ben _ (burning_silicon) schrieb:

> Ich hatte gehofft irgendwer kennt/nutzt eine C-basierte Umgebung, die
> das kann.

Jeder C-Compiler kann ohne weiteres auch Windows GUI Programme erzeugen. 
Das geht sogar mit MASM32, dem 32-bit Assembler. Dazu wird im Grunde das 
gleiche gemacht, was die ganzen Frameworks veranstalten, nämlich 
Funktionen der Win32-API aufgerufen. Ob QT oder GTK, ob VCL bei Delphi 
oder das .NET FW von MS oder die alte MFC, sie alle bieten dir als 
Anwender eine Abstraktion und Kapselung der Win32-API, die zum Teil für 
den Programmierenden einfacher erscheint, weil GUT UND MODERN 
DOKUMENTIERT, weil alle modernen Schnittstellen abgebildet sind usw, 
aber dafür auch dazu verleitet bzw. vorraussetzt, entweder komplett neue 
Programmiersprachen wie C# zu lernen oder sich mit komplexen, mächtigen 
Sprachen wie C++ herumzuquälen (in all seiner bekannten 
Fehlerträchtigkeit).

Von der Komplexität für den Anwender her würde ich C# aber deutlich 
angenehmer und eingängiger als C++ einstufen. C++ ist das reinste 
"Pointer-Moloch", aber vielleicht deswegen für viele Spezies gerade 
interessant. C# ist die bevorzugte Sprache des .NET (lies dot net) 
Frameworks für Windows. Im .NET FW wacht eine virtuelle Maschine 
darüber, eine Laufzeitumgebung, dass die Codeausführung nicht aus den 
Fugen gerät. Das kostet etwas an Ausführungsgeschwindigkeit, gibt dafür 
aber Sicherheit (Typsicherheit; Ressourcen werden z.T. automatisch 
freigegegen etc.), erreicht aber dafür nicht immer die Performance 
nativer Programme (wiewohl man auch in .NET "unmanaged code" schreiben 
kann). Und was man gar nicht hoch genug einschätzen kann, es gibt sehr 
viel Beispielcode für C#/.NET.

Kaum einer der TOP-Frameworks (QT, .NET, VCL, GTK+, wxWidgets) kommt 
ohne Objekt-orientierten Anwender-Quellcode aus, erfordert daher ein 
komplettes Umdenken für Leute die nur TOP-Down Programme in C, PASCAL 
oder BASIC gewohnt sind. Selbst viele BASIC-Dialekte arbeiten inzwischen 
oder schon länger mit Objekten im Code, wenn auch deutlich vereinfachter 
als bei echter OOP in all ihren Facetten. Die einzige Möglichkeit (außer 
ein paar Nieschen-Frameworks, die ich aber eher meiden würde) sich vor 
der OOP "zu drücken" ist die gute alte Methode der Direktprogrammierung 
der Win32-API in herkömmlichen C-Code. Näheres dazu erfährst du 
beispielsweise im Forum von Pelles C. Das gilt aber als veraltet und 
würde so wohl auch nicht mehr an Hochschulen gelehrt.

Mein Rat an dich wäre, schaue dir von jedem dieser prinzipiellen 
Möglichkeiten mehrere Codebeispiele und ein Tutorial an und entscheide 
dann in welche Richtung es gehen soll. Nur durch Empfehlungen allein ist 
das Thema nicht zu bewältigen.

Ein schöner Ersatz für dein altes BASIC wäre vielleicht das hier:

http://www.processing.org/learning/basics/

Probiere es ruhig mal aus. ;)

von Ben _. (burning_silicon)


Lesenswert?

Ich glaube Java kann keine allein lauffähige .EXE aus dem Source 
erzeugen.

Gibts bei C die Möglichkeit, die benutzten Funktionen aus den 
Bibliotheken in die .EXE zu übertragen? Meine angenommen, ich nutze aus 
einer 500kB DLL nur eine kleine Funktion, ists irgendwie unschön die 
komplette DLL mitzuschleppen.

von Hans (Gast)


Lesenswert?

static linking geht, würde ich aber nicht machen...

über 500k dlls würde ich mir keine gedanken mehr machen.

die zeiten der 30-byte COM-files ist (gott sei dank) vorbei.

73

von Ben _. (burning_silicon)


Lesenswert?

Yep, schon klar, daß Speicherplatz heute zur Genüge da ist. Trotzdem muß 
man den ja nicht verschwenden, oder? Irgendwer hat mal gesagt niemand 
würde jemals mehr als 64kByte brauchen - und die 64k-Demoszene hat's 
geglaubt... ;) Und heute ahnt niemand mehr, was ein 4kByte großer 
Assembler-Virus zu DOS-Zeiten alles konnte... :D

Mit MASM32 hab ich schon rumgespielt. Assembler ist eigentlich meine 
Lieblings-"Programmiersprache", aber für grafischen Kram unter Windows 
eindeutig ungeeignet bzw. extrem langwierig in der Anwendung. Aber 
inline-Assembler wäre schon cool!

Auf jeden Fall möchte ich nicht auf ein Framework angewiesen sein. Wenn 
ichs mal später brauche okay, aber für irgendwelche einfachen Sachen 
sollte die .EXE ohne Framework mit Windows alleine auskommen. Also es 
sollte kein Zwang sein, das Framework zu benutzen.

Ich stelle eine Frage nochmal konkret: Wenn ich ein Fenster zum freien 
drin Rummalen haben möchte - welche C-Variante könnte dies am besten und 
kommt ohne Framework aus?

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Ich stelle eine Frage nochmal konkret: Wenn ich ein Fenster zum freien
> drin Rummalen haben möchte - welche C-Variante könnte dies am besten und
> kommt ohne Framework aus?

noch mal mit C macht man sotwas überhaupt nicht mehr, selbst in C++ tut 
ich mir das nicht mehr an.

Installiert dir doch mal schnell 
http://www.icsharpcode.net/opensource/sd/ dann testest du mal 1 Stunde 
rum und wenn es dir nicht gefällt dann suchst du weiter.

von W7 (Gast)


Lesenswert?

Ben _ (burning_silicon) schrieb:

> Auf jeden Fall möchte ich nicht auf ein Framework angewiesen sein. Wenn
> ichs mal später brauche okay, aber für irgendwelche einfachen Sachen
> sollte die .EXE ohne Framework mit Windows alleine auskommen. Also es
> sollte kein Zwang sein, das Framework zu benutzen.

Ich glaube du meinst eher Bibliotheken (DLLs), auf die das compilierte 
Programm angewiesen sein kann. Das Framework dient ja nur dazu den 
Quellcode des Programmierenden in einer bestimmten, verallgemeinerten 
Schreibweise formulieren zu können, sich also mehr von dem was darunter 
liegt zu distanzieren (abstrahieren). Das Kompilat ist dann nativ oder 
wie bei .NET halt automatisch Just-In-Time compiliert beim ersten 
starten (wovon du aber praktisch kaum was merkst).

Irgendwo ist jede ausführbare Exe letztlich von DLLs abhängig, auch wenn 
es nur Kernel, User und GDI sind (letztere sind unter Windows sowieso 
immer geladen; das gleiche gilt aber auch für das .NET Framework - nur 
ist das ein wenig versionsabhängig, aber ab XP eigentlich kein Thema).

> Ich stelle eine Frage nochmal konkret: Wenn ich ein Fenster zum freien
> drin Rummalen haben möchte - welche C-Variante könnte dies am besten und
> kommt ohne Framework aus?

Du kannst sowohl von Pelles C als auch von Visual Studio Express C++ ein 
Windows Konsolenprojekt oder ein Win32-GUI Projekt mit dem Wizard 
starten, dir ein Fenster erzeugen und das "rummalen" mit LineTO Befehlen 
erreichen. Dazu gibt es genügend Beispiele.

Sollten auch andere C-IDEs können.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Eine andere Möglichkeit wäre Tcl/Tk. Gibt es für Linux, Win, Mac usw.

Eine Oberfläche lässt sich damit sehr schnell und einfach erstellen. OO 
wird unterstützt, ist aber kein Muss, wenn es z.B. darum geht, mal "eben 
schnell" eine brauchbare GUI für die Anzeige von Messwerten zu 
erstellen.

Als StarKit lässt sich auch alles Nötige in eine von installierten 
Bibliotheken vollkommen unabhängige EXE packen.

Kostet nix und ist privat wie auch kommerziell frei verwendbar 
(BSD-Lizenz).

Wenn es wirklich zeitkritische Dinge gibt, so kann man den Interpreter 
sehr einfach durch eigene C-Funktionen erweitern.

Chris D.

von Andreas H. (ahz)


Lesenswert?

Ben _ schrieb:
> Ich glaube Java kann keine allein lauffähige .EXE aus dem Source
> erzeugen.
>
> Gibts bei C die Möglichkeit, die benutzten Funktionen aus den
> Bibliotheken in die .EXE zu übertragen? Meine angenommen, ich nutze aus
> einer 500kB DLL nur eine kleine Funktion, ists irgendwie unschön die
> komplette DLL mitzuschleppen.

Hi

Warum tust Du uns nicht allen einen grossen Gefallen und lernst erst mal 
mit irgend einer aktuellen Programmiersprache zu arbeiten ?

Ob nun Java, C# oder sonst irgendwas - krieg erst mal einen "Fuß in die 
Tür".

Solange Du Dir selber mit Ansichten wie "ich nutze aus einer 500kB DLL 
nur eine kleine Funktion" im Weg stehst, wird das nie irgend etwas 
(Frage: Benutzt das OS die DLL garnicht ? Nirgends? Nie ? )
Resourcenprobleme wirst Du typischerweise erst mal nicht haben.

Nimm etwas relativ Einfaches wie Java oder C#. Dann hast Du z.B. erst 
mal das Problem der Speicherverwaltung auf die Sprachumgebung abgewälzt 
und kannst erst mal schauen, was z.B. Design-Pattern sind. Man glaubts 
kaum aber auch SW-Entwicklung hat sich seit DOS Zeiten weiterentwickelt.

C# hat den Vorteil, dass es relativ einfach den Zugriff auf native 
Windowsresourcen anbietet, Java ist dafür portabel über verschiedene OS. 
Such Dir einfach aus, was Du eher brauchst. Du bist auf die Sprache ja 
nicht auf ewig festgelegt.

Von C/C++ würde ich im Augenblick abraten Die sind beide in manchen 
Details etwas "zickig". Am Anfang eher unnötiger Ärger. Du hast genug 
andere Sachen, um die Du Dich kümmern musst.

Grüße
Andreas

P.S:
Deine "merkwürdige" Ansicht über Delphi solltest Du eventuell mal 
hinterfragen. Da hat sich nämlich auch "ein bisschen" was getan und 
heute ist die Aufgabe nicht mehr "ein Fenster aufmachen" sondern z.B. 
Daten aus einer Exceltabelle zu lesen, zu verarbeiten und das Ergebnis 
in einer SQL-DB zu speichern, damit der WEB-Server die aktualisierten 
Daten auf einer WEB-Site anzeigen kann.
Willkommen in diesem Jahrhundert^^
http://www.embarcadero.com/de/products/delphi
(Nein, ich habe mit denen nix zu tun. Aber Delphi war schon zu CP/M & 
DOS Zeiten ganz nice und hat diese "Pauschalverurteilung" mMn nicht 
verdient.)
A.

von Ben _. (burning_silicon)


Lesenswert?

Deine Meinung. Meine kennst Du auch und ich will weder Pascal noch 
Delphi.

Dieser Thread hier ist entstanden weil ich eben nicht mit irgendeiner 
aktuellen Programmiersprache irgendwas anfangen will, sondern mit der 
für mich richtigen Programmiersprache.

Wenn das OS die angesprochene DLL sowieso benutzt und sie deswegen auch 
immer vorhanden ist, dann ists mir egal wie groß sie ist. Was mich 
ärgern würde ist wenn ich sie mitschleppen und mit-installieren muß, 
weil außer meinem Kram nichts sie benutzt.

Ich werd mir C# mal genauer anschauen. Hoffe nur die Befehle sind 
einfach erlernbar, daß man nicht mehr Zeit über der Befehlsreferenz 
brütet, als man fürs eigentliche Programmieren aufwendet.

Kann man mit C# auch ohne .NET arbeiten oder ist man gezwungen, es zu 
verwenden und kriegt Probleme wenn es auf irgendeiner alten Kiste mal 
nicht installiert ist?

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Hoffe nur die Befehle sind
> einfach erlernbar

Befehle gib es nicht wirklich viele, bei modernen Sprachen muss man 
wissen Klasse es gibt und welche Methoden sie anbieten.

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Kann man mit C# auch ohne .NET arbeiten oder ist man gezwungen, es zu
> verwenden und kriegt Probleme wenn es auf irgendeiner alten Kiste mal
> nicht installiert ist?

c# ist .net. Es kann nicht ohne gehen. Und ab WinXP ist es immer mit 
drauf. Zumindest Version 2.0. Wenn du auf 3.0 setzt, dann musst du damit 
rechnen das es nicht überall vorhanden ist.

von skyperhh (Gast)


Lesenswert?

Ben _ schrieb:
> Dieser Thread hier ist entstanden weil ich eben nicht mit irgendeiner
> aktuellen Programmiersprache irgendwas anfangen will, sondern mit der
> für mich richtigen Programmiersprache.
>
...
>
> Kann man mit C# auch ohne .NET arbeiten oder ist man gezwungen, es zu
> verwenden und kriegt Probleme wenn es auf irgendeiner alten Kiste mal
> nicht installiert ist?

Es gibt halt nicht DIE Programmiersprache, jede hat seine Vor- und 
Nachteile und ist letzten Endes ein Kompromiss... und auch eine Sache 
des persönlichen Geschmacks!

C# ist Bestandteil von .NET ... ohne .NET kein C# :-)

von Ben _. (burning_silicon)


Lesenswert?

> c# ist .net. Es kann nicht ohne gehen.
Gerade schon selbst gemerkt. Na gut. Suboptimal sage ich mal.

> Befehle gib es nicht wirklich viele, bei modernen Sprachen muss man
> wissen Klasse es gibt und welche Methoden sie anbieten.
Genau das ist das was ich eigentlich hasse... :-/

Body.Ass.Shit(What.HolyShit, Speed.Emergency, Extra.UnStoppable);
**kicher**

Wie soll man denn lernen was es da so alles gibt, wie's heißt (also wie 
es genannt wurde, nicht wie man es selbst nennen würde) und was es kann 
wenn man damit anfängt?

Naja was mich da am Anfang noch interessiert sind Schleifen, Vergleiche 
(IF), Subroutines, evtl. Sprungbefehle... Inline-Assembler möglich?

von Εrnst B. (ernst)


Lesenswert?

Ben _ schrieb:
> Inline-Assembler möglich?
Mit .NET? Nö. Der Compiler erzeugt Byte/Zwischencode, der erst beim 
Ausführen intperpretiert oder per JIT in den jeweils passenden 
Maschinencode übersetzt wird, also wie Java. (Deswegen laufen 
C#-Programme angeblich ohne Neukompilierung auf ARM/WindowsRT)

Du kannst natürlich eine ASM-DLL von C# aus ansprechen...

von Ben _. (burning_silicon)


Lesenswert?

Hrm. Heißt das, es ist für besonders schnelle Rechenaufgaben nicht 
geeignet? Das gefällt mir gar nicht. Dann lieber doch C/C++ glaube ich.

von Milord (Gast)


Lesenswert?

Ben _ schrieb:
> Genau das ist das was ich eigentlich hasse... :-/

Du hasst mächtige Frameworks, die für fast alle Probleme des 
Entwickler-Alltags sauber implementierte, performante und gut 
durchdachte Lösungen anbieten?
Willst du alles von Grund auf selber schreiben? Dann kommst du aber 
nicht weit...

von Andreas H. (ahz)


Lesenswert?

Ben _ schrieb:
> Dieser Thread hier ist entstanden weil ich eben nicht mit irgendeiner
> aktuellen Programmiersprache irgendwas anfangen will, sondern mit der
> für mich richtigen Programmiersprache.
>
Cool. Wenn Du sie findest, lass es mich wissen. Ich such da ja auch. 
Aber est seit 35 Jahren.


> Was mich ärgern würde ist wenn ich sie mitschleppen und mit-installieren muß,
> weil außer meinem Kram nichts sie benutzt.

Was einen Projektleiter ärgern würde ist, wenn Du 3MW damit 
verschwendest etwas neu zu implementieren, statt eine evtl. schon 
vorhandene DLL/Assembly zu benutzen, deren paar MB auf dem 
Auslieferungsmedium nicht mehr auffallen.

Liegt evtl. daran, dass da Kosten entstehen die micht nur Esoterisch 
sind oder vielleicht auch daran, dass der "Eigenbau" typischerweise 
schlechter getestet ist als ein existierendes Standardmodul in >1Mio. 
Installationen ?

Gruss
Andreas

von Milord (Gast)


Lesenswert?

Ben _ schrieb:
> Hrm. Heißt das, es ist für besonders schnelle Rechenaufgaben nicht
> geeignet? Das gefällt mir gar nicht. Dann lieber doch C/C++ glaube ich.

C# wird genauso kompiliert wie C/C++ auch...

von Εrnst B. (ernst)


Lesenswert?

Milord schrieb:
> C# wird genauso kompiliert wie C/C++ auch...

Nö.
C# wird üblicherweise in CLI übersetzt.
http://de.wikipedia.org/wiki/Common_Language_Infrastructure

C und C++ in Maschinenkode.

"Managed C++" etc ist viel näher an C# als an "echtem" C++ dran. Wird 
auch zu CLI.

von Milord (Gast)


Lesenswert?

Εrnst B✶ schrieb:
> Nö.
> C# wird üblicherweise in CLI übersetzt.
> http://de.wikipedia.org/wiki/Common_Language_Infrastructure
>
> C und C++ in Maschinenkode.

Nö.
Schon mal was vom JIT gehört? Der IL wird vor der Ausführung in 
Maschinencode übersetzt, genauso wie C oder C++....

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Hrm. Heißt das, es ist für besonders schnelle Rechenaufgaben nicht
> geeignet? Das gefällt mir gar nicht. Dann lieber doch C/C++ glaube ich.

nein, sogar das gegenteil kann der Fall sein, der optimierer sieht noch 
den code damit kann er sogar amhängig von den Werten den code 
optimieren. bei berechnungen wirst du keinen unterschied feststellen 
können. Was etwas langsamer ist, sind zugriffe auf array weil da 
teiweise bereichtsprüfungen gemacht werden.

von Εrnst B. (ernst)


Lesenswert?

Milord schrieb:
> Schon mal was vom JIT gehört?

Natürlich. Hab ich oben auch geschrieben.

Hast du verstanden, was ein JIT macht, und wann/wo er zum Einsatz kommt?

von Milord (Gast)


Lesenswert?

Εrnst B✶ schrieb:
> Milord schrieb:
>> Schon mal was vom JIT gehört?
>
> Natürlich. Hab ich oben auch geschrieben.
>
> Hast du verstanden, was ein JIT macht, und wann/wo er zum Einsatz kommt?

Ich denke schon ;-) Der JIT übersetzt vor der Ausführung den Code von 
der IL in Maschinencode.

von Ben _. (burning_silicon)


Lesenswert?

> Cool. Wenn Du sie findest, lass es mich wissen.
> Ich such da ja auch. Aber est seit 35 Jahren.
Hm. Ist was dran... so alt bin ich noch nicht. :-/

> Du hasst mächtige Frameworks, die für fast alle Probleme des
> Entwickler-Alltags sauber implementierte, performante und gut
> durchdachte Lösungen anbieten?
Das ist der einzigste Vorteil, den sie bieten... gebe ich zu.

> Willst du alles von Grund auf selber schreiben?
> Dann kommst du aber nicht weit...
Für sowas sollten evtl. DLLs vorhanden sein wenn man sie braucht.
Mir gehts um ein Hobby und nicht um eine schnelle quick'n'dirty- aber 
dafür marktreife Lösung...

Ich möchte aber am Ende echten ausführbaren Code erhalten und nicht 
irgendwelche Zwischen-Implantate, auf die sich dann ein Interpreter oder 
noch irgendein Compiler stürzen muß.

von Hans (Gast)


Lesenswert?

Ben _ schrieb:
> Hrm. Heißt das, es ist für besonders schnelle Rechenaufgaben nicht
> geeignet? Das gefällt mir gar nicht. Dann lieber doch C/C++ glaube ich.

naja die v8 script engine von google schafft durch 
just-in-time-compiling und optimizing schon eine beträchtliche 
ausführungsgeschwindigkeit.

http://www.youtube.com/watch?v=UJPdhx5zTaw
45:19

das script ist 17% langsamer als -O3 compilierter c-code!

besonders schnelle rechenaufgaben lässt man den comiler optimieren, weil 
die besser optimieren wie du es in asm je könntest...

die wissen nämlich ganz genau wie deine CPU tickt (caches, vector-units, 
...)

ausserdem ist typischerweise der algorithmus das problem (in dem video 
kommt ein 46:30 heraus, dass bei dem problem durch einen gefixten 
algorithmus faktor 40 drinnen war)

asm war gestern (es sei denn man bau scheduler,compiler,... udgl)!

73

von Εrnst B. (ernst)


Lesenswert?

Milord schrieb:
> Ich denke schon ;-) Der JIT übersetzt vor der Ausführung den Code von
> der IL in Maschinencode.

genau. Betonung auf (kurz) "vor der Ausführung".

Sonst wäre auch "MS-Basic 1.0 für CP/M" eine "Kompilierte Sprache für 
x86_64-CPUs", nur weil mit ein paar Emulationsschichten dazwischen ein 
Basic-Befehl zur Ausführung eines Berges an Maschinencode auf der 
Intel-CPU führt...

von Milord (Gast)


Lesenswert?

Εrnst B✶ schrieb:
> genau. Betonung auf (kurz) "vor der Ausführung".
>
> Sonst wäre auch "MS-Basic 1.0 für CP/M" eine "Kompilierte Sprache für
> x86_64-CPUs", nur weil mit ein paar Emulationsschichten dazwischen ein
> Basic-Befehl zur Ausführung eines Berges an Maschinencode auf der
> Intel-CPU führt...

Ich finde den Vergleich ein bisschen merkwürdig. MS-Basic scheint mir 
eine interpretierte Sprache zu sein. Das ist ja was ganz anderes als 
z.B. C#.

C# ist dann doch eher mit C++ zu vergleichen, nur das bei C++ der 
gesamte Code zur Compilezeit kompiliert wird. Bei C# wird das 
Kompilieren dann nach hinten, d.h. in die Laufzeit verschoben um so mehr 
Flexibilität zu erreichen. Das Endergebnis (Maschinencode) ist aber in 
beiden Fällen das gleiche, und nicht mit interpretierten Sprachen zu 
vergleichen.

von Ben _. (burning_silicon)


Lesenswert?

:-/ Ich möchte mich wirklich ungerne von Assembler und echtem greifbaren 
Code als Endprodukt trennen... Gibts irgendwo 'ne Klassenübersicht oder 
wie man das nennen soll, was C# alles kann?

Meine, echten Maschinencode kann ein X86 auch in 20 Jahren noch 
ausführen, aber wer sagt, daß auf dem OS in 20 Jahren noch das nötige 
.NET Framework vorhanden ist?

von Milord (Gast)


Lesenswert?

Ben _ schrieb:
> Meine, echten Maschinencode kann ein X86 auch in 20 Jahren noch
> ausführen, aber wer sagt, daß auf dem OS in 20 Jahren noch das nötige
> .NET Framework vorhanden ist?

So würde ich das nicht sagen. Code ohne irgend ein Framework dahinter 
macht ja wenig Sinn. Irgendwelche Daten musst du verarbeiten (Dateien, 
Datenbanken, Webzugriffe), und irgendwie musst du mit der Hardware 
interagieren (Maus und Tastatureingaben, Grafische Ausgabe, 
Fensterframework, Sounds, IO-Schnittstellen etc.).
Dazu brauchst du nun mal ein Framework. Und .NET ist da wunderbar 
geeignet und genaus zukunfts(un)sicher wie andere Frameworks auch...

von Ben _. (burning_silicon)


Lesenswert?

Deswegen ja im Zweifel kein Framework verwenden, sondern die hoffentlich 
langlebigen Windows-Standard-Funktionen...

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Meine, echten Maschinencode kann ein X86 auch in 20 Jahren noch
> ausführen,
aber nur wenn es noch passende CPUs gibt. Auf ARM läuft den code schon 
nicht mehr.

> aber wer sagt, daß auf dem OS in 20 Jahren noch das nötige
> .NET Framework vorhanden ist?
niemand

Aber wenn du mit ASM eine GUI machen willst, dann brauchst du auch 
20Jahre bis sie fertig ist.

von Andreas H. (ahz)


Lesenswert?

Ben _ schrieb:
> Meine, echten Maschinencode kann ein X86 auch in 20 Jahren noch
> ausführen, aber wer sagt, daß auf dem OS in 20 Jahren noch das nötige
> .NET Framework vorhanden ist?

Auf diesem Niveau kannst Du Dich auf jeden Fall noch 20 Jahre vor dem 
programmieren drücken.

Software über 20 Jahre lauffähig zu halten ist Arbeit. VIEL Arbeit.
Fang doch einfach mal an. Notfalls reicht auch PowerShell damit Du erst 
mal alles was hier geschrieben wurde überhaupt einordnen kannst.

Gruss
Andreas

von Hans (Gast)


Lesenswert?

bezweifle ich... ist nur eine frage der zeit bis x87 endgültig 
rausfliegt..
selbes gilt für 16bit execution,real-mode...

73

von Εrnst B. (ernst)


Lesenswert?

Milord schrieb:
> Ich finde den Vergleich ein bisschen merkwürdig.

Jo, hinkt etwas, Trotzdem:
Basic-Befehle vorne rein => Intel-Maschinencode kommt hinten zur 
Ausführung.


Bei VB.NET, C#, Java usw üblich: Der Compiler erzeugt einmalig den 
Intermediate-Code (Java-Bytecode, CLI-Bytecode, ...).

(jedesmal) bei der Ausführung wird dieser in Maschinencode übersetzt 
(Interpretiert oder per JIT)

Bei C/C++ üblich: Der Compiler erzeugt einmalig den Maschinencode. 
Dieser kann direkt ohne Zwischenschicht auf der CPU laufen.

Nicht falsch verstehen: ich halte die IL-Zwischenschicht nicht für 
schlecht. Die daraus resultierenden Vorteile wiegen den geringen, wenn 
überhaupt vorhandenen Geschwindigkeitsverluts bei weitem auf.

Trotzdem sollte man sich im Klaren darüber sein, dass das zwei 
verschiedene Konzepte sind.

von Sven B. (scummos)


Lesenswert?

Ben _ schrieb:
> Ich hab immer Schwierigkeiten wenn irgendwas "zu relativ" ist.
> Weiß nicht wie ich das ausdrücken soll, aber beim Aufbau des
> Anwendungsfensters wäre es mir lieb wenn ich sagen kann Fenster feste
> Größe, Text an Koordinaten blah, Eingabezelle an Koordinaten blub,
> Button mit Funktionsaufruf X an Koordinaten laberlaber... ;) Dann weiß
> ich vielleicht auch ohne langes Suchen wo der eigentliche Programmcode
> hin muß.
Das ist aber Murks. Die Layouts, die in allen respektablen 
GUI-Frameworks benutzt werden, sind schon der richtige Weg. Absolut 
positionierte Widgets führen dazu, dass sich Fenster zum Beispiel nicht 
vernünftig skalieren lassen, was mich persönlich zum Beispiel wahnsinnig 
macht. ;)

von Ben _. (burning_silicon)


Lesenswert?

Also mein alter PowerBasic-Kram läuft alles noch. Meine 
Assembler-Programme laufen noch, ausgenommen auf spezielle Hardware 
zugeschnittene Dinge wie Soundblaster-Karten. Und die naja ich nenne sie 
mal auf DOS und seine Dateien zugeschnittenen Spezialprogramme laufen 
auch nicht mehr bzw. es macht keinen Sinn sie in einer DOS-Box zu 
starten wo sie kein Futter kriegen.

Also doch CSchurk?

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Also mein alter PowerBasic-Kram läuft alles noch.

mach doch was du willst, wenn du C# nicht willst dann nimm es nicht. Es 
zwingt dich keiner. Wenn du viel zeit hast darst du auch alles in ASM 
machen. Mein C# Programme laufen sogar unter linux dein ASM auch?

von Ben _. (burning_silicon)


Lesenswert?

Linsucks läuft noch nicht mal auf meinen Rechnern... :D

> Absolut positionierte Widgets führen dazu, dass sich Fenster zum
> Beispiel nicht vernünftig skalieren lassen
Ist mir klar. Aber was willst Du zB. beim Standard-Fenster wie WinAmp 
eines nutzt groß skalieren?

von Andreas H. (ahz)


Lesenswert?

Ben _ schrieb:
> Also mein alter PowerBasic-Kram läuft alles noch.

Ach ja ?
Dann poke mal in die Graphikkarte (könnte sogar noch klappen) oder gib 
auf der V24 empfangenen Zeichen auf dem Parallelport aus.

Wobei das ja erst richtig spassig wird, wenn V24 & LPT an Deinem Rechner 
USB Ports sind, die per FTDI chips die Ports nachbilden.

Sollte das alles gehen, dann ist Dein "Problem" doch gelöst. Bleib bei 
PowerBasic :-)

Gruss
Andreas

von Milord (Gast)


Lesenswert?

Ben _ schrieb:
> Ist mir klar. Aber was willst Du zB. beim Standard-Fenster wie WinAmp
> eines nutzt groß skalieren?

Und wenn du dann mal eine Liste, Textbox oder ähnliches verwendest? Wie 
machst du das dann mit der Skalierung? Oder gibts solche Steuerelemente 
bei dir nicht?

von Oliver (Gast)


Lesenswert?

Ben _ schrieb:
> Meine, echten Maschinencode kann ein X86 auch in 20 Jahren noch
> ausführen, aber wer sagt, daß auf dem OS in 20 Jahren noch das nötige
> .NET Framework vorhanden ist?

Das mag für Anwendungen, die in der Console laufen, gelten.

Auch mit reinstem Maschinencode wirst du aber bei richtige 
Windows-Programmen nichts anderes tun, als die entsprechenden 
Windows-Bibliotheksfunktionen auzurufen. Und du kannst ziemlich sicher 
sein, daß es die in 20 Jahren in der heutigen Form nicht mehr gibt.

Im übrigen kümmerst du dich um die falschen Probleme. Du brauchst, um 
Windows-Programme erstellen zu können, zwingend eine 
(Klassen-)Bibliothek, die dir das Gehampel mit den Win32-API-Funktionen 
abnimmt. So viele frei verfügbare Systeme dieser Art gibt es da gar 
nicht.

Von Microsoft bekommt du zwar den C/C++-Compiler nebst IDE kostenlos, 
aber die Windows-Klassenbibliothek für C/C++ nicht. gcc als freier 
Compiler ist Klasse, dazu brauchst du dann auch wieder die passenden 
Windows-Bibliothek.
QT,  GTK+, wxWidgets als vollwertige (oder gar bessere !) Alternativen 
wurden schon genannt, dann kenne ich noch Ultimate++, und das wars dann 
beinahe schon mit wirklich vollwertigen Systemen für C/C++.

Dann gibts halt Java. Ist Klasse für mal eben eine Applikation zu 
basteln, das Ergebnis fühlt sich aber nie so richtig wie eine native 
Windowsprogramme an.

Bleiben noch C# und Visual Basic. Beides kostenlos und mit 
Klassenbibiliothek, und das wars dann schon.

So einen Liste hättest du dir aber mit etwas Mühe und google selber 
aufstellen können. Danach mal die für dich interessantesten Lösungen 
besorgen, installieren, und ausprobieren.

Was du dann merken wirst, ist, daß das wesentlichste eine ausführliche 
Dokumation mit möglichst vielen verfügbaren Besipielprogrammenn ist, und 
daß du bisher wohl die falschen Vorstellungen davon hast, was es 
bedeutet, eine Windows-Anwendung zu erstellen. Am Ende ist die dafür 
verwendete Programmiersprache nämlich völlig egal. Du stellst schlicht 
die völlig falschen Fragen.

Oliver

von Sven B. (scummos)


Lesenswert?

Ben _ schrieb:
> Ist mir klar. Aber was willst Du zB. beim Standard-Fenster wie WinAmp
> eines nutzt groß skalieren?

Hier mal einige Beispiele, von denen immer wichtig ist, dass sie 
richtig skalieren:

Line Edits, Text Edits, Dropdown-Listen sollten sich an die Breite vom 
Fenster anpassen.
Buttons wie "Ok" oder "Anwenden" sollten immer rechts unten sein, und 
nicht irgendwo in der Mitte vom Fenster rumschweben (was passiert, wenn 
man absolute Positionierung verwendet).
Ganz wichtig ist das natürlich falls das Programm irgendwas anzeigt 
(Diagramme etc.), das muss skalierbar sein.

Absoute Positionierung von GUI-Widgets ist wirklich total 
unprofessionell. Kein vernünftiger Mensch macht sowas. ;)

von Ben _. (burning_silicon)


Lesenswert?

Im Moment gibts noch gar keine Bedienelemente ... :D Ich denke in dem 
Moment wo das Fenster nicht so groß sein muß wie eine Winword-Oberfläche 
oder Excel wo der Bildschirm nicht groß genug für die Tabelle sein kann 
brauche ich nicht unbedingt eine gute Skalierbarkeit.
  Wenn mal sowas kommt wo ichs brauche, kann ich mir darüber immer noch 
Gedanken machen.

PowerBasic, zumindest das alte, kann halt nichts können was es damals 
noch nicht gab. Mit dem richtigen Treiber wäre es sicher möglich, aber 
so sehr hänge ich da doch nicht dran.

Die Assembler-Programme, die einen hardware-nah angesprochenen 
Grafikmodus benutzen laufen noch in der DOS-Box...

von Sven B. (scummos)


Lesenswert?

Ben _ schrieb:
>   Wenn mal sowas kommt wo ichs brauche, kann ich mir darüber immer noch
> Gedanken machen.
Außer natürlich du verwendest eines der Frameworks, die das nicht 
vernünftig unterstützen. Was leider wohl für ziemlich viele gilt.

von Εrnst B. (ernst)


Lesenswert?

Ben _ schrieb:
>...  brauche ich nicht unbedingt eine gute Skalierbarkeit.

Das war unter Windows 3.1 schon immer offensichtlich, welcher 
Programmierer  da genauso gedacht hat...  schon damals konnte man die 
DPI des Bildschirms einstellen, und eigentlich sollten sich die 
Applikationen daran halten...

Was ist sooo schlimm daran, beim Programmieren zu sagen

"Button 2" ist rechts von "Button 1"

anstatt von:

Button1 liegt bei Pixel 320,155 und ist 32 Pixel hoch und 100 Pixel 
breit, egal ob der Beschriftungstext reinpasst oder nicht.
Button2 liegt bei 450,166 ...

von Ben _. (burning_silicon)


Lesenswert?

> Was ist sooo schlimm daran, beim Programmieren zu sagen
> "Button 2" ist rechts von "Button 1"
Daß alles irgendwie neben allem liegt und niemand weiß wo. Irgendein 
kleiner Fehler zerstört dann alle Abhängigkeiten komplett, killt das 
komplette Layout und man findet ihn nie weil man nicht weiß wo man 
suchen soll.

Oder wenn ich mir die Oberfläche ohne Programm zusammenbaue und sie 
hinterher mit dem Programm verknüpfe - eine kleine Änderung weil einem 
noch was eingefallen ist oder so und man kann komplett von vorne 
anfangen weil man die Änderung nicht eingepflegt kriegt ohne die 
bestehenden Verknüpfungen durcheinanderzumixen.

von Milord (Gast)


Lesenswert?

Ich denke du hast Recht. Am sichersten, einfachsten, schnellsten, 
effektivsten und zukunftssichersten ist es, wenn du deine Anwendungen in 
ASM schreibst. Die GUI kannst du dann per Win32 API ganz komfortabel 
erstellen. Ich würde auch alle Postionen und Größen Pixelgenau 
hard-coden, dann kann nichts schief gehen.

Viel Erfolg!

von Arc N. (arc)


Lesenswert?

Εrnst B✶ schrieb:
> Milord schrieb:
>> Ich denke schon ;-) Der JIT übersetzt vor der Ausführung den Code von
>> der IL in Maschinencode.
>
> genau. Betonung auf (kurz) "vor der Ausführung".

Oder mit ngen deutlich vor der Ausführung
http://msdn.microsoft.com/en-us/library/6t9t5wcf.aspx
bzw. ab Windows 8 automatisch im Hintergrund (Native Image Task).

von Schorsch (Gast)


Lesenswert?

Warum muss es eigentlich unbedingt eine "Windows-Anwendung" sein? Oder 
hast Du da Spielraum? Zum Beispiel, da Du php beherrscht, könnte die 
Anwendung auch als Web-Applikation implementiert werden und dann via 
Internet Explorer funktionieren?

von Ben _. (burning_silicon)


Lesenswert?

Ey also nu reichts aber wirklich mal. Ich wollte wissen was für eine 
einigermaßen zeitgemäße Programmiersprache für Windoofs-Anwendungen "am 
besten" ist oder am besten zu dem was ich mir so vorstelle passt. Ich 
wollte nicht wissen wie ich die Oberfläche meiner Anwendung zu gestalten 
habe damit sie Milord-zertifiziert werden kann. Sorry, danke Dir aber 
trotzdem für Deine Hilfe.

von Peter II (Gast)


Lesenswert?

Schorsch schrieb:
> Zum Beispiel, da Du php beherrscht, könnte die
> Anwendung auch als Web-Applikation implementiert werden und dann via
> Internet Explorer funktionieren?

nein dann kann er ja nicht feste Pixel vorgeben

von Oliver (Gast)


Lesenswert?

Schorsch schrieb:
> Zum Beispiel, da Du php beherrscht, könnte die
> Anwendung auch als Web-Applikation implementiert werden und dann via
> Internet Explorer funktionieren?

Son' neumodischen Kram?

Nur in Assembler hardcodierte Programme sind richtige Programme, selbst 
Delphi ist Teufelszeug, und alles, was danach erfunden wurde, sowieso.

In diesem Sinne...

Oliver

von Ben _. (burning_silicon)


Lesenswert?

> nein dann kann er ja nicht feste Pixel vorgeben
Klar könnte ich.

PHP kann aber nur auf dem Server laufen, nicht auf dem Client-Rechner. 
Macht sich ein wenig schwer, wenn man zB. zum Einlesen irgendwelcher 
Daten via USB oder so einen Webserver auf dem Rechner laufen lassen 
muß...

von Schorsch (Gast)


Lesenswert?

Eventuell könntest Du Deine Applikation in Excel implementieren, mit 
Makro's und so

von Arc N. (arc)


Lesenswert?

Ben _ schrieb:
> Oder wenn ich mir die Oberfläche ohne Programm zusammenbaue und sie
> hinterher mit dem Programm verknüpfe - eine kleine Änderung weil einem
> noch was eingefallen ist oder so und man kann komplett von vorne
> anfangen weil man die Änderung nicht eingepflegt kriegt ohne die
> bestehenden Verknüpfungen durcheinanderzumixen.

Deshalb nutzen alle brauchbaren Bibliotheken mittlerweile eine passende 
Beschreibungssprache für die GUI: Qt = QML + JavaScript, .NET = XAML + 
VB/C#/C++/etc (oder auch HTML5 + JavaScript, Win8)

von Lukas K. (carrotindustries)


Lesenswert?

Was die Skalierung von GUIs anbetrifft, habe ich mit GTK und Glade recht 
gute Erfahrungen gemacht. Als Programmiersprache bieten sich C, python 
oder Vala an. Nebenbei bist du damit auch weitestgehend 
Plattformunabhängig

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

ich behaupte mal, wer von uns schon lange Zeit programmiert, hat mehrere 
Sprachen gelernt und nicht die eine "richtige". Wenn man Sprachen, die 
man ganicht kennt, aus irrationalen Gründen hasst und bewährte Workflows 
z.B. zur GUI-Erstellung ebenso irrational ablehnt, hat man sich von der 
erfolgreichen Weiterentwicklung als Programmierer schon verabschiedet. 
Von einem Programmierer der den Namen verdient erwarte ich, dass er in 
kurzer Zeit auch in einer neuen Sprache arbeiten kann.

Bei Vorstellungsgesprächen kommt es auch besonders gut an, wenn man 
gleich zu Beginn unmissverständlich klarstellt, dass man alle Vorgaben 
des Arbeitgebers bezüglich verwendeter Sprachen und Werkzeuge strikt 
ablehnt und sich unter keinen Umständen weiterbilden will. Personalchefs 
lieben solche Bewerber.

Gruss Reinhard

von Auch noch Senf (Gast)


Lesenswert?

von mir:

Auch wenns nicht gewünscht wird:

Ich empfehle Delphi.

Ich programmiere seit Jahren damit.
Man mann kompakte EXEs,  welche keine weiteren DLLs benötigen, 
erstellen. Die Programme sind sehr schnell erstellt, haben gute 
Ausführungsgeschwindigkeit und laufen stabil. Auch muss auf dem
Zielrechner kein spezielles .NET, Java, Servicepack etc vorhanden sein. 
Einfach EXE starten und gut ists.

Für graphische Oberflächen gibts ein riesiges Framework, zusätzlich noch 
tausende Komponenten von anderen Anbietern.

von Ben _. (burning_silicon)


Lesenswert?

Achso Tschuldigung, ich wußte nicht, daß ich hier Bewerbungsgespräche 
führen muß. Dann bin ich hier ja völlig falsch!

Naja, bissel schade, daß das so ausartet, es waren doch paar gute 
Ansätze dabei. Mal sehen was es mir nutzt.

Danke euch für die hilfreichen Antworten!

von Andreas H. (ahz)


Lesenswert?

Milord schrieb:
> Die GUI kannst du dann per Win32 API ganz komfortabel
> erstellen. Ich würde auch alle Postionen und Größen Pixelgenau
> hard-coden, dann kann nichts schief gehen.

Genau.


Ben _ schrieb:
> Klar könnte ich.
>
Nein, kannst Du nicht. Oder wie gibst Du dem Browser aus Deiner Dosbox 
heraus die Fenstergröße vor ? (Um nur eins der Probleme dabei zu nennen)

> PHP kann aber nur auf dem Server laufen, nicht auf dem Client-Rechner.
Dann lass halt den Server auch auf dem Client laufen. Ist nicht 
schwierig. Also wenn man darauf verzichtet, keine DLLs zu benutzen.

> Macht sich ein wenig schwer, wenn man zB. zum Einlesen irgendwelcher
> Daten via USB oder so einen Webserver auf dem Rechner laufen lassen
> muß...
Nö, wieso ?

Aber dann geht USB in ASM in der DosBox schon mal bei Dir ? Magst Du 
nicht mal den Code posten ? Ich bin da zu dusselig und brauch immer 
einen Gerätetreiber. Und der ist igit mit einer "Bäh-"DLL gekoppelt.
Und, stimmt schon, das kostet Hauptspeicher. Und der Laptop hat leider 
nur 4G :/

von Bernd H. (geeky)


Lesenswert?

Ben _ schrieb:
> Gibts irgendwo 'ne Klassenübersicht oder
> wie man das nennen soll

.Net-Framework:
http://msdn.microsoft.com/en-us/library/gg145045.aspx

Ein wenig über C#:
http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx

von Andreas H. (ahz)


Lesenswert?

Ben _ schrieb:
> Danke euch für die hilfreichen Antworten!

Du hast gefragt, es wurde geantwortet, die Antworten haben Dir nicht 
gefallen weil Deine Vorstellungen völlig weltfremd sind, die Leute 
nehmen Dich nicht mehr für voll.

Du willst ASM hacken ?
Google mal nach Ocelot SQL. Ein DOS SQL-Datenbanksystem, das komplett in 
Assembler geschrieben war. Lies den Code und überleg Dir ob Du DAS auch 
so hinbekommen hättest.

Du willst unter Windows programmieren ? Was ?

Nur zum Spass ? --> C#

Plattformübergreifend ? --> Java

Du bist Rookie aber hart im nehmen ? --> C++ & QT/GTK etc etc (das mit 
den Memoryleaks kriegt man meist in den Griff, obwohl ein befreundeter 
SW-Projektleiter mal meinte, ab 1Mio LOCs hat man da immer noch irgendwo 
was)

Du brauchst Rechenperformance ? -> Intel F90 oder Lahey F95. Beide mit 
add NAG Lib.

Wieviel Antworten mit immer den gleichen Aussagen willst Du denn noch ?

Gruss
Andreas

von Na (Gast)


Lesenswert?

> Windoofs
> Linsucks
> CSchurk
  Kindergarten?

> DOS-Box
  Eine DOS-Box gibt es nicht mehr seit Windows 3.

> PHP kann aber nur auf dem Server laufen, nicht auf dem Client-Rechner.
  Komisch. Bei mir kann ich php in der commandline ausführen. (Win 7)

> Bitte keine Zusammenklick-Sachen
  Ist das zu kompliziert für Dich oder warum nicht?

> Wo genau ist der Unterschied zwischen C, C++ und C#?
  Ich vermutete schon, du hast keine Ahnung.

Herzlich willkommen im neuen Jahrtausend!

Free protip: Mit der Einstellung wirst du NIE was ordentliches bringen. 
Viel Glück im Leben.

von Hans (Gast)


Lesenswert?

dann bleib doch bei php...

wie oben erwähnt rennt php auch auf der cmd-line...

zusätzlich: http://en.wikipedia.org/wiki/PHP-Qt

73

von Robert L. (lrlr)


Lesenswert?

>Wo genau ist der Unterschied zwischen C, C++ und C#?

ok, da hab ich dann aufgehört

im Eröffnungspost über Delphi mosern, aber solche fragen stellen...

von Peter S. (psavr)


Lesenswert?


von Peter II (Gast)


Lesenswert?

Peter S. schrieb:
> Gucke mal PureBasic !!!
>
> http://www.purebasic.com/german/index.php

wenn ich schon sotwas lese

[...]
- Sehr schneller Compiler, welcher hochoptimierte Executables erzeugt
und globalen Variablen
- Optimale Ausnutzung der verfügbaren Hardware durch Verwendung 
hochoptimierter (Asm) Befehle
[...]
was wohl hochoptimierter Asm Befehle sind?

[...]
- Unterstützung von Prozeduren zum strukturierten Programmieren mit 
lokalen  und globalen Variablen
[...]
Sogar Prozeduren mit werden unterstützt, na wenn das nichts ist.

von Andreas H. (ahz)


Lesenswert?

Robert L. schrieb:
>>Wo genau ist der Unterschied zwischen C, C++ und C#?
>
> ok, da hab ich dann aufgehört
>
> im Eröffnungspost über Delphi mosern, aber solche fragen stellen...

Den Teil fand ich noch relativ "normal". Wieviel Leute lästern über 
Common-Lisp obwohl sie noch nie versucht haben ein Problem damit zu 
lösen ? Ich kenne Einige (meist Profis), die es probiert haben und dann 
dabei geblieben sind.

Die langweilige MS-Win/MacOS/Linux Zankerei ist ja auch ähnlich...

Ärgerlicher finde ich, wenn jemand um Hilfe bittet, sich aber 
gleichzeitig weigert, Vorschäge anzunehmen weil irgendwelche Gründe 
dagegensprechen, die heutzutage einfach völlig nebensächlich geworden 
sind oder die Anforderungen nicht erfüllen, die (vermutlich) garnicht 
vorhanden sind.

Absolute Positionierung von GUI-Elementen z.B. haben wir mal unter DOS 
gemacht (@TE: Mit TurboPascal 3 & Graphicstoolbox :p ). Heutzutage wäre 
man sehr verärgert, wenn das GUI sich beim Ändern der Fenstergröße nicht 
anpasst (man denke bloss mal an Sidebars die dann "mittig" auf dem 
Bildschirm stehen).

Zu DOS Zeiten war Watcom C ein praktisches Tool weil es die 640K 
Barriere sehr elegant umgehen konnte. Interessiert heute auf aktuellen 
Maschinen nicht mehr.

Für Apple-II gab es UCSD Pascal, das nicht 6502 Asm, sondern PCode 
auswarf (das Konzept sollte CIL & JIL Fans bekannt vorkommen). Tolles 
Tool. Interessierte keinen mehr als TurboPascal & IBM PC bezahlbar 
wurden.

Unbestritten gibt es heutzutage noch Anwendungen für statisch gelinkten 
Asm-code. Aber im "normalen" PC Umfeld ? Doch eher nicht.

Peter II schrieb:
> was wohl hochoptimierter Asm Befehle sind?
Das gibts wirklich. Die Instruction-selection der Codeerzeugungsphase 
des Compilers erzeugt aus dem Intermediate Code ja den ASM Schnipsel, 
der am besten passt, z.B "XOR X, X" (typ. 1-2 Byte) statt "MOX X, 
#$00000000" (mind. 5 Byte)

Ausserdem verkauft sich das ja toll an Leute, die das letzte Quentchen 
an Rechenleistung aus ihren Rechnern rausktzeln wollen, damit die Kiste 
mehr Zeit für die Idle-Loop hat. Man muss Prioritäten setzen ;-)

Grüße
Andreas

von Sven B. (scummos)


Lesenswert?

Ich schließe mich der Meinung von Andreas an. Ben, du gibst ja selber 
zu, dass du nicht so viel Erfahrung hast. Das ist ja auch völlig okay. 
Aber dann lass' Dir doch auch raten, dass zum Beispiel 
Pixel-positionierte GUIs einfach dem letzten Jahrtausend angehören. 
Natürlich kann man sich mit Anchors oder Layouts auch in den Fuß 
schießen, aber es ist halt trotzdem das bessere Konzept. Und dass da 
immer alles verrutscht oder so irgendwas ist ein Aberglaube, genau das 
Gegenteil ist der Fall: Probleme mit dem nachträglichen Einfügen eines 
Buttons hat man genau dann nicht, wenn man die Elemente in einem 
geeigneten Layout anordnet.

Dass hier einige etwas exotischere Vorschläge kommen war ja auch völlig 
klar, und die kann man auch ganz einfach ignorieren -- zweimal, wenn man 
keine stichhaltigen, klar und kurz zu formulierenden Argumente dagegen 
hat.

Für ein ebenso unsinniges Argument halte ich sowas wie "Größe der 
Executables"... okay, die sind bei einigen Lösungen größer als bei 
anderen. Und? Bringt das einen relevanten Performance-Nachteil (oder 
überhaupt sonst irgendeinen Nachteil)? Nein. Also?

Die Notwendigkeit zusätzlicher Abhängigkeiten hingegen könnte man schon 
eher zum Thema machen.

von Charlie (Gast)


Lesenswert?

Ben _ schrieb:
> Woher wußte ich, daß selbst bei so einfachen Fragen wieder Trolle mit
> völlig sinnfreien Postings ihren vergammelten Senf dazukippen müssen?
> Man muß es Dir schlecht gehen, daß Du mir auf Deibel komm raus versuchen
> mußt an die Karre zu pissen.

Er kapiert die Antwort nicht, also pöbelt er rum.

Dein 30-Byte-DOS-Programm macht viel weniger im Hintergrund als dein 
100kB-Delphi-Programm. DInge, die gebraucht werden, sobald man mehr 
machen will als das Spielprogramm "Konsole löschen", so daß der 
Unterschied schnell gering wird oder sich gar umdreht.

Aber nein, der Herr ist ja entweder zu dumm, das zu begreifen, oder zu 
etepetete ("mimimi, das ist Pascal, das mag ich nicht. C kenne ich zwar 
nicht, aber das ist viel besser. Sagen alle meine Leet-Kumpelz.").

von LangeSchlange (Gast)


Lesenswert?

Bin grad im python-Fieber (unter debian squeeze). Das einzige was jetzt 
doof ist: wenn ich Atmega8 proggen will muss ich in die low-level-Welt 
von C & co.

dank meiner langjährigen Erfahrung mit python (so ca. ne Woche) habe ich 
schon folgende Infos gefunden:

Man kann mit python:
- wissenschaftliche Berechnungen "freie Matlab-Konkurrenz" (numpy, 
scipy, matplotlib, ipython)
- games: z.B. pygame (ist im Grunde SDL)
- scripting
- web-programming (django)
- GUI: tk (nativ eingebaut), pygtk, pyqt, wxwidgets
- plattformunabhängig
- opensource-sprache
- schöne syntax
- interpretiert ( kann man auch mit reich werden, bsp.: minecraft in 
java [jaja, vom Tellerwäscher zum PopStar])


Wie aufwändig das Installieren der Bibos unter Windows ist weis ich 
nicht. Unter Debian squeeze z.B. copy&paste ins Terminal (wenn internet 
verbunden ist):

sudo apt-get install python python-qt4 python-matplotlib python-gnuplot 
python-scipy python-pygame python-wxtools

und man hat Alles, was cool ist. (Debian squeeze installiert 
python2.6.6)
(der Befehl sollte unter Ubuntu genauso funktionieren, weis aber nicht 
welche Versionen die dort installieren, wenn nicht, die tools einzeln 
installieren... Oder eben im grafischen Paketmanager in die 
Python-Kategorie gucken)

Ich wollte z.B. schon immer mal wissen, wie man 3D in der Praxis macht 
(also auch ohne openGL-Zauberrei, in Software und danach openGL lernen). 
Das kann man hier gut (in drei Stepps) nachvollziehen:
http://codentronix.com/2011/04/20/simulation-of-3d-point-rotation-with-python-and-pygame/
http://codentronix.com/2011/04/21/rotating-3d-wireframe-cube-with-python/
http://codentronix.com/2011/05/12/rotating-3d-cube-using-python-and-pygame/

:-)

von Sven B. (scummos)


Lesenswert?

Jetzt brauchst du nur noch kdevelop-python als IDE, dann ist das Ganze 
perfekt ;)

von Ben _. (burning_silicon)


Lesenswert?

Also sagen wir einfach mal aus persönlichen Gründen kommt mir Pascal und 
Delphi nicht ins Haus. Punkt, Aus, Ende, Feierabend. Bevor ich mit dem 
Dreck anfange mache ichs lieber mit Assembler und der Windows-API. Mir 
gefällt das beides einfach nicht und das geb ich offen zu, wo ist da das 
Problem? Das einzige was ich mir vorwerfen lassen muß ist, daß ich 
beides nicht bereits im Eröffnungsposting ausgeschlossen habe... Okay - 
mea culpa - kommt nicht wieder vor...!

Zweitens hab ich im Moment nicht vor, irgendwelche hochkomplexen 
Programme mit noch komplexerer Benutzeroberfläche zu schreiben. Und 
manche kacken sich ins Hemd weil zB. der Windows-Rechner nicht 
skalierbar ist - au man! Sowas in der Größe dieses Rechners oder ggf. 
noch kleiner reicht mir im Moment völlig aus, ob ihr's glaubt oder 
nicht! Ich habe auch niemanden hier, der mir bei der Einarbeitung in 
diese Dinge über die Schulter schauen und helfen kann wenn ich damit 
Probleme kriege. Meistens haben solche Entwicklungsumgebungen ja recht 
verworrene Strukturen, die man erstmal gar nicht nachvollziehen kann 
wenn man 3 Programme braucht um einen Quellcode zu erzeugen. Wenn ich 
irgendjemanden hätte, der's mir so weit beibringt, daß ich damit ohne 
Schiffbrüche brauchbare Ergebnisse erzielen kann, wärs was anderes. Hab 
ich aber nicht.

Drittens mag ich es irgendwie nicht, mehr Resourcen zu belegen, als ich 
wirklich brauche. Meiner Meinung nach sind genau solche Programme, die 
nach dem Prinzip "ooch ich nutze einfach alles was da ist, die Kiste 
idled da sowieso nur rum" arbeiten, mit daran schuld, daß man alle 2 
Jahre einen neuen Rechner "braucht". Mir ist eben nicht ganz egal was 
hinten am Ende für ein "Executable" rauskommt, mir ists lieb wenn das 
nur das beinhaltet was es wirklich braucht, klein, schnell und 
eigenständig ist. Es ist nicht mein absolutes primäres Ziel, aber es 
wäre einfach schön wenn es ohne Framework und Bluray für die .EXE geht. 
Kriegen andere Programmierer ja auch hin. Alles andere empfinde ich 
irgendwie als Ballast solange man es nicht wirklich braucht.
  Aber das kapiert natürlich niemand, für den in der heutigen 
Stress-Welt Geld und Zeit alles im Leben ist. Ich bin kein BWLer, ich 
muß mit dem Projekt nicht nach drei Tagen Millionen erwirtschaften um 
meinen dummen Chef noch fetter zu machen und am Ende wenn alles läuft 
die Kündigung zu kriegen damit andere mein Geld verdienen. Ich mache das 
als Hobby und da soll es nur Spaß machen, evtl. auch Spaß machen, die 
Sprache zu lernen. Ich investiere da gerne etwas mehr Zeit, wenn das 
Programm dafür am Ende schlanker, schneller und nicht auf alles andere 
angewiesen ist. Ich suche da den guten Mittelweg zwischen 
"all-inklusive", und "nur das nötigste". Am besten eine Sprache, die 
beides ermöglicht.

PureBasic muß ich mir mal anschauen, aber eigentlich wollte ich von 
Basic weg... C, bzw. eine Variante davon wäre mir lieb gewesen, weil ich 
es lieber anstelle von Pascal gelernt hätte.

> Aber nein, der Herr ist ja entweder zu dumm, das zu begreifen, oder zu
> etepetete ("mimimi, das ist Pascal, das mag ich nicht. C kenne ich zwar
> nicht, aber das ist viel besser. Sagen alle meine Leet-Kumpelz.").
Du pöbelst rum. Wahrscheinlich als Kind zu wenig Dreck gefressen? 
Schön, daß wenigstens Du das lustig findest.

> wie oben erwähnt rennt php auch auf der cmd-line...
Yep ich weiß, sowas hab ich schon als Cronjob gemacht, aber man kriegt 
damit halt keine Benutzeroberfläche hin. Das kann man machen wenn man 
irgendwas von festen Quellen einlesen, verarbeiten und in 'ne Datenbank 
reinschmeißen will, aber sonst... PHP ist auch keine Compilersprache, 
ohne Optimizer kann man nicht so viel von der Geschwindigkeit erwarten.

Naja, wie gesagt - Danke euch trotzdem!
Gute Nacht.

von Sven B. (scummos)


Lesenswert?

Naja, man muss sich halt entscheiden, ob man um Rat fragt, und dann auch 
mal die Vorurteile oder gestellten Ansprüche beiseite schiebt, und eine 
der vorgeschlagenen Lösungen in Betracht zieht, ohne von vorneherein von 
deren Tauglichkeit voll überzeugt zu sein -- oder ob man eh schon genau 
weiß, was man will (bzw. nicht will), was bei Dir der Fall zu sein 
scheint. In letzterer Situation hat ein solcher Thread wie dieser hier 
eigentlich wenig Sinn, denn jeder Vorschlag wird mit "will ich nicht, 
weil ich's nicht will" quittiert. Das kombiniert mit einem -- sorry -- 
doch relativ mäßigen Überblick über die Welt der Programmiersprachen und 
Frameworks macht jeden Versuch, hier weiterzuhelfen von vorneherein 
weitestgehend zunichte.

Oder kürzer: Ziehe mal in Betracht, dass die von dir so überzeugt 
geforderten Kriterien vielleicht nicht die richtigen sind. Vielleicht 
würde dir beim Testen einer der vorgeschlagenen Lösungen auffallen, dass 
du einem Vorurteil unterlegen bist, welches du dann revidieren musst 
(vielleicht auch nicht -- weiß man ja vorher nicht).

Oft stechen einem bei Sachen, die man nicht kennt, Details besonders 
in's Auge (sei es, weil man sie als besonders toll oder besonders 
schlimm bewertet), die sich später als überhaupt nicht relevant 
erweisen, oder bei näherer Betrachtung gar als Vorteil statt als 
Nachteil (hust Layouts hust). Ohne Ausprobieren kriegt man das aber 
nicht raus.

von Ben _. (burning_silicon)


Lesenswert?

Womit am besten ausprobieren? Also Deine Layouts... ohne daß ich sie 
hinterher verwenden MUSS. Wenn Du was passendes weißt, wo man beides 
kann (skalierbare Layouts wie absolute Positionierung oder "Freimalerei" 
im Fenster) probier ich es.

"Weil ichs nicht will" gilt nur für Pascal und Delphi. Bzw. für alles 
was auf Pascal aufbaut. Wie gesagt, hätte ich wohl gleich erwähnen 
müssen, das stand vorher schon fest.

von ich kenne Delphi, C++, Java und Co. (Gast)


Lesenswert?

Ben _ schrieb:
> aus persönlichen Gründen kommt mir Pascal und
> Delphi nicht ins Haus. Punkt, Aus, Ende, Feierabend. Bevor ich mit dem
> Dreck anfange

Ben _ schrieb:
> mag ich es irgendwie nicht, mehr Resourcen zu belegen, als ich
> wirklich brauche. Meiner Meinung nach sind genau solche Programme, die
> nach dem Prinzip "ooch ich nutze einfach alles was da ist, die Kiste
> idled da sowieso nur rum" arbeiten, mit daran schuld, daß man alle 2
> Jahre einen neuen Rechner "braucht". Mir ist eben nicht ganz egal was
> hinten am Ende für ein "Executable" rauskommt, mir ists lieb wenn das
> nur das beinhaltet was es wirklich braucht, klein, schnell und
> eigenständig ist. Es ist nicht mein absolutes primäres Ziel, aber es
> wäre einfach schön wenn es ohne Framework und Bluray für die .EXE geht.

Keine Ahnung vom Ka...

Delphi erzeugt mit den kompaktesten Code. Und wenn dann so ein 
Möchtegern, der noch nicht einmal den Unterschied zwischen C und C++ 
kennt, Windows Programme ins Assembler erzeugen will, na dann mal los!

Delphi und C++ können auch ohne grafische Klassenbibliotheken verwendet 
werden. Aber welchen Sinn macht das? Gerade das Framework verkürzt die 
Entwicklungzeit. Erprobte und effiziente Klassen zu verwenden ist nicht 
uncool, sondern schlau.

@Ben
MS-DOS und Turbo C sind Deine Welt, viel Spaß in den 80zigern.

von Ben _. (burning_silicon)


Lesenswert?

Du mußts ja wissen. Bestimmt bist Du auch deswegen als Gast unterwegs.

Win32-Assembler hab ich übrigens bereits verwendet, allerdings bei 
Programmen, die ohne Benutzeroberfläche auskommen. Das hat in der Tat 
Spaß gemacht.

Und nochmal - damit auch Du es kapierst - ich möchte kein Framework 
verwenden NUR weil es die Entwicklungszeit verkürzt.

Komme immer mehr zu dem Eindruck, daß das hier das gleiche ist wie wenn 
ich frage ob die AVR oder PIC die besten Einsteiger-µCs sind. Jeder hat 
seinen eigenen Kram und das Eine-für-alles gibt es nicht.

von ich kenne Delphi, C++, Java und Co. (Gast)


Lesenswert?

Ben _ schrieb:
> das Eine-für-alles gibt es nicht

Kling, der Groschen ist gefallen!

von PSblnkd (Gast)


Lesenswert?

@Ben
Nur mal 'ne Nachfrage zu meinem Posting v. 09.01.2013 08:18Uhr:

Du bist gegen Delphi und Pascal - na schön, warum auch immer.
Hast Du auch was gegen "AutoIt"? - Nur mal so interessehalber...
Vielleicht kann ich ja auch noch was dazulernen.

Grüsse aus Berlin

PSblnkd

von Charlie (Gast)


Lesenswert?

LangeSchlange schrieb:
> interpretiert ( kann man auch mit reich werden, bsp.: minecraft in
>
> java [jaja, vom Tellerwäscher zum PopStar])

Java wird kompiliert.

von Charlie (Gast)


Lesenswert?

Ben _ schrieb:
> Du pöbelst rum.

Im meiner ersten Antwort nicht. Nachdem du dich aber als absolute 
Drecksau erwiesen hast, werde ich dir nicht mehr gegenübertreten, als ob 
du ein Mensch wärst.

von meckerziege (Gast)


Lesenswert?

Ben _ schrieb:
> Bitte keine Zusammenklick-Sachen wie Delphi oder so,
> sondern schon eine "für mehr" brauchbare Programmiersprache,

Delphi war DAMALS sehr weit voraus! Viele Sachen die ich vor einigen 
Jahren in Delphi gesehen habe, kommen JETZT auch z.B. zu QT dazu.

QT kann ich voll empfehlen, das ist sehr angenehm und man kann damit 
Plattformübergreifend(!!) gute Programme schreiben.

Runterladen - installieren - fertig. Die Hilfe im Internet ist sehr gut, 
man findet viele Beispiele und auch ein Debugger usw. ist dabei.

von Robert L. (lrlr)


Lesenswert?

>Java wird kompiliert.


python auch (zumindest in bytecode)

von Quips (Gast)


Lesenswert?

meckerziege schrieb:
> QT kann ich voll empfehlen, das ist sehr angenehm und man kann damit
> Plattformübergreifend(!!) gute Programme schreiben.

Leider gibt's (noch) keine vernünftigen C# Bindings :-(

von Ben _. (burning_silicon)


Lesenswert?

> Im meiner ersten Antwort nicht.
[<<] [>]
> Wenn du Programme, die einfach nur den Bildschirm leeren und sich dann
> beenden, als deine Lebensaufgabe betrachtest, dann ist das eine
> sinnvolle Metrik. Und du bist mit Assembler gut bedient.
Das ist für Dich also eine sinnvolle und pöbelfreie Antwort? Okay, dann 
verrate ich Dir mal, daß es für mich eine absolut unsinnige 
Unterstellung ist und ich mir schon ein wenig verarscht vorkomme dabei. 
Wie gesagt, schön wenn wenigstens Du drüber lachen kannst, dann hat's 
immerhin etwas gebracht. Hilft mir aber in keiner Form weiter. Ich 
denke auch nicht, daß ich Dich nach Deinem letzten Posting noch vor mir 
sehen will, erspart mir lästige Erklärungen gegenüber dem Staatsanwalt.

AutoIt muß ich überlesen haben sorry. Kenne ich nicht, werd ich gleich 
mal nach schauen was das ist.

EDIT:
AutoIt scheint mir nicht geeignet, sorry.

von Εrnst B. (ernst)


Lesenswert?

Also, Zusammengefasst:

Du möchtest was C-Ähnliches. Also kein Pascal, Basic, Python, 
Whitespace, Brainf*ck...

Du kommst aus der Assembler-Ecke, und möchtest zumindest die Möglichkeit 
haben, hardwarenah an Registern herumzufrickeln. Also nix mit einer 
IL-Zwischenschicht, kein C#, Managed C++, XXX.NET, Java, ...

Vorschlag: Echtes C oder Echtes C++.

Wenn das in Grundzügen gelernt ist:
Dazu für die GUI entweder direkt an die Win32-API oder eine 
Klassenbibliothek (QT, GTK, wxWidgets, MFC, ...)
Aber: diese Entscheidung kann man sich aufheben, und auch wieder 
revidieren, ohne dass das bisher mühsam angelernte C++ seinen Wert 
verliert.

Und ja, niemand zwingt dich, intelligente Layout-Manager einzusetzen. 
Auch z.B. bei der QT kannst du mit absoluten Pixel-Koordinaten arbeiten.

Und nein, QT-Programme werden keine riesigen EXE-Monster. Die QT-DLL 
selber ist zwar groß, aber die kann (zumindest in der Theorie, bzw. bei 
Betriebssystemen ohne "DLL-Hell") von mehreren Programmen geshared 
werden, und ist dann auch nur einmal im RAM.

von Ben _. (burning_silicon)


Lesenswert?

So weit kommts noch - daß trollende Gäste hier festlegen wann Threads zu 
schließen sind.

> Du kommst aus der Assembler-Ecke, und möchtest zumindest die
> Möglichkeit haben, hardwarenah an Registern herumzufrickeln.
> Also nix mit einer IL-Zwischenschicht, kein C#, Managed C++,
> XXX.NET, Java, ...
Nicht zwingend. Es wäre schön wenn Inline-Assembler möglich ist, aber 
wenn der Rest stimmt muß ich darauf halt verzichten.

Über C# denke ich schon nach, das ist auf jeden Fall in der engeren 
Wahl.

> Vorschlag: Echtes C oder Echtes C++.
Welches von beiden würdest Du dann eher empfehlen? Angesichts des 
Hintergrundes Basic, Assembler und PHP, sowie der "Aufgabe" 
Windows-Anwendung erstellen?

von rüdiger (Gast)


Lesenswert?

Hallo, Ben.

Schau Dir mal GfA-Basic für Windows an:

http://gfabasic32.blogspot.de/p/download.html

Bietet alle Vorteile eine modernen Programmiersprache, erzeugt sehr 
kompakten und schnellen Code. X86-Assembler kann problemlos "Inline" 
eingefügt werden. Und die Entwicklungsumgebung ist nicht mit sinnfreien 
Features überfrachtet.

Gruß,
Rüdiger

von Εrnst B. (ernst)


Lesenswert?

Ben _ schrieb:
> Welches von beiden würdest Du dann eher empfehlen? Angesichts des
> Hintergrundes Basic, Assembler
Klar: C.

> und PHP,
Je nach dem. Objektorientiertes PHP? Dann C++. Ansonsten: C.

> sowie der "Aufgabe"
> Windows-Anwendung erstellen?
ganz Klar: C++.

OO bietet sich für GUIs einfach an. Klar, man kann auch mit C 
objektorientiert Programmieren, aber "schön" ist das nicht.

Aber: C++ und C haben eine sehr große Schnittmenge.
Du kannst in C++ erstmal C Programmieren, und dann je nach Bedarf 
C++-Konzepte einwerfen.

z.B. Die "REPNZ"-Inspirierte String-Bearbeitung in C nervt dich? 
Verwende std::string. Nach der dritten Doppelt-Verketteten Liste in C 
hast du besseres zu tun? Verwende für die vierte eine std::list usw...

von Andreas H. (ahz)


Lesenswert?

Ben _ schrieb:
> Mir ist eben nicht ganz egal was
> hinten am Ende für ein "Executable" rauskommt, mir ists lieb wenn das
> nur das beinhaltet was es wirklich braucht, klein, schnell und
> eigenständig ist.

Das kann ich nachvollziehen.

Das Problem dabei:

SW-Entwicklung kostet Geld im gewerblichen Bereich. VIEL Geld. Also 
werden alle Werkzeuge auf möglichst hohen Durchsatz optimiert.
Auch OpenSource Tools orientieren sich dann natürlich an 
"Industriestandards" und deren Möglichkeiten (und damit auch 
Komplexität).

Ich bin ein großer Fan der Idee nur eine Baustelle gleichzeitig 
aufzumachen (auch wenn das meist nicht klappt).

Darum fand das oben erwähnte PowerBasic gar nicht schlecht für Dich.
Basic kannst Du, wäre also kein großes Thema.
Die Möglichkeiten des Tools sehen vielversprechend aus (es erzeugt auch 
.exe's)
Es hat bietet gute Möglichkeiten auf das OS (inkl. GUI) zuzugreifen.

Du könntest Dich damit also in die aktuelle Win Umgebung einarbeiten, 
Applikationen erstellen und Erfahrung mit den APIs sammeln.

Im zweiten Schritt könntest Du dann auf c#,c++, whatever umsteigen und 
müßtest Dich hier nur noch mit der neuen Sprache auseinandersetzen. Den 
Rest kennst Du dann ja schon.

Also jeweils nur eine "Baustelle" offen.

Ach ja: Und es ist keine Pascal^^ (sry, der muste sein  ;-)

Gruß
Andreas

von Ben _. (burning_silicon)


Lesenswert?

In solche Fallen wie die Stringbearbeitung werd ich wohl erstmal 
reinlaufen... :-/

Objektorientiert ist nicht meine Stärke, hab ich leider nie gelernt 
weils mir nie einer gezeigt hat. Vielleicht finde ich ja ein gutes 
Tutorial dazu.

An PHP find ich halt klasse, daß es Dir fast alle Freiheiten läßt. Okay, 
kein Inline-Assembler, aber zur Not kann man externe Programme ausführen 
lassen. Kann aber dafür leider keine besonders hohe Geschwindigkeit und 
kein GUI - dafür ists einfach nicht gedacht.

von Thomas (Gast)


Lesenswert?

Hi

VB .NET
kostenlos von Microsoft mit Visual Studio 2012.
Löst alle Probleme.

Habe damit gerade einen USB Programmer für meine DCC Servodecoder 
programmiert. Nach 2 Wochen Einarbeitungszeit.

back to the BASICs!

Gruß
Thomas

von Ben _. (burning_silicon)


Lesenswert?

Ah cool. Was ist dabei hinten rausgekommen, 'ne einzelne .EXE?

von Peter II (Gast)


Lesenswert?

Thomas schrieb:
> VB .NET
> kostenlos von Microsoft mit Visual Studio 2012.
> Löst alle Probleme.

Ben _ schrieb:
> Ah cool. Was ist dabei hinten rausgekommen, 'ne einzelne .EXE?

ist auch nur .net kommt die gleiche exe wie bei C# raus. Auch die 
Klassen und methoden sind gleich. Es ist nur eine andere Sprache von 
.net

von Sven B. (scummos)


Lesenswert?

Ben _ schrieb:
> Womit am besten ausprobieren? Also Deine Layouts... ohne daß ich sie
> hinterher verwenden MUSS.
Man kann ja auch mal zwei Tage was ausprobieren und das dann hinterher 
wieder wegwerfen. Mache ich ständig.

von Paul Baumann (Gast)


Lesenswert?

Ich benutze gern PureBasic.
Dort bekommt man eine .exe-Datei heraus, die nichts weiter um sich 
braucht.
Weiterhin schreibt man den ganzen Quelltext selbst, so daß nicht von
der Bedienoberfläche irgendwelches unleserliches Zeug hinzugefügt wird,
wenn man zum Beispiel eine Schaltfläche erzeugt.

Probiere das mal aus.

Lazarus ist mir auch ganz angenehm, aber Du wolltest ja nichst 
"pascalliges"

MfG Paul

von Na (Gast)


Lesenswert?

Du wirst dich wundern was deine "einzelne .EXE" (sic!) so alles an 
imports hat.

von Peter S. (psavr)


Angehängte Dateien:

Lesenswert?

>Du wirst dich wundern was deine "einzelne .EXE" (sic!) so alles an
>imports hat.
Ist gar nicht so schlimm, siehe beigefügten Dependency-Screenshot! Ich 
habe einst dieses simple Ping-Progrämmchen mit PureBasic geschrieben, 
das ganze Programm ist 32.5kByte gross, inkl. GUI und NEIN: es ist auch 
nicht bloss ein Wrapper für das Ping der Command-Shell.

Bei einem .net Programm hingegen kommt mir das nackte Grauen auf, wenn 
man sieht, was da alles mitreingezogen wird...

von Quips (Gast)


Lesenswert?

Peter S. schrieb:
> Bei einem .net Programm hingegen kommt mir das nackte Grauen auf, wenn
> man sieht, was da alles mitreingezogen wird...

Bei mir kommt das nackte Grauen auf wenn ich sehe, dass es immer noch 
Leute gibt, die meinen ständig das Rad neu erfinden zu müssen. Bloss 
kein wiederverwendbares Standard-Framework einsetzen weil Abhängigkeiten 
ja SO BÖSE sind. Lieber alles selber schreiben, damit ja keine 
Abhängigkeiten entstehen...

von Paul Baumann (Gast)


Lesenswert?

Quips schrabte:
>Lieber alles selber schreiben, damit ja keine
>Abhängigkeiten entstehen...

Ganz grünau!

Lieber alles selber schreiben und dadurch verstehen müssen , was 
passiert.

Ich habe lediglich im übertragenen Sinn aufgezeigt, welche Suppe mir 
schmeckt und welche ich ohne Magenschmerzen verdauen kann.

Es muß niemand mitessen -ich mache das auch allein.
;-)
MfG Paul

von Thomas E. (thomase)


Lesenswert?

Peter S. schrieb:
> Ist gar nicht so schlimm, siehe beigefügten Dependency-Screenshot! Ich
> habe einst dieses simple Ping-Progrämmchen mit PureBasic geschrieben,
> das ganze Programm ist 32.5kByte gross, inkl. GUI und NEIN: es ist auch
> nicht bloss ein Wrapper für das Ping der Command-Shell.
> Bei einem .net Programm hingegen kommt mir das nackte Grauen auf, wenn
> man sieht, was da alles mitreingezogen wird...
Toll. 32K5. Mit GUI.
Mit C# oder VB wäre so eine Kleinigkeit nur 20K groß. Für alles andere 
sorgt das nackte Grauen.

mfg.

von Peter II (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Mit C# oder VB wäre so eine Kleinigkeit nur 20K groß.

verschätzt, nur 6656 bytes. Kleiner geht scheinbar auch nicht.

von Jürgen W. (lovos)


Lesenswert?

> AutoIt scheint mir nicht geeignet, sorry.

Sehe ich genauso.
Wenn das Programm mal fertig ist, könnte man überlegen mittels AutoIt es 
zu testen.

von Peter S. (psavr)


Lesenswert?

>Mit C# oder VB wäre so eine Kleinigkeit nur 20K groß
>verschätzt, nur 6656 bytes. Kleiner geht scheinbar auch nicht
Dann lasst mal sehen und postet ein lauffähiges Beispiel-EXE. Ohne 
Beweis stemple ich derartige Aussagen als leere Behauptungen ab!

>Bei mir kommt das nackte Grauen auf wenn ich sehe, dass es immer noch
>Leute gibt, die meinen ständig das Rad neu erfinden zu müssen
Ich weiss nicht auf was Du diese Aussage beziehst, in meinem Beispiel 
ist kein neu erfundenes Rad mit dabei...

von Quips (Gast)


Angehängte Dateien:

Lesenswert?

Etwas lieblos zusammengestückelt: die kommt auf 8kb.

von Peter II (Gast)


Angehängte Dateien:

Lesenswert?

Peter S. schrieb:
> Dann lasst mal sehen und postet ein lauffähiges Beispiel-EXE. Ohne
> Beweis stemple ich derartige Aussagen als leere Behauptungen ab!

gerne doch (fehlerbehandun für ungültigen host fehlt noch)

Hier auch noch der Quellcode:
1
    void Button1Click(object sender, EventArgs e)
2
    {
3
      if ( textBox1.Text.Length == 0 ) {
4
        return;
5
      }
6
      textBox2.Clear();
7
      for( int i = 0; i < 3; ++i ) {
8
        if ( i > 0 ) {
9
          System.Threading.Thread.Sleep(1000);
10
        }
11
        System.Net.NetworkInformation.Ping p = new System.Net.NetworkInformation.Ping();
12
        System.Net.NetworkInformation.PingReply r =  p.Send(textBox1.Text);
13
        textBox2.Text += "Ping to " + textBox1.Text + " .. " + r.RoundtripTime + "ms\r\n";
14
      }

von Peter II (Gast)


Lesenswert?

Quips schrieb:
> Etwas lieblos zusammengestückelt: die kommt auf 8kb.

warum ist deines so gross, was hast du im code stehen?

von Quips (Gast)


Lesenswert?

Eigentlich noch weniger als du:

private void button1_Click(object sender, EventArgs e)
    {
      Ping p = new Ping();
      var reply = p.Send(textBox1.Text);
      MessageBox.Show("Ping: " + reply.RoundtripTime + "ms");
    }

Liegts vielleicht am Dateisystem? Die exe ist nämlich EXAKT 8kb groß, 
das kommt mir ein bisschen spanisch vor...

von Peter II (Gast)


Lesenswert?

Quips schrieb:
> Liegts vielleicht am Dateisystem? Die exe ist nämlich EXAKT 8kb groß,
> das kommt mir ein bisschen spanisch vor...

nein ganz bestimmt nicht. du hast einen langen copyright drin stehen, 
damit wird scheinbar eine grenz überschritten und du braucht die nächste 
einheit. Das sind scheinbar immer 2048byte.

von Ben _. (burning_silicon)


Lesenswert?

Ey da ist aber gar nichts skalierbar ... ;)
**sich in Deckung wirft**

Was mich zu diesen Beispielen mal interessieren würde - wo ist das 
Layout festgelegt?

Hat noch wer ein Beispiel in C/C++? ;)

von Peter S. (psavr)


Lesenswert?

>gerne doch (fehlerbehandun für ungültigen host fehlt noch)
Naja, ich würde sagen die Programm tuen etwa proportional zur Grösse 
auch entsprechend weniger... Es kommt z.B. auch 0ms wenn keine Anwort!

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Was mich zu diesen Beispielen mal interessieren würde - wo ist das
> Layout festgelegt?

Hier:
1
private void InitializeComponent()
2
    {
3
      this.textBox1 = new System.Windows.Forms.TextBox();
4
      this.button1 = new System.Windows.Forms.Button();
5
      this.textBox2 = new System.Windows.Forms.TextBox();
6
      this.SuspendLayout();
7
      // 
8
      // textBox1
9
      // 
10
      this.textBox1.Location = new System.Drawing.Point(30, 22);
11
      this.textBox1.Name = "textBox1";
12
      this.textBox1.Size = new System.Drawing.Size(100, 20);
13
      this.textBox1.TabIndex = 0;
14
      // 
15
      // button1
16
      // 
17
      this.button1.Location = new System.Drawing.Point(136, 19);
18
      this.button1.Name = "button1";
19
      this.button1.Size = new System.Drawing.Size(75, 23);
20
      this.button1.TabIndex = 1;
21
      this.button1.Text = "button1";
22
      this.button1.UseVisualStyleBackColor = true;
23
      this.button1.Click += new System.EventHandler(this.Button1Click);
24
      // 
25
      // textBox2
26
      // 
27
      this.textBox2.Location = new System.Drawing.Point(30, 48);
28
      this.textBox2.Multiline = true;
29
      this.textBox2.Name = "textBox2";
30
      this.textBox2.Size = new System.Drawing.Size(181, 162);
31
      this.textBox2.TabIndex = 2;
32
      // 
33
      // MainForm
34
      // 
35
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
36
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
37
      this.ClientSize = new System.Drawing.Size(235, 229);
38
      this.Controls.Add(this.textBox2);
39
      this.Controls.Add(this.button1);
40
      this.Controls.Add(this.textBox1);
41
      this.Name = "MainForm";
42
      this.Text = "ping";
43
      this.ResumeLayout(false);
44
      this.PerformLayout();
45
    }
46
    private System.Windows.Forms.TextBox textBox2;
47
    private System.Windows.Forms.Button button1;
48
    private System.Windows.Forms.TextBox textBox1;
49
  }

> Hat noch wer ein Beispiel in C/C++? ;)
nö, das macht man mal nicht so ebend schnell. Da gibt es ja nicht mal 
befehle für ping.

von Ben _. (burning_silicon)


Angehängte Dateien:

Lesenswert?

Hab's schon kaputtgekriegt... ;)

Steht das Layout mit im Quellcode drin oder irgendwo anders?

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Steht das Layout mit im Quellcode drin oder irgendwo anders?

ja, habe ich doch schon gepostet.

von Peter S. (psavr)


Lesenswert?

>> Hat noch wer ein Beispiel in C/C++? ;)
>nö, das macht man mal nicht so ebend schnell. Da gibt es ja nicht mal
>befehle für ping.
Befehle für "Ping" gibt es mit PureBasic leider auch nicht, aber man 
kann (bzw muss) direkt auf die ICMP-Objekte vom System zugreifen.

von Thomas E. (thomase)


Lesenswert?

Ben _ schrieb:
> Steht das Layout mit im Quellcode drin oder irgendwo anders?
Na wo denn sonst.
Das ist eine von mehreren Quellcodedateien. Diese wird vom Form-Designer 
selbst erzeugt. Das ist genau das, was manche verächtlich Klicki-Bunti 
nennen.
Darin stehen alle Informationen, die das Framework braucht, um genau 
dieses Fenster zu erzeugen. Mit einem Button und zwei Textboxen. In dem 
Style, den du auf deinem Rechner eingstellt hast. Änderst du den Style, 
sieht auch das Fenster anders aus.

Dahinter, in einer anderen Sourcedatei, werkelt dann der eigentliche 
Code. Für den ist der Programmierer aber ganz allein selbst 
verantwortlich.

Das kannst du natürlich auch alles zu Fuß machen, wenn du es gerne 
möchtest.

mfg.

von Ben _. (burning_silicon)


Lesenswert?

Yep, ich meinte ob das in der gleichen Datei steht oder in einer 
anderen...

Okay und damit sind auch "direkte zeichnerische Zugriffe" auf das 
Fenster möglich? Oder Zugriffe auf die Hardware wie USB-Schnittstellen? 
Kriegt man damit Abfragen hin, wenn der User irgendwo ins Fenster 
klickt, wo er "getroffen" hat?

Wahrscheinlich werd ich da noch viele viele (dumme) Fragen haben und 
etliche Tutorials brauchen um sowas und die ganzen Klassen zu lernen. 
Erinnert ein wenig an JavaScript.

von Quips (Gast)


Lesenswert?

Ben _ schrieb:
> Okay und damit sind auch "direkte zeichnerische Zugriffe" auf das
> Fenster möglich?

Wenn du unbedingt musst kannst du auch kleine Strichmännchen auf dein 
fenster zeichnen ;-)

Ben _ schrieb:
> Kriegt man damit Abfragen hin, wenn der User irgendwo ins Fenster
> klickt, wo er "getroffen" hat?

Ja, für sowas gibt es Events. Die werden vom system aufgerufen sobald 
etwas passiert ist (z.B. Mausklick bei X/Y).

von Thomas E. (thomase)


Lesenswert?

Ben _ schrieb:
> Yep, ich meinte ob das in der gleichen Datei steht oder in einer
> anderen...
Am Ende steht alles in einer exe. Oder wie meinst du das jetzt?

Ben _ schrieb:
> Okay und damit sind auch "direkte zeichnerische Zugriffe" auf das
> Fenster möglich? Oder Zugriffe auf die Hardware wie USB-Schnittstellen?
> Kriegt man damit Abfragen hin, wenn der User irgendwo ins Fenster
> klickt, wo er "getroffen" hat?
Alles.
Zugriffe auf irgendwelche Hardware erfolgen nicht direkt. Ein PC ist ja 
kein Controller. Der Zugriff erfolgt über Treiber. Und dafür braucht man 
ein SDK. Für Standardsachen sind die schon drin, Drucker, COMx, 
Dateizugriffe z.B.. Hast du eine Kaffeemaschine mit USB, brauchst du ein 
SDK vom Hersteller.

Ben _ schrieb:
> Erinnert ein wenig an JavaScript
Ist das gleiche Konzept.

mfg.

von Ben _. (burning_silicon)


Lesenswert?

Kann mir jemand sowas kurz zeigen wie's geht?

Die Größe der .EXE und daß sie bei mir läuft ohne daß ich noch diverse 
SDKs und Frameworks installieren muß ist aber auf jeden Fall schon mal 
schön.

von Ben _. (burning_silicon)


Lesenswert?

> Am Ende steht alles in einer exe. Oder wie meinst du das jetzt?
Nö, ob es in mehreren getrennten Dateien steht. Wurde schon beantwortet 
und finde ich nicht sooo toll (daß es mehrere sind), aber kann ich mit 
leben.

Yep mir ist schon klar, daß ich "nur" auf die Gerätetreiber zugreifen 
kann. Aber USB zB. ist nicht ohne weiteres möglich? Was ist wenn ich auf 
einen eigens programmierten Controller via USB zugreifen will?

von Sven B. (scummos)


Lesenswert?

Warum sollte man denn überhaupt direkt in das Fenster zeichnen wollen? 
Für sowas gibt es Canvas-Widgets. Dasselbe für Mausklicks: Warum? Was 
interessiert dich, wo der Benutzer auf den Button geklickt hat? Oder, 
warum interessiert dich überhaupt, dass der Benutzer auf den Button 
geklickt hat? Er könnte ja auch eine Taste dafür benutzen.

Klar gibt es Fälle, in denen man wissen will, wo genau geklickt wurde, 
aber ein Fenster mit Buttons ist keiner dieser Fälle. Für sowas benutzt 
man dann eine Zeichenfläche. Alles andere ist Mist, weil es zu UIs 
führt, die sich nicht so verhalten, wie man es erwartet. Ein Beispiel 
dafür ist LabView, die haben auch alles viel "besser" gemacht, deshalb 
kann man Fenster nicht skalieren, Buttons nicht mit Tasten bedienen, und 
Kontextmenus funktionieren auch nicht wie sie sollen.

Qt macht das natürlich :) richtig: in einem GraphicsView kann man genau 
sehen, was der Benutzer macht:
http://doc.qt.digia.com/qt/qgraphicsview.html#mouseMoveEvent
Für einen Button hingegen geht das standardmäßig nicht.
http://doc.qt.digia.com/qt/qpushbutton.html

von Zuschauer (Gast)


Lesenswert?

von

Ben _ schrieb:
> Und nochmal - damit auch Du es kapierst - ich möchte kein Framework
> verwenden

nach

Ben _ schrieb:
> Wahrscheinlich werd ich da noch viele viele (dumme) Fragen haben und
> etliche Tutorials brauchen um sowas und die ganzen Klassen zu lernen.
> Erinnert ein wenig an JavaScript.

Ei, ei, schau her. Der Bennie kapiert so langsam worum es geht. 
Wahrscheinlich endet er doch noch bei Delphi oder Lazarus. >:->>>

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Kann mir jemand sowas kurz zeigen wie's geht?

hast du es dann schon mal geschaft das charpdevlop zu installierne, oder 
sollen wir dabei auch helfen?

von Sven B. (scummos)


Lesenswert?

Was ich gerade über den Button und Mouse Events gesagt habe war 
wahrscheinlich Unsinn, geht denke ich auch da ohne Probleme. Nvm.

von Thomas E. (thomase)


Lesenswert?

Ben _ schrieb:
> Kann mir jemand sowas kurz zeigen wie's geht?

Lade dir erstmal VisualC# oder VisualBasic als Expressedition runter. 
Dann legst du ein Projekt an, eine Windowsanwendung. Dann siehst in der 
IDE ein Fenster, Form1, das ist deine Anwendung. Aus der Toolbox ziehst 
du dann mit der Maus alles rein, was du brauchst. Und dann kümmerst du 
dich um das wesentliche. Nämlich den Code, der dafür sorgt, daß beim 
Klicken auf Button1, deiner Freundin eine SMS geschickt wird, in der 
steht, daß sie heute alleine ins Kino gehen muß, weil du gerade was 
besseres zu tun hast.

Zuschauer schrieb:
> Wahrscheinlich endet er doch noch bei Delphi oder Lazarus. >:->>>
Hoffentlich nicht.

mfg.

von PSblnkd (Gast)


Lesenswert?

Ben _ schrieb:
> AutoIt scheint mir nicht geeignet, sorry.

... und bitte mit welcher Begründung? Da trügt der "Schein"...

Schon mal was mit "AutoIt" programmiert?
Ihr werdet Euch wundern, wie einfach das geht!

Aber wer sich unbedingt mit den Höhen und Tiefen von OO rumquälen will, 
na bitteschön, dem sei's gegönnt.

PowerBasic ist auch ganz nett, vorallem sind die Tools "Libary Manager" 
und "COM Browser" sehr hilfreich - auch AutoIt.

Grüsse aus Berlin

PSblnkd

von Ben _. (burning_silicon)


Lesenswert?

> Wahrscheinlich endet er doch noch bei Delphi oder Lazarus. >:->>>
Eher friert die Hölle zu!

Hab mich da evtl. auch falsch ausgedrückt - ich möchte keine Frameworks 
benutzen, die ich hinterher mit mir rumschleppen muß. Der Nachteil der 
(deutlich?) schlechteren Geschwindigkeit gegenüber C bei komplexen 
Berechnungen bleibt aber, oder?

@Peter II
Werd ich gleich mal machen.

von Peter II (Gast)


Lesenswert?

Ben _ schrieb:
> Der Nachteil der
> (deutlich?) schlechteren Geschwindigkeit gegenüber C bei komplexen
> Berechnungen bleibt aber, oder?

der war NIE da.

von Neunmalklug (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Dann siehst in der
> IDE ein Fenster, Form1, das ist deine Anwendung. Aus der Toolbox ziehst
> du dann mit der Maus alles rein, was du brauchst.

Aber das will er doch nicht. Er möchte alles zu Fuß und selbst machen:

Ben _ schrieb:
> Bitte keine Zusammenklick-Sachen wie Delphi oder so,
> sondern schon eine "für mehr" brauchbare Programmiersprache, die auch
> Win32 bzw. Win64 Anwendungen kann.

Letztendlich geht es doch entweder
um moderne OOP mit entsprechenden Klassenbibliotheken und einem 
effektiven Framework für aktuelle PCs mit aktuellen BS
oder
um hardwarenahe strukturierte Programmierung, wie *resourcenschonend für 
µCs sinnvoll* ist.

von Sven B. (scummos)


Lesenswert?

Delphi ist doch kein Framework...
Ich finde deine ganzen Ansprüche relativ wirr, muss ich sagen. 
Vielleicht solltest du mal ein paar konkrete Problemstellungen nennen, 
die du angehen willst. Nicht für jedes Problem ist jede Sprache 
geeignet. Ich nutze viel C++/Qt und Python (evtl. auch mit Qt), damit 
kann man viele Dinge gut abdecken. Wenn's schnell sein muss oder ich den 
Eindruck habe, dass statisches Typing in diesem Fall besonders hilfreich 
wäre, nehme ich C++/Qt, ansonsten (wenn ich nur ein paar Fenster bauen 
oder Daten umformatieren will) Python. Manchmal schreibe ich z.B. für 
numerische Simulationen auch schnell einen Prototypen in Python, und 
wenn der zu langsam ist, mach' ich's in C++ noch einmal.

Ich kann nur nochmal wiederholen, dass ich den Eindruck habe, dass deine 
Beurteilung der Vorschläge großteils auf Vorurteilen basiert, von denen 
du weite Teile revidieren würdest, würdest du eine Woche mit der 
betreffenden Lösung arbeiten. Vielleicht liege ich auch falsch, aber ich 
würde dir zumindest raten, diese Möglichkeit in Betracht zu ziehen.

von Thomas (Gast)


Lesenswert?

Ich weiß gar nicht was diese immer gleichen Diskussionen alle 2 Monate 
hier immer sollen.
In der Überschrift steht doch eindeutig: "Windows-Oberfläche"
Und da gibt es halt nur eine einzige Empfehlung die man einem 
Neueinsteiger ohne Altlasten und Spezialanforderungen geben kann, 
nämlich .NET. Egal von VB oder C#.

Alles andere was hier so an Vorschlägen kommt ist doch nur was wenn man 
irgendwelche Kompromisse eingehen muss, etwa wegen 
plattformunabhängigkeit.
Und dann gibt es noch ein paar Altlasten von Leuten die nie etwas 
anderes gelernt haben und sich auch nicht mehr weiter entwickeln wollen.
Mag ja sein, dass diese Exoten für diese Leute gut funktionieren, aber 
sowas kann man doch nicht ernsthaft einem Neueinsteiger als Tipp geben.

Also: Visual Studio .NET
Damit geht alles vom kleinen Helferlein bis zur mächtigen Enterprise 
Anwendung.
Und trotzdem ist die Einstiegshürde sehr gering, man kommt schnell zu 
Erfolgen.
Express Edition ist kostenlos.
Ich bevorzuge C#, aber wenn du VB bereits kannst ist das auch I.O.

von Sven B. (scummos)


Lesenswert?

Ich ziehe Qt .NET jederzeit vor, auch wenn ich keine 
Plattformunabhängigkeit brauche. ;)

von Hans (Gast)


Lesenswert?

Für meinen Geschmack Full ACK!

Wenn man GUI macht gibts Qt und .Net (Java ist dafür dank 
Netbeans-Klicksi-GUI-Helper auch Ok).

Wenn man wirklich speed braucht, kommt man um OpenMP und konsorten eh 
nicht herum... da hilft auch kein ASM-programmieren...

Und da man auf die Hardware eh nicht mehr zugreifen kann, stelle ich 
alle nicht High-Level-Sprachen (also auch C un C++ ohne Qt/GTK/.net/...) 
am PC (command-line ausgenommen) ernsthaft in frage.

73

von Esoteriker (Gast)


Lesenswert?

Ich weis nicht ob diese Programmiersprachen schon empfohlen wurden.

http://de.wikipedia.org/wiki/Brainfück   <-- ü durch u ersetzen!
http://de.wikipedia.org/wiki/Malbolge
http://99-bottles-of-beer.net/language-malbolge-995.html

von Sven B. (scummos)


Lesenswert?

Malbolge kann ich auch empfehlen.

Aber im Ernst, Brainf*ck ist sehr lehrreich! ;)

von Charlie (Gast)


Lesenswert?

Ben _ schrieb:
> Das ist für Dich also eine sinnvolle und pöbelfreie Antwort?

Ja, ist es. Dein Denkfehler wird klar erkennbar thematisiert, und du 
wurdest in deiner Person in keinster Weise verunglimpft. Das hast du 
dann getan.

Daß du dir deiner kriminellen Neigungen bewußt bist, zeigt ja schön 
deine obige Drohung, nach einem Treffen würde dich wohl der Staatsanwalt 
befragen müssen.

von Brater (Gast)


Lesenswert?

Oh Maaannn....

Wer ein wenig C++ und C gemacht hat und einen guten Einstieg in C# hat, 
wird bei C# bleiben. Die Sprache hat sehr viele Vorteile gegenüber 
klassischem C++ Kram. Wer jetzt wieder rumschreit wegen 
Plattformabhängigkeit: hat man bei Cpp auch nicht ;-P (zumindest in der 
GUI). Im Gegenteil: durch Mono kann man sehr gut mittlerweile portieren 
(abgesehen von den allerneuesten Features, die müssen immer erst noch 
nachimplementiert werden). Wer nach Qt schreit: schaut euch mal den 
Leidensweg von Qt an... Mit den Lizenzen usw. ist das auch nicht immer 
einfach und wer weiß, wie es mit Nokia weitergeht (momentaner Inhaber 
von Qt). Außerdem werden die Hauptfehlerquellen von Cpp in C# von vorn 
herein nahezu ausgeschlossen: Casting, Pointer usw. Ich will nicht damit 
sagen, dass Pointer schlecht sind - sie erlauben sehr effizientes 
Programmieren. Für den Heimanwender ist das aber eigentlich egal und es 
ist nun mal eine sehr sehr große Fehlerquelle - auch für 
Fortgeschrittene.

Eventuelle Alternative: Java. Wer jetzt schreit: da kommt doch keine EXE 
raus - auch nur die halbe Wahrheit. 1. ist die Verbreitung von Java sehr 
gut. 2. gibt es (zumindest für Windoofs) das Java Runtime als portable 
Version. Sicherlich gibt es auch irgendwelche Wrapper, mit dem Teile der 
Java Runtime direkt in eine EXE gepackt werden.

Wegen Win API: das kann sich auch mal irgendwann ändern. Gerade in 
Zeiten von Kacheln, mobilen Anwendungen usw. verliert eine antiquirte 
Win API an Wert.

von Sven B. (scummos)


Lesenswert?

Brater schrieb:
> Mit den Lizenzen usw. ist das auch nicht immer einfach
Was ist daran kompliziert? Qt steht unter der LGPL.

> Nokia [...] (momentaner Inhaber von Qt).
Nö: 
http://www.heise.de/developer/meldung/Digia-uebernimmt-Nokias-restliche-Qt-Aktivitaeten-1663660.html

von Brater (Gast)


Lesenswert?

Sven B. schrieb:
> Brater schrieb:
>> Mit den Lizenzen usw. ist das auch nicht immer einfach
> Was ist daran kompliziert? Qt steht unter der LGPL.
>
>> Nokia [...] (momentaner Inhaber von Qt).
> Nö:
> http://www.heise.de/developer/meldung/Digia-uebern...

Nagut, da hab ich einen alten Wissensstand und lass mich eines Besseren 
belehren. Dann ist Qt natürlich tendenziell wieder interessant. Wobei C# 
trotzdem auch sehr viel Spaß macht. Selbst ohne UI ist C# eine tolle 
Sprache nach der Eingewöhnung (man kann halt nicht mehr wirklich 
casten... macht aber nix, weil alles irgendwie ohne Casting realisierbar 
ist).

von Sven B. (scummos)


Lesenswert?

Sicher -- ich wollte nur die Gerüchteküche, die aus irgendwelchen 
Gründen immer um KDE und Qt köchelt, ein wenig dämpfen ;)

von Michael S. (technicans)


Lesenswert?

Welche Plattform für Windows hat denn die beste Dokumentation,
die auch für Einsteiger am besten geeignet ist?
Die Doku von Wxcpp (Wxwidget)und codeblock scheint da nicht
geeignet entweder weil man sich visuell nicht die Bildschirm-
funktionen vorstellen kann oder das man ordentlich dokumentierte
Methoden findet, so das man auch nachvollziehen kann welche
Funktionen was auch immer auf dem Bildschirm bewirken.
Da verliert man als Anfänger ganz schnell die Lust.
Erfahrungen mit VB waren da nachvollziehbarer.

von Hans (Gast)


Lesenswert?

Für Qt und den Qt-Designer gibts gute Schritt-für-Schritt videos... die 
Samples sind Ok...

73

von Udo S. (urschmitt)


Lesenswert?

Hans schrieb:
> Für Qt und den Qt-Designer gibts gute Schritt-für-Schritt videos

Youtube Kids!
Wichtig ist eine saubere vollständige Klassenbeschreibung, kein bunten 
Videos.

von Hans (Gast)


Lesenswert?

Ähm Klassenbeschreibung ist Voraussetzung!

Die Videos sind für Einsteiger hilfreich...

IDE, Gui-Designer,... wird alles erklärt. Das hat nix mit "Youtube Kids" 
zu tun!

73

von Peter II (Gast)


Lesenswert?

Hans schrieb:
> Die Videos sind für Einsteiger hilfreich...

nein, ganz bestimmt nicht. In einem Dokument kann man mal schnell zurück 
gehen und nachschauen. ein Video ist (für mich) die schlechteste 
Möglichkeit solches Wissen zu vermitteln.
(der einzigste Vorteil ist das niemand etwas per copy und paste sich 
rausnehmen kann)

> IDE, Gui-Designer,... wird alles erklärt. Das hat nix mit "Youtube Kids"
> zu tun!
doch hat es, denn auch ohne Videos sind gute Programmierer entstanden.

von Martin K. (frostbittenkl)


Lesenswert?

Ich bin dafür das es sich an diesem Punkt endlich ausgetrollt haben 
sollte.
Gießt nicht noch mehr Öl ins Feuer!

Alles weitere findet man bestens über unsere Lieblingssuchmaschine 
heraus.

von skorpionx (Gast)


Lesenswert?

Ich arbeite noch mit dem Borland C++ Builder und bin ich sehr 
zufrieden...

von Michael S. (technicans)


Lesenswert?

Peter II schrieb:
> doch hat es, denn auch ohne Videos sind gute Programmierer entstanden.

Klar, wenn man eine Schule (auch Fortbildung) besucht,
aber zeig mir mal eine die GUI auf Wxwidget oder Codeblock lehrt?
Eine die einen QT-Kurs hat, hatte ich schon mal gefunden, aber
dann sollte man da nicht wie ein Grünschnabel dran teilnehmen,
sondern schon ein paar Grundkenntnisse mit Compiler und Debugger haben.
Da werd ich mich wohl mal mit QT beschäftigen müssen.
Die käuflich teuren Tools kann man eh vergessen, kein Geld für so was.

von Peter II (Gast)


Lesenswert?

Michael S. schrieb:
> Klar, wenn man eine Schule (auch Fortbildung) besucht,
> aber zeig mir mal eine die GUI auf Wxwidget oder Codeblock lehrt?

früher hat man das auch mit Bilder (Screenshots lösen können)

von Hans (Gast)


Lesenswert?

Peter II schrieb:
> Hans schrieb:
>> Die Videos sind für Einsteiger hilfreich...
>
> nein, ganz bestimmt nicht. In einem Dokument kann man mal schnell zurück
> gehen und nachschauen. ein Video ist (für mich) die schlechteste
> Möglichkeit solches Wissen zu vermitteln.
> (der einzigste Vorteil ist das niemand etwas per copy und paste sich
> rausnehmen kann)
>
>> IDE, Gui-Designer,... wird alles erklärt. Das hat nix mit "Youtube Kids"
>> zu tun!
> doch hat es, denn auch ohne Videos sind gute Programmierer entstanden.

Es ging um die IDE und die Dev-Tools - nicht Code-Monkey-Tätigkeiten!

Gui wird zusammengeklickst, Wie man mit den Tools richtig arbeitet 
vermittelt ein Video am besten. Lesen und in Bildchen dann nachschaun wo 
das Icon jetzt ist und wie das ausschaut ist weniger effizient wie ein 
Video!

Und ganz nebenbei gibts verdammt gute Videos zu Algorithmendesign, 
Design-Patterns, ...

Ich nicht unterschätzen was man bei einem guten Vortrag so alle 
mitnehmen kann... aber egal.. OT!

73

von Hans (Gast)


Lesenswert?

Peter II schrieb:
> Michael S. schrieb:
>> Klar, wenn man eine Schule (auch Fortbildung) besucht,
>> aber zeig mir mal eine die GUI auf Wxwidget oder Codeblock lehrt?
>
> früher hat man das auch mit Bilder (Screenshots lösen können)

das Stichwort ist früher!

Vllt. sind die jetzigen Lösungen effizienter??? schon mal daran gedacht?

Aus dem selben Grund wird oben auch Win32ASM in Frage gestellt!

73

von Peter II (Gast)


Lesenswert?

Hans schrieb:
> Vllt. sind die jetzigen Lösungen effizienter??? schon mal daran gedacht?

bestimmt nicht schon das video ist viel größer als jedes Bild - wie soll 
es da effizienter sein?

Ich kann zumindest aus viedeo nichts lernen - scheinbar hat mein gehirn 
nicht die aktuelle Firmeware.

von STK500-Besitzer (Gast)


Lesenswert?

Hans schrieb:
> Ich nicht unterschätzen was man bei einem guten Vortrag so alle
> mitnehmen kann... aber egal.. OT!


Schulfernsehen und Telekolleg lassen grüßen. ;)

von rackandboneman (Gast)


Lesenswert?

Solange sich da in den letzten Jahren nichts krasses geändert hat, ist 
der "Sprachkern" hinter Delphi fähig mit der gesamten Windows-API zu 
arbeiten. Von Wegen Spielzeug... Daher stellt sich lediglich die 
Geschmacksfrage Pascal vs C++.

Aber zu Zeiten von Macs und ARM-PCs sollte man es sich in der Tat 
dreimal überlegen ob man eine GUI-Anwendung nicht in der Tat auf CLR 
oder Java aufbauen möchte.

von Dankender (Gast)


Lesenswert?

rackandboneman schrieb:
> der "Sprachkern" hinter Delphi fähig mit der gesamten Windows-API zu
> arbeiten

Da gibt es eine eigene Unit (vgl. mit Header + obj-Datei bei C++) für.

rackandboneman schrieb:
> Daher stellt sich lediglich die
> Geschmacksfrage Pascal vs C++.

Woll wahr, und einfach über 180 Postings zusammen gefasst!

von Andi A. (beef)


Lesenswert?

Hi,

der Thread ist zwar schon etwa 1,5 Monate alt. Aber mit Sicherheit sucht 
der Themenstarter ja noch immer :)
Ich muss zugeben, dass es sehr interessant ist, hier mitzulesen...bei 
der hälfte war es mir jedoch zu viel und habe das lesen abgebrochen.

Ben _ (burning_silicon) du hast eigentlich schon die perfekten 
Antworten bekommen :)
Was du genau willst, geht und gibt es einfach nicht...da musst du damit 
leben. Und auch wenn es vielleicht eine Möglichkeit gibt, mit Assembler 
auf die Win32API zuzugreifen...allein der Gedanke, es ist 
unbeschreiblich, es fehlen einfach die Worte wie man so etwas nur in 
Erwägung ziehen könnte :)

Du willst LEICHT und WINDOWS? Dann nimm .NET! (C#, VB, usw)
Du willst SCHWER und kompilierten Maschinencode? Dann nimm C/C++ mit GUI 
Toolkit (Qt, GTK, usw)!
Alles andere ist auch sinnvoll, aber liegt nicht in deinem 
Interesse...Python, Java, usw. Alles hat seine Daseinsberechtigung. Aber 
für deinen Fall kommen nur die oberen zwei Punkte in Betracht.
Assembler und Win32API: Vergiss es, schlag es dir aus dem Kopf.

Mein Tip für DICH ist: C++ und FLTK! FLTK ist ein sehr leichtes GUI 
Toolkit, welches anstandslos auf mehreren Betriebsystemen läuft und du 
nicht mal im Code was ändern musst. FLTK ist wohl das schnellste was es 
an GUIs gibt. FLTK lässt sich rechtlich verwenden wie man will, so dass 
du es statisch linken kannst. SPRICH: Du kannst wirklich nur EINE 
EINZIGE EXE erstellen und da ist ALLES drin was du für deine GUI 
Anwendung brauchst...keine DLL, NICHTS! Und selbst eine kleine GUI 
Anwendung INKLUSIVER aller eingebundenen Bibliotheken in EINER EXE hat 
nur um die 100kB!!! Und das ganze darfst du sogar verkaufen!

Und C++ empfehle ich wegen deinen Vorstellungen von Code und 
Geschwindigkeit...und eben weil du unbedingt eine "C-Variante" willst. 
Ich verstehe nicht, was du mit Variante meinst. C ist C und C++ ist C++! 
C# ähnelt nur etwas von der Syntax, ist aber was ganz anderes. Auch Java 
ähnelt der C-Syntax und ist fast gleich mit C#...aber auch wieder was 
anderes. Damit meine ich, dass du alles extra lernen müsstest. Wenn du 
C++ lernst, kannst du C++. Lernst du C, kannst du C.
C und C++ sind nur eine Ausnahme, da sie verwandt sind. Du kannst mit 
einem C++ Compiler auch reinen C Code kompilieren. Du kannst auch beide 
Sprachen mischen. Jedoch bist du ein schlechter Programmierer, wenn du 
bei C++ Programmen häufig auf C-Bibliotheken zurückgreifst bzw beides 
mischst.
C und C++ ist das was du willst...mit ausnahme von leicht. Das ist die 
absolute Königsdisziplin unter aktuellen Sprachen. Assembler hat auf 
einem "Personal Computer" NICHTS verloren! Außer extreme Ausnahmen, mit 
denen sich eher Betriebssystementwickler beschäftigen sollten. C alleine 
ist so hardware nah, und du kannst den Code auf so geringer ebene 
schreiben, dass du mit Assembler wahrscheinlich kaum mehr rausholen 
wirst.

Wenn du nach diesem Beitrag hier immer noch nicht weißt, was du nun 
lernen sollst bzw immer noch auf "Windows-GUI-Programmierung mit 
Assembler" bestehst, dann musst du dir ein anderes Hobby wie 
Fotografieren, Malen, Basteln oder so suchen.

Liebe Grüße und viel Erfolg ;)

von Markus B. (markusborti)


Lesenswert?

Ich +1 mal für C#

C# ist an sich eine schöne Sprache (schöner als C, C++ und Java).
Die GUI-Programmierung ist nicht schwer (du hast nen Baukasten und 
kannst selbst daran werkeln und dynamisch Sachen einbinden).

Zudem hast du die Möglichkeit DLL's aus C und C++ zu importieren.
Also steht dir über Umwege auch Inline-asm zur Verfügung.

Du bist am Zahn der Zeit (Windows 8, Windows Phone).
Auf Linux gibt es Mono (.Net Implementierung, manche Stellen 
unvollständig - bisher aber keine entdeckt).
Für Android soll es da auch was geben.
Gleiches wird wohl auch für Ubuntu Phone gelten.
(Für Ubuntu Phone und Ubuntu wäre wiederum C++, Python und Qt gut).

Weiter hast du die Möglichkeit mit Visual Basic zu arbeiten (und 
eigentlich jeder anderen Sprache für das .Net Framework).

Zusammen mit dem schlüsselwort "unsafe" kannst du auch direkt im Ram 
pfuschen und kannst etwas an Performance rausholen.

von Ben _. (burning_silicon)


Lesenswert?

Bin zu dem Ergebnis gekommen, daß C++ und C# genau gleich gut und gleich 
schlecht sind. :D

Allerdings sind die meisten Spiele wohl in C++ geschrieben, weswegen ich 
im Moment stark in diese Richtung tendiere.

Assembler und Win32-Api hab ich schon gemacht. Aber das war nur ein 
Kommandozeilenprogramm mit einer Rechenanwendung, sollte also maximale 
Geschwindigkeit bringen.

von Sharping (Gast)


Lesenswert?

Ben _ schrieb:
> Bin zu dem Ergebnis gekommen, daß C++ und C# genau gleich gut und gleich
> schlecht sind. :D

Oha, das ist mal ne gewagt Behauptung ^^
C# ist meiner Meinung nach als Sprache deutlich angenehmer als C++. 
Dinge wie LINQ, das async-Keyword, Reflection, Garbage Collection, 
verbose strings usw. machen einem das Entwicklerleben sehr viel 
leichter...

von Yalu X. (yalu) (Moderator)


Lesenswert?

Eigentlich ist C# ja der Versuch, Java mit C++ zu vereinigen. Die
"Rechenoperationen" sind dabei etwa folgende:
1
     Java
2
  +  C++
3
  -  ein paar C++-Dinge, die sich schwer mit Java vereinigen lassen
4
  +  ein paar andere Dinge, um einen gewissen Fortschritt anzudeuten
5
  ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
6
     C#

Da C++ für sich gesehen schon ziemlich dick ist und auch Java nicht
gerade an Magersucht leidet und zudem er Mut zum Weglassen bei den
C#-Entwicklern nur schwach ausgeprägt war, ist das Ergebnis einfach nur
megafett. Von einer gewissen Eleganz, die man von einer neuen Program-
miersprache gewöhnlich erwartet, ist bei C# nicht viel zu erkennen. Das
neu hinzugekommene LINQ ist zugegebenermaßen eine coole Sache, aber eben
nur eine Spitze in dem ansonsten vorherrschenden Mittelmaß und wirkt
deswegen auch etwas aufgesetzt.

So ein Zusammenpappen mehrerer existierender Programmiersprachen zu
einer neuen gab es schon einmal in den 1960er Jahren, als IBM mit PL/1
versuchte, Algol, Fortran und Cobol miteinander zu vereinigen. Trotzdem
(oder gerade deswegen) haben zumindest Fortran und Cobol PL/1 überlebt.
So werden vermutlich auch Java, C++ und C noch lange die drei unagefoch-
tenen Mainstream-Sprachen bleiben und garantiert nie von C# abgelöst
werden.

Um die potentiellen User nicht zu sehr zu verschrecken, veröffentlicht
MS den riesigen C#-Kloß nur häppchenweise in etwa zweijährlichem Tur-
nus¹. Das führt leider dazu, dass C#-Quellcode nach jeweils zwei Jahren
einen altbackenen Eindruck macht, weil er die aktuellen Sprachelemente
nicht nutzt. So etwas ist für die Softwareentwickler nicht unbedingt
motivierend. Auch C++ wird weiterentwickelt, aber da sind die Zyklen
sehr viel länger und die Deltas nicht so groß. Der einzige wirklich
tiefgreifende Schritt war seinerzeit die Einführung der Templates.

Wenn Ben also schreibt,

Ben _ schrieb:
> Bin zu dem Ergebnis gekommen, daß C++ und C# genau gleich gut und gleich
> schlecht sind. :D

muss das nicht falsch sein. Er schreibt ja nicht, dass beide Sprachen
gleich sind, sondern nur gleich gut oder gleich schlecht. Da stimme ich
ihm mit meiner subjektiven Meinung zu. Ich bin zwar gegenüber neuen
Programmiersprachen sehr aufgeschlossen und habe in letzter Zeit auch
öfters mit C# herum gespielt, aber einen Drang, die Sprache wirklich zu
lernen und ernsthaft zu nutzen, habe ich bisher nicht verspürt.

––––––––––––
¹) Sicher hat auch gewaltiger Termindruck durch die Java-Konkurenz zu
   dieser Vorgehensweise beigetragen.

von c-hater (Gast)


Lesenswert?

Ben _ schrieb:

> Bildschirm leeren unter DOS Assembler: <30 Byte .COM-Datei
> Bildschirm leeren unter DOS PowerBasic: ~20kB .EXE-Datei
> Leeres Fenster unter Delphi: paar-100-kB .EXE-Datei *oO*

Nur unwissende Vollidioten brauchen dazu ein paar 100KByte. Auch mit 
Delphi kann man natürlich ein leeres Fenster mit einem nur ein paar 
kByte großen Executable erzeugen. Man braucht nur einfach nicht die 
Forms-Unit einbinden und statt dessen das Fenster zu Fuß erzeugen. Genau 
wie man das unter Plain C oder C++ ohne MFC oder sonstige Toolkits auch 
machen würde.

Was den Delphi-Code "fett" macht, wenn man das Fenster per Forms-Unit 
erzeugt, ist der viele Code, der bei einem leeren Fenster einfach nichts 
macht. Genauso wie bei C++ die MFC oder meinetwegen auch Qt.

Bloß: der Sinn einer Programmiersprache ist ja nicht, leere Fenster zu 
erzeugen, sondern welche, auf denen was nützliches passiert...

Außerdem: Ein paar 100kByte sind doch nach heutigen Maßstäben, wo schon 
ein verschissener Drucker- oder Grakatreiber Dutzende Megabyte braucht, 
rein garnix mehr. Da erspart man es sich doch gerne, Sachen wie 
RegisterClass, CreateWindowEx und die Messageloop von Hand zu machen, 
selbst wenn man es kann.

Was auf dich ja übrigens offensichtlich nicht zutrifft. Und dies ganz 
unabhängig von der Sprache, die du verwendest, denn keine Sprache der 
Welt kann die Kompetenz des Programmierers ersetzen. Sie kann immer nur 
Ausdrucksmittel sein.

von Ben _. (burning_silicon)


Lesenswert?

@Yalu
Heißt das, Du bist C++ Freak?

von Brater (Gast)


Lesenswert?

@Yalu:

1. C# will Cpp nicht ablösen. Aber es verfolgt andere Ziele. Ich merke 
das in der täglichen Arbeit: vor einem Jahr angefangen und ich schreibe 
immer noch nebenbei eigene Funktionen, weil Cpp einfach viel zu WENIG 
mitbringt. Typisches Beispiel: Arbeiten mit Zeichenketten (ich schreibe 
bewusste NICHT String). In C ist das Arbeiten mit Char-Arrays einfach 
nur fürchterlich, weil man nur überschreibend arbeiten kann und nicht 
einfügend (außer man macht sich eine zeichenweise Liste :D ). In Cpp 
könnte man im Prinzip mit Strings arbeiten - oft wird aus 
Kompatiblitätsgründen trotzdem einer Funktion nur ein char* übergeben. 
Für etwas mehr Komfort sollen dann die StringStreams sorgen - sie gehen 
allerdings auch nur gerade so. Das Netz ist voll von etlichen 
selbstgebastelten StringSplit-Funktionen. Das ist absolut fürchterlich.
Von GUIs mit Cpp reden wir jetzt mal gar nicht. Wenn es so gut/einfach 
in der API implementiert wäre, hätten wir nicht diesen endlos langen 
Thread.
2. Warum muss man denn immer alles von Punkt 0 aus herausschnitzen? Das 
ist vergleichbar mit Arbeitsteilung in der Gesellschaft. Wenn wir die 
nicht hätten (auch mit Nachteilen, siehe my-lidl-Pony-Lasagne), müsste 
heute jeder von uns noch selbst sein Feld bestellen und ernten.

C# ist einfach deshalb so aufgeblasen, weil in C und Cpp so viel fehlt. 
Schönes Beispiel: C# bzw. eigentlich alle .Net Sprachen können seit 
einer bestimmten Version (3.5 oder so) sogar nativ auf DirectX in 
"normalen" Windoofs-Fenstern zugreifen. Und, ist das schlimm? Warum soll 
ich 100 konkurierende Einzelbibliotheken verwenden, wenn ein Framework 
alles beherrscht? Ich will damit nicht sagen, dass das Framework perfekt 
oder fehlerfrei ist. Ich bin kein Freund von KleinWeich aber man muss 
leider Gottes auch ab und zu auch mal Positives anerkennen.

Zum Thema große Dateien: die Applikationen mit .net sind auch 
erstaunlich klein.

von Ben _. (burning_silicon)


Lesenswert?

Kann C/C++ kein Substring oder was äquivalentes?

von Sven B. (scummos)


Lesenswert?

C++ kann garnix. In C++ gibt es auch keine Stings. Eine String-Klasse 
wie QString kann das natürlich alles, oft sogar viel mehr als noch 
höhere Sprachen (python zum Beispiel).
http://qt-project.org/doc/qt-4.8/qstring.html#mid

von Brater (Gast)


Lesenswert?

Gibt es schon... Gibt aber überall Nachteile/Fallstricke. Dein Vorschlag 
ist noch einer der brauchbarsten. Kleines Beispiel:
http://www.cplusplus.com/faq/sequences/strings/split/

von Freizeit_Programmierer (Gast)


Lesenswert?

Ich habe diesen Beitrag mit Interesse verfolgt, da auch ich nach einer 
alternative zu Rapid-Q suche ... RapidQ wird leider seit Jahren nicht 
mehr weiter entwickelt, was wirklich schade ist.

Nur wenn ich das hier lese, frage ich mich ob es für mich Sinn macht 
eine neu Sprache mit all den Besonderheiten zu lernen oder z.B. auf 
PureBasic zu wechseln.

von Mark B. (markbrandis)


Lesenswert?

Sven B. schrieb:
> C++ kann garnix. In C++ gibt es auch keine Stings.

Hm, was ist dann bitte std::string?

von Kilian (Gast)


Lesenswert?

Mark Brandis schrieb:
> Hm, was ist dann bitte std::string?

Eine Klasse der STL. Aber kein Bestandteil der Programmiersprache C++.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ben _ schrieb:
> @Yalu
> Heißt das, Du bist C++ Freak?

Nein, wie kommst du darauf?

Kilian schrieb:
> Mark Brandis schrieb:
>> Hm, was ist dann bitte std::string?
>
> Eine Klasse der STL. Aber kein Bestandteil der Programmiersprache C++.

Doch, die STL ist Bestandteil der Programmiersprache C++. Der Standard
beschreibt die Strings im Kapitel "Strings Library".

von Kilian (Gast)


Lesenswert?

Yalu X. schrieb:
> Doch, die STL ist Bestandteil der Programmiersprache C++. Der Standard
> beschreibt die Strings im Kapitel "Strings Library".

Jein ;-)
Versuch mal einen string zu verwenden, ohne "#include <string>". Da wird 
der Compiler meckern. Ergo ist der string nicht Teil der Sprache, 
sondern gehört zur Basisbibliothek, die wiederum Teil des C++ Standards 
ist.
Bei C# ist das (so glauibe ich) anders: hier kannst du den string wie 
einen int oder sonst was verwenden.

Ist natürlich alles nur Haarspalterei ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.