I'm looking for applications using Boost and STL with source code available
I would like to study a gui application designed from the ground up with modern C++ techniques and built on top of STL and Boost. Ideally I am looking for an application that abstracts the system specific ui components (windows, controls, etc) as much as possible. The ideal application would: Implement significant, non-trivial functionality. Be elegant and efficient. Use modern C++ and implementation design techniques. Be built on top of STL and Boost. Use the best techniques for the job (metaprogramming, generic programming, functional programming, oo, etc) Have source code available for study (not necessarily available for legal use). Last but not least, a native Mac OS X application would be ideal. Does anyone here know of any applications that meet these requirements? I have been studying modern C++ for a while now and would like to study real world applications and uses of the these techniques and libraries as a next step in this study. Thanks, Matthew
Matthew Johnson wrote:
I would like to study a gui application designed from the ground up with modern C++ techniques and built on top of STL and Boost. Ideally I am looking for an application that abstracts the system specific ui components (windows, controls, etc) as much as possible.
The ideal application would: Implement significant, non-trivial functionality. Be elegant and efficient. Use modern C++ and implementation design techniques. Be built on top of STL and Boost. Use the best techniques for the job (metaprogramming, generic programming, functional programming, oo, etc) Have source code available for study (not necessarily available for legal use). Last but not least, a native Mac OS X application would be ideal.
Does anyone here know of any applications that meet these requirements?
I'm afraid you might have to write one yourself :-)
Thanks, Matthew
Jonathan
I'm afraid you might have to write one yourself :-)
I plan to do that! :) I'm looking for examples to learn from before I get started... If nobody knows of good examples that meet all the criteria, some examples that meet various subsets of the criteria may be helpful also... Matthew
On Thu, 17 Feb 2005 15:42:40 -0600, Matthew Johnson
I'm afraid you might have to write one yourself :-)
I plan to do that! :) I'm looking for examples to learn from before I get started... If nobody knows of good examples that meet all the criteria, some examples that meet various subsets of the criteria may be helpful also...
While not at all a GUI, you might be interested in the code of "monotone", which is one of the next-generation of revision control systems that currently in development. Its written in C++ and makes good use of a number of Boost facilities (though not MPL from what I can gather). http://www.venge.net/monotone/ -- Caleb Epstein caleb dot epstein at gmail dot com
I'm betting this post will recieve a lot of response but that you won't find what you're looking for. I've only been watching discussions along this line enough to convince me that although there is much interest in this, we're not there (yet?). However, I don't think all is lost. My experience with GUI stuff is in writing programs using MFC. Typically there is the opportunity to divide the application in to two "halves". a) A "lower" half which is (mostly) portable which deals with data, devices, etc and exposes an interface (or API) by which the underlying data, devices, etc. can be manipulated. b) An "upper" half which handles gui stuff like drawing, events, etc. This upper half is generally non-portable an particulary to the environment - windows, mac, or what ever. The lower half is very suitable for a boost approach and architecture. any and all of boost can be useful. This is generally refered to as MVC (Model, View, Controller) pattern. The upper half - well it depends... I think its too hard (expensive) to make this portable and generic and still benefit from all the code that comes with MFC or other GUI toolkits. Though there may be some places where boost stuff is useful, I think that mostly one will get most bang for the buck in doing this part "their way". To summarize, a project of this nature is best factored into loosly coupled pieces. Some pieces are are a very good fit with boost - and others are not. Use the best toolkit for each piece. Someday, their may be a boost library which presents a common interface to GUI libraries. But until that happens, I would recommend the above. Robert Ramey Matthew Johnson wrote:
I would like to study a gui application designed from the ground up with modern C++ techniques and built on top of STL and Boost. Ideally I am looking for an application that abstracts the system specific ui components (windows, controls, etc) as much as possible.
The ideal application would: Implement significant, non-trivial functionality. Be elegant and efficient. Use modern C++ and implementation design techniques. Be built on top of STL and Boost. Use the best techniques for the job (metaprogramming, generic programming, functional programming, oo, etc) Have source code available for study (not necessarily available for legal use). Last but not least, a native Mac OS X application would be ideal.
Does anyone here know of any applications that meet these requirements? I have been studying modern C++ for a while now and would like to study real world applications and uses of the these techniques and libraries as a next step in this study.
Thanks, Matthew
Normally I would agree with this reply but not since I found WXWidgets. In fact I would love to see boost and WX Widgets merge together. WXWidgets is a crose platform GUI library like MFC and VCL and it is 12 years old. It runs on MAC, Linux, and Windows. Heck he is even working on a version for palm devices. check it out at www.wxwidgets.org and think of all the things that could be done if it was part of all the boost work. KenOn Thu, 17 Feb 2005, Robert Ramey wrote:
I'm betting this post will recieve a lot of response but that you won't find what you're looking for.
I've only been watching discussions along this line enough to convince me that although there is much interest in this, we're not there (yet?).
However, I don't think all is lost.
My experience with GUI stuff is in writing programs using MFC. Typically there is the opportunity to divide the application in to two "halves".
a) A "lower" half which is (mostly) portable which deals with data, devices, etc and exposes an interface (or API) by which the underlying data, devices, etc. can be manipulated.
b) An "upper" half which handles gui stuff like drawing, events, etc. This upper half is generally non-portable an particulary to the environment - windows, mac, or what ever.
The lower half is very suitable for a boost approach and architecture. any and all of boost can be useful.
This is generally refered to as MVC (Model, View, Controller) pattern.
The upper half - well it depends... I think its too hard (expensive) to make this portable and generic and still benefit from all the code that comes with MFC or other GUI toolkits. Though there may be some places where boost stuff is useful, I think that mostly one will get most bang for the buck in doing this part "their way".
To summarize, a project of this nature is best factored into loosly coupled pieces. Some pieces are are a very good fit with boost - and others are not. Use the best toolkit for each piece.
Someday, their may be a boost library which presents a common interface to GUI libraries. But until that happens, I would recommend the above.
Robert Ramey
Matthew Johnson wrote:
I would like to study a gui application designed from the ground up with modern C++ techniques and built on top of STL and Boost. Ideally I am looking for an application that abstracts the system specific ui components (windows, controls, etc) as much as possible.
The ideal application would: Implement significant, non-trivial functionality. Be elegant and efficient. Use modern C++ and implementation design techniques. Be built on top of STL and Boost. Use the best techniques for the job (metaprogramming, generic programming, functional programming, oo, etc) Have source code available for study (not necessarily available for legal use). Last but not least, a native Mac OS X application would be ideal.
Does anyone here know of any applications that meet these requirements? I have been studying modern C++ for a while now and would like to study real world applications and uses of the these techniques and libraries as a next step in this study.
Thanks, Matthew
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Ken Perry wrote:
Normally I would agree with this reply but not since I found WXWidgets. In fact I would love to see boost and WX Widgets merge together. WXWidgets is a crose platform GUI library like MFC and VCL and it is 12 years old. It runs on MAC, Linux, and Windows. Heck he is even working on a version for palm devices. check it out at www.wxwidgets.org and think of all the things that could be done if it was part of all the boost work.
You might want to search the archives for recent discussions on this list about GUI frameworks. wxWidgets was discussed in detail, and there was even talk about a collaboration between wxWidgets and Boost developers. However, the conensus was that wxWidgets was decidedly unmodern C++. Jonathan
Ah see what I get for not digging deap enough into something before talking thanks for setting me straight. KenOn Thu, 17 Feb 2005, Jonathan Turkanis wrote:
Ken Perry wrote:
Normally I would agree with this reply but not since I found WXWidgets. In fact I would love to see boost and WX Widgets merge together. WXWidgets is a crose platform GUI library like MFC and VCL and it is 12 years old. It runs on MAC, Linux, and Windows. Heck he is even working on a version for palm devices. check it out at www.wxwidgets.org and think of all the things that could be done if it was part of all the boost work.
You might want to search the archives for recent discussions on this list about GUI frameworks. wxWidgets was discussed in detail, and there was even talk about a collaboration between wxWidgets and Boost developers. However, the conensus was that wxWidgets was decidedly unmodern C++.
Jonathan
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Ken Perry wrote:
Ah see what I get for not digging deap enough into something before talking thanks for setting me straight.
No problem -- people set me straight around here just about every day ;-) Jonathan
You might want to search the archives for recent discussions on this list about GUI frameworks. wxWidgets was discussed in detail, and there was even talk about a collaboration between wxWidgets and Boost developers. However, the conensus was that wxWidgets was decidedly unmodern C++.
I will do that. I do want to clarify though as it seems there may have been a misunderstanding as to what I'm interested in. I'm not really looking for a gui framework or necessarily cross platform capability. I'm mainly interested in studying techniques used in a full blown gui application that is designed using modern techniques. Preferably OSX since that's what i use, but not necessarily that either. If there's a well designed and implemented application for another platform I would like to study that code as well. Regards, Matthew
Matthew Johnson wrote:
You might want to search the archives for recent discussions on this list about GUI frameworks. wxWidgets was discussed in detail, and there was even talk about a collaboration between wxWidgets and Boost developers. However, the conensus was that wxWidgets was decidedly unmodern C++.
I will do that. I do want to clarify though as it seems there may have been a misunderstanding as to what I'm interested in. I'm not really looking for a gui framework or necessarily cross platform capability. I'm mainly interested in studying techniques used in a full blown gui application that is designed using modern techniques. Preferably OSX since that's what i use, but not necessarily that either. If there's a well designed and implemented application for another platform I would like to study that code as well.
Maybe you should look at John Torjo's win32 generics library. (I haven't yet.)
Regards, Matthew
Jonathan
My understanding is that wxWidgets is currently getting a major re-write to make use of modern C++ style of coding. I know lots of discussion of the STL is being generated on its mail lists. So I think some collaboration, if not lots, would be in order... Jonathan Turkanis wrote:
Ken Perry wrote:
Normally I would agree with this reply but not since I found WXWidgets. In fact I would love to see boost and WX Widgets merge together. WXWidgets is a crose platform GUI library like MFC and VCL and it is 12 years old. It runs on MAC, Linux, and Windows. Heck he is even working on a version for palm devices. check it out at www.wxwidgets.org and think of all the things that could be done if it was part of all the boost work.
You might want to search the archives for recent discussions on this list about GUI frameworks. wxWidgets was discussed in detail, and there was even talk about a collaboration between wxWidgets and Boost developers. However, the conensus was that wxWidgets was decidedly unmodern C++.
Jonathan
Jeffrey Holle wrote:
Jonathan Turkanis wrote:
Ken Perry wrote:
Normally I would agree with this reply but not since I found WXWidgets. In fact I would love to see boost and WX Widgets merge together. WXWidgets is a crose platform GUI library like MFC and VCL and it is 12 years old. It runs on MAC, Linux, and Windows. Heck he is even working on a version for palm devices. check it out at www.wxwidgets.org and think of all the things that could be done if it was part of all the boost work.
You might want to search the archives for recent discussions on this list about GUI frameworks. wxWidgets was discussed in detail, and there was even talk about a collaboration between wxWidgets and Boost developers. However, the conensus was that wxWidgets was decidedly unmodern C++.
My understanding is that wxWidgets is currently getting a major re-write to make use of modern C++ style of coding. I know lots of discussion of the STL is being generated on its mail lists.
So I think some collaboration, if not lots, would be in order...
Me too. I just meant that the current implementation was not 'modern'
Jonathan
I'm betting this post will recieve a lot of response but that you won't find what you're looking for.
I'm not necessarily looking for something that is ideal. Just some examples that make good use of Boost and STL and modern design techniques. If this means that the gui portion of the app is more tied to a gui framework or toolkit then that's fine.
This is generally refered to as MVC (Model, View, Controller) pattern.
I'm very familiar with MVC. In terms of MVC I'd be looking for something where at least the model and hopefully the view are using modern design techniques. My primary goal is to study an elegant and efficient design and implementation. If modern techniques are not possible for the whole application due to lack of gui libraries to support that, etc that is fine. Mostly, I'm looking for recommendations of really good examples to look at. Any ideas people have are very much appreciated... Regards, Matthew
participants (6)
-
Caleb Epstein
-
Jeffrey Holle
-
Jonathan Turkanis
-
Ken Perry
-
Matthew Johnson
-
Robert Ramey