View Full Version : Programming for Users?
darelf
05-15-2003, 12:33 PM
Uhh... if we were to write really useful software only for a particular platform... say Linux, or Mac OS X.... wouldn't everyone just start using that?
What if all the programmers just stopped programming for Windows and started working on some other platform? Wouldn't people just get used to it?
Just rambling, I guess......
yep..they would....too bad MS integrats everything and makes it so much easier for the end user to do all that is required very easily.
GnuVince
05-15-2003, 09:42 PM
How about doing no discrimination and using reasliy portable languages (Python, Java, Ruby, Perl, Lisp) to make sure people on *nix, Mac and Windows can use your software?
darelf
05-16-2003, 11:54 AM
it's just frustration talking....
But, no, I don't think Java/other portable language is the answer.
I mean, yes, most of what I do is in Python or Tcl, and is thus portable.... but when it comes down to it, programming for a particular platform efficiently* requires compiling for that platform to a better degree than provided thus far by Just-In-Time or interpreted languages....
* Efficiently for the machine, not the programmer :)
sicarius
05-17-2003, 10:55 AM
I think it is kind of a silly idea to say that programmers should basically boycott the Windows platform and write code for just Mac OS and Linux. Also, I'm not sure whether to take the comment about MS integrating everything and making it easier for the user as sarcasm or not.
Everyone is trying to make things easier for the user, if MS is the company doing that then they deserve to have the user base that they do. I my self use OS X and Linux, but those operating systems aren't right for everyone. Also guess what? On OS X I use Microsoft Office for word processing, presentations, spreadsheets, etc. I could use Open Office or Apple Works, but I don't because the MS product is better.
Everyone keeps talking about Linux on the desktop, well that won't happen until X11 is replaced with something else. Other than that I think the platform is ready.
darelf
05-17-2003, 12:36 PM
That's not what I was saying... I'm saying Windows has such a large following because of what they do... they program for users.
But the common wisdom is that programmers program for Windows because of the large user base. Why? That makes no sense. Users will go where the applications are. If good programs stopped being made for Windows and started being made for (for example) BeOS, everyone would use that.
Users don't care about platform. They care about applications. If the programmers like coding on *insert platform here*, then why don't they just do that instead of programming for Windows? Users don't care about Open Source or any other intellectual arguments, they only care if the machine will do what they want/need.
I just find the mind set of "We must use an inferior application framework on Windows because it is our only platform" of IT management to be the most frustrating part of this career path. They don't *want* to hear about anything that might actually be better. They use the end-user as a crutch to justify their short-sightedness. I mean, for crying out loud, we use two platforms already... Windows and AS/400. And users use and access both and don't really care about the difference. They just want to get their work done.
Sorry... rant over.
GnuVince
05-17-2003, 01:06 PM
Users don't care about the best applications: they care about what they use right now. They use Windows+Office+IE, so they will stick on Windows. Even if Linux had a much better browser, an office suite that could be extended like Emacs, they would stick with Windows. Users are afraid of change.
Let me give you an example. I had an internship in a highschool last year. Teachers had a program called GPI to enter students grades on the computer. This was an old DOS program, but they were all used to it and liked it. It worked and it did what it was supposed to well. They saw no reason to switch. But the company that wrote this software wrote a version called GPII (GPI Internet). This one was web-based, so teachers could input marks from home, they had a database with students pictures, etc. Many more features. But now, to change fields they needed to use Tab instead of Enter like in the old DOS program. This bugged the users SO much that they all wanted to go back to the older version (plus the fact that there was less information on the printed reports). They didn't care if the app was technically better and had more features, doing input was different and, in their view, harder.
Why will a user not switch to Linux? Because our Office suites and our web browsers do not work EXACTLY like they work in Windows. Users stick with what they know, and usually that is the first thing they used and that is, most of the time, Windows.
Edit:
If the programmers like coding on *insert platform here*
What if most programmers prefer Windows? They are used to Office and IE, so Visual Studio and other IDE fit better in their application likings than Emacs or Vim with an interpreter in another term (or in Emacs if the language has it)
skidooer
05-19-2003, 10:32 PM
Originally posted by sicarius
Everyone keeps talking about Linux on the desktop, well that won't happen until X11 is replaced with something else. Other than that I think the platform is ready.
What exactly is wrong with X? You can't say speed because some of the fastest machines with respect to graphics use X. I by no means claim X is perfect, but I don't think it needs to be replaced just for the sake of replacing it.
sicarius
05-20-2003, 12:50 PM
Speed is the reason for replacing X. X was a great solution (and still is) if you need to export your session across a network. How many home users do that every time they log in though (yes, some of you may use the feature to administer a remote machine even inside your home...i use it myself so that I don't have to install X on my OS X machine)?
The answer is probably not many. It isn't that X can't be fast, it certainly can. It still carries a lot of overhead even when running a local session. Of course a big problem with X (or linux in general if you prefer) is that companies don't write accelerated drivers for linux. Some, like Nvidia and ATI have begun the process, but the drivers are still pretty weak.
I think X either needs to be replaced, or rebuilt from the ground up. A common trend among programmers is "Hey this works...lets just say f*** it and move onto the next project". I think that is a big part of what is wrong with X. It has many great features, but it needs to focus on optimizing itself for a single machine, instead of workstations feeding off of a server.
A big pet peave of mine is that you can't really have dual displays unless you have multiple graphics adapters...wtf is up with that? I don't know of many laptops that have more than on graphics adapter.
That kind of attitude is understandable, most people get bored with the problem once there is a solution.
Strike
05-20-2003, 01:11 PM
Originally posted by sicarius
Speed is the reason for replacing X. X was a great solution (and still is) if you need to export your session across a network.
<snip>
It still carries a lot of overhead even when running a local session.
Prove it. I've read from people who REALLY know what they are talking about (i.e., they work on xfree86) that the latency introduced by network transparency is very much negligible, especially on modern hardware (which is what "Joe User" will be using).
[b]I think X either needs to be replaced, or rebuilt from the ground up. A common trend among programmers is "Hey this works...lets just say f*** it and move onto the next project". I think that is a big part of what is wrong with X. It has many great features, but it needs to focus on optimizing itself for a single machine, instead of workstations feeding off of a server.
This all hinges upon your speculation that the network-transparent nature of X is a speed hindrance. Provide empirical proof.
----edit----
Here's my proof, read Keith Packard's comments about the bottlenecks here - http://xwin.org:9673/xwin/DumbIdeas
Bottlenecks in core X seem to be related to (1) Xlib implementation deficiencies and (2) client misunderstanding of efficient X API usage rather than network transparency.
EscapeCharacter
05-20-2003, 01:28 PM
Originally posted by sicarius
It still carries a lot of overhead even when running a local session.
Ive read in several places that local sessions dont even go through the network layer so I dont see how this could be true.
Strike
05-20-2003, 02:00 PM
Originally posted by EscapeCharacter
Ive read in several places that local sessions dont even go through the network layer so I dont see how this could be true.
Well, they don't go through the network layer, but IPC is still done via sockets even on local sessions. They just become local Unix sockets instead of network sockets. But, as I said, the overhead from using this versus things like shared memory (which X can and does use for things) is supposedly marginal.
sicarius
05-20-2003, 05:43 PM
I think the point you are missing is that X is slow relative to windows' solution (whatever that may be) regardless of the actual reason.
As far as empirical evidence, use X. In Windows and OS X I can drag my windows around freely and they actually move. In X on the same machine the window will fill the entire screen (like painting in gimp). Stop moving, and two seconds later there is only one window. And I use an accelerated driver.
I may not be an xf86 expert, but I don't have to be. If complaining about software required expertise in that particular application then there would be a lot less chatter on a forum such as this.
Socket I/O will always be slow (relatively) because the data has to be packaged and unpackaged and only so much of it can be sent at a time. A super fast socket connection still has some bottlekneck to it.
Sure the difference in speed might be "negligible" but for a group of people (linux users) that are alway miffed because their OS is so much better and faster than Windows they sure like to pick where and when speed becomes "negligible".
My point is: A three hundred dollar graphics card in the windows environment performs better than a fifty dollar graphics card in the windows environment. A three hundred dollar graphics card in the Linux environment performs the same as a fifty dollar graphics card in the Linux environment. Some where there is a problem, I happen to believe that X is a big part of it. So fix it, replace it, or just stop wondering why Joe Blow isn't flocking to linux.
Strike
05-20-2003, 06:50 PM
Originally posted by sicarius
As far as empirical evidence, use X. In Windows and OS X I can drag my windows around freely and they actually move. In X on the same machine the window will fill the entire screen (like painting in gimp). Stop moving, and two seconds later there is only one window. And I use an accelerated driver.
I have used X, for quite a long time. I don't find it to be that slow by comparison to Windows on the same hardware. Not to mention that a comparison to a KERNEL-SPACE gui isn't exactly apples to apples. As far as OS X is concerned, I've not extensively used either OS X or XFree86 on a Mac, so I can't judge there.
Socket I/O will always be slow (relatively) because the data has to be packaged and unpackaged and only so much of it can be sent at a time. A super fast socket connection still has some bottlekneck to it.
Sure the difference in speed might be "negligible" but for a group of people (linux users) that are alway miffed because their OS is so much better and faster than Windows they sure like to pick where and when speed becomes "negligible".
So to get the 0.001% performance gain for one case, we should strip away a unique feature that introduces a 50% performance gain in another case (network X beats the pants off of Citrix and VNC in terms of speed)
My point is: A three hundred dollar graphics card in the windows environment performs better than a fifty dollar graphics card in the windows environment. A three hundred dollar graphics card in the Linux environment performs the same as a fifty dollar graphics card in the Linux environment. Some where there is a problem, I happen to believe that X is a big part of it. So fix it, replace it, or just stop wondering why Joe Blow isn't flocking to linux.
Straw man - drivers can very well be to blame, the onus is not necessarily on the windowing system.
sicarius
05-20-2003, 07:03 PM
Originally posted by Strike
So to get the 0.001% performance gain for one case, we should strip away a unique feature that introduces a 50% performance gain in another case (network X beats the pants off of Citrix and VNC in terms of speed)
Straw man - drivers can very well be to blame, the onus is not necessarily on the windowing system.
Speaking of Straw men, why don't we demand empirical evidence and then make up arbitrary percentages to show speed decrease/increase? Sounds like a good idea.
Your source said that a kernel-space gui toolkit wouldn't help (well not kernel-space, but integrated within X itself). But maybe that is the solution. Linux is great in a lot of ways because it gives the user full control of what they want to use on their system.
Why, however, should there be more than one or two major window managers? There are just too many layers that have to communicate for it to be efficient on the scale that Windows' solution is.
Using your numbers a .001% increase isn't worth getting rid of the 50% spead gain when going over the network. Well I beg to differ, especially since the majority of users spend more time communicating with their local X server than their remote one.
skidooer
05-20-2003, 08:55 PM
Originally posted by sicarius
Speed is the reason for replacing X.
Go use IRIX and then come back to us.
Just because XFree86 is slow (which I wouldn't even say it's that slow) doesn't mean X is slow. Also remember that Qt and GTK+ will be slower because they don't use X to it's fullest potential.
Then there are gamers who claim that X gives faster 3D frame rates over Windows. I'm not a gamer, so I can't back up that claim.
sicarius
05-20-2003, 09:48 PM
I'll keep SGI and IRIX in the back of my head next time of I have 5-10k to spend on a personal computer...
Yes, under the right circumstances X can be fast, especially in the case where you have a company that optimizes it for their specific hardware. But xfree86 and linux and linux aren't the same beast as a proprietary implementation of X running on ten thousand dollar hardware.
Anyway, this thread has gone pretty off topic, mostly do to me. I'll alleviate the problem and stop posting to it.
Kentaro
06-10-2003, 11:45 PM
The problem with asking that ALL programmers stop programming for Windows is asking that all of Microsoft's programmmers stop writing software for Windows. That's obviously impossible.
The only hope for non-MS platforms is the programmers that currently program for them and the people who use them. When the application "gap" between non-MS platforms and Windows has been filled, word of mouth will be perfectly efficient for convincing people to use a non-MS OS on their first PC. Imagine if you were new to computers and the resident geek told you to make sure the computer store preloaded some Linux distro onto it because it works much better than Windows and you can still check e-mail and surf the web and write office documents and do whatever else you'd probably use the computer for. Better OS ^ Software I Need => I'll take it! Simple logic really.
I believe the key to Linux's future success is to standardize the GUI and continue filling the software "gap". It's just too complicated to have to deal with so many different GUI's and some graphical programs work on one and not another and etc.
Of course, these changes will happen EXTREMELY slowly but I expect that within my lifetime non-MS and MS PC's will be sold side by side and people will choose what they like.
sans-hubris
06-11-2003, 03:56 PM
The entire idea that X is slow is a myth. The X protocol was created during the days when resources were extremely limited. The problem isn't in the protocol, it's in the implementation. Keith Packard had it dead on when he said that (he is, by the way, an incredibly good programmer.)
To be quite honest, when I compare speeds of the GUI interface (and I'm running KDE 3.1) on my computer to that of some of my friends' Windows 98/2K/XP computers, I see it as actually running faster in many instances.
A few people that I know that are not all that computer literate, but are familiar with both Windows and Linux GUI environments say they actually prefer the Linux environment more.
I think the key to Linux's success is going to be its usage within the workplace. People will use at home the software that they use at their workplace. They will do so because that's the environment that they have to get used to anyway. As much complaining as people do about Lindows, I think they're making a lot of smart moves with their organization of the desktop environment. I also think that Ximian is doing things right too.
GnuVince, do teachers new to that school use the new version of the software? I think that too is key. I don't think it's about trying to get people to change, but rather about getting new people within an organization to use a different type of software. Of course, it all depends. I think that migration for some types of software are going to be easier than others (for example, I don't think that migration from MS Office to OpenOffice would be that big of a deal, especially with the version that Ximian puts out.) The administrator of an organisation has the job of trying to figure that out, and those are the people we need to convince.
sicarius: I use X11 (redhat) and Windows 2000 on comparable machines, and I don't notice any significant usage issues. I consider myself a pretty typical user; so I consider my own use to be fine benchmarks.
Linux Desktop has been a reality for me for years, and the alleged slowness of X is NOT a significant obstacle compared to such things as difficulty of install (fast becoming unimportant itself; RH is easier to install than windows) and the expectations of real knowledge about the (multiuser) environment... this is the big thing.. trying to tell grandma what it means to mount a CDROM drive or why she needs SCSI emulation for her IDE CD burner to burn CDs. Alot of people are working on hiding these issues from the "norms".
vBulletin® v3.7.0, Copyright ©2000-2009, Jelsoft Enterprises Ltd.