Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Oberflächendesign mit C++?



STEALTH_AXG
19-06-2008, 21:18
Hallo Mrunix-Freunde,
ich habe eine Frage bezüglich GUI-Gestaltung mit C/C++/Java/usw. Momentan programmiere ich mit Delphi und Prolog, was heißt, dass ich so gut wie 0-Ahnung auf dem Gebiet habe, aber trotzdem möchte ich mich für mein Studium(Wirtschaftsinformatik) im Oktober etwas vorbereiten.

Hier meine Frage:
Wie gestaltet man moderne Benutzeroberfälchen in c++/c/Java?
Beispiel: tune up untilities (http://www.tuneup.de/products/tuneup-utilities/)
Gibt es da eine andere Programmiersprache?
Kann man Flashskripte/Animationen in C++ und co einbauen?
Was empfiehlt ihr, was ich so als Vorbereitung machen könnte?


danke für eure Hilfe^^

mfg Stealth_axg

peschmae
19-06-2008, 22:01
Wie gestaltet man moderne Benutzeroberfälchen in c++/c/Java?

Man benutzt ein Toolkit - also eine Bibliothek mit den nötigen GUI-Elementen und Layout-Komponenten.

Für Java ist das meist Swing. Für C... - ich persönlich würde eher nicht GUIs in C programmieren, gehen tuts natürlich aber praktisch ists imo nicht z.B. mit Gtk+ (meist auf Linux/Unix, aber auch auf Windows im Prinzip)

Für C++ gibts jede Menge Zeugs (Qt, WxWidgets, Gtk für Platformunabhängigkeit). Ich frage mich jetzt gerade was all die Windows-C++-Programmierer benutzen - MfC ist ja tot... - .NET?



Beispiel: tune up untilities (http://www.tuneup.de/products/tuneup-utilities/)


Das finde ich jetzt ein schlechtes Beispiel (aber darüber kann man streiten). ;)

Ich bin ein sehr grosser Fan von Programmen die gleich aussehen wie andere, d.h. wie seriöse Software und nicht wie ein Personal Firewall oder eine Antivirensoftware...



Gibt es da eine andere Programmiersprache?

Jede Menge, aber ich weiss jetzt wirklich nicht was auf Windows am meisten verbreitet ist an Entwicklungsumgebung und Bibliotheken...



Kann man Flashskripte/Animationen in C++ und co einbauen?

Ich glaube dass das geht zum Glück noch nicht so einfach. :)

Wobei es das Flash-Zeugs natürlich als Browserplugin gibt und du das natürlich auch einbinden könntest. Theoretisch.



Was empfiehlt ihr, was ich so als Vorbereitung machen könnte?


Alles, nur nicht Gui Programmieren ;-)

Klar macht das erst mal mehr Spass und sieht nach mehr aus, aber im Studium ist das dann doch erst mal recht unwichtig. Besser Grundlagen - Algorithmen, Objektorientierung, Design (damit mein ich jetzt nicht GUI!), etc - das schwierige an der Sache ist sowieso vor allem ein Programm so zu machen dass es kein Chaos wird ab einer bestimmten Grösse.

Noch besser natürlich: In einem Freie-Software Projekt mitarbeiten, das hilft sehr viel. Code lesen & verstehen versuchen, erweitern, etc

Ich studier jetzt zwar nicht Wirtschaftsinformatik, aber bei uns wird doch immer wieder Zeugs programmiert. Nur keine Guis. Zeugs ausrechnen, simulieren, blabla...

Höchstens mal irgendwo zwei, drei Buttons. Aber die Bibliothek die man dazu benutzt ist eh jedes mal eine andere. Und die Programmiersprache auch. Und überhaupt alles...

MfG Peschmä

STEALTH_AXG
20-06-2008, 09:39
Danke Peschmä, für deine schnelle Antwort^^
ich werde also die GUI-Programmierung erstmal zurückstellen:p
aber eine Frage hätte ich noch und zwar
mit welcher Sprache soll ich anfangen?
C oder C++, bzw ich hab noch ein Java 6 und Visual C++ Buch zur Auswahl^^

Waxolunist
20-06-2008, 09:52
Für C++ gibts jede Menge Zeugs (Qt, WxWidgets, Gtk für Platformunabhängigkeit). Ich frage mich jetzt gerade was all die Windows-C++-Programmierer benutzen - MfC ist ja tot... - .NET?

Jede Menge, aber ich weiss jetzt wirklich nicht was auf Windows am meisten verbreitet ist an Entwicklungsumgebung und Bibliotheken...

Also unter Windows programmieren die wenigsten noch in C++. Die meisten verwenden Managed-Sprachen in .NET. Und da gibts die sehr komfortablen WinForms für die GUI.
Unter Java verwende ich persönlich gerne SWT.

Was noch interessant ist, sind Ansätze wie Adobe AIR oder Silverlight, welche im Browser als auch Offline ohne Browser laufen.


mit welcher Sprache soll ich anfangen?
C oder C++, bzw ich hab noch ein Java 6 und Visual C++ Buch zur Auswahl^^

Versuchs mal mit einer höheren Sprache. Also Java oder C#/Mono.
Nebenbei empfehle ich eine Skriptsprache wie Groovy, welche SwingGUIs sehr gut unterstützt und man sich wirklich leicht tut bei deren Erstellung. Ich habe mit Groovy-Swing ungefähr nur noch ein Drittel LOC gegenüber Java-Swing.

Mit C++ tu ich mir persönlich schwer und ich rate immer nur davon ab, denn es ist nicht gefragt in der freien Wirtschaft ausser in wenigen Bereichen.
Es ist zu fehleranfällig und raubt meinen Nachhilfeschülern regelmäßig die Lust am Programmieren. Bei Java habe ich das noch nie erlebt, denn ist erst einmal das OOP verinnerlicht, ist das Verständnis viel höher für gutes Design (ich meine nicht GUI ;)).

Lg, Christian

mehlvogel
20-06-2008, 12:57
mit welcher Sprache soll ich anfangen?
C oder C++, bzw ich hab noch ein Java 6 und Visual C++ Buch zur Auswahl^^

Vielleicht kannst du ja auf den Webseiten deiner Universität schauen, welche Programmiersprachen am Anfang des Studiums verwendet werden.

anda_skoa
20-06-2008, 14:26
Ich frage mich jetzt gerade was all die Windows-C++-Programmierer benutzen - MfC ist ja tot... - .NET?


Meistens Qt oder wxWidgets. Gibt noch ein paar, die masochistisch/sadistisch genug für MFC sind.
Ich kenne hier keine Firma, die C++ unter .NET einsetzt.


Wobei es das Flash-Zeugs natürlich als Browserplugin gibt und du das natürlich auch einbinden könntest. Theoretisch.

Ohne jetzt die Portierbarkeit von swfdec zu kenne, aber das liegt zumindest auch als LGPL lizenzierte Biblioth vor.

Wobei man natürlich auch sagen muss, dass praktisch alle halbwegs ernstzunehmenden Toolkits genug eigene Möglichkeiten für Animation und so haben.



Klar macht das erst mal mehr Spass und sieht nach mehr aus, aber im Studium ist das dann doch erst mal recht unwichtig. Besser Grundlagen - Algorithmen, Objektorientierung, Design (damit mein ich jetzt nicht GUI!), etc - das schwierige an der Sache ist sowieso vor allem ein Programm so zu machen dass es kein Chaos wird ab einer bestimmten Grösse.

Speziell weil das im Studium selbst eher unwichtig ist, bin ich der Meinung, dass man sich damit eben erst recht selber beschäftigen sollte.

Außerdem lernt man auch den andere Kram leichter, wenn man an irgendwas arbeitet, was Spaß macht, auch wenn es nur ein "primitives" GUI Frontend für irgendwas ist.

Ciao,
_

STEALTH_AXG
21-06-2008, 09:27
ok...erstmal danke euch allen für die vielen Tipps^^

Bin jetzt zwar ein bisschen verwirrt, was ich jetzt Anfangen soll, aber ich schau mir mal beides an(die GUI-gestaltung und normales Scripten):-P


Vielleicht kannst du ja auf den Webseiten deiner Universität schauen, welche Programmiersprachen am Anfang des Studiums verwendet werden.
Leider hab ich das Problem, dass ich wahrscheinlich in der BA C++ habe und im Ausbildungsbetrieb Java/JavaSript/Flash habe-.-" (Duales-Studium)

peschmae
21-06-2008, 15:51
Also unter Windows programmieren die wenigsten noch in C++. Die meisten verwenden Managed-Sprachen in .NET. Und da gibts die sehr komfortablen WinForms für die GUI.


Da frag ich mich eben ob das wirklich so ist. Ich hab nämlich auf meinem Windows kein .NET installiert - und bisher hat mir das auch noch nicht gefehlt. Also hab ich irgendwie nicht so das Gefühl dass das so extrem Verbreitung gefunden hat.

Wobei dann wohl meine Softwareauswahl zugegebenermassen doch eher etwas Linux/Unixorientiert ist. ;)



Speziell weil das im Studium selbst eher unwichtig ist, bin ich der Meinung, dass man sich damit eben erst recht selber beschäftigen sollte.


Da magst du recht haben :)

Aber er hatte halt nach Studiumsvorbereitung gefragt und da ist das ja erst mal nicht Nutzbringend...



Außerdem lernt man auch den andere Kram leichter, wenn man an irgendwas arbeitet, was Spaß macht, auch wenn es nur ein "primitives" GUI Frontend für irgendwas ist.

Da hast du sicher recht. Wenn ich mirs richtig überlege hab ich das auch eher so gemacht :)

Mein Rat war da wohl eher etwas überambitiös. Das wichtigste ist am Anfang eh dass man was macht und daraus lernt (wobei das mitm lernen auch später nichts schadet). :D

MfG Peschmä

Waxolunist
22-06-2008, 21:51
Da frag ich mich eben ob das wirklich so ist. Ich hab nämlich auf meinem Windows kein .NET installiert - und bisher hat mir das auch noch nicht gefehlt. Also hab ich irgendwie nicht so das Gefühl dass das so extrem Verbreitung gefunden hat.


Auf Servern find ich eigentlich nix anderes, wenn ich mir ASP-Anwendungen ansehe, da ist eigentlich alles ASP.NET.

Und sobald C# Code geschrieben wird, brauchst du auch das .NET-Framework. Mono ist was anderes. Aber ich denke schon, dass es relativ große Verbreitung gefunden hat, auch wenn ich persönlich Java bevorzuge.



Wobei dann wohl meine Softwareauswahl zugegebenermassen doch eher etwas Linux/Unixorientiert ist. ;)

Das mag wohl der Grund sein ;)

Lg, Christian

peschmae
23-06-2008, 20:23
Auf Servern find ich eigentlich nix anderes, wenn ich mir ASP-Anwendungen ansehe, da ist eigentlich alles ASP.NET.


Auf Servern ist klar, da hab ich schon einiges gutes gehört zu ASP.NET.



Und sobald C# Code geschrieben wird, brauchst du auch das .NET-Framework.

Eben und das hab ich nich ;)

Wobei ich mich da schon etwas sträube. Schon nur weil sich da immer 3 Versionen parallel installieren möchten, die eine fetter als die andere.

Mit .NET ists etwas ähnlich wie mit Vista: Als ich festgestellt hatte dass Windows Vista trotz >>10 GB fett immer noch keine virtuellen Desktops kann hab ichs runtergeschmissen.

.NET 3 hatte ich auch nur kurz drauf um mit Hilfe des einen .NET-basierten Tools einen Graphiktreiber für mein Notebook aus dem Ati-Exe zu befreien. Dann hab ichs auch wieder runtergeschmissen. :-)

Aber was sag ich hier, ich benutz eh nie Windows. Ausser ich muss. Und das ist selten.

MfG Peschmä

Waxolunist
24-06-2008, 08:33
Aber was sag ich hier, ich benutz eh nie Windows. Ausser ich muss. Und das ist selten.

Du glücklicher. Ich muss (!!!) täglich. Aber was tut man nicht alles für Geld.

vci
24-06-2008, 12:54
Also wir haben in der Uni mit Java (1. Semester, prozedural, 2. Semester objektorientiert und GUIs mit Swing) und C (2. Semester, ANSI-C) angefangen.

Die Frage was du machen sollst ist schwierig, da wir nicht wissen wo du dich spaeter mal spezialisieren willst, denn davon haengt alles ab.

Ich werde mir nun z.B. Assembler zu Gemuete fuehren weil ich spaeter mal im embedded Bereich taetig werden will und das da sicherlich immernoch gefragt ist - ausserdem soll es mir helfen zu verstehen wie Computer tatsaechlich funktionieren.

Im Endeffekt wirst du was die Uni angeht keine Wahl haben - dort musst du den Mist so machen wie die den haben wollen.

peschmae
24-06-2008, 18:56
Du glücklicher. Ich muss (!!!) täglich. Aber was tut man nicht alles für Geld.

Bin halt (noch) Student. Da kann man ab und zu wählen. :)


... Assembler zu Gemuete fuehren weil ich spaeter mal im embedded Bereich taetig werden will und das da sicherlich immernoch gefragt ist - ausserdem soll es mir helfen zu verstehen wie Computer tatsaechlich funktionieren.


Nuja, x86 oder atmel avr oder avr32 oder pic oder powerpc oder arm Assembler?

Alternativ kann man sich das Wissen wie ein Computer funktioniert auch anderswie aneignen und dann anschliessend erfreut feststellen wie einfach und logisch gewisse Assembler-"Sprachen" sind. Wobei die sicher auch immer wieder interessante Erkenntnisse mit sich bringen.

Ausserdem lernt man das jetzt bei uns an der Uni vergleichsweise sehr gut - ohne Hilfe daher würde ich mich jetzt eher weniger an Embedded-systeme wagen. Das ist doch immer noch extraschwer weil die Compiler blöd sind, die Debuggingmöglichkeiten eingeschränkt und der Support inexistent...

Also besser erst mal anderes Zeugs lernen (gerne auch systemnah) bei dem dir andere Leute einfach so weiterhelfen können ohne dass sie die spezifische Hardware benötigen um (unter Umständen) dein Problem nachvollziehen zu können. Sonst stehst du nämlich sehr schnell sehr allein im Wald mit dem Mist der nicht geht ;)

MfG Peschmä

STEALTH_AXG
25-06-2008, 12:28
Also wir haben in der Uni mit Java (1. Semester, prozedural, 2. Semester objektorientiert und GUIs mit Swing) und C (2. Semester, ANSI-C) angefangen.

Die Frage was du machen sollst ist schwierig, da wir nicht wissen wo du dich spaeter mal spezialisieren willst, denn davon haengt alles ab.

Ich werde mir nun z.B. Assembler zu Gemuete fuehren weil ich spaeter mal im embedded Bereich taetig werden will und das da sicherlich immernoch gefragt ist - ausserdem soll es mir helfen zu verstehen wie Computer tatsaechlich funktionieren.

Im Endeffekt wirst du was die Uni angeht keine Wahl haben - dort musst du den Mist so machen wie die den haben wollen.

ähm ich bin an keiner Uni^^

ich bin BA Student, d.h. 3 Monate Schule und 3 Monate Arbeitgeber. Also eine Art bezahltes Studium, wo ich eben auch mein bachelor bekomme und wie ich schon geschrieben habe, setzten alle auf andere Sprachen-.-"



Leider hab ich das Problem, dass ich wahrscheinlich in der BA C++ habe und im Ausbildungsbetrieb Java/JavaSript/Flash habe-.-" (Duales-Studium)

jan61
25-06-2008, 19:00
Moin,

das Stichwort "Scriptsprachen" ist schon gefallen - für schnelles Prototyping IMHO recht gut geeignet: Tcl/Tk (wobei die Sprache ein wenig Geschmackssache ist) oder Perl::Tk. Das Prinzip, wie ein GUI aufgebaut wird, ist dabei dem von Java-Swing recht ähnlich.

@Waxolunist: Wie kommst Du darauf, dass C++ in der Wirtschaft nicht so gefragt ist? In meiner Firma wird z. B. sehr viel damit entwickelt (allerdings keine GUIs).

Jan

peschmae
25-06-2008, 19:57
das Stichwort "Scriptsprachen" ist schon gefallen - für schnelles Prototyping IMHO recht gut geeignet: Tcl/Tk (wobei die Sprache ein wenig Geschmackssache ist)

Also ich mag ja weder die Sprache TCL noch das Look von TK ;)



@Waxolunist: Wie kommst Du darauf, dass C++ in der Wirtschaft nicht so gefragt ist? In meiner Firma wird z. B. sehr viel damit entwickelt (allerdings keine GUIs).


Das ist wohl ein bisschen der Punkt. Ist halt Anwendungsbereichsbedingt ;)

Soll ja auch noch n Haufen Leute geben die noch Cobol(d) oder Fortran von 1839 verwenden. (Das is jetzt keine Anspielung auf C++ wohlgemerkt)

MfG Peschmä

Waxolunist
25-06-2008, 20:28
@Waxolunist: Wie kommst Du darauf, dass C++ in der Wirtschaft nicht so gefragt ist? In meiner Firma wird z. B. sehr viel damit entwickelt (allerdings keine GUIs).



Die Erfahrung. Die meisten Anwendungen, die in Auftrag gegeben werden sind Intranetanwendungen. Die meisten Entscheidungsträger wollen zwar modern sein, aber nicht zu modern.
C++ eignet sich nicht sehr für Webanwendungen.
Also sehe ich bei gulp:

SQL: 293 Treffer
Java: 291 Treffer
C++: 131 Treffer
C#: 85 Treffer
C/C++: 31 Treffer

Viele Angebote haben dort C++ stehen, weil es die Personalbüros so gewohnt sind. Die schreiben einfach C++ hin, meist ist aber eher C# gefordert.
Es kommt auf die Richtung an, das ist keine Frage, aber selbst, dort wo ich im Embedded Bereich tätig war, habe ich Java programmiert.

Bei Vorstellungsgesprächen gab ich immer wieder C++ an, wurde auch danach gefragt, habe aber im Endeffekt oft nur wenige Zeilen in C++ entwickelt.

Es ist zudem ein Unterschied zwischen der eigentlichen Tätigkeit, dem was gefragt ist und dem was gefordert ist.
Gefragt sind ohnehin Universalisten. Die Sprache ist nicht entscheidend. Die Sprache lerne ich schnell. Was ich nicht so schnell lerne sind die Libraries und Besonderheiten. Entscheidend sind die mir zur Verfügung stehenden Werkzeuge, mit denen ich schnell und effizient arbeiten kann. Hier hat im Moment imho Java die Nase vorne.

Dort wo GUIs und Webanwendungen im Spiel sind, und da werden im Moment die meisten Investitionen getätigt, spielt C++ eher eine untergeordnete Rolle.

Lg, Christian

jan61
26-06-2008, 23:50
Moin,


Die Erfahrung. Die meisten Anwendungen, die in Auftrag gegeben werden sind Intranetanwendungen.

Auch das ist wieder (wie peschmae schon treffend formuliert hat) "Anwendungsbereichsbedingt". Wir müssen in unseren Projekten ziemlich oft Fremdysteme integrieren. Die Services dafür entstehen meist in C++, weil es i. d. R. ein gesunder Kompromiss zwischen Performance, Ressourcenbedarf und Aufwand ist. Die meisten Hersteller von z. B. Storage-Systemen bieten nur Java oder C++ (oder auch mal VB ;-) als Interface, und wenn Du schnell und genügsam sein musst, dann landest Du bei C++.

@peschmae: Tk ist sicher nicht jedermanns Geschmack, aber es ging ja ums Lernen. Die Konzepte, wie GUIs gebaut werden, sind ziemlich ähnlich: Layout-Manager, Container, Eventsteuerung ... - da kann man viel wiederverwenden.

Jan

vci
27-06-2008, 18:44
ähm ich bin an keiner Uni^^

ich bin BA Student, d.h. 3 Monate Schule und 3 Monate Arbeitgeber. Also eine Art bezahltes Studium, wo ich eben auch mein bachelor bekomme und wie ich schon geschrieben habe, setzten alle auf andere Sprachen-.-"

Diese typische BA-Studenten Arroganz ist wirklich phaenomenal. Ob Uni, FH, BA ist doch in dem Zusammenhang voellig egal, denn die Aussage von mir war: Das egal wer vor dir sitzt das du denen das so machen musst wie sie es wollen weshalb deine Frage hier sowieso eigentlich ziemlich Sinnlos ist.

Ich habe dir von mir geschildert wie es ist und wollte dir ein Denkanstoss geben ueber den Tellerrand zu schauen, also auch Dinge abseits des Studiums zu machen die dir einfach Helfen sollen allgemein mehr zu Verstaendnis zu geben.

Durch die Bachelor Studiengaenge ist das Studium naemlich viel zu sehr verschult ...

peschmae
27-06-2008, 20:07
@peschmae: Tk ist sicher nicht jedermanns Geschmack, aber es ging ja ums Lernen. Die Konzepte, wie GUIs gebaut werden, sind ziemlich ähnlich: Layout-Manager, Container, Eventsteuerung ... - da kann man viel wiederverwenden.


Ja, aber ob man das gerade mit Tk machen muss?
Ok, ich gebs zu, Tk ist auf meiner Hassliste und sicherlich ist das teilweise unberechtigt ;)


Diese typische BA-Studenten Arroganz ist wirklich phaenomenal.

Das hab ich jetzt nicht so aufgefasst...

Anderen Leuten grundlos Arroganz vorzuwerfen ist böse (tm). Schon nur weil man sich gegen einen solchen Vorwurf nur schwer wehren kann. Als $xyz-Student wird mir das auch des öftern (meist implizit) vorgeworfen und das ist jeweils nur mühsam und unproduktiv. Ganz abgesehen davon dass es nicht stimmt. Naja. Meistens. Manchmal. Äh. Ab und zu. Aber kaum je gegenüber denen die mir das vorwerfen.


Ob Uni, FH, BA ist doch in dem Zusammenhang voellig egal, denn die Aussage von mir war: Das egal wer vor dir sitzt das du denen das so machen musst wie sie es wollen

Ack. Das hat er aber auch schon selber festgestellt :D


weshalb deine Frage hier sowieso eigentlich ziemlich Sinnlos ist.

Njein. Denn am Ende zählen die Konzepte und die Erfahrung wenns darum geht in einer neuen Programmierumgebung zurechtzufinden. Wie man sich das aneignet ist eine gute Frage, auf dies ausser 42 (http://de.wikipedia.org/wiki/42_%28Antwort%29) wohl kaum eine allgemeingültige Antwort gibt...

MfG Peschmä

STEALTH_AXG
29-06-2008, 11:39
Diese typische BA-Studenten Arroganz ist wirklich phaenomenal. Ob Uni, FH, BA ist doch in dem Zusammenhang voellig egal, denn die Aussage von mir war: Das egal wer vor dir sitzt das du denen das so machen musst wie sie es wollen weshalb deine Frage hier sowieso eigentlich ziemlich Sinnlos ist.

Ich habe dir von mir geschildert wie es ist und wollte dir ein Denkanstoss geben ueber den Tellerrand zu schauen, also auch Dinge abseits des Studiums zu machen die dir einfach Helfen sollen allgemein mehr zu Verstaendnis zu geben.

Durch die Bachelor Studiengaenge ist das Studium naemlich viel zu sehr verschult ...

Nur so zur info:
Wenn du es schon richtig machen willst, dann bin ich eigentlich nicht mal ein Harz 4 Empfänger! Ich bin ein Abiturient, der gerade mal Html, Delphi und Prolog 2 Jahre gehabt hat und ab 1.Oktober WI studiert. Ich hab kein Plan von "höheren Programmiersprachen". Von mir aus kannst mich als Noob, Boon, Anfänger oder sonst was bezeichnen, aber arrogant bin ich zu 100% nicht.

Ich weis gerade mal das C, C++ und Java zu einer Familie gehören und wollte nur von erfahren Programmieren wissen, was die beste Möglichkeit ist zu beginnen und vll das ganze noch hübsch zuverpacken(GUI:-)).

dafür sind Foren da, um die Unwissenheit des Einzelnen, durch die Erfahrungen und Kenntnisse der Anderer zu bekämpfen.