Hacker Newsnew | past | comments | ask | show | jobs | submit | jafl5272's commentslogin

Does it scare anybody just how quickly the technology has evolved to negate many of his arguments?


I see they're taking a hint from Google.


What do you want to imply? I do not see any connection to Google.

ITA had those puzzles for quite a long time. (Perhaps before Google was even founded?)


But lawyers don't normally work in a management hierarchy, do they? And I'm pretty sure hospital administrators hate physicians just as much as managers hate programmers. (Not all of them do, of course, but I'm guessing it's similar.)


> So, what have we learned about the woman programmer’s dress code? Unlike the men’s dress code, beards are not in fashion

Thank goodness!


This seems like a pretty big change for a patch release?


Yes, this was an unusual release, and an experiment in shipping new features quicker than our major release cycle normally allows. Out-of-process-plugins was a good candidate for an interim release, because it is a stability enhancement and is transparent to the user (no UI changes).


Take that upvote as a "it seems to be working well in this situation" vote.


The idea is to push things out that help users as fast as possible. Things that require users to rethink how they use a product require longer release cycles as to not confuse users. In other words, rethink releases from a user's prospective, not a developer's.


On my MacBook Pro, only the command key has a symbol on it. All other modifiers only have text.


Somebody would surely find a way to spin that into an act of war, clear out the scuttled ships, and invade Iran.


I don't think Iran would do that unless there was already an invasion of Iran underway. And while it might be possible to clear the scuttled ships, it would be extremely difficult and take months, if not years. That would be months or years in which oil supply from not only Iran but Iraq, the UAE, and Saudi Arabia would be choked off. That would be crippling to the world economy.


Just wondering -- wouldn't a couple (or a couple dozen) of well-placed explosive charges disintegrate the ships into small enough pieces and clear the way? Can you expand on the difficulties? It doesn't seem to a layman like it'd be that challenging or take that long. (Then again, I realize little does.)


He's not rejecting progress. He explicitly says that C isn't for everything. But he wants real progress: a language with GC, concurrency, etc., not just C-with-classes-plus-etc-etc-etc


I'll deal with this in order of decreasing insanity:

1) Polymorphism is NOT functional programming. Using function pointers, which you seem to detest, is one aspect of functional programming. If you've only used C++, then you don't know what you're missing from languages like Lisp or JavaScript. (I should know. I was once like that.)

2) I seriously doubt the Linux kernel avoids function pointers. Ever heard of dispatch tables? Good C hackers know that smarter data structures make for simpler code.

3) Any feature that can go horribly wrong will go horribly wrong when you have a large project with lots of contributors. Everybody who successfully uses C++ on a large project has a huge "coding standards" document to keep the project from crashing and burning. I know Google has it, and I've seen others, too. Even I have it for my own personal C++ projects!

4) What Linus meant by "context dependency" is that you have to know the object's type in order to know what the function will do and you even have to figure out which version of the function will be called, based on the arguments. This is hell when you get a small patch in the middle of a larger function.


1) You can pass around worker objects and apply them to things.

2) Declaring, initializing, and using dispatch tables requires a boat load of syntax, or GTK+ style macro hell. To the best of my recollection, Linux only goes to the trouble for a few large, complex subsystems, like networking and filesystems. Many other areas could probably benefit from it but cannot afford the price.

3) True. But once you climb the hill, you get to offload a lot of crap onto the compiler. Forever.

4) Linus already applies his +18 Axe of Correction to large functions and nesting depth. Anybody who reviews patches without a color-highlighting code browser deserves what they get.


Users work in an infinite number of different ways, and they way they worked before they use your app is probably forced by whatever crap they are currently using.

No matter what you do, you end up forcing a lot of people to learn to work the way the app wants them to. The best you can hope for is to build an app where, once it's explained, most users first go "Oh, ok, that makes sense." and then actually remember it later. If you're really good, the users will even say, "Wow! That's much better than the app I used before."


Ok, sure, you have to draw a line somewhere. Point conceded. But the position taken by the parent article seems to be pretty close to "don't make a damn thing configurable" and that is a position I think is flat wrong - for many classes of software.

Then again, my interest is more in complex, multi-user, enterprise systems, where you are likely to have more varying forces at work (integration with other systems, needs of different classes of users, etc.) than something like, say, a TODO app for ones iPhone.


I have yet to see a highly complex piece of enterprise software that people actually liked to use. Honestly, I think the current state of enterprise throw everything and the kitchen sink at the problem software just demonstrates the downsides of a complex and highly configurable system. If you don’t know what people will be using it for then you can’t build a streamlined system.


  I have yet to see a highly complex piece of enterprise 
  software that people actually liked to use. Honestly, I 
  think the current state of enterprise throw everything 
  and the kitchen sink at the problem software just 
  demonstrates the downsides of a complex and highly 
  configurable system. If you don’t know what people will 
  be using it for then you can’t build a streamlined system.
True, true. And that's why I find articles like the parent useful, because they do serve to remind use that we should strive for simplicity... That is, while I may largely disagree with what seems to be the "logical conclusion" of the article, I don't disagree that things should be, as they say, "as simple as possible, but no simpler." And since I am working on some "complex, enterprise software" - and being aware of how notorious this kind of stuff is for NOT being friendly and easy to use - I feel drawn to try and break that trend by making things that are both powerful and flexible, but without being confusing and difficult. It's a difficult balance to strike, and I don't claim to have all the answers, but at least acknowledging the problem and having that as a goal is a start, I think.


This assumes a one-to-one relationship between pieces of software and workflows, which is absolutely incorrect. Just because you design a piece of software to be used in a certain workflow does not mean that that workflow will work for everyone; software which allows users to configure it to fit their individualized problems and processes is infinitely more valuable than software that tells the user "it's my way or the highway."


Then I have an infinitely valuable compiler and empty file to sell you.


Arguably, if you work a different way than the majority of users of a product, you'd be better served by a different product.


Usually, a product which doesn't exist.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: