The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Objective C (re-post)

I've posted this before at :

but since that thread is a little bit old I thought no one would read it...

"Ah yes, Objective C! And what about good libraries for database access, GUI development? Do they exist for Objective C on a Windows box?
I'm also thinking about leaving VB for C (I must develop a very, very fast application -1st project) but I will also have to develop a management application (it will be my second project with my soon to be created company); so I'm a little bit lost about what language to use in my second project.
I really don't want to use VB6 (I'm tired of fighting the language); C++ is not an option - just too complicated (I don't want to spend 10 months just learning the language!!!).
Java -- I really don't like the UI looks ( I want the application to have a native look (Windows, linux, whatever)..."

Any advice would be great! Thanks!
Jorge C.
Jorge C. Send private email
Thursday, December 08, 2005
You're in luck.

The Win32 API was actually written in 'C'.  Late in the game, Microsoft generated the "MFC -- Microsoft Foundation Classes" -- but you don't have to use them.

So, it's completely possible to write mostly 'C' code in windows interfaces.

Now, if the MFC classes help you, go for it.

The best books (I understand) is Programming Windows by Charles Petzold, and Advanced Windows by Richter.
Thursday, December 08, 2005
> C++ is not an option - just too complicated

You must have never used C then.

You can use the parts of C++ you want. C++ is a much better C.

If you need to be "really fast" the only thing that will satisfy you is assembler. Don't bother with anything higher on the food chain, you brute.
son of parnas
Thursday, December 08, 2005
"The Win32 API was actually written in 'C'."

True, but have you seen the code required to open a window on the screen? Yikes! I think the OP needs to take a good, hard look at which would be more to his/her bennefit given the effort required: learning the C API for Windows or learning C++ and MFC, or another C++ framework.
A. Nonymous
Thursday, December 08, 2005
If I were writing a UI intensive program from scratch, I would seriously consider:


Something with a JVM or interpreter. If you require low lever drivers & OS hooks, each of these offers good interfaces to low level calls (example: Java JNI).

I don't see the usefulness to write native applications at this point. Chose something that is cross platform and offers a rich libraries for containers, graphics, networking, database, garbage collection, etc.

Save yourself the pain.
hoser Send private email
Thursday, December 08, 2005
Seems like .Net and C# would be a good canidate here. You can use P-invoke to get to the fast code, written in C if you like, and Windows Forms is really nice to develop a GUI with.
Thursday, December 08, 2005
Should be "candidate" in the post above...

We need to get a spell checker add to this forum.
Thursday, December 08, 2005
I agree with son of parnas - I sharpened my baby teeth on C and loved it but C++ certainly has some niceties and you don't need to go in depth.  At the risk of offending C++ weenies, just pretend it's C with classes.

BTW you can change the look and feel in Java to be like Windows or whatever you want but if it's speed you're after, one has to be skilled at using Swing or SWT to make a responsive UI in Java.

And also, my experience is the design and coding contributes as much, if not more to speed than the language.
Paul Norrie Send private email
Thursday, December 08, 2005
Database Development, fast amd rich Windows GUI...
Sounds like Delphi's your friend. As long as you don't need anything crossplatform.
Fritz Send private email
Thursday, December 08, 2005
Use Python with the wxPython GUI library.

Anything performance related, implement it in C as a Python extension.
Thursday, December 08, 2005
From what I understand, Objective-C is well supported under Mac and to some extent on Linux (via GCC and GNUStep) but I don't think it has a large enough Windows community for a Windows developer to consider it.

Of course, like others have said, since Objective-C is a pure superset of C so you have the entire Win API at your disposal, however you'll be spending some time creating the framework code to make this more elegant with Objective-C i.e. productivity gains won't happen so quickly.

On the other hand, using C++ (yuk!, if you can stand it) with a good toolkit doesn't come with these disadvantages You get the community and the immediate productivity.

Having said that, I'm still stick to C because. Instead I'm going to embed a scripting language in my application and do all the heavy lifting from there. I'm considering Lua, Scheme (mzscheme or chicken) or LISP.
MFH Send private email
Thursday, December 08, 2005
Damn, I really need to start counting to ten before posting.
MFH Send private email
Thursday, December 08, 2005
MFH, you could also take a look at embedding Python in your application. It should be quite easy. ;-)
Friday, December 09, 2005
May I note that I have actually found coding in C++ to be much easier, less error-prone and in general cheaper and faster than in C. On a couple of occassions I have really really tried to re-write some little things in C... it was very tiresome to be forced to pay attention to every one of thousand little details. The reimplementation in C took longer time than writing the original in C++.

I am very much impressed with C# so far, but I haven't used it for any large project yet.
Andrei Send private email
Friday, December 09, 2005
There's a rummor that Apple is porting the Cocoa runtime to Windows. Cocoa with Objective C is already one of the nicest platforms to develop in, and that would make it cross-platform and probably the best possible choice.

The codename is supposed to be "Dharma" and it might be introduced at the WWDC in January.
Matthias Winkelmann Send private email
Sunday, December 11, 2005
Matthias - Given that iTunes on Windows looks and acts almost like the one on OS X and is completely statically linked executable (avoids DLLs) I would think the Cocoa/Windows port already exists.

Sure it will be nice option to develop on Windows but I wonder what's Apple's thoughts behind making it available to developers - in the event they do of course!
Sunday, December 11, 2005
Oh never mind - someone tells me iTunes is not a Cocoa application but a Carbon one since it existed in classic MAC OS - may be true.

note to self : check facts before randomly posting anything!
Sunday, December 11, 2005
Guess folks don't remember OpenStep Enterprise, the version of OpenStep (version 4 of NEXTSTEP) that ran on top of WinNT 4.  Essentially, it was pre-Cocoa for Windows.  Might Apple have, in fact, continued to maintain the windows port of OpenStep the way they essentially maintained the Intel port of NEXTSTEP?
jburka Send private email
Monday, December 12, 2005
Consider WxWidgets or Trolltech QT.
Thursday, December 22, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz