Gnome Developers Conference 92
Mathieu Lacage writes "On the 16, 17 and 18 March 2000, more than 20 Gnome Hackers from all around the world will gather in Paris to meet application developers, users and discuss Gnome future.
To learn more about this, go here."
Feature Creep (Score:3)
Gnome (Score:2)
Who pays for this? (Score:2)
Meetings like this raise a question, Who pays for all this? It can't be cheap to get 20 developers from around the world to Paris.
Linux applications (Score:4)
Whatever happened to Linux applications? I'm talking about apps that don't require GNOME or KDE or GTK or this or that--simple command-line tools that run with or without X, written in portable C, so they can be recompiled on whatever flavor of *nix you have.
Traditionally, you would have an underlying non-GUI program that was portable to every environment under the sun, and then a seperate application or script that was a GUI to wrap around the command-line tool.
The result is a portable tool that works everywhere, and several GUIs that allow users to easily interact with said tool, under whatever GUI they use.
Lately, we are seeng more and more GNOME-this and GTK-that and K-this, etc. where the functionality that is inherently not dependant on any particular GUI is all thrown in with the GUI app itself! PROGRAMMERS: Limiting your application to a single GUI is not the Linux way!
I call this abominable practice "Windows-itis," and I believe that it may be caused by all these ex-Windows programmers that seem to be flooding into Linux-land.
You see, anyone who has ever done any Windows programming knows: It's difficult, if not impossible in some cases, to seperate the actual program from the GUI. The (IMHO horribly broken) Win32 API pretty much guarantees that whatever your application does, it will do it with one and only one GUI--Windows. From the message callback system through the entire codepath through most Windows programs I have seen and worked with, there is this assumption that there will always be the Windows GUI. Most "how to program for Windows" books reinforce this terrible style, encouraging inexperienced programmers to tie the functionality of their program into the GUI.
Now these programmers are tinkering with Linux. Don't get me wrong, this is a GOOD THING! The more people that learn about Linux programming the better for everyone! But these new programmers should realize, that not everyone in our world uses GNOME or KDE. Not everyone uses X! They may even (egads!) use FreeBSD or Solaris or some other kind of *nix. If you have a good idea for a program, don't limit it to one GUI and one system.
I've seen some of my favorite X apps go "GNOME-only". I've seen apps all of a sudden not work on non-Intel systems after a certain version. For the sake of the whole non-Windows community don't do this!!!
Remember, not everyone runs GNOME, GTK and XFree on their i586 systems. Good applications are portable applications--across different architectures and different GUI's.
OK, my rant is done. Go back to bed.
________________________________
DOH!! (Score:1)
________________________________
Re:Who pays for this? (Score:2)
Internet Development is not Enough (Score:4)
Some other large projects like the Gimp could probably get together for a quick conference / bug squashing session - 1.2 is eagerly waited. Any other suggestions for projects that could benefit from these type of meetings?
Re:Feature Creep (Score:1)
Re:DOH!! (Score:1)
total rubbish (Score:1)
Re:Linux applications (Score:1)
Keep in mind though that not every program can be made to work in a commandline mode. Remember, no everyone runs ncurses on their system ;-)
Also, a lot of the gnome and kde stuff is merely gui front ends to a command line program. Grip sits on top of any number of CD rippers and mpeg encoders. Gwget sits on top of wget.
Also when you mention that some of your favorite apps have gone to one or the other guis only please keep in mind that the people creating these works have limited time. A lot of decisions are based on saving time. Try reading kernel-traffic and you'll see how much of what goes on depends on the effect it will have on the life of Linus.
Finally, it is not required of programmers to support everyone under the sun. It is certainly nice if they do, but don't go laying a guilt trip on people if they don't.
Re:Linux applications (Score:1)
Re:Linux applications (Score:1)
have pointed out, some apps cannot be
command-lined, but I believe that there is a lot
of "functionality" that can be separated from the
GUI and made publicly available to other apps.
This could be achieved by something heavy weight
like exposing the interface as a CORBA service,
or something lightweight like a library (language
specific). In any case, programs that need
that functionality would access the
service/library.
Parsing the output from a process is not
always an elegant/efficient approach to making
programs interact. But then again, sometimes
it is very elegant - esp in the realm of file
based text processing.
Re:Linux applications (Score:2)
But I find it equally stupid to make a CLI interface and make a GUI wrapper. It will require that you build a parser and maybe even a whole script language for using the tool.
My point is that you either make a shared library or a COM object from which you then use from your GUI or CLI.
E.g., I would like a gdb or cvs shared library to be able to make faster and more sophisticated GUIs around these tools.
Re:Linux applications (Score:3)
Well, even that method is not that great either. The GUI's end up being slow because they are processing text output. Not to mention that command line interfaces can't display information like GUI's can so for things like charts and stuff the GUI then has to run several commands, combine and process information in order to display it.
The proper method IMHO is to to just seperate your model completely, and have your controller and view linking to it.
Take gdb for example. The program has great functionality, but it is tied to the command line interface. So all programs that wrap it with a GUI must then process that text output making them perform horrible. It seems to me what should have been done is provide a object file that has all the various functions and variables for getting information about debugging a program. And then write a CLI that links to this object file and uses those function to produce it's text output. Then later if someone wanted to write a GUI, then they could link to the same object file with their fancy graphical interface and have direct access to the same functions and variables that the CLI has instead of just access to the output of the CLI.
So basically what I am saying is that the CLI is a controller and view just like the GUI. I agree with you that functionality and interface need to be seperated, and am just trying to say that CLI is an interface also and needs to be seperated just like the GUI.
Re:Linux applications (Score:1)
Re:Feature Creep (Score:2)
fast track developing (Score:1)
Re:Gnome email client? (Score:1)
Re:Gnome email client? (Score:1)
That's nice but.. (Score:1)
Everyone uses KDE or GNOME? Wrong. (Score:2)
You need to get out more.
I know plenty of people who don't use kde or gnome. Including myself.
Re:How to troll slashdot properly (Score:1)
I am now waiting for pigs to fly.
Re:Feature Creep (Score:1)
I think it's a pretty good book for beginners like myself. You can get it at Amazon/Barnes & Nobel.
You really cannot beat the way TeX/LaTeX handles Chapters/Sections/Subsections, generates bibliographies, Table of contents, Lists of figures/Tables, etc.
There really isn't anything like it that I have seen in current wordprocessors. (not implying that it is a word processor)
john
Re:Linux applications (Score:1)
I dont think you have to use KDE to use a KDE application. You do have to have the qt stuff installed, but you can run the application in any WM/DE right?
I have run a few KDE applications in twm. The only difference is that they cannot dock to the kpanel(which isnt running), and they missout on some KDE specific stuff. They are however functional.
People need to be able to use some sort of graphics library when writing xapps; which would you prefer? Please dont say tcl. Its really slow. Could you comment more with respect to this?
john
For example? (Score:1)
Re:DOH!! (Score:1)
Re:Feature Creep (Score:1)
If you have some time to look at it please do so.
This links might or might not be of some help.
http://www.mirror.ac.uk/packages/prog/tools/GCT
GCT (Generic Coverage Tool)
http://www.gnu.org/software/greg/greg.html
A guile testing framework.
http://www.debian.org/Packages/unstable/utils/l
ltrace
http://www.canb.auug.org.au/~millerp/aegis/aegi
Re:Who pays for this? (Score:1)
Re:Linux applications (Score:4)
In an ideal infinite-development-time world I think you are right, but you're not presenting a balanced view of the situation; there are a number of tradeoffs.
Anyway as a first cut, GNOME stuff is generally written with MVC in mind, and works on any UNIX running X, regardless of whether you're actually using the GNOME desktop environment (you only have to install the libs, your environment can be KDE or E or whatever).
The next portability step will be to use GTK as a cross-platform kit, as the GIMP does to run on Win32/BeOS; then eventually someone might invest the time to move apps to an AbiWord type of framework. However, doing all this stuff from the start would just be a failure, since we'd have no useful apps for the next 3 or 4 years.
Re:For example? (Score:2)
Many email/news clients are GUI only, but there are quite a few mail/fetchmail/trn wrappers.
Most if not all ICQ clients out there are standalone. A portable alternative is micq.
Most if not all GUI
Most GUI-based FTP clients are standalone.
--
I'm not trying to control what other people code on their own time, for their own reasons. That's one of the greatest things about Linux--the fact that anyone can scratch whatever itch they want. Rather I'd like to encourage people to contribute GUI's to existing command-line projects that are already portable and robust.
If all you want is a car with nicer doors and windows, don't rebuild it from scratch--instead contribute new doors and windows to an already working car.
________________________________
Re:Gnome email client? (Score:2)
Miguel and Nat's Helix Code [helixcode.com] company is hiring about 16 people (in addition to Nat and Miguel) to write an Outlook clone called Evolution, and they've already been working on it for several months. Since there are so many hackers on it it should certainly end up being finished and be pretty cool.
Re:Feature Creep (Score:3)
Re: (Score:1)
Re:DOH!! (Score:1)
Why so much hostility? (Score:2)
I'm glad the people who actually write code, work on the documentation, and work on the GUI human factors design, have a lot better things to do.
Long live GNOME!
Long live KDE!
Long live GNUstep!
Long live the command line!
Re:Linux applications (Score:2)
Good.
Er, I think you must mean a CORBA object. COM object support is only implemented on Windows AFAIK, so implementing a COM object is as bad as writing the application directly to the GUI.
Consciousness is not what it thinks it is
Thought exists only as an abstraction
Re:total rubbish (Score:2)
Where's your evidence for this? I rather suspect both the GNOME and KDE developers would be overjoyed if their beloved desktops became popular on a range of different platforms. Linux as it is won't suit *all* purposes and even where it does there are more issues to consider tham personal preference (say for example, a company which develops and sells Solaris applications). But even in these cases people may still want to run KDE on their Solaris box,in order to get more functionality and a wide range of free applications.
It looks to me like you're guilty of the same overdone advocacy as the people you're criticizing.
Consciousness is not what it thinks it is
Thought exists only as an abstraction
Re:Linux applications (Score:2)
Then it's not a compliant box. Curses support is a part of standard Unix, with or without X. You might as well say that not everyone runs stdlib.
Consciousness is not what it thinks it is
Thought exists only as an abstraction
Re:Linux applications (Score:1)
Before I start my list, I'd like to say that I agree completely with Stiletto. One thing no one is disputing is that RMS's philosophy of making portable to the hardware and to the OS apps has served well; Hear him speak and he'll tell you that was one of the primary goals of the GNU project early on.
Here are some of the ways to separate the GUI:
1) mpg123 and gqmpeg are a combo that allows the user to play mp3s on the command line and with a GTK widget set. It communicates through signals. This is limited, but it's one form of IPC.
2) AF_UNIX. Unix socket IPC seems like a viable choice. Furthermore, anything that's written with AF_UNIX can be easily ported to AF_INET. (For those not familiar with the socket API, this means the GUI can be on another computer on a TCP/IP network, though I believe this is redundant with the way X works.)
3) Fire-parameters-out-to-commandline-binary. This works for simpler apps. For example, a program called xgrep, which is a GUI shell for grep would have dialog boxes, and other GUI widgets that represent parameters for grep. When everything is set and the user is satisfied, he would click 'search', which would execute the real grep. The output would be taken back to the GUI program.
The book Beginning Linux Programming, which was reviewed here on Slashdot covers quite a few ways, with some brevity (a chapter each) of using IPC. Perhaps someone with real world programming experience would like to reply to this and comment about the upsides and downsides of each one.
Re:Linux applications (Score:3)
Re:total rubbish (Score:1)
I don't run either GNOME or KDE, finding them both to do nothing that I absolutely need.
So, now you know at least one who doesn't use a desktop.
Re:Linux applications (Score:2)
The problem with Java right now is that the target platform is Linux, and Linux does not support Java all that well even with proprietary solutions. There is no free version of AWT/Swing at all. This is changing, but it hasn't yet changed.
Many of the GNOME developers really like Java, it's just not practical yet for Linux applications.
Re:Linux applications (Score:2)
On the missing free version of the libs, that is of course true. BTW, while I know that classpath.org is supporting AWT, do they plan to come up with Swing? Is anyone else writing a free clone?
Re:total rubbish (Score:1)
Re:total rubbish (Score:2)
I know you're an insider so I can only accept your answer with regard to GNOME. However the KDE folks aren't quite so politically motivated. Obviously they favour Linux but I expect they'd be prepared to go a little further to achieve multiplatform support since there's no ideological barrier to overcome.
Consciousness is not what it thinks it is
Thought exists only as an abstraction
Re:total rubbish (Score:1)
Re:Feature Creep (Score:1)
--
Re:Why so much hostility? (Score:1)
--
Re:Linux applications (Score:1)
Not everybody does, right. Or even stdio. Ever looked at qmail source code?
To go back on topic: for my current project (OpenTrader [opentrader.org] -- no code yet, but getting close), I've gone the multiple-process way, for debuggability. It's much easier to trace whatever is happening with a hung or runaway background process without all those pesky X events getting in the way...
Re:DOH!! (Score:1)
Re:Linux applications (Score:2)
Consciousness is not what it thinks it is
Thought exists only as an abstraction
Re:Linux applications (Score:2)
I'm sure you already know all that, I just didn't want to appear stupid in public
Consciousness is not what it thinks it is
Thought exists only as an abstraction
Re:Linux applications (Score:1)
A little wrong there. Not all GUI apps with UI seperation need to read output text - the true seperation from UI is the option to output a number of ways. An example of this is something like MySQL [mysql.org] results being sent to a PHP script. Quite a different format from the text output.
ps. All 'GDB' is an example of, is a badky designed app.
OpenTrader, Re:Linux applications (Score:1)
Anyway, any sensible operating system should have identical performance for unix-domain sockets and named pipes.
The reason you haven't heard of OpenTrader [opentrader.org] is probably that there hasn't been any announcement yet. ;-) We'll have to finish at least one module that actually does any real-world trading, or nobody will take the thing seriously. For reasons of pure arbitrariness, that module will probably be one that talks to Datek [datek.com].