Domain: gtk.org
Stories and comments across the archive that link to gtk.org.
Comments · 175
-
Re:C can be the future
You want objects in C? DONE.
You want simple inheritance? Here you go:struct father
{
struct father* next;
};struct son
{
struct father inheritance;
char* yobro;
};But if you want a thing that contains data structures, code, and interfaces like an object in C++... that's just a
.c and .h file.Inheriting and expanding that code base in a real object oriented way is going to involve some crazy shenanigans with a lot of function pointers like you see in the GTK. It's just not simple and clean in C.
No, C is not going to get objects. If you gave it objects, that would be a fork, and many many other people have tried that. Some of them did a decent job.
C is going to be in the future. But it's not going to compete with Java, C#, or C++. And certainly not with whatever crazy web-dev language of the week they have.
comparable to boost
OMG NO.
-
GNOME toolki? nope GIMP Toolkit
GTK+, or the GIMP Toolkit, is a multi-platform toolkit for creating graphical user interfaces. http://www.gtk.org/
-
Re:Type Erasure
I think what a lot of people forget (or don't know) is that Type Erasure was used in order to make the generated
.class files backwards-compatible with older .class files when they added generics in a later version. A lot of Java's limitations are due to stringent backwards-compatibility and due to it taking risks first, realizing the problems, and trying to rectify it, while C# benefited from this greatly. History and the overall picture should be taken into consideration.
To me, this article and arguments are of little value. I use Java because it is a language close to C/C++ with garbage collection that works on many different platforms (any with a JVM). The reality of "write once, run everywhere" did not really come to fruition, but Java is at least a lot closer to it than C#. Mono is a pit stain upon Linux. Others use C# because they need to easily call Microsoft-specific code without the harder-to-write JNI and JNA code; C# runs better on Microsoft than Java, hands down.
You pick languages based on your need (or your customer's need). When I need a complex script (that bash can't handle), I won't be using Java or C#. I'll be using Ruby, Python, etc. If I need strong Gtk support, then I will pick a language easiest to me that has the highest supported version (http://www.gtk.org/language-bindings.php). If I need strong Windows support, then I will use C#. -
Re:*sigh*
C and open source is a great solution,
absolutely, stood the test of time in a way no other language has.
right up until you have to make an identical GUI work across a Microsoft and *nix platform.
there you just show your lack of google-fu. There's Qt which is awesome, or even GTK, or a host of others.
Nowadays you need a GUI that works on Macs too, and mobile.
That said, the whole concept of a thick GUI is dying, the state-of-the-art is currently HTML-based GUIs, and they are as identical as you can get (if you host in the same rendering engine - eg webkit).
The problem you have to worry about is the first sentence. every application in the enterprise that isn't written by Microsoft is built on Java. the industry *is* moving away from Java, as its seen to be either legacy, slow, bloated, or just insecure. The problem is that those industries are looking for alternatives and are choosing Microsoft. The number of jobs for ASP.NET MVC 4 are staggering right now, in a way that I would never have expected for web-based development. We have to be careful MS doesn't scoop up all the old Java systems.
-
Re:what tricks?
Sugar. The term in Syntactic Sugar. Not candy.
And while you can certainly implement almost any language construct in C, like object oriented class inheritance, it's not always a good idea.
-
Re:One of the advantages of Linux
And there's a reason for that. Far better compatibility with the vast majority of.languages.
Not really. Compare the GTK+ bindings with the Qt bindings and you'll see that they could have at least gone with C++ without abandoning compatibility. In fact, I'd say subjectively that the Qt bindings tend to be much higher-quality than the GTK+ ones. How many major GNOME applications are actually written in anything other than plain C? How readable do you find a typical GNOME application's code as compared to a similar KDE application's? For another, I'm just not sure how important a variety of languages is. Apple did pretty well (more or less) standardizing on Objective-C for their UI. I don't even particularly like Objective-C, but it's high-level enough that people are productive writing applications.
-
Re:Lag != FUD
Christmas was less than two weeks ago. I prefer to assume good faith: not having checked on a long-standing situation in the past two weeks is lag, not FUD.
The GNOME theme work was over Christmas. GNUstep has had in-window menus for about five years and generic themes for several years (previously they required the Camaelon bundle, now they are part of the core. The Windows-specific theme is almost a year old.
The only new bit is that GNUstep will now try to mimic GNOME apps when running in a GNOME desktop. The original poster claimed:
Part of the problem is that they've gone out of their way to keep the UI totally unlike anything else used on Linux or Windows.
This is not true - GNUstep has worked hard to integrate with other environments and it is considered an important priority by the GNUstep developers. Claiming that GNUstep actively tries to avoid integration is FUD. A few of the GNUstep developers (not any of the project maintainers) prefer the OPENSTEP look, and it's still the default, but take a look at the default GTK look sometime and you'll see something similarly dated, which is why everyone uses a theme.
The GNUstep theme engine has improved a lot over the last year, and now provides hooks for things like common dialog boxes, so on Windows (and, eventually, on GNOME and other systems), GNUstep apps will show the native open / save / font / print panels instead of the GNUstep ones. Since I can paste URLs into this text field, here are some screenshots of Bean, a Cocoa word processor:
- Running on OS X, where it was originally written (requires OS X 10.4 or newer).
- Running on Windows, using GNUstep and the UXTheme engine. Note that the menus and open dialog are draw using the native Win32 APIs, not by GNUstep's internal drawing code.
- Running in GNOME, with the (work-in-progress) GNOME theme. The horizontal in-window menu is drawn by GNUstep this time, but the theme tries to mimic the GTK look (still some bugs).
- Running in a NeXT-style desktop using WindowMaker, with something that's not quite the default GNUstep theme, but almost.
By way of comparison, here are some screenshots of GTK on Mac and on Windows. The Windows port has improved a lot since I last used Windows and looks pretty close to native (although that screenshot doesn't show a file chooser - last time I ran GIMP on Windows it used the GTK NeXT-like file chooser instead of a Windows-like one), but the Mac port still has in-window menus and doesn't look even a bit like a native app.
-
Re:Lag != FUD
Christmas was less than two weeks ago. I prefer to assume good faith: not having checked on a long-standing situation in the past two weeks is lag, not FUD.
The GNOME theme work was over Christmas. GNUstep has had in-window menus for about five years and generic themes for several years (previously they required the Camaelon bundle, now they are part of the core. The Windows-specific theme is almost a year old.
The only new bit is that GNUstep will now try to mimic GNOME apps when running in a GNOME desktop. The original poster claimed:
Part of the problem is that they've gone out of their way to keep the UI totally unlike anything else used on Linux or Windows.
This is not true - GNUstep has worked hard to integrate with other environments and it is considered an important priority by the GNUstep developers. Claiming that GNUstep actively tries to avoid integration is FUD. A few of the GNUstep developers (not any of the project maintainers) prefer the OPENSTEP look, and it's still the default, but take a look at the default GTK look sometime and you'll see something similarly dated, which is why everyone uses a theme.
The GNUstep theme engine has improved a lot over the last year, and now provides hooks for things like common dialog boxes, so on Windows (and, eventually, on GNOME and other systems), GNUstep apps will show the native open / save / font / print panels instead of the GNUstep ones. Since I can paste URLs into this text field, here are some screenshots of Bean, a Cocoa word processor:
- Running on OS X, where it was originally written (requires OS X 10.4 or newer).
- Running on Windows, using GNUstep and the UXTheme engine. Note that the menus and open dialog are draw using the native Win32 APIs, not by GNUstep's internal drawing code.
- Running in GNOME, with the (work-in-progress) GNOME theme. The horizontal in-window menu is drawn by GNUstep this time, but the theme tries to mimic the GTK look (still some bugs).
- Running in a NeXT-style desktop using WindowMaker, with something that's not quite the default GNUstep theme, but almost.
By way of comparison, here are some screenshots of GTK on Mac and on Windows. The Windows port has improved a lot since I last used Windows and looks pretty close to native (although that screenshot doesn't show a file chooser - last time I ran GIMP on Windows it used the GTK NeXT-like file chooser instead of a Windows-like one), but the Mac port still has in-window menus and doesn't look even a bit like a native app.
-
Re:I'm convinced!
The GIMP is brought up because it's the flagship application of the Linux/free software/open source crowd.
GTK+ is (basically) the GIMP Toolkit. GNOME is built on GTK+ and was at one time the only totally free desktop environment because KDE was built on Qt, which wasn't free-libre.
In fact, what would be really weird is if there were a Photoshop thread in which the GIMP wasn't mentioned.
An alternative question would be: why is Photoshop compulsively mentioned whenever there's a new GIMP release?
-
Re:Qt
FTFY. See the GtkMM Documentation as well as the mainline GTK documentation.
FTFY
:p -
Re:Qt
GTK didn't used to have the well written documentation that Qt has.
TFTY. See the GtkMM Documentation as well as the mainline GTK documentation. The newer documentation, including that for the PyGTK Python bindings, is some of the best-written API documentation I've ever seen.
-
Re:Kudos to Nokia
Hahaha, you're totally wrong.
You're such in case of epic failure:
- Here is the license for the C++ runtime library (an example).
- Here you can read about the license of gtk+ library, and its purpose.
Again, basic OS libraries should be given under the LGPL or special license as the gcc/g++ exceptions.
You should clarify your mind. gcc/g++ is GPL, bu the GPL part applies to the compiler itself. And indeed, the runtime libraries, needed to run the code compiled with gcc/g++ are under a LGPL like license.
Why should I use gcc/g++ under Linux?
- Best compiler, always up to date
- Best support under this OS
- Sort of reference-like amogst the c/c++ compilers?
Have fun, -
Re:Use Qt....
I have no idea why GTK+ is still around since Qt went LGPL.
Qt has better documentation than GTK+.
As an example, you'd be hard pressed to find a widget in the QT documentation that is not documented. GTK+ has rough around the edges documentation for it's Canvas.
I know that RedHat is putting a lot of weight behind Java technology as one of the first and foremost distros for the OpenJDK. I can attest that the QT Java bindings are way better than the GNOME bindings. It would make sense for RedHat to toss weight behind QT. Google already uses QT for Google Earth. And KHTML is, sorta, WebKit which is Chrome. It all makes more sense to put our weight in QT.
I've got nothing but love for the GTK+ people. Also, don't kill QT just because of the KDE 4.0 issue. They've made good on their latest desktop, but don't knock a good Toolkit because of the DE.
My two cents. -
Re:The problem is... GTK isn't portable !
The problem with Javascript + GTK is that it isn't portable to other platforms, like Windows. At least that I am aware of.
GTK+ is. Webkit certainly is (see Chrome -- webkit-based, Windows-only browser -- or Safari, which runs on Windows, OS X, the iPhone...) I can't confirm right now whether seed itself has been ported, but I see no reason why it wouldn't be.
Is Qt currently more portable? Maybe -- last I checked, Gimp, at least, was shipping with a GTK+ for OS X which required X11, while Qt has a native Mac GUI. But to say that either one "isn't portable to other platforms" is just willful ignorance.
-
Re:About friggin time
So the proof that the newly released JavaFX will fail is that you haven't been using it for building applications?
A high percentage of developers code on linux systems, and if you want that code to run on windows, you're primarily limited to java or browser-based applications (although GTK is starting to look appealing). Deploying java applet and webstart apps is a nightmare, but javafx is being trumpeted by Sun as a solution to this -- for windows and mac only. Note that you need to download javafx just to view the demos, so even though it was downloaded by a lot of windows/mac users doesn't mean that a high percentage of those downloads were by people wanting to develop javafx apps. So the problem isn't that the grandparent poster doesn't use javafx, it's that if you use linux, you CAN'T use javafx.
And it appears that that will be the case for quite awhile, because Sun has been purging comments from their blog post about javafx support on linux and solaris (all comments from December 6 and 7th are now missing, along with some others), and the editor of the java.net site says that Sun has "better things to do" than release a linux or solaris version of javafx.
That may not be "proof that JavaFX will fail," but it certainly doesn't help foster its adoption.
Sun can still turn things around if they release a 64-bit linux port of javafx. The 64-bit plugin technology is related to javafx, so maybe if and when Sun ever releases a linux version of javafx, it will be for both 32-bit and 64-bit systems. But I'm not going to hold my breath. -
WINEIn my home business, I'm down to ONE program that runs only on Windows (ebay Blackthorne). ONE. (Wine doesn't cut it)... and I find the Windows boxes need the most babysitting. Time killer = Money Wasted.
Out of curiosity have you tried asking for an OS X or Linux port of Blackthorne? If others have the same bottleneck for upgrading, it can be possible to show demand, or at worst pool resources and get WINE or Cedega to support it. Tools built with normal cross-platform languages like Java, C, C++ and so on can use cross-platform GUI toolkits like Qt and GTK+
Alternately, what is the one thing that Blackthorne does that similar tools don't? (Aside from you have it installed already and are presumably familiar with it.) Maybe there's a new tool or new version of an old tool that scratches that itch.
-
[ikspi:] || [eggspeh] || [igz:peeh]
Why is "linux" hard to pronounce? If you have problems with that probably it isn't for you. Oh, and btw the Linux pronunciation is documented.
What would you say about the grml project? Or about the overlengthy and oversimplified GNU Is Not Unix Image Manipulation Program Toolkit?
-
No Professional Tools are from RedmondAll the "First taste is free" comments apart, can some slashdotters recommend an equivalent in the open source software that is as mature and robust as the three said software listed in the page. A *real* development environment, designer tools and a server are given away free by a corporation and suddenly some geeks want to comment on how this is not what they want and Windows source would be the holy grail.
Judging from some of the activity here, that's probably not a serious question. But let's pretend it is. However, a lot of little Bill fans will get their feelings hurt.
Bill's toy bag is just that, a toy bag, that what little it does is on and for Windows -- only. And it's near a few decades late in coming. A comprehensive answer could go on for pages if you start to include various languages like Java, Python, Perl, C, and Ada. or Tomcat, Lenya, Swish, and many others staples. That's not even counting PHP and PHP-based kit, CPAN and others.
However the press release does not say what the MS "tools" do or, more correctly, claim to do. Students would be more employable playing WoW. For those that have been living in a cave for the last 15 years here's a recap of the main professional tools you will find in industry. There are others, but they're mostly open source, too, except a few big items like Oracle and DB2. None are MS.
IDEs
Databases
- MySQL (now Sun)
- Postgresql
GUI toolkits
MS has held back computing far too long. The sooner it gets out of the way, the sooner both business and research can get back on track. Bill and his anti-American movement can go take a hike, there's no place for either MS or MS boosters in today's economy.
-
Re:Professional ToolsAll the "First taste is free" comments apart, can some slashdotters recommend an equivalent in the open source software that is as mature and robust as the three said software listed in the page. A *real* development environment, designer tools and a server are given away free by a corporation and suddenly some geeks want to comment on how this is not what they want and Windows source would be the holy grail.
Let's pretend that's a serious question. Well, the press release does not say what the "tools" do. However, for those that have been living in a cave for the last 15 years here's a recap of the main professional tools you will find in industry. There are others, but they're open source, too, except a few big items like Oracle and DB2.
IDEs
Databases
GUI toolkits
The list could go on for pages if you start to include various languages like Java, Python, Perl, C, and Ada. or Tomcat, Lenya, Swish, and many others staples. That's not even counting PHP and PHP-based kit. Bill's toy bag is just that, a toy bag, that what little it does is on and for Windows. And it's near a few decades late in coming.
MS has held back computing far too long. The sooner it gets out of the way, the sooner both business and research can get back on track. Bill and his anti-American movement can go take a hike, there's no place for them.
-
Re:Let professional GUI toolkit developers decide?
GTK actually works quite fine on Windows and Mac.
It works acceptably on Windows. It most certainly does not work quite fine on Macs, though. The OS X port is a very buggy work in progress; it's bad enough that the GTK+ website doesn't even suggest using it, preferring instead to provide would-be OS X users with a terse "coming soon" page.
(Yeah, there's an X11 version, but X11 on OS X is a horribly clunky second-class citizen that most Mac users have never even heard of, let alone have installed, and would refuse to use if they saw it. That does not count as "works quite fine".) -
wxWindows produces native GUIs.
wxWidgets is native to all supported operating systems. GTK was originally designed for Unix-style X Windows. My understanding is that under Windows it still has X Windows quirks and limitations. There is also a difference in grief:
GTK -- Using Microsoft's Compiler:
It is possible to use these packages with Microsoft's compiler. However, these DLLs use the MSVCRT.DLL runtime library. This means that also applications that use these DLLs should use the MSVCRT.DLL runtime. Specifically, this means that you should not use newer versions of the Microsoft compiler than Visual C++ 6 without knowing exactly what you are doing.
wxWidgets Compiler support:
wxWidgets supports more compilers than probably any other framework. All popular Windows C++ compilers are supported with the exception of Symantec C++ (this is being worked on), and on Windows you can use the Cygwin or Mingw32 free compilers. Even the 16-bit versions of Visual C++ and Borland C++ can be used. On Windows, makefiles are provided, with project files for VC++ 5 and above.
Just about all known Unix C++ compilers are supported, for the Motif and GTK platforms. If you have a compiler that isn't supported, with help from the wxWidgets team we should be able to fix the problem quickly. -
Re:A potential buisness model problem...
Let's face facts, there is tons of software that is not on Linux that people want. How much longer is the Linux community going to ignore this fact?
WTF?
Maybe you've heard of VMWare?
Or, perhaps, Wine?
Or maybe you've noticed that software like Open Office and FireFox is cross platform, running on Win/Mac/Linux ? Toolkits such as GTK Java, Flash and QT allow for easy, straightforward cross-platform development?
Or, perhaps, that there's a whole operating system being put together utilizing all these parts?
Get your head out from under that rock! (or is it... Mom's basement?) -
Re:You're right.
Do you really believe that C# is more portable than C++?
The only thing that gives it even a hint of appearing to be cross platform is that you're writing using a standard library (the .net api). Such libraries already exist in C++ and have for some time.
C# does not run as well on any other platform as it does on Windows - just a fact. Winforms support is still heavily lacking, etc. I can guarantee it never will, either. .NET is said to be a move towards a cross-platform development stack because Microsoft badly needs to maintain the image of 'playing nice' so they won't get the legal smackdown again, but it never will be fully compatible. Microsoft wants it that way. -
nice project but this is nothing new...
What makes violet Composer so special? There is already a lot of free or even open source software, that allows hobby musicians to have (nearly) as many possibilities as professional musicians.
Jeskola Buzz has been around for a while (it is free but unfortunately not open source... well, the developer lost the source anyway). There is a very vivid community around it (see for example http://www.buzzmusic.de/) and many people have already created a lot of nice music with it. Now there are even efforts make open alternatives to buzz (see http://trac.zeitherrschaft.org/aldrin/ or http://trac.zeitherrschaft.org/buzzrmx/ or http://www.buzztard.org/)
Check for example the music of http://www.paniq.org/. Most of this is made with buzz or aldrin.
Appart from the buzz scene, a lot of other virtual studio software and other audio tools have been created. Especially for Linux. See http://wired.epitech.net/, http://lmms.sourceforge.net/, http://beast.gtk.org/
So, as the Violet Composer surely is a nice project, there is already enough stuff out there for low-budget computer geeks to unleash their musical creativity! -
Sweeeeet
I've been meaning to get back into recording, but ardour has been putting me off it for years. Perhaps the Ubuntu team will dig out something that doesn't require the user to script stuff to get going. I've been meaning to check out Beast ( http://beast.gtk.org ) but haven't gotten around to it yet.
Anyone got any other good audio apps.
As for the comment I see about no good video editing apps, I've had marvelous success with kino. I did a documentary on a Stop Bush demo when the bastard came to Canberra. It doesn't have as many flashy looking transitions as iMovie ( which is admittedly the only other video editor I've used ), but on the plus side, it doesn't have horrible cut & paste bugs and crashes and other bullshit that iMovie has. -
Nesting and Abstraction
I've built a lot of web pages, and this has made me realize that it's incredibly quick and easy to whip up GUIs with HTML. The experience was much better than with the GUI builders I had used, and certainly beat coding GUIs by hand.
Of course, HTML is not intended as a language for describing native GUIs, so it has some limitations there. Fortunately, there is a variety of XML formats for describing real GUIs.
What makes XML so great for describing GUIs is that it's so good at describing nested objects. If you think about it, that's exactly what GUIs are: you've got your windows, with a bunch of widgets in it, one of which is a scrollable area with more widgets in it, etc. This is naturally described by an XML tree that contains all these widgets, with some attributes used for connecting them to the application; e.g. ids to allow the application to reference widgets, and embedded code to let the GUI respond to events (e.g. HTML's onclick).
Where many XML GUI languages fall short is in that they don't provide methods for building new abstractions. If you have a lot of subtrees that are all very similar (say, a frame, a title, a content window, and a hide and a show button), you'll completely have to code each of them in full. Any programming language worth its salt will provide a way to abstract over this (functions!), but I think the realization that XML GUI descriptions (and HTML documents!) are programs hasn't fully set in yet.
Next time I'm coding a GUI, I'll be generating the XML from a proper programming language. I've had good results with Lisp before... -
Re:Reward for Open Source?
Aye. I agree with this 100%.
I am currently employed as a programming intern in Product Support for a large company (not a software company, but I do software, so whatever.) I got this job because I'm good at programming. I got good at programming not by being in other jobs or taking classes, but by doing independent work. I don't think there are many people who can say this, but when I'm finished at work for the day, and have been staring at code for 8 hours straight with the occasional bathroom break, I go home and sit down at my computer and work on my own coding projects.
It was asked "What's the motivation?". My motivation is that I write code for precisely the same reason an artist creates art. Nobody becomes an artist for the money - they all do it because they love to create, and express themselves through a non-traditional way. I create code because I like to. I enjoy solving the types of problems that come up when I'm learning how to create windowed applications with GTK+ (http://www.gtk.org/) or something. I enjoy figuring out the best way to structure my application so that I can make code as reusable as possible. And as for "is code an art?" It depends on why you do it. People work on open source projects because they like to code. For this reason, commercial software will never extinguish FOSS, simply because there will always be people who enjoy programming and who want to work on the software that they use every day. These people are artists of their trade because they do it for the love of it, and nothing else. The person who goes to work every day, bounces back and forth between writing code and watching the time, and in general choses to be a programmer for the money, is no more an artist than anyone else who goes into their field for a reason other than just because they love it. -
Re:Qt
the Linux platform needs
... A set of standardized GUI libraries that are free for both commercial and open-source applications.
You mispelled "proprietary" there. It's cool though, lots of people do it.
Also I'm not really sure why you think the Linux kernel needs widget toolkits.
Anyway, yeah there's totally no toolkits that allow proprietary apps. -
Darling, have you heard of Google?
GTK 2.10 has an experimental backend for OS X. That was in the changelog for the 2.10.0 release: http://www.gtk.org/gtk-2.10-announcement.html. There is a project page about GTK on OS X at http://developer.imendio.com/wiki/Gtk_Mac_OS_X.
-
Re:Not free?
Let joy be unconfined!
I'm really looking forward to seeing yet another SWT-based application on Linux. I really want to watch my apps redraw themselves like a 486 running Windows 3.1. I'm being a little unfair here -- it's not SWT's fault. SWT uses GTK as a backend on Linux, and the last couple of GTk versions have been (quite incredibly) slower than ever. Nokia's engineers describe it as catastrophically slower and basically unusable on their Maemo platform (hence sticking with v2.6). GNOME users, unfortunately, are stuck with it. The thoughtful GNOME developers forced everyone onto v2.8+. So we've got machines that run like fucking slugs. Once you add on another layer on top (like SWT, or Mozilla/Firefox widgets), the result is pitiful.
GTK really is a piece of shit, and its maintainers have no fucking idea what they are doing. It's been, what, five years since GTK2.0 and the performance is getting worse. Say their names with shame folks.
-
Re: Successful GPL ProjectsHey, thanks! Instead of complaining about the article, let me see what I can come up with as a counter-argument. Good idea! So here's my list of GPL projects that seem to be relatively open to random contributions. This is IMHO, and you're welcome to disagree with what I think of the "openness" of each development community.
I'm sticking to GPL projects because I don't know about other ones as well. This is not meant to diss the BSD crowd.
- ALSA everyone welcome to submit a driver for their card. I might add that most Linux Kernel drivers and most drivers for a number of other projects (X, CUPS, gcc backends, etc.) are fairly open and you can jump right in.
- gentoo packages you might not get into the main distribution right away, but the community is very open and will try out pretty much anything you have to contribute. Like drivers, above.
- GIMP and GTK at least, pre-2000. Now there are a lot more developers, so jumping in isn't quite as easy.
- kino has a very flat hierarchy. linux1394 is the same. Like drivers, above.
- MediaWiki
Okay, but I also think that cataloging open source projects is kind of fruitless, since there are so many. The internet connects people with common interests. They develop projects. Some are more open than others. Still, if the project gets too rigidly hierarchical, someone will fork the code and head off in a different direction. Example: the different flavors of BSD.
-
Don't develop for KDE.If you're developing commercial apps for KDE, you're wasting your time as it's significantly cheaper to be developing for Windows XP. As the toolkit that KDE uses is extremely expensive:
Platform: Console Edition, Desktop Light Edition, Desktop Edition
Oh, sure, if you don't mind being having your code held hostage by Trolltech, by being forced to go GPL or pay them - go ahead. But you're a moron if you do so.
One Platform: $1780, $1990, $3300
Two Platforms: $2670, $2990, $4950
Three Platforms: $3560, $3980, $6600
May I suggest wxWidgets or GTK (for use with Gnome) instead. You'll still get cross-platform compatability, but you'll be able to choose what license you use for your code (closed or open source). -
If you know C++, try QT
I would recommend QT because:
1. You might as well write cross platform code if you can.
2. You might as well use open source tools whenever possible.
3. If you write it in C++ your application will be fast and responsive.
You can either use the commercial or the GPL versions, and you can develop on your favourite platform (Solaris/BSD/Linux/various other *nix/Win32/Mac), and the resulting application will actually look nice and friendly, unlike many other GUI toolkits which produce slightly alien-looking results.
http://www.trolltech.com/products/qt/
If you prefer C, you could use GTK+ instead: http://www.gtk.org/
It is extremely satisfying to develop a GUI application on your GNU/Linux box and later see it running on a Mac and a Windows box, looking just like a native application on each platform, and performing well. Happy customers. -
Re:Why I won't use GTK.
(1) a GUI toolkit must be object-oriented: ok, as you mostly concede, GTK+ is object-oriented. Point (1) is moot.
That is not what I said. What I said was the people like you claim it is. Its not, anymore then it is possible to write high level code in a macro assembler.
Well, then how do you define "object oriented"? GTK+ allows for subclassing, for instance. see here, which references subclassing. See also the GTK+ tutorial at gtk.org, which states, "GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions)." I believe GTK+ also allows for encapsulation.
GTK+ *is* object-oriented. You just want an object-oriented language as well. That's fine. Pick one of these. Good luck. -
Re:Why I won't use GTK.
(1) a GUI toolkit must be object-oriented: ok, as you mostly concede, GTK+ is object-oriented. Point (1) is moot.
That is not what I said. What I said was the people like you claim it is. Its not, anymore then it is possible to write high level code in a macro assembler.
Well, then how do you define "object oriented"? GTK+ allows for subclassing, for instance. see here, which references subclassing. See also the GTK+ tutorial at gtk.org, which states, "GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions)." I believe GTK+ also allows for encapsulation.
GTK+ *is* object-oriented. You just want an object-oriented language as well. That's fine. Pick one of these. Good luck. -
Re:Why I won't use GTK.
(1) a GUI toolkit must be object-oriented: ok, as you mostly concede, GTK+ is object-oriented. Point (1) is moot.
That is not what I said. What I said was the people like you claim it is. Its not, anymore then it is possible to write high level code in a macro assembler.
Well, then how do you define "object oriented"? GTK+ allows for subclassing, for instance. see here, which references subclassing. See also the GTK+ tutorial at gtk.org, which states, "GTK is essentially an object oriented application programmers interface (API). Although written completely in C, it is implemented using the idea of classes and callback functions (pointers to functions)." I believe GTK+ also allows for encapsulation.
GTK+ *is* object-oriented. You just want an object-oriented language as well. That's fine. Pick one of these. Good luck. -
Re: Other languages
> So a big question for me is "what other languages does your toolkit support easily?" Is there a good perl interface? python? scheme? What can I use to lash it together quickly?
For GTK+, see http://www.gtk.org/bindings.html, where they have a status table for ~28 languages. Presumably the Qt site does the same thing.
> And when you need an alternative language APIs, we need documentation that is native to those languages. All too many of these toolkits provide some rudimentary alternative UI, but it's just an export of the C++ API, and the programmer is expected to read the C++ documentation, and mentally convert that to the appropriate perl, python or what-have-you alternative.
FWIW, the GtkAda project does provide pretty good documentation, both a User's Guide and a Reference Manual. There are holes sometimes, but they usually tell me everything I need to know. -
Re:Tempting....The official docs are OK, I think. There's a tutorial too. There's also an excellent book: The Official GNOME2 Developers Guide, but sadly it's not available as a free download.
People do rave about the Qt docs I know.
-
Re:Tempting....The official docs are OK, I think. There's a tutorial too. There's also an excellent book: The Official GNOME2 Developers Guide, but sadly it's not available as a free download.
People do rave about the Qt docs I know.
-
Qt vs GTK , the real thing
Years ago I went through the development framework of KDE, Qt. I was immediately surprised by the huge power of that platform versus GTK .
It might have been Qt's C++, or the Qt vs GTK "Hello World!" lazy-man choc but I then simply sticked to Qt (the troubles came later).
I mean I don't know much of the widget wonders of GTK so I possibly can't tell, but I just found a good bunch of classes around me with Qt and I was happy.
Perhaps for KDE losing such a strong 'mainline supporter' as SuSE the big deal is for the Qt platform losing terrain and future, and all the wasted/ to be wasted efforts when building up a gnome program vs a KDE one. -
What about sound synthesis?
As TFA says, there are lots of audio editing apps out there. I'm looking for apps that can create the sound as well. I know about the Beast. Any one have any other ones they know of and like?
-
Doxygen, gtk-doc, vbdox, ...
Doxygen is a good tool for many languages. It works best for C++, but it also has some limited support for PHP, which is in your list of requirements. There is also a fork of Doxygen called DoxyS. It generates prettier output for C++ but may not support the other languages as well as Doxygen. Another tool inspired by Javadoc is PHPDoc for PHP code. However, it does not seem to be actively developed anymore.
For plain C code, I prefer gtk-doc, which generates better output than Doxygen (IMHO, and for C only). You can see an example of the gtk-doc output by browsing the GTK+ API documentation.
Since you also mention Visual Basic, you could have a look at VBDOX. I haven't tried it myself so I don't know if it works well. There are some screenshots on their site, so maybe you should have a look and decide if you like the results.
-
Open source alternatives?
-
Re:Ungrounded Optimism?
Then perhaps this sample code for a GTK+ "hello world" can help give you an idea of how it at least looks to code with GTK+. Note that the example is (a bit counter-productively, IMO) fairly verbose and overly detailed; it looks a bit more complicated than it has to be. Not trying to convert you or anything here, just illustrating the flavor of modern X GUI programming with a (again, IMO) nice toolkit.
-
"future of cross-platform development"
-
Windows Articles, Slashdot and Pragmatism
Why do the Slashdot editors even bother posting articles about windows?
I was looking at the front page just now and saw an article entitled "Security Patch Creation at Microsoft." I'm sure everyone knows that an article like this would obviously be nothing but Taco's blatant attempt at starting a flame war, which usually just ends up in the Linux Zealots arguing amongst themselves about how fucked up Microsoft's patching techniques are.
Comments in articles like these fall into a few categories; the type that constructively criticizes Microsoft's practices (few and far between); the type that says this type of security procedure would never happen with open source (more frequent); and the most prevalent type, "LOL linux rulez!!!!!!!!!111111111onehundredeleven" (about 99.999% of the comments).
I've build countless machines over the years and have built and helped to administer quite a few networks. Linux is good for a server, true, but as far as client operating systems go, XP is pretty decent. Sure, the licensing procedures are draconian, I'll give the Linux Zealots that, but aside from that, the system is stable, secure (if a competent admin oversees it) and fulfills most technological needs. For a home file server or print server, nothing beats Linux (as of yet), only because of the fact that I can't think of too many home users with $500 USD to fork over for a license for Windows 2003 Server.
Some of us are software pragmatists. I use whatever is best to get the job done. I prefer Mac OS X over every other operating system I've used, but I know that there are some things it cannot do. If I want to play games, I fire up an XP machine. If I want to serve clients or write code for rather ugly windowing toolkits, I use Linux. If I want a stable Unix machine that works without me taking a week off from school to configure it, I use Mac OS X.
I thought the reason we all got into computing is because we loved it, not to convert people. That is a job for fanatics. We should concentrate more on what's best for a job and not on what is fashioable to the FSF and our Linux Zealot buddies. I think it's time everyone here to grow the fuck up. -
A little story about convience and free software
I've been working with Linux for about 2 years now. I've also been trying to master music production for about the same amount of time.
My music software of choice was Beast/BSE, which is a modular softsynth/sequencer program. At first, I kept giving up. I just couldn't make the sounds that "everyone else" was using. After a while, I understood enough to make those sounds, but I had spend so much time making my own sounds that I didn't want to use "everyone's" sounds.
The moral is: Free Software has a huge learning curve in some cases, and I was tempted to give up very often, but in the end, I believe that the Free Software gave me more power than a non-Free equivalent. -
Re:Frameworks closely tied to languages, WHY
We managed to divorce database usage from being language-specific. Time for UI also.
That should be "Time for web application development also". You can write GUI apps with almost any popular language (c++, python, perl, ruby) using any of the popular widget sets (wxwidgets, gtk+, qt). For example, take a look at the impressive list of GTK+'s language bindings.
Sure you can't mix and match bits and pieces written in different languages very easily, but it's possible. And it most certainly is not like you need to reinvent the GUI library for every language.
I too wish we could say the same about developing web applications.. Just thinking about coding anything more complex than an online recipe database in PHP makes me shudder
:-P -
Why KDE?
Two points:
(1) Why is this article in the "BSD" section?
(2) Please use Gnome instead of KDE if you are able. By using KDE, you are supporting a commercial company, Trolltech. KDE is built on their commercial (as in: non-free) Qt API that costs $3000 per seat for developers if you want to write for more than one platform.
Yes kids, cross-platform development using Qt is twenty times more expensive than the total software cost of developing for Microsoft Windows and Linux using other standard toolkits[1]. And please don't say "but you're paying for support" for Qt - it's nothing more than a windowing library. If you need to pay for support, it is broken.
[1] Assuming Windows XP Pro OEM costs $150 and you use the freely available development tools and a licence-free cross platform API such as the platform-neutral wxWidgets or Gnome's cross-platform toolkit, GTK - you will never have any expense other than for the operating system on which you develop. -
Re:It is "bad" for Linux, period.
You don't need to pay anything to have access to a very broad spectrum of OS widgets when developing for Windows (or the Mac), no matter if you are developing in a traditional commercial sense or using any other financial model.
And it is the _same_ under Linux. In fact, you have far greater access under Linux than under MS Window or Mac OS X. Can you get the source code to MS Windows or Mac OS X's GUI environment free of charge with no-strings attached? Nope. The only environment under Linux that has any type of screwed development model (requiring pay for proprietary development) is KDE with QT. That is why I personally do not use KDE/QT.Under Linux XFree, you can use GTK+, fltk, wxWidgets, Java, C# w/Mono, or even straight xlib. Again, the only environment that has any type of stupid restrictions is KDE/QT, so stay away from KDE/QT if you don't want to pay a fee. Under Linux, GTK+ applications run just fine under any other desktop environment, including KDE/QT. I personally think the KDE team made a _huge_ mistake when they pick QT. To require a commercial license for native desktop tools is just stupid IMO. However, there are _plenty_ of other great toolkits like GTK+ that have none of those restrictions. With GTK+ you can develop OSS or closed, the choice is yours.
Under Windows, you also have the option of using an older, very much less expensive version of Visual Studio -- those are still 100% functional and produce fully functional applications under XP (and 95, 98, 2000, and NT) and I see no reason they won't remain so.
Sure, and you can also do the same under Linux _or_ you can freely download the latest IDE under Linux with no costs. The problem with the much older MS Visual studio IDE's is that they are not very good and certainly do not support the latest features of MS's development environment. None of those older environments support MS's .Net for example.I think that if Linux ever matures enough to "come with" a standard, always-there, reasonably modern GUI-API such that software can be directly written to and for it
It sounds as if you have no clue about Linux or development under Linux. There are tons of standards under Linux. Pick the environment that works best for _you_. You don't have to be forced to only use the Win32 API. Use xlib if you want, use QT if you want under the GPL or pay a _very_ small fee for commercial development. Use GTK+ or any of the others that I listed above. Again, it is _your_ choice. As a developer I can say that I have never really liked the Win32 API and I certainly can't stand MFC. C# and .Net is the first really nice development environment that MS has put out IMO. The only current problem I have with C#/.Net under MS Windows is that compared to Win32 or MFC, it has a much slower startup time, a much bigger footprint and a slower runtime. Not to mention the 22MB+ download required to run it.There is no single "utopia" OS or development environment. Trying to single out just Linux makes you sound naive, especially when the MS windows development environment has just as many quirks.