Free windows cross platform stuff

For PC type software that runs under some PC opsys.

Free windows cross platform stuff

Postby Doug Coulter » Fri Jan 21, 2011 11:01 am

I was in love with, but dropped DevStudio when they went to the .net stuff. I just had a visceral reaction to the new junk -- all scripted, another failed attempt to solve dll-hell, and having to learn new libs and run in place to while MS wasn't even eating their own dogfood and getting ahead. Further, I never liked the software as a subscription idea this was pushing -- like OLE, ActiveX, COM and DCOM, it looked more like you were working for them without pay, while adding dependencies and lockin and security holes...and while I know a couple of smart software guys who use it, the horrible quality of the other 99%+ of .net code I've run across seems to say I was right to avoid it. And yes, I'm naming and shaming Pfeiffer, Hantek, Gw-Instek here, the .net code that comes with your not-inexpensive products is among the worst I've ever seen provided by a vendor. Maybe you shouldn't use tools advertised "any monkey can make code with these" because -- look what you got! Monkey code. All three crash regularly, are the slowest code I run on any machine...lack any feature that takes thought, and so on. And it wasn't time-to-market, because all that code might just as well be called abandon-ware -- no improvements in years, that was it, lousy, half baked stuff that got the "free and easy" but no commitment to the customer. Thanks, but no thanks.

But I still have needs to program windows, and not enough to go with a full blown, multi K$ MSDN subscription (there's that word again), so I started looking around a bit. Further, since I'm nearly all Linux (ubuntu 10.4 LTS) here, I decided not to undertake very much single platform coding any more. As software progresses, I find myself writing less and less directly on the metal (like that multitracking sound editor I wrote and published a book on) and more and more leveraging other big chunks of functionality, for which straight C (or C++) isn't so hot. String processing more or less stinks, the STL is kind of bloat and hard to (re) learn, and so on. So I'm doing a lot in Perl, and checking all the cross platform GUI libs. But you always need a little bit of real basic, fast, on the metal in almost every project, so the first step is to get C going nicely.

While fooling around with the labjack, I noticed a link on their site to a freeware IDE for this, that comes bundled with the right stuff to use Gcc on windows. Here it is"
http://www.bloodshed.net/
Yeah, funky name, but it's a nice simple little IDE, with some project templating (not all perfect), and looks like abandonware, but it seems not to need much more anyway. The one flaw I found was a (hard to find) glitch in the .dev files for GTK2+ project template that after I found it was easy enough to fix. I doubt the debugger holds a candle to the one in devstudio, which in turn I very rarely used anyway. I was always doing software more complex and better designed than was a fit to that one, even. A multithreaded program pretty much has to be debugged in other ways, setting a breakpoint and hitting it always messes everything else up -- all the other threads lock or buffers overflow, so the debugger "lies" to you about what caused this or that anyway. I prefer to reduce or eliminate bugs upfront by design and unit testing at any rate, and that approach works for me.

As a product developer (and now a user) -- you never, ever want code that was debugged into working. If the coder didn't know enough to write good code in the first place, you only get code that didn't fail under ideal conditions that way -- coders are really bad (all of us) at testing things that fall outside our assumptions. Period. Better to design it right and understand what's going on beneath the magic wherever that is even remotely possible -- which kind of negates the use of some big libraries until you really understand what's going on in there and the philosophy of the library writers. We finally got there on MFC, and it's actually not deserving of the bad reputation some gave it who didn't do that homework (at least until COM etc got patched in, which kind of ruined it if you used it).

So, I'm using this little "alright" IDE to test GTK on windows. ActiveState has dropped Tk for their windows distribution for perl, and it was pretty clunky anyway but useful for small things.
QT is out there, sure, and I've not fully checked out the new versions but at the point I checked last, it was a wimpy attempt to copy MFC without a lot of the features (like message passing to the right place, do what I mean) that made MFC good...so I'll be hard on it in my evaluations again, and looking for that kind of issue where I have to hand-maintain code if I want to invoke something via all of key shortcut, menu, and button -- MFC made that easy, QT made you write 3 subs and maintain them to all call one sub...lame.

GTK has Glade, which looks (finally) good enough to use for decent GUI work. It makes XML (yuck, there's xml in there!) but now -- GTK itself knows how to build a GUI and hook up all the events from that XML file (which can be embedded in your main program), so it's language AND platform independent. That's way cool, so that's the next thing I'm playing with.
http://tadeboro.blogspot.com/2009/09/gl ... ction.html

Perl now allows inlining C, and half a dozen other languages with very little pain to the developer -- even octave (open source version of matlab) and many of the cool tools are now both free and cross platform, so things are looking up. The idea (as I ranted on in my book) is to be using the best tool for each part of the problem, and to program into the strengths of the platform at hand, and this is looking easier and more possible now than at any time in the past. I'll put some links to goodies up on this thread later when I catch a breath. The basic plan here is to use Perl as glue, for which it's probably the best thing out there -- and it kills string handling and general sticking of things together. C when it needs to be fast, and whole applications run under perl for big chunks of functionality. Gnuplot and octave, as well as MySQL for example all "stick" to perl easily and are rich and fast themselves -- no need to make yet another wheel, those are round enough already. http://search.cpan.org/~sisyphus/Inline ... okbook.pod
http://www.gnu.org/software/octave/
http://code.google.com/p/gds2000tools/# ... ng_Example
http://search.cpan.org/~mehner/Graphics ... uplotIF.pm

You know, it wasn't all that long ago that about 10 grand wouldn't buy you the stuff listed above, and what it would buy wasn't as good (or fast).


We're going to need some good tools to "mine" the fusor data we're collecting here (and hopefully others will collect data too), and that's why I'm dipping back into software land. There's nothing off the shelf that is even close to being able to do the kinds of analysis we'll be wanting, so....we make it ourselves.
Posting as just me, not as the forum owner. Everything I say is "in my opinion" and YMMV -- which should go for everyone without saying.
User avatar
Doug Coulter
 
Posts: 3515
Joined: Wed Jul 14, 2010 7:05 pm
Location: Floyd county, VA, USA

Re: Free windows cross platform stuff

Postby Doug Coulter » Fri Jan 21, 2011 7:52 pm

After doing a little work with that tutorial linked above, I came up with something moderately cool. You can use Glade 3.4.x to make interface files that work with either C(++) or perl, no sweat, with a couple caveats. Perl turns into a lot less code for the job, at least at this point, and of course, doesn't need to be recompiled across platforms either. In this case, I made two glade output files from the same project, one in each format, as perl wants one an C claims to want the other (but might work with the same one as perl, not tested yet).

So, here it is for those who like to play with stuff. On linux I just used Gedit, bash, glade...on windows I used the stuff described above to get it built (which is gcc in either case).
There's some jiggery-pokery of getting a window inside another window to get all the properties of packing, sizing and so on in glade -- so what else is new? Guis are always a little fiddly to get like you want, no matter what. But kind of neat that you can use the same GUI design in more than one language on more than one platform --

gtkstuff.zip
code for cross platform example. The compiled file is for linux.
(7.09 KiB) Downloaded 413 times


Edit:
Here's a link that discusses the issues with the perl module vs the new glade interface
http://ubuntuforums.org/archive/index.p ... 39316.html
Posting as just me, not as the forum owner. Everything I say is "in my opinion" and YMMV -- which should go for everyone without saying.
User avatar
Doug Coulter
 
Posts: 3515
Joined: Wed Jul 14, 2010 7:05 pm
Location: Floyd county, VA, USA

Re: Free windows cross platform stuff

Postby Mikael Bolduc » Tue May 13, 2014 2:20 pm

Hi Doug,

It's been a while since this tread was posted, but for the readers looking into a desktop cross-platform framework in 2014 for rapid application development there's no open source framework more neat than QT right now.

So I leave this link here if someone doesn't know that and wants to try it out:

http://qt-project.org/

For someone that has a .NET background like I do and wants to do cross platform quickly, than there's monoDevelop which is also nice:

http://monodevelop.com/
Mikael Bolduc
 
Posts: 4
Joined: Thu Apr 17, 2014 1:07 pm


Return to PC

Who is online

Users browsing this forum: No registered users and 2 guests

cron