Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Recently I've found two examples of programmer's personal beliefs in programs that have removed or crippled useful functionality

  • uTorrent using KB (rarely used) vs Kb (what most ISPs and other programs use as their metric) in their current connection speed. Various attempts by others and me to give options to at least give an option to show in Kb have ended with "ISPs should use KB"
  • Kleopatra (gpg4Win key manager) not having PGP Key Pictures since they "give a false sense of security" and "increase the size of certificates". While the latter is true, the former is debatable.

Both of these hurt the program and its usefulness to me. uTorrent's forums used to be filled with people saying they have 10 Mb download pipe but uTorrent only goes up to 2 MB (not knowing that Mb != MB), and with feature requests to show in Mb. Kleopatra has lost usefulness to me since I don't have the functionality to add pictures to PGP keys.

These all are political statements; developers attempting to make change in, in their minds important, issues. But should this come at a cost to end user functionality? If a programmer heavily believes X but everyone else believes Y, should the programmer refuse to add support for Y because in their mind X is horrible?

In short, should a programmer make political statements in their program?

share|improve this question
13  
Your examples arent 'political' statements, they're developers using their judgement about what is good for their own programs. This really seems like a non-question. –  GrandmasterB Mar 16 '11 at 21:38
7  
A developer's job is to limit your choices so that you can get things done. Otherwise, every application you use would beo a poorly specified, cryptic, programming language full of rarely used configuration options that only matter to vanishingly small audiences. –  JasonTrue Mar 16 '11 at 21:54
3  
@TheLQ, You are not the final arbiter of what is best for their end users. You may like speed displayed one way, but They might prefer it another way, and They may not think it important enough to spend development time on to allow such a trivial non-issue to be customized. –  GrandmasterB Mar 16 '11 at 22:03
4  
But you're actually talking about trivialities, at least in the examples given. You haven't explained why the two items you mention are so important. KB/second is how must web browsers reported speed since the mid-90s, for what it's worth; modem manufacturers did things differently; it's just a choice, not worthy of special configuration options when weighed against other features. The best software is opinionated, even if it doesn't match yours. –  JasonTrue Mar 16 '11 at 22:34
8  
@TheLQ, programmers have exactly no obligation to you. None whatsoever. Nada. Zero. Zilch. Especially programmers who create freeware, which ungrateful users then complain about. The developer makes the software, the customer buys it if it suits their purpose. Its an even trade. If you dont like it, dont use it. If its commercial software, they'll measure their 'success' in sales. The only time a developer has an obligation to allow a customer to decide the direction of software is if the customer is specifically contracting them to create something, which isnt the case here. –  GrandmasterB Mar 17 '11 at 3:31
show 12 more comments

9 Answers

IMHO using kB (kilobyte) for displaying connection speed on the UI makes a lot of sense, even if ISPs don't currently use it. When you talk about the size of a program, you do calculate it in (kilo/mega)bytes, not (kilo/mega)bits, isn't it? So it is much easier for a layperson to calculate/estimate download times if the connection speed is also shown in kB.

It is true that internally, connections speed is still widely measured in kb (kilobit). There are valid technical reasons for it - which are not (and should not be) of concern for the average user.

I believe ISPs display kb figures mostly because the larger numbers look better; if they switched to kB, all of a sudden their published bandwidth figures would drop to like 1/10th of what they were yesterday, which sounded terrible isn't it?

share|improve this answer
    
Yes, but shouldn't it be the end user's decision to what format to use? While I agree that the world should pick a format and actually standardize on it, the world doesn't. 2.2 MB/s means nothing to me when I'm trying to figure out what the bottleneck in my connection is. 10 Mb/s on the otherhand means alot as that's what all of I bought from my ISP –  TheLQ Mar 16 '11 at 21:49
    
4th grade mathematics should not be beyond the capabilities of the significant majority of users. Neither should it be beyond the grasp of that significant majority to know or at least SEEK to know the difference between kB/MB and kb/Mb. ISPs are actually the ones who should change as every other relevant measurement of data will be in bytes, rather than bits. 2MB per second gives you a much better indication than 10Mbps of how long that 500MB file will take to download. 500MB/2MB is easier to work out than 500MB/10Mb. –  mwotton Mar 17 '11 at 4:33
2  
@TheLQ, yes, the perfect solution would be to make the measurement unit(s) configurable. Note though that that would also complicate the UI and the program, increasing the chances of bugs. So it is worth only if the feature is actually requested by a significant portion of the user base. –  Péter Török Mar 17 '11 at 8:30
1  
@mwotton, note that it is 4th grade mathematics only with a rough approximation - there are parity / error checking bits, various encodings on different types of networks etc. involved deep down, so 1 byte is not 8 bits when transmitted. –  Péter Török Mar 17 '11 at 8:37
    
@mwotton I point you to countless help questions in every single piece of software that measures connection speed about the difference between Byte and Bit. Just because it makes sense to you doesn't mean it makes sense to the rest of the population. While simple, it confuses almost everyone –  TheLQ Mar 17 '11 at 14:10
show 2 more comments

Are you confusing politics with pedantry?

If you're the one developing and maintaining the software, you may do whatever you want. You can make up your own units if you so wish. However, if you want people to use your program, then the only way to do that is adhere to the conventions set.

I think a programmer should do the following:

  • Conform to the rules and guidelines set by a direct, external stakeholder
  • Use common sense to make usable software

While you're more than welcome to stand up for everything you believe in, if you're working with others, I strongly recommend you pick your battles carefully.

It sounds like the crux of the problem can be addressed by considering if you're in a team-based development environment (and if you're a team player).

Regarding the uTorrent nitpicking: there's more than one BitTorrent client out there... And why would you bother going to the uTorrent forums anyway? :)

share|improve this answer
    
For you last comment: That was a long time ago –  TheLQ Mar 16 '11 at 21:45
    
@TheLQ: But still prevalent, as you wrote that question 21 minutes ago. –  Jonathan Khoo Mar 16 '11 at 21:49
add comment

Should a programmer make political statements in their program?

yes

If you change a few variables you get this question:

Should an artist make political statements in their work?

I believe everyone will undeniably agree that we rely on artists to make political statements. It provides a cultural point of discussion/discourse. And what is a programmer if not an artist disguised as a logician?

share|improve this answer
    
This is about removing or crippling functionality, not doing something in a different way. Artists doing things differently don't affect most of us daily. This on the otherhand directly affects all user's that use the program. –  TheLQ Mar 16 '11 at 21:51
3  
If an artist makes a beautiful painting and places it under a blanket, they may have crippled the public's interface to their art, but the artist may have the intention of making a statement of the necessity of supporting accessibility to the blind. When a programmer writes a program, it's theirs. The user may use it, and influence how the programmer writes it, but the final say belongs to the artis-i mean programmer. –  zzzzBov Mar 16 '11 at 21:56
    
Programming isn't an art, it's an engineering discipline. The days where it was an art are long gone, and good thing for that. Moreover, most of the time, the program is not theirs. –  Kyte Apr 17 '11 at 16:29
    
@Kyte, if you don't treat your programs as a piece of art, they wont be. –  zzzzBov Apr 18 '11 at 18:46
    
@zzzzBov: You know how, in the 15th-16th century, painters were done by guilds, commissioned to copy whichever (religion) artwork was in vogue at the moment? That's the closest to art programming gets. Unless you're making a game or something for yourself, in which case you have creative liberty. But not when you're fulfilling a client's request. I, for one, would fire you if I found out you weren't doing what I asked for as a customer. –  Kyte Apr 18 '11 at 23:35
show 3 more comments

How are you going to make changes without doing something? As the developers, we're some of the people who are possibly the best capable of making decisions about these kinds of issues.

Sure you could let some company owner, salespeson or even some other developer(s) make decisions about what measurements to use or what features to include in specs... but if you know your tech and you know your domain and you believe something to be true... then you do what you see to be right.

Not only should you, but I'd argue that you must.

share|improve this answer
    
While I agree that we should try and make change, we should also give user's the option of using what there familiar with. There are many cases where I don't care about their political statement, I just want the functionality. 5 lines of code is a lot easier to add then changing the status quo of an entire industry –  TheLQ Mar 16 '11 at 21:55
    
Try having that argument with a product manager in a big company! –  quickly_now Mar 16 '11 at 22:28
    
@TheLQ It's not the entire industry. ISPs are a SEGMENT of the entire industry, and the only segment that sell by the bit rather than the byte. –  mwotton Mar 17 '11 at 4:36
    
@TheLQ: Although I generally agree that giving users an option that they're familiar with, their familiarity is likely just be the path of least resistance. In this case, there is a specific reason not to. –  Steve Evers Mar 17 '11 at 14:03
add comment

If you know the program will not handle a particular case well, then it is unprofessional not to warn the user not to do that. I see nothing political about this at all.

Not every program can always do everything it is possible for it to do, programmers set the limits of their program in the design and then have an obligation to tell the user what those limits are going to be especially when he exceeds them or does something the program won't handle. You not agreeing with the limits set is irrelevant. This is not about crippling functionality, it is about not providing a feature someone else might want. Heck I want every program to add several million dollars to my checking account, but oddly they don't seem to do that. It is not for you to dictate what the program does or how it does it when someone else wrote the program. You can decide to use it or not based on those limits but it is childish to think the authors of programs are always going to make the choices you personally want them to make.

share|improve this answer
    
As I've said before, its about doing things differently than the set standard is, and then refusing to support the set standard. Having programs do our every whim is an overstatement, its just doing it in a way that the standard is. If you refuse to support the standard, you are removing or crippling functionality. If someone made the best program ever invented but displayed it in Greek, that's crippling functionality as Greek isn't known by everyone –  TheLQ Mar 16 '11 at 22:26
1  
You realize that English isn't known by everyone either, right? –  user16764 Mar 16 '11 at 22:28
    
@user16764 Of course I do. I was merely using greek as an example. –  TheLQ Mar 16 '11 at 22:34
add comment

It all depends on what you are doing. I don't think the Kb vs KB is a good example.

As far as "attempting to make a change in important issues", well, doesn't all software essentially have that goal? Stackexchange was created to address, in Jeff Atwoods mind, an important issue. That issue being programmers asking questions and other people answering them. StackOverflow was created to that end.

share|improve this answer
    
This is mainly about removing or crippling functionality, not adding new functionality. While I agree that KB vs Kb was a bad example, its the one of the only ones I could come up with –  TheLQ Mar 16 '11 at 21:47
add comment

Programmers have a dilemma. (At the extremes) they can be pulled every which way by user requests, or they can be bone headed and stick to their guns.

Usually some happy medium in between is a good idea - users can come up with good suggestions for improvement.

But as pointed out some other comments, listening to every user demand is a recipe for disaster.

It is a difficult judgement for a developer to make about which users to listen to, and which to ignore. Your disagreement with their judgement represents a difference of opinion. In the case of the programs you mention to solution may be to choose to use something else.

Developers usually understand that some customers will walk away.

share|improve this answer
add comment

Developers are free to make political statements with their code, and end users are free to make political statements by not using or buying that code. Whether a developer "should" do the former depends on how much he cares about end users doing the latter. If you're wondering whether you personally should do it, you have to make that value judgement for yourself. Speculating on whether someone else should do it isn't fruitful.

share|improve this answer
add comment

This entire thing is less about political statements and more about semantics and economics.

Semantics, because of the difference in currant usage and layman understanding of bits vs bytes (b vs B).

Economics, because, really is the company out to please you as a single customer or are they out to please the largest number of customers - thus maximizing possible profits from a said feature. It's quite the possibility that there aren't enough people looking for that feature, or have found it elsewhere that the company doesn't care to pursue it.

In closing, there are tons of programs out there, if one doesn't like the way that a program is being handled (politically or for whatever reason) they can take their business elsewhere to make the greatest statement.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.