From: Stefan S. A. <ste...@gm...> - 2010-06-12 20:08:29
|
Hi - After doing some work using the executable algebraic specification language called Maude (in the OBJ3/CafeOBJ family) and playing with Scala, C#, and the functional array-programming languages J (jsoftware.com) and K/KDB ( kx.com), I'm looking for an IDE to use for real-world cross-platform GUI programming (mainly database work to start with) - developing on XP and deploying to Windows, Linux, Mac and maybe eventually some of the mobile devices. Currently I'm leaning towards Haskell and wxHaskell, and I would appreciate any opinions on which IDE(s) might be good to use, as well as any pointers on how to put all the various necessary pieces together and use them. (One particular additional GUI requirement I also have is a decent datagrid control having custom cell editors - a multi-column combo-box control or a calendar control. Plus "freezable" left-hand column(s) would also be nice. I rejected gtk2hs because it didn't seem to have any sort of datagrid. I see that wxWidgets includes the class wxGrid which supports a wxGridCellChoiceEditor, and I imagine other features could be added to wxGrid via subclassing.) Regarding the choice to use Haskell: Haskell seems to be close to the functional languages that I like. And although benchmarks are to be taken with a grain of salt, I was pleasantly surprised to find that a functional language like Haskell can be very fast: http://shootout.alioth.debian.org/ Also Haskell has lots of libraries written for it: http://hackage.haskell.org/packages/archive/pkg-list.html <http://hackage.haskell.org/packages/archive/pkg-list.html>By the way, there's an interesting post comparing languages here: http://blog.srinivasan.biz/software/if-you-have-to-learn-just-one-programming-language where Haskell is one of the top choices after Scala. I do like Scala but I prefer to avoid the JVM. I've downloaded and installed the 2010.1.0.0 Haskell Platform, wxWidgets 2.8.11, MinGW 5.1.6, and MSys 1.0.11. So far I've also installed DialogBlocks 4.38 and CodeBlocks 10.05 to do some initial comparisons. For what it's worth, I've seen a list (put together by the people from CodeBlocks I think) comparing several wxWidgets IDEs: http://wiki.codeblocks.org/index.php?title=Comparison_of_wxSmith_features And I've heard that DialogBlocks was developed by one of the developers of wxWidgets. Regarding Haskell Platform 2010.1.0.0 and wxHaskell on Windows, this post indicates that some additional steps may be involved: http://wewantarock.wordpress.com/tag/wxhaskell/ As a beginner with Haskell and wxHaskell, I'm a bit confused right now about all the various pieces I might need to get started and how to actually use them. I have the following questions: 1 - Which IDE(s) would people recommend for doing cross-platform GUI programming using Haskell & wxHaskell? 2 - Where might I find information on how to put all the various pieces together? For example when creating a project in CodeBlocks, it asks me if I'll be using wxSmith or wxFormBuilder (or no GUI builder). So I guess I might also need to install one of these in order to best use CodeBlocks? 3 - What is the process for using an IDE to do cross-platform GUI programming using Haskell & wxHaskell? I assume I would start by designing an interface using the IDE and write some code in Haskell. Would this give me an interface defined in terms of just wxWidgets? Would I have to do something additional to get the interface to be defined in terms of wxHaskell? 5 - I hear that some of the IDEs emit something called XRC files, and according to this link (http://haskell.org/haskellwiki/WxHaskell) wxHaskell now supports these files. Do I have to create XRC files? If so, what do I do with them? 4 - The IDEs are often geared towards development using C++. I assume I can safely ignore the options about C++, but how do I find the options for building and compiling my code using Haskell and wxHaskell using one of these IDEs? I see menus in DialogBlocks and CodeBlocks asking me to pick a C++ compiler. Do I need a C++ compiler in order to use a wxWidgets IDE with Haskell? Do I need to customize the IDE so that it can access a Haskell compiler instead of a C++ compiler? Sorry if this seems really disjointed. As a a novice in the area of using Haskell for cross-platform GUI programming, I'm a bit overwhelmed now by the various choices out there for IDEs and the concrete steps involved in developing and deploying a cross-platform GUI project using wxHaskell. Any pointers would be greatly appreciated! - Scott |