FROM : Dave Thorup
DATE : Thu Sep 30 17:10:06 2004
On Sep 29, 2004, at 6:45 PM, Alex Perez wrote:
>> Finally (for now) the best approach to produce native looking
>> applications and is free and liberally licensed is WxWindows (or
>> WxWidgets).
>> http://www.wxwidgets.org
> It's unfortunately rather heavy and hs its own problem of the apps not
> looking 100% native under OS X, which many Mac users are extremely
> sensitive to.
This is the same problem you run into with any cross-platform toolkit.
You have the same problem with Java/Swing, GTK, Qt, etc. Although with
toolkits like these you _can_ build an app that runs on multiple
platforms, the app tends to look and feel the best on the platform it
was developed on/targeted for. You can certainly build a wxWidgets app
that looks and feels like any other Mac app (though it is much more
difficult than building a Cocoa app), but when you recompile that app
for Windows or Unix/Linix it will feel more like a Mac app than a
Windows/Unix/Linux app and feel out of place on that platform. This is
just a result of the differences of multiple platforms, they all tend
to do things differently.
In looking at some old NeXT/OpenStep applications I discovered that
NeXT had found a very elegant solution to this problem (correct me if
I'm wrong here as I never developed for NeXT/OpenStep). It appears
that within the application bundle (or maybe the Nib bundle) you could
have separate nib files for separate platforms (similar to how you have
separate nib files for separate languages right now on OS X). So you
could design one GUI for say the Mac OS X platform and then design
another GUI for the Windows or Solaris or whatever platform. You could
then have a single application bundle (that included separate binaries
as well as separate GUIs) that could run on any NeXT/OpenStep platform
and still look and feel like a native application for that platform.
Does GNUstep have this same kind of model? If not, it would be a great
and powerful feature to add.
>> Sadly you have to get out your caveman sticks and work in C++ and
>> produce ugly Win32(ish) code. IMHO C++ is a distant (inbred) cousin
>> to
>> Objective-C and you can probably get some port started but it will not
>> look anything like Cocoa and all that great stuff you get for free in
>> AppKit you will have to figure on rolling some of it yourself. That's
>> the compromise and the benefit is that you will have "native" looking
>> apps that are cross-platform. Sadly you still have to compile them on
>> each platform etc..
> No reason why you can't code a GDI front end and have all your backend
> logic be ObjC++ using GNUstep+Foundation under win32.
I was wondering about this. This sounds like it would be the best
option (right now) for what James is looking for. You could have all
of your back-end (non-GUI) logic coded using the Foundation framework
and then put a native Windows GUI on it using whatever Windows
tools/frameworks you want.
_____________________________
Dave Thorup
Software Engineer
<email_removed>
http://www.kuwan.net
Defaults Manager - The premier editor for Mac OS X's User Defaults /
Preferences database.
DATE : Thu Sep 30 17:10:06 2004
On Sep 29, 2004, at 6:45 PM, Alex Perez wrote:
>> Finally (for now) the best approach to produce native looking
>> applications and is free and liberally licensed is WxWindows (or
>> WxWidgets).
>> http://www.wxwidgets.org
> It's unfortunately rather heavy and hs its own problem of the apps not
> looking 100% native under OS X, which many Mac users are extremely
> sensitive to.
This is the same problem you run into with any cross-platform toolkit.
You have the same problem with Java/Swing, GTK, Qt, etc. Although with
toolkits like these you _can_ build an app that runs on multiple
platforms, the app tends to look and feel the best on the platform it
was developed on/targeted for. You can certainly build a wxWidgets app
that looks and feels like any other Mac app (though it is much more
difficult than building a Cocoa app), but when you recompile that app
for Windows or Unix/Linix it will feel more like a Mac app than a
Windows/Unix/Linux app and feel out of place on that platform. This is
just a result of the differences of multiple platforms, they all tend
to do things differently.
In looking at some old NeXT/OpenStep applications I discovered that
NeXT had found a very elegant solution to this problem (correct me if
I'm wrong here as I never developed for NeXT/OpenStep). It appears
that within the application bundle (or maybe the Nib bundle) you could
have separate nib files for separate platforms (similar to how you have
separate nib files for separate languages right now on OS X). So you
could design one GUI for say the Mac OS X platform and then design
another GUI for the Windows or Solaris or whatever platform. You could
then have a single application bundle (that included separate binaries
as well as separate GUIs) that could run on any NeXT/OpenStep platform
and still look and feel like a native application for that platform.
Does GNUstep have this same kind of model? If not, it would be a great
and powerful feature to add.
>> Sadly you have to get out your caveman sticks and work in C++ and
>> produce ugly Win32(ish) code. IMHO C++ is a distant (inbred) cousin
>> to
>> Objective-C and you can probably get some port started but it will not
>> look anything like Cocoa and all that great stuff you get for free in
>> AppKit you will have to figure on rolling some of it yourself. That's
>> the compromise and the benefit is that you will have "native" looking
>> apps that are cross-platform. Sadly you still have to compile them on
>> each platform etc..
> No reason why you can't code a GDI front end and have all your backend
> logic be ObjC++ using GNUstep+Foundation under win32.
I was wondering about this. This sounds like it would be the best
option (right now) for what James is looking for. You could have all
of your back-end (non-GUI) logic coded using the Foundation framework
and then put a native Windows GUI on it using whatever Windows
tools/frameworks you want.
_____________________________
Dave Thorup
Software Engineer
<email_removed>
http://www.kuwan.net
Defaults Manager - The premier editor for Mac OS X's User Defaults /
Preferences database.
| Related mails | Author | Date |
|---|---|---|
| James Bucanek | Sep 29, 17:46 | |
| Shaun Wexler | Sep 29, 17:52 | |
| Graham J Lee | Sep 29, 17:59 | |
| Jens Ayton | Sep 29, 19:03 | |
| Joseph Graham | Sep 29, 19:38 | |
| Robert Claeson | Sep 29, 22:41 | |
| Alex Perez | Sep 30, 00:35 | |
| Alex Perez | Sep 30, 00:38 | |
| Alex Perez | Sep 30, 00:45 | |
| Graham J Lee | Sep 30, 00:52 | |
| Dave Thorup | Sep 30, 17:10 | |
| Sherm Pendley | Sep 30, 22:56 |






Cocoa mail archive

