Author: Omid David Tabibi
Date: 09:22:29 01/15/04
Go up one level in this thread
On January 15, 2004 at 08:24:21, martin fierz wrote: >i have a general windows GUI programming question, here's the motivation for it: >i wrote a checkers interface which is similar to winboard - basically just a >single board window that you can resize, with a toolbar and a status bar. it's >written in plain C, using the windows API. you could say, this is windows >programming at it's most basic level (if you disregard consoles for the >moment...); maybe that was the way to go in 1995 but not in 2004. > >i have many ideas on how to improve that interface - but i think my programming >technique (plain C + win32 API) is simply unsuitable for more complex >interfaces. as an example of what i would like my program to be like, take >anything from arena over chessbase to the visual studio environment - i would >like it to include multiple window panes which can be resized and displayed or >hidden. fancy interfaces also allow docking/undocking and individual window pane >arrangement. my ideal checkers interface does not need to be too fancy, let's >say something like arena with split windows which you can resize and add/remove >panes. > >question: what kind of development tool(s) should i use for such purposes, given >that >(i) i know C but not C++, >(ii) i am over 30 and don't learn things as easily as earlier, >(iii) programming is just a hobby for me, and i don't have large amounts of time >to learn something new, >(iv) i don't develop commercial software, so i don't want to pay large amounts >of money for a development tool. > >so the ideal tool for me is probably easy to learn, easy to use, free, and >somewhere close to C. > >should i... >...forget C and use visual basic? >...learn C++ and use MFC? >...forget about MFC and use WTL? >...forget about MFC and WTL and use .NET? >...forget about all of this and use XYZ? >...forget it all because i'm too old and don't have enough time/energy to learn >something new? > Tell me about it... There is almost nothing I haven't done in C/C++... starting from chess and checkers programs to encryption, image processing, and messenger software. But programming GUI just drives me crazy. My first attempt was starting with MFC. I found a (in the hindsight, a horrible) book and started reading a few chapters. Getting bombarded with all those weird classes and document/view, I threw away the book. MFC gave me no document and no view! Then it was Java. I very much liked Java GUIs using Swing, and wrote several programs. Assuming that you are familiar with object oriented programming, Java is the best choice. But then, Java is *dead* slow. Forget about time critical applications with Java. And the main problem for me was publishing programs written in Java. I can't expect all my users to have Java Virtual Machine already installed on their machine! So, back to the roots, I started with Windows API... pure C. I read Charles Petzold's Programming Windows. An excellent book I must say, which describes all the ins and outs of Windows API functions. But writing large applications is not feasible in C. By the time you write the C code for adding a scrollbar, you could have finished building the whole program in Visual Basic. But the knowledge of Windows API is very helpful anyway, as even if you program in MFC or in Visual Basic, you will still need Windows API calls from time to time. So... it was Visual Basic's turn. About ten years ago, I used to program in QBASIC, and even wrote a nice poker game :) But QBASIC was such a stupid language that I was fearing to even look at Visual Basic. But no worries, Visual Basic provides you with a very comfortable and quick way to develop a neat GUI. I suggest the book Programming Visual Basic 6.0 by Francesco Balena. But VB being a simple language, has many shortcomings. So, you might find it helpful to write the core of your program in C, and compile it as a dll. Then you can call those functions from VB. I wish there was a good Java to native code compiler. I still think that Java provides you with the best GUI programming options, in addition to very convenient communication and parallel options. >any opinions are appreciated! > martin
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.