27. februar 2009 - 23:55Der er
11 kommentarer og 1 løsning
C++ User interface
Hej alle,
<Kedelig historie du kan springe over> Efter en længere periode med webudvikling i HTML, CSS, JavaScript, PHP og hvad dertil ellers hører, begyndte jeg at se mulighederne i rendyrket programmering C++ værende det mest intuitive valg for mig med PHP-baggrund, valgte jeg naturligvis at gå denne vej. Jeg fik hurtigt tillært mig sproget, da det som sådan ikke er så meget anderledes end store dele af PHP - det grundlæggende, altså. Resten kom efterhånden.
Rendyrkede console-applications er selvfølgelig ikke nok i læringsprocessen for mig, hvorfor jeg har smidt mig over user interface-udviklingen, der til min forskrækkelse er en forvirrende verden af "jeg har gjort det hele for dig"-programmering Som intetanende kastede jeg mig over Qt, hvilket skulle vise sig at være en af de værste ting jeg kunne gøre, i forhold til at udnytte min tid mest optimalt. </kedelig historie du kan springe over>
<kedelig historie, men nødvendig for sorståelsen af mit problem> Jeg har altid insisteret på, at håndkode mine sider selv, uanset hvor avanceret det end måtte blive - noget jeg deler med langt størstedelen af webudvikler-heden, er jeg sikker på. Endnu en overraskelse var derfor i vente, da jeg fandt ud af, at man i Qt-verdenen insisterede på, at bruge WYSIWYG hele vejen igennem designprocessen. </kedelig historie, men nødvendig for sorståelsen af mit problem>
<problem> Jeg har flere steder læst, at der i virkeligheden er 3 ting at vælge imellem, hvis ikke man ønsker at leje med Qt-, xWidget- osv.-folkene - Win32 API, MFC eller WTL - igen, det er hvad jeg har læst. Hvad jeg ønsker at vide er, hvad fremgangsmåden ville være for en rendyrket professionel programudvikler i C++. Jeg nægter at tro på, at udviklere af programmer som Photoshop eller ethvert 3D-program sidder med en primitiv WYSIWYG-designer når de designer deres user interface - så hvordan begår de store drenge sig? Hvad skal jeg bruge for at udvikle mine egne designs fra bunden, uden brug af Qt-like forudbestemt funktionalitet? - Jeg er desuden ikke en person, der springer over hvor gærdet er lavest; at Qt muligvis er 'det nemmeste' er for mig ligegyldigt :) </problem>
Jeg er forresten udemærket klar over, at dét jeg her berører, ofte grunder i holdninger og smag. Da jeg dog er helt på vildspor, er jeg blot ude efter hvad der er hvad, og ikke hvad er bedst - blot hvad opfylder mine krav, som ovenfor.
Jeg har programmeret en del GUI efterhånden, har kikket på MFC, WxWidgets, Win32Api og et par andre. Jeg foretrækker klart Win32Api. Det er dejlig rent og ligetil. Det kræver naturligvis en del mere kode end f.eks. QT, men hellere det end at være bundet af et framework der mere er til gene end hjælp.
MFC er klart det mest elendige stykke framework jeg nogensinde er stødt på, gør hvad du kan for at undgå MFC.
Jeg ved ikke hvordan de store laver GUI, men jeg er ret sikker på at de ikke bruger en GUI-designer/WYSIWYG-dims. Mon ikke de laver deres egnet framework. En samling klasser der så bruges til at udvikle selve GUI'en i. Det var den måde jeg ville gøre det på.
Men .net tager mere og mere over og jeg ved ikke noget om .net.
cross platform => Java Windows videreudvikling eksisterende app => MFC Windows ny app => C# og .NET *nix => KDE (bygger på Qt) eller Gnome (bygger på GTK+)
bertelbrander, Tak for svaret. Dette lyder umiddelbart meget fornuftigt. Vil du sige, at der med Win32 API er begrænsninger mht. hvad kan gøres, eller er dette mere universelt?
arne_v, Ligeledes tak for svaret. Jeg har hørt, at ting som .NET er meget 'sæson-betinget' - altså at hvad bruges hurtigt skifter, alt efter hvad er trendy i dag. Er denne opfattelse forkert, og betyder det overhovedet noget i forhold til at udvikle i fremtiden?
Jeg gætter desuden på, at funktionaliteten over de forskellige sprog stort set er de samme... Er dette korrekt?
Mange tak, begge to - så vidt jeg forstår, er stort set alt hvad der kører på Windows - i sidste ende - bygget på WIN32 API. Hvis ikke dette er korrekt, er i velkomne til at rette mig :)
Jeg sad lige og googlede lidt på QT og user interface. Og så kom dette ikke så gamle spørgsmål frem.
Sagen er jo afsluttet, men jeg kan ikke dy mig :) Jeg har selv erfaring med C++, wxWidget og også en smule Qt.
Utrolig at libraries såsom wxwidget og Qt slet ikke får bare nogle få point i jeres universer...
Selv bliver jeg mere og mere fascineret af Qt og dets moderne klasse-hieraki. Det er meget lige til. Og pointen med at det hele er WYSIWYG rammer faktisk en del ved siden af. Man kan sagtens selv programmere hele molevitten selv, skulle man have lyst til det. Det ville jeg faktisk foretrække - men GUI designeren der følger med, samt den i QT Eclipse Integration fungerer faktisk upåklageligt. Intet er overladt til tilfældighederne bare fordi GUI designere bruges. QT bruger nogle ekstra tricks i kompilerings-processen som jeg godt ville have været foruden. Men nå.
Jeg har dog ingen erfaring med win32 API, MFC eller tilsvarende. Arbejdede lidt med C#.NET for nogle år tilbage. Og Java endnu længere tilbage.
Min pointe er egentlig blot at man i dag bør kigge på nye teknologier med nuancerede briller. .NET bruges i stort omfang, samt gør win32 API sikkert.
Men hvad så med overvejelser om cross-platform? QT/wxWidgets er bygget med dette for øje. De andre teknologier i nævner er ikke. Og dette kan nogle gange være ret så vigtig. Nu sidder jeg selv i computervidenskabelig forskning (phd), og her er spørgsmål om åbenhed (åbenkilde) og cross-platform utrolig vigtig (et personligt bias - jeg ved det godt).
- Men bruges wxWidgets og Qt slet ikke i mere kommercielle foretagender til Windows udvikling?
- Er det eneste valg .NET fremfor gamle win32 API?
Mvh Intel4004
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.