| last updated:19 Aug 2002 12:06 UK time |
![]() |
| JOS Statistics - Recent Comments (Comments added for week ending Sun 24 Mar 2002) | View Other Weeks |
| Not hiring coders over age 35 (revisited) | Sun 24 Mar | Bella |
| I was giving thought to a debate here from a few weeks back. It was a discussion over the company that only hires coders under the age of 35. There was a general uproar here, but I tried to fairly analyze what intentions a firm may have with that type of policy. I dont condone this practice, and every situation and person is unique, there are always 2 sides to any coin, but I thought Id try to step in their shoes anyways. First, the common rebuttal to this policy was that you cant develop software by hiring people who no experience. I agree. Almost everyone juxtaposed the invaluable senior experienced guru in their 40s and 50s to an inept college graduate with little experience. However, the post said no one over 35, it did not say only people with zero experience. Take note that 25, 30, and 35 year olds can have 5, 10, and FIFTEEN years of valuable work experience, respectively. Thats certainly enough for these youngsters to possess all the advantages you people cite that older programmers have (experience, wisdom, thinking outside the box, etc) You cant generalize, but coders in their early 30s often can be experienced veterans! There are many factors in determining the value of an IT resource. For those of you do not understand why a company would prefer not to hire people over the age of 35, you may want to compare the lifestyle constraints (of lack thereof) of the two age groups. You cant generalize, but someone under 35 may be more likely to be able to work until midnight for months on end, or spend all of his free time boning up his skills. Without the burdens of a family, he can be more focused. (And yes, there are ALWAYS exceptions, so refrain from posting the example of someone who is 35 who doesnt work hard, or someone who is 55 and is always in the office.) One of you veterans cited that he will simply chooses never to work more than 9-5. At my job, no one on my team is over 35, except the manager. We all work until 7,8,9,10pm. We work on weekends when there is a deadline a few months away. Very few of us are married, and none of us have kids. We eat dinner at our desks, and never have a little league game to attend, or an aging parent to care for. Someone with kids and a family would not simply fit into our group. Anyone who doesnt want to put in the hours can easily be replaced overnight w/o someone who has no problem working 70 hours a week. The guy who cited his carpal tunnel, and gave tips on how hed do it over (refuse to do this,,,refuse to do that,,,demand this or that) hammered home my point. He even says hed refuse to work overtime!!! This is another example of why I can understand that a firm may be better off, in some cases, hiring people no older than early 30s (still with 15 years experience) An older worker who knows his rights can only lead to trouble, as that attitude will infect younger members of the team as well. I am not conding this practice, but I can see where they may be coming from. Thats all. For the record, I believe a team is most effective when it has coders of all age ranges. Recent graduates, mid levels with 5-10 years, and people with 15+ years. Each age group has its own strengths and weaknesses that round out the teams strengths. |
| Sun 24 Mar | Jan Derk | A couple a thoughts that went through my head reading your post: - Poor you. - There's more in life than programming. - Getting more work done by making longer hours is a myth. - Are you gonna fire yourself when you reach 35? |
| Sun 24 Mar | Greg | More thoughts to add to Jan's: * Few companies can successfully pull of extended overtime, and only if everyone believes they're creating something great * Needing everyone in the office for so much time probably means the communications overhead is too great, including meetings * If people really want self-destructive policies, fine. At some point, let these ageist, mean-spirited companies burn employees out and fail. The physicists on the Manhattan Project kept normal hours. |
| Sun 24 Mar | Mike Gunderloy | There is a fair amount of evidence that longer hours correlates poorly, if at all, with releasing high-quality software quickly. See Peopleware or Mythical Man-Month for starters. Of course, working overtime does allow coders to indulge themselves in 'I must be great, look at all the hours I work' dick-waving contests. |
| Sun 24 Mar | Chris Tavares | I wish I remembered who said this, but it seems so appropriate: 'Heroic effort does not a business plan make.' If you're company's success is predicated on pushing 80 hour weeks out of your people for months on end, YOU WILL FAIL. |
| Sun 24 Mar | Bella | I was not debating whether that is a sound policy or not. 60 hour work weeks are commonplace in corporate America, effective or not. It looks like no one has refuted my original post, which means people must agree that younger workers can put in more hours. > At some point, let these ageist, mean-spirited companies burn employees out and fail. The company will not fail. When someone burns out, they just find a new body to plug into place. This is not the company's problem, but the employee's who go into it. > There is a fair amount of evidence that longer hours correlates poorly, if at all, The hours are b/c there is round the clock coverage for the systems. It is not a poorly managed deadline that is looming. There is no dick-waving, as people are generally unhappy. The firm will have no trouble finding new people if someone leaves however. |
| Sun 24 Mar | razib khan | younger workers are more like commodities. they're cheaper. companies can screw them over easier. so of course there's often a bias in a lot of businesses for younger workers. on the other hand, i suspect there's a strong bias for older workers in professions where a large portion are self-employed like medicine or law-and the clients make the decisions. if you had the same thing in software, the clients would probably pay a little more for older more experienced workers-but they don't hire and fire. |
| Sun 24 Mar | Tony | If the only purpose of mid level management is to further the career, and you were a mid level manager, then who would you hire, someone who will do anything you ask, including even working through the night, or somebody who may probably more switched on in a wider sense who may be a bit 'difficult' when you are being incompetent? |
| Sun 24 Mar | Robert Moir | Bella, you seem to be boasting about how everyone in your team works late, and how someone who wants to work normal hours just would not fit in. Now while I wouldn't want to work with an obsessive clock watcher because occasional weird hours and a flexable approach are important, if your team expects to work those kinds of hours as a matter of course there is something wrong with your team, or something wrong with your management, or something wrong with the projects you are undertaking. When I talk about obsessive clock watchers and flexable approaches, btw, I'm also talking about me being able to leave early or come in late here and there in order to go to the doctors or get an early start on a weekend's vacation or whatever. I think this sort of thing is all about give and take, and the employee who stares at the clock all day and will never work a second outside their contracted hours, and the company that routinely expect you to work until 9pm every day, are both missing the point in a big way. Finally, if you are all working these sorts of hours every day, I don't believe you could possibly be working in a very productive manner or producing quality work for all that time. |
| Sun 24 Mar | Jan Derk | Bella wrote: '[..]people must agree that younger workers can put in more hours.' OK I try once more. The amount of hours put in is just about the most useless commodity you can get from a programmer. It does not get you anywhere. It's productivity what you are looking for. Programmers working an extravagant amount of hours per week for a prolonged period of time are always less productive than those working regular hours. Please do read The Mythical Man-Month and Peopleware. And even more important: make sure your managers get a few copies too. |
| Sun 24 Mar | Greg | Hmm, maybe I should modify my assumptions. In the past, competition was extreme and retaining knowledge was important. Nowadays many companies have safe near-monopoly (oligopoly?) positions and don't look for particularly high growth. If things really go as smoothly as you say, maybe it works out. But if the company ever looks for growth, it probably wasted a lot of institutional experience. > It looks like no one has refuted my original post, which > means people must agree that younger workers can put > in more hours. I'll tell you when I get older. But you may be wrong, since young people are known for deviance. ;-) This sort of situation may spur the development of unions. It is a classic Prisoner's Dilemma -- if people refuse to do this work (assuming it's skilled) then the company would be forced to hire more people. But people currently defect and accept these jobs. Hope this is clear, gotta run... |
| Sun 24 Mar | Mark W | 'It looks like no one has refuted my original post, which means people must agree that ...' Didn't I say something about everyone here reading a book on informal logic? Sloppy logic like this means to me that you're more concerned with winning the argument than with getting to some sort of understanding or truth. A google search turned this up. http://www.datanation.com/fallacies/index.htm Personally, I hope everyone here begins quoting 'Stephen on Fallacies.' Stephen manages also to steer clear of the latin names for things, which is good because I can never remember them anyway. |
| Sun 24 Mar | Bella | No one seems to be addressing the original topic, which is trying to UNDERSTAND WHY a firm MAY want younger staff. (NOT whether long hours it is a good practice or not) General statements like '60 hour weeks are bad' carry 0 weight. It toally depends on the context. Some businesses, like telecom or global banking or ait traffic control or national defense, REQUIRE 24/7 support of their systems. ****Ideal Hours worked is not the topic at hand, it is YOUNG VS. OLD...**** Let's take this as a given: 'Job opening XYZ REQUIRES 12 hours days. Apply within' Period. It doesn't say 'Job opening XYZ REQUIRES 12 hours days. Please, oh guru, tell us how to reduce this load' That said, please reread my initial post, where I TRIED to understand, GIVEN THEIR REQUIREMENT, WHY they may perfer young staff. No more, no less. |
| Sun 24 Mar | Banana Fred | > General statements like '60 hour weeks are bad' carry 0 > weight. It toally depends on the context. Some > businesses, like telecom or global banking or ait traffic > control or national defense, REQUIRE 24/7 support of > their systems. Your argument that 24/7 support require 60 hour weeks is weak. There are 168 hours per week, so your argument would actually require one individual to work 168 hours per week! That is obviously absurd. The real answer is to hire is to hire 4-5 people to work 40 hour weeks.. And to follow the earlier conversation about who will a middle-manager hire, there is a nice saying that: 'A's hire A's and B's hire C's'. :) |
| Sun 24 Mar | Greg | Ok, one last time. 1) you find situations where young people have an advantage over older 2) you want us to argue that young people are not necessarily better suited to these situations Bella, are you aware you have stacked the deck? And do you know you've selected such a pathological subset of companies, that none of us here even agree with, that it's hard to see the point? Please tell me the point of this, as someone who visits to read about 'painless software management.' |
| Sun 24 Mar | Mark W | Perhaps the answer is nobody wants to discuss this topic in this context and you've shown a pattern of arguing to argue. The over 35 programmer showed genuine concern and we wanted to help him. You're just dumping a theory on us and demanding we refute it. |
| Sun 24 Mar | Michael Seberg | Sounds like a people mill to me. Another Dumb Policy perhaps. Anybody would would only hire people under the age of 35 has a lot to learn about both time and people. I'm glad I will never work for them. |
| Sun 24 Mar | razib khan | it's not always either || or type of situation. there's tendencies. i suspect that employers expect a rather higher level of competance and productivity from older programmers. all things being equal-younger programmers probably have an edge. but all things aren't. one thing in favor of higher older more stable individuals-they're less likely to job-hop from place to place. |
| Sun 24 Mar | Bella | > one thing in favor of higher older more stable individuals-they're less likely to job-hop from place to place. Good point. But then again, as in a Dilbert strip I once read, 'We have very low turnover. Our employees are unqualfied to work anywhere else' |
| Sun 24 Mar | Jack | I am 24 years of age and I have been working in IT as a developer for 2 years now, so far: I am yet to learn anything of significance from people younger than me, maybe this is not everyones experience but it is mine. I have 2 peers on the project that I am working on, they earn slightly more than me, whenever I am stuck I can ask them, they are both older than 35. The bulk of my learning over the last year has come from these two. In terms of who 'carries the can' for the projects I work on I, all are over 35, I sometimes think that I know as much as them, but its amazing that when a pressure/crunch situation occurs all us younger programmers lose our voice suddenly (at least on my team of 20). This conversation is stupid, take an intelligent 35 year old and an intelligent 24 year old, what is the difference apart from experience? |
| Estimating headcounts | Sun 24 Mar | Kenneth Hall |
| Are there benchmarks available to estimate the development team size for the maintenance of a system (say ASP and VB)? I also see some discussions on lines of code in here, so are there any benchmarks for lines of code productivity? |
| Sun 24 Mar | Bella | That's stupid, IMHO. It depends on a million other things, specific to nature the app itself, and the business. Does it require frequent updates, or has it been unchanged for years? Also a giant program, written well, may require less maintenance than a small app that was written like crap. It also depends on the skill level of the people maintaining the app. This is not something that can be plugged into a spreadsheet. Use your head, examine the situation, track it over some time, and make an educated guess... |
| Sun 24 Mar | Kenneth Hall | Ammm.. actually the situation is like this. We have a team has been working 12 to 18 hours every day, weekends and all, (interesting to see post on long hours and age above this one), for a couple of years to deliver our product. We now has a successful product, with a reasonable size customer base. There is an opportunity to expand our customer base by about 200 fold with a channel partner, and we are working on budgets and resource requirements to move forward. We have come up with numbers based on our history, but it seems prudent to check out what else is available, if anything. The notion is that we may not want to maintain the long hours, so... how many heads should we have... is the question. By the way, relating to the post regarding hiring people over 35. There are five of us on this team, all are over 35, all married, and three of us are close to 50. All of us have been working the long hours. Three of us have kids. |
| User interface guru! | Sat 23 Mar | Dan Olsen |
| Joel claims to be a user interface guru, he even wrote a book about it. I have only taken CityDesk for a few test runs, but my first impressions is that the user interface is quite mediocre, and is even at times quite silly. Like for example if you right click on a picture and select properties you do not get a property dialog for that picture, but a insert picture dialog with the defaults set to the picture defaults. This results in some unexpected behaviour, like if you select the same picture again from the drop down list the width and height fields are reset. |
| Sat 23 Mar | Mark W | Good User interface = Lots of time Delivering on time = Lots of shortcuts |
| Sat 23 Mar | Ori Berger | Although many people call Joel a GUI guru, I don't recall he ever claimed he's a guru. And specifically about CityDesk - I downloaded it, and played with it a little. And I wouldn't use it, but then I'm not the target audience - I disagree with most of the world on the idea of what WYSIWYG should be like, and generally prefer WYWIWYG (what-you-want) tools like LaTeX, SDF and troff to WYSIATI (what-you-see-is-all-there-is) tools like Microsoft Word is in practice. On the other hand, the interface is exactly what's needed for just everyone non-technical I know - it's simple, straightforward and just works, exactly like it should, and so rarely does. Additional comment - when I loaded the GUI my first reaction to seeing the 'Font' button was 'Heaven Forbid, Joel has done the unforgivable and put a font selection button'. I was relieved to see that it only changed font SIZE, and that it wasn't even point size, just a number. This 'censorship' is part of what makes it so good - for the target audience (as I perceive it anyway), simple font selection would have caused significant more harm than good. And eventually, the sophisticated users aren't locked out - they can always use the HTML mode. (Paul Graham's 'Beating the Averages' contains an interesting perspective on advanced users vs. average users - see http://paulgraham.com ) |
| Sun 24 Mar | Jeff Winkler | http://www.fogcreek.com/CityDesk/ does lead with usability guru: 'Usability guru Joel Spolsky and the team at Fog Creek Software'... I think Joel's most important skill in this is writing...it's not like he's inventing this stuff, for the most part - my take is he's presenting a few favorite memes he's picked up, in a common-sense and entertaining way. Plus he's not afraid to debunk BS methodology/instant-fix thinking, and be practical..how many 'real' (non-blogger) journalists have real-world experience to say when the emperor has no clothes? |
| What do you want from this forum? Part II | Fri 22 Mar | Just watching... |
| Timothy Falconer wrote: Personally, Id prefer it if we stick to topics stemming from Joels articles, such as writing functional specs, UI design, running a software company, interviewing, the software industry, great books, software marketing, project management fundamentals, etc. Do we really need another how-to resource for specific programming technologies? So the answer is... ask Joel... and see his ADO vs. ADO.Net topic... :-) |
| Fri 22 Mar | John | One thing I haven't found yet here is something that can help me do requirements engineering. I would think this is a critical first step to any project. How can you tell if your requirements document is complete or comprehensive enough or done correctly? I think specifications are requirements are often different. What makes a good requirements document and what are these 'shall' and 'must' documents? |
| Sat 23 Mar | Mark W | John, This is something I'm struggling with as well. There are probably as many philosophies on this as there are people gathering requirements. I'd say the requirements are complete when you can logically think through what the user wants to do and get from start to end without any gaps. This is hard to do because you mentally leap from point to point and make lots of assumptions that, during coding, you realize you need. That's why it takes someone who's been through the process a few times, or someone who's logical, thorough, and even if he doesn't do it, can generate a good flow chart, to write the requirements. Tools like Use Cases certainly help you do this because they depict every action the user may take on the system and you tend to be more thorough when you can draw pictures rather than do it in words. That said, I'm not sure requirements are every really complete, at least, not in reality. In a sense, Joel is still gathering requirements for CityDesk. Not because we're asking for new things (those would be new requirements, I'm talking about revising the old requirements) but because we're doing things in unexpected ways. I'm interested in testing the Extreme Programming philosphy next time I have to gather requirements. Have them write out in discrete chunks the functions they want. Then sit down and translate those requirements into bits of code that can be programmed in 1-2 days. This way when they say 'Log In' and you sit down and try to figure what bits of code will be required for log in, you realize you don't know whether or not they need SSL, what the profile will be (name/id/password? what about e-mail address?), how to retreive a forgotten password, etc. These things get easier with experience. |
| Sat 23 Mar | razib khan | Good point about 'off topic' posts. I haven't wanted to get too involved in these 'Let's get this board back on topic' because pretty soon half the non-flame messages deal with how to moderate the board. I do have an idea on how to limit extraneous stuff. I feel a lot of people (not just on this board) will just jump and express and opinion when they haven't gotten the measure of the board. Or someone will post a question that deals with their homework. And so forth. I had an idea of preventing users from posting for thirty days after they had an account. This prevents casual people that come and go without much thought from jumping in immediately. With Joel's system that could be done with with the values in the cookie. Of course, there are ways to get around the system, but the key is that it increases the intial barrier a bit. I also like the idea of not having threads. Of course, when I pitch these sort of ideas to clients they look at me like I'm losing it-so I haven't impliemented this idea on a professional level. |
| Sat 23 Mar | Mark W | I think I addressed this in an earlier post. The ease of posting to Joel's board adds to the casual feel.
This is *great* when it stays on topic. For example.
|
| Sat 23 Mar | Just watching... | Mark W, You are absolutely right. |
| Sun 24 Mar | Mark W | Is it just me or has this board been divided into two camps. 1) people who like joel, are generally friendly, and don't dislike microsoft 2) people who hate joel, are generally unfriendly, and hate microsoft maybe it's more complex than that, but that really seems to be the long and short of it. |
| Sun 24 Mar | Ged Byrne | Do you think that many of the people in group 2 could have arrived here from Slashdot? |
| Sun 24 Mar | Mike Gunderloy | I think like most other black-and-white divisions, that one doesn't quite capture reality. In my own case I'm quite friendly towards Joel, try not to indulge in flaming myself -- but despite having subcontracted for them in the past, I am at very least intensely suspicious towards Microsoft. I think by and large most people here are still contributing to interesting discourse, even though perhaps we tend to be a little bit too promotional for our own tools of choice. |
| Sun 24 Mar | Mark W | suspicious towards Microsoft is different from openly hostile. I agree, absolutes are never absolute, but they're fun to play with to expose something more subtle. It'd be impossible for me to say 'Is it just me or are there fifteen shades of gray here?' Nobody would see it. |
| Sun 24 Mar | Timothy Falconer | >So the answer is... ask Joel... and see his ADO vs. DO.Net topic... :-) Point taken, though I'm not sure why this warranted a new topic. Probably because it's too difficult to scan through old topics to see what's new (and the visited link thing definately doesn't work consistently, nor is it easy to see where the new messages are (other than thinking... hmm... that seems familiar). Also doesn't allow for viewing on different computers (links are all different). |
| AOL Time Warner chokes eating their own dog food | Fri 22 Mar | David Fischer |
| Im surprised no one, especially Joel, has commented on this yet: http://www.msnbc.com/news/727898.asp?cp1=1 AOL Time Warner reverses its decision to use the AOL-based email system exclusively in all parts of the company, because of significant problems including a 2% delivery failure rate. Any thoughts on this large usability test? Will it affect AOLs consumer products at all? |
| Fri 22 Mar | Roger | AOL is not meant for the entreprise. In every TV ad, they never mention anything about 'Entreprise features'. AOL is all about the individual consumer. It's for personal use only. To use it in a huge company like AOL/TW is just dumb. |
| Fri 22 Mar | Ryan Ware | Also interesting to note is what the news source MS - NBC. Although, I do agree AOL email is definitely a regular home user program and not meant for corporate use. I wonder if the Time Warner users had to click pop up ads out of the way before they could email a co-worker. Seeing this story on MSNBC is almost as bad as a Hotmail still uses FreeBSD story on Yahoo News. |
| Sun 24 Mar | Jeff Winkler | Lots of schadenfreude here, but it shows the perils of dictating policy on a large scale without scaling up from small tests. Silly corporate dsyfunction. |
| Sun 24 Mar | Jim Lyon | The story left me wondering whether AOL considers a 2% lost message rate acceptable for consumers, but not for corporate use. Also, I don't think scale-up was their problem. If their system can handle tens of millions of consumers, I suspect that it can easily handle tens of thousands of corporate users. All of which leaves me with the impression that the problems were reliability and usability. |
| CF and/or ASP?ASP.net | Fri 22 Mar | John Rictor |
| Is there really a significant weakness in CF, or are there things you cannot accomplish using it. If so what is it? In my experience, which at this point is not limited, CF is a viable platform. Why does it get such a bad wrap in the developer community? I am beginning to use ASP.net with C#, and have not found many things that cannot be done faster using CF, including accessing middle tier objects. Am I missing something in ASP.net that is going to surpass CF in terms of building quality applications, fast? If so, what is it? Thanks. |
| Fri 22 Mar | Ged Byrne | Sorry for being uninformed, but what is CF? |
| Fri 22 Mar | John Rictor | Cold Fusion. Exactly my point, i think. |
| Fri 22 Mar | Jabberwocky | I am switching from CF to ASP.NET. Now that ASP.NET is more attractive and free, this switch will lower the cost of adoption for my customers. Apart from having to write more code in ASP.NET, in the long run it all evens out. |
| Fri 22 Mar | Rich | 'ASP.NET is more attractive and free' You have an interesting concept of free. |
| Fri 22 Mar | Matthew Lock | Since ASP and CF and any other server side language both output HTML it doesn't really matter what language you choose, as they are all equally capable of creating the same web pages. For example Yahoo store was written in Lisp: http://www.paulgraham.com/lib/paulgraham/sec.txt I happen to think Perl is your best choice as it has the most libraries available, saving you from re-inventing the wheel. http://search.cpan.org |
| Sat 23 Mar | razib khan | no point in making a religious point about it. i haven't worked in CF, but from what i've heard it's best suited for presenting data-but not as good if you have to do a lot of manipulation on the fly. also, it's expensive. one interesting point also. if you type 'ASP' in monster you get about 10 to 20 times as many responses as if you type 'PHP', but it seems there are almost as many sites in PHP as ASP now. a lot of these web languages are almost interchangeable, and if you write them in an object-oriented manner, they really start to converge. my choice of scripting language and engine is now dependent on what my customers want. |
| Sat 23 Mar | Justin Johnson | I've built sites in PHP with MySQL as a backend database, and then done nearly the same thing with ASP/SQL Server. I never bothered looking into CF because I assumed that I would find the same thing I did with PHP and ASP: namely, that there's a cosmetic difference in syntax that doesn't really affect development cost, time, or complexity. |
| Sat 23 Mar | Russ Hollmann | ColdFusion - especially the forthcoming MX version - is hands down the fastest, best, most powerful way to build web-centric applications. That said, there are a lot of things going on besides web applications, and a lot of technologies that you would/could want to use in conjunection with ColdFusion even for web apps. The great thing with ColdFusion is how technology agnostic it is, the fact that it is both moving to the java platform but also embracing .Net at the same time I would argue that CF gives a better total development cost then some of the 'free' alternatives and also has great tools (development, admin) to work with it |
| Sat 23 Mar | razib khan | Russ, Can you clarify? Specifics? I've heard people say that CF is great for someone who isn't that familiar with the ins & outs of web app development and programming-but the value added becomes diminished the more programming savy you have. I notice THE ECONOMIST does it's sites in CF, but that's the only big site I can think of off the top of my head. |
| Sun 24 Mar | Walter Rumsby | No no no no no no no! And again no. Cold Fusion has poor support for code reuse - you cannot write your own functions. Yes, you can include template files, but you cannot control the scope of variables. You could, instead, write a custom tag, but then you are using a tag based language to try to express something better suited to being expressed in a traditional way (C/C++/Pascal/Java/whatever). Typically what happens is that a Cold Fusion pages become a huge mixture of CF tags, HTML, SQL, JavaScript, CSS, whatever - there's too many things going on. The language imposes too few restrictions on the developer, it's too easy to be undisciplined. Try to do something like an XSLT transformation - where are the standard libraries to do this? Maybe CF MX supports this, or maybe some Joe wrote a custom tag (in C++) to do this, but whatever I strongly doubt it would be as easy to use and understand as what ships with .NET. Cold Fusion is good for quick and dirty, but not for large systems - this is why they bought JRun and this is why Cold Fusion is slowly turning into a JSP application - Cold Fusion tags will be implementations of JSP tags - and this is why even Macromedia say 'use Java instead' (for large-scale apps). |
| Is software engineering still lucrative? | Fri 22 Mar | Hoang Do |
| As an incorporated software development consultant who recently closed up shop, I am posing this question to the community. For the past 3 years, I have come across various situations which made this question come up more and more. Given that the US no longer has the exclusive on developing software - 1 - the huge influx of H-1B visas killed (or very much subdued the demand), 2 - 3rd world countries are finding that SW development is lucrative and are jumping on the band wagon (they have the advantage because labor is so cheap there), 3 - paying for software is basically non-existent in 3rd world countries (look at China, India, USSR), 4 - the dotcom bust (there are now too many good programmers in the market chasing too little dollars). Is pursuing what is in effect (a lifetime education) worth a carreer in software development? |
| Fri 22 Mar | Kenshi | Interesting points but very US centric. I am in the UK, and have been thinking about the software business as well. The threats to it that I see are not so much from developing countries, but the ruthless business practices of Microsoft on one hand and the Open Source and Free Software movements on the other. Its always nice to see hardware, consulting and media companies (Nokia, IBM, AOL et al) try to hijack or exploit the various Open Source movements to destroy the software industry. What is amazing is how many software engineers are so keen on helping them do it. Flame on, baby. |
| Fri 22 Mar | skautsch | Most professions worth pursuing are going to mandate a lifetime of education. However, many do not make the worker *guess* at what he/she should learn next, which is one of the most aggravating aspects of our profession - if you guess wrong, 90% of the want ads the next year will not apply to you. Also, many do not mandate continuous education on top of death march projects, since those professionals have a little flexibility in their schedules. Most programmers' schedules are dictated to them as if they were working in a factory. As to whether or not 'the party's over', I think it probably is. If I was 20 years younger, I'd be studying energy or environment - unless I was enough of a masochist to get a Ph.D in which case biotech might be good. |
| Fri 22 Mar | Roger | Kenshi - I completely agree with you. I hope some of those people will listen to you. |
| Fri 22 Mar | Doug Withau | Define lucrative. If you want the American dream (house, car and middle class) sure. If you want to be Bill Gates, or even a dot com IPO millionare, that is getting harder and harder to achieve. New ideas are harder to find, and getting to market first no longer guarantees success. |
| Fri 22 Mar | Mark W | Skautch, I disagree. In the recording business a few years ago nobody knew what equipment to buy and learn, but everyone knew they had to do it soon or get left in the dust. Analog or Digital, 24/48 or 24/96, Hard Disk recording or ADAT recording? You had to make a huge outlay of money on some system betting that it would be the right one and afraid that if you made a mistake all the customers would go to where the action was. I don't think anyone went out of business because they bought ADAT over Pro Tools but everyone was afraid that that would be the case. They were also afraid that the price for putting together a home studio would go down so much that nobody would need a professional studio anymore. If I could by an iMac and the home version of Pro-Tools for $3000, everything included, why would I go to a studio and pay $2000 and work on a limited timeframe and on someone else's schedule? Heck I would have PRO TOOLS, that's the same software the studio has. Of course, none of this really came to pass, and while yes some people did buy home studios, typically their recordings turned out shitty. Other people were intimidated by the difficulty of setting up and learning how to work a home studio. Will the professional recording studio go the way of the professional typesetter? I doubt it. Will purchased software go away just because freeware exists? I don't think so. |
| Fri 22 Mar | Bella | Nope, the party is over. It is so ovbious, on so many levels, that I wont even bother elaborating. anyone remenber what is was like in the early 90's? Thats the first step towards the END. |
| Fri 22 Mar | Mark W | 'anyone remenber what is was like in the early 90's? Thats the first step towards the END.' ?? I was 15 in 1990. My memories of the early 90's mostly involve high school girls and grunge music. WHAT was the first step towards the END? |
| Fri 22 Mar | Timothy Falconer | Software development will remain vital and world-changing for at least the next century. Anyone with even a nodding acquaintence with cognitive science realizes that there are many more good software ideas in our future than our past. Information is infinitely malleable. We're still in baby-step land. With just a decade of world-wide commercial networks behind us, we're just beginning to see what we can do with all this super-connected computing power. Trust me ... we ain't seen *nothing* yet. As for whether the party's over, great developers will *always* be in demand. It won't be so easy to coast on a few months of HTML, Cold Fusion, and Access. Those with at least a decade of experience in many languages & architectures, with solid fundamentals and good communication skills, should not have any problems. |
| Fri 22 Mar | Bella | Yes, software development is here to stay. But your salary will be HALVED soon enough. Fast food is here to stay as well. You want fries with that, future boy ? |
| Fri 22 Mar | Bella | > great developers will *always* be in demand. Tim, you're so nieve. I haven't heard that since at least summer of 2000, when most people still had jobs. Today, it sounds so cute. Tell that to the THOUSANDS of 10+ gurus who are unemployed. |
| Sat 23 Mar | chunks | >>If you want the American dream (house, car and middle class) sure. >>If you want to be Bill Gates, or even a dot com IPO millionare, that is getting harder and harder to achieve. Sadly, in most parts of the USA where it is easy to get a programming job, you need to be a dot com IPO millionaire before you can afford a house, car, and middle class lifestyle. Programming in general is not lucrative. It is labor, and labor typically isn't lucrative unless there is a huge shortage of it. However, I disagree with the reasons given: >>1 - the huge influx of H-1B visas killed (or very much subdued the demand), H1-Bs either did really hard work americans couldn't figure out, or shit work americans wouldn't do. Actually, it seemed like H1-Bs mainly did really shitty work that was also really hard. Like database internals and work for intel. 2 - 3rd world countries are finding that SW development is lucrative and are jumping on the band wagon (they have the advantage because labor is so cheap there), 3rd world countries typically do programming work that americans don't do (or shouldn't want to do). like a bunch of russians setting up a shop that ONLY straight up ports PC games to the macintosh. or a bangalore firm doing horrible middleware components that allow one AS400 to talk to another one. 3 - paying for software is basically non-existent in 3rd world countries (look at China, India, USSR), The number of 1st world programmers whose salaries are paid by software sales to 3rd world countries must be close to zero. 4 - the dotcom bust (there are now too many good programmers in the market chasing too little dollars) Companies are spending less on software,but the dotcom boom did not produce very many good programmers. Rates are all about your contacts and salesmanship, not software engineering. It is still possible to make a much better than average living doing software engineering if you know the right people and sell your services well. I would like it if that wasn't the case, and I could just make a big salary by farting around and learning different languages all day. However, that isn't realistic. I learned that the only real way to make any money is to actually think about how I'm going to make money. |
| Sat 23 Mar | Mark W | This thread is beginning to sound more like a dissertation on world economics and US foreign policy (from a Chomsky-esque point of view). 1. These arguments could be applied to any industry. 2. Greenspan & Clinton both have said, more or less, that the economic boom of the 90's was due to 'increased worker fear' which meant we were willing to do more for less because otherwise our jobs would be taken away. 3. I still don't know what the early 90's have to do with programming today. 4. There was a study by Xerox of their top sales people and it found that the top will always succeed, and even when there are massive layoffs, the top will always be there. 5. Nothing is ever so obvious it can't be elaborated on, especially in a debate. 6. The 30 year mortgage on a house in the NYC area ($400k) is around $2500 a month. 7. I think everyone here should buy a book on informal logic. Learn to present your arguments clearly rather than obfuscating the point. Give us something to disagree with rather than just fanning the flames with empty taunts. 8. Most of you sound like the boiler room stock broker that still has a job. If you're so good at predicting the future, why aren't you rich? 9. 'Before I post I will breathe deeply and count to 10. I will not insult anyone for no reason. I will realize my posts here are more of a reflection of who I am than of who I'm arguing with.' 10. To paraphrase Jesus 'Don't worry about tomorrow, tomorrow will have enough worries for itself.' |
| Sat 23 Mar | Bella | I will surmise that many people here didn't (or don't) make much money, b/c they lack basic business & economic instinct. (And no, I don't mean looking good in a suit.) I mean a lack of basic instinct to market forces. Good IT theorists, but not much 'street smarts' They learn Delphi, they work at fake dotcoms, they insist that their grandmother install Linux to surf the web b/c 'it's so much better' Making money in IT is about 15% raw tech skills. The rest is having a keen nose as to where the money IS, and where the money will REMAIN, and where the money will BE. Evaluating your role at a firm, and evaluating the firm itself, and evaluating the groups role within the firm., This, folks, has nothing to do with technology skills. |
| Sat 23 Mar | Bella | > Sadly, in most parts of the USA where it is easy to get a programming job, you need to be a dot com IPO millionaire before you can afford a house, car, and middle class lifestyle. Chunks, What city do you live in? Perhaps you need some books on basic finance. If you couldn't afford a house in the past few years, then it's not your profession, it's you. Tech was the HOTTEST job segment in the economy. Most of us could have afforded TWO houses. > Programming in general is not lucrative. It is labor, and labor typically isn't lucrative unless there is a huge shortage of it. And yes, yes, there was. A massive unprecendented shortage. > 1 - the huge influx of H-1B visas killed (or very much subdued the demand), H1's got screwed harder than anyone, you stupid idiot. It wasn't the flood of supply, it was the LACK OF DEMAND. H1's or no H1's. Chapter 11's and massive layoffs. Get a clue, whiner. >. I still don't know what the early 90's have to do with programming today. The early 90's was a recession, like we are in today, you imbecile. Today job market more closely resembles the early 90's, and not 2 years ago. As I said, basic lack of business and ecomomy awareness makes for a poor career, irrespective of raw tech skills. > The 30 year mortgage on a house in the NYC area ($400k) is around $2500 a month. And remember, almost all of that is tax deductible. Most NYC programmers sohuld be able to afford paying about $2000 for a place to live. Annually, that's about $24k of after tax salary. Which is about $40k of pretax your salary to housing. Spare me the '$40k on housing is too high' And if you still can't afford that, skimp & save for a few years, and take a smaller loan. People are still paying CASH for their houses. |
| Sat 23 Mar | chunks | Wow Bella, you are looking for a fight in every post. I never mentioned my personal economic status anywhere. Not that it is your business, but in the past 10 years I have lived in Boston, Manhattan, and Berkeley (and tokyo for a stint). A house in any of these places is $400K+ (AT LEAST) for a modest 2 bedroom home. It may be whining, but $40K/yr mortgage to live in a dump isn't my definition of 'middle class.' Most programmers are NOT making $400K a year, and weren't making that much during the boom years, either. $400K a year as a programmer means $200/hr working a 40 hour week. Again, not that it is your business, but I _AM_ a dot com millionaire. I'm one of those $400K a year guys. But for the most part, it is more like $100/hr working an 80 hour work week, rather than $200 working a normal work week. I also did ok with 2 companies I had a small amount of stock in. Even with money, I didn't end up buying a house in silicon valley, I don't want to be another MC Hammer... I totally agree that making a living has nothing to do with tech skills. My best friend makes boatloads running an outsourced desktop support company. Another friend of mine is a PHOTOGRAPHER with a net worth of about $40 Million. It is all about business acumen. If I was an employee rather than whoring as a consultant during the past 5 years, I'd be fucked along with a lot of my friends. Regarding the 90s, I actually made about the same salary in the 90s doing work that I considered way more fun. (interactive CDrom games vs. dot com ridicula) I still make the same hourly rate doing work I like more (with vastly reduced hours). YMMV. |
| Sat 23 Mar | Bella | > A house in any of these places is $400K+ (AT LEAST) for a modest 2 bedroom home. LOL, typical bull market hype. Are you sure you're not a another sensationalistic realtor troll? I see tons of stuff way bigger than that for under $400k. 2000 sq ft, 3BR, for under $400k Also, who said anything about making $400k a YEAR? NO ONE makes $400k. Dont confuse a house price with an annual salary. However, You CAN make $100k a year and live in a $400k house. That's $40k each b/w you and your wife. Think you can handle that? And you can make even less if you you have a bigger downpayment. We just ended the biggest bull market in HISTORY. In the boom, you could turn $1000 into $9000 in a few months. The last few years, you could have made $50k as a programmer, invested your savings, and easily ended the year with $350k of income. Of course, if you were a fool and let it all ride, you probably don't have much left. Other's were too lazy to partake, and just sat and watched TV while complaining about high real estate prices and low salaries. PS: What's the story behind MC Hammer? He couldn't afford to keep the mansion? >If I was an employee rather than whoring as a consultant during the past 5 years, I'd be fucked along with a lot of my friends. How's that? |
| Sat 23 Mar | Bella | Oops, I meant to say $80k. Pardon me. |
| Sat 23 Mar | chunks | Bella, Those houses are in Roxbury and Dorchester, two of the shittiest neighborhoods in the boston area. That's like living in west oakland. Actually its more like living in Flushing, but...in any case, I wouldn't pay that much to live in any of those neighborhoods. I knew quite a few tech people (well, about 10, myself included) who were making $300K-$400K per year throughout the 90s. One of them was just doing outsourced PC support (well, he was running his own outsourced PC support business...and still does so). The others did network engineering and hoary java/Oracle systems. All were consultants, and workaholics. I don't think you can make that kind of scratch on salary. The network engineers are still making $300K-$400K per year. The programmers I knew all semi retired. MC Hammer couldn't afford to keep the mansion. The $400K house, $100K year salary situation is fucked. But, I guess that is reality. |
| Sat 23 Mar | Bella | Ok, yes, those may be in shit towns.....but I will say, that when people bitch 'Oh, even a STARTER home costs $400k' they are generally referring to the most UPSCALE towns in a suburban area. Yea, well, that's not for most of us, get get a reality check. If youre referring to MIDDLE class, then there's plenty in the $400k range that aint a STARTER home. It's just not gonna be Scarsdale, but it doesnt have to be Roxbury either. So as far as thbe original topic, is programming lucrative, well, you certainly EASILY can get a decent middle class home with that salary. That was my only point. Sorry to have taken this debate to a housing tangent. |
| Sat 23 Mar | Bella | Chunks, Do your semi-retired, $600k in the bank friends have families? Or are they retired b/c they have 20 something lifestyles to support? If so, well, tell them to get real, b/c once they have a family, good luck living off their interest or whatever, their expenses willl increase 10 fold. |
| Sat 23 Mar | Christopher Wells | > Is pursuing what is in effect (a lifetime education) worth a carreer in software development? I'd like to live (physically) in a village instead of a city. My pursuing a career in telecommunications software might help to enable that some day. |
| Sun 24 Mar | chunks | >>Chunks, >>Do your semi-retired, $600k in the bank friends have >>families? Or are they retired b/c they have 20 something >>lifestyles to support? Yes, most of them have one or two kids. And a wife. And have a good grasp of personal finance concepts. :-p A couple (including me) are still loser bachelors. All are old (30 something), except for the guy with the desktop support business. He's young. (started business as a high school drop out) I'm not sure where I came across as a young person. Semi-retired means $75K/yr university job, or 1 contract instead of 4 at a time. One guy (a bachelor) just outright retired and I think spends most of his time lifting weights and playing violin. |
| Sun 24 Mar | Bella | Chunks, Can you send me an email? I have an legitimate, off line question about one of the scenarios you described your friends to be in... Thanks, Bella(cose) |
| Sun 24 Mar | Timothy Falconer | >> great developers will *always* be in demand. >Tim, you're so nieve. I haven't heard that since at least >summer of 2000, when most people still had jobs. Today, >it sounds so cute. Tell that to the THOUSANDS of 10+ >gurus who are unemployed. First, I doubt if there are thousands of software gurus. That word gets used a little too easily these days. Second, do you really believe that there are thousands of software developers with more than 10 years experience, who are experienced in multiple languages and platforms, who have solid development fundamentals & good communication skills? Thousands? If so, where can I read about this? |
| Sun 24 Mar | Timothy Falconer | Clarification... do you think there are thousands of such software developers that are unemployed? |
| 14yrs experience, Now it bores me. | Fri 22 Mar | Tony |
| Anyone else here been at it for a long time and starting to not care for it anymore? Thing is, Im 42, and to be honest, its just plain dull now. Ive spent the last 9 years writing C, C++ apps, Ive spent the last 3 months ramping up on the C# stuff, at my employers expense, I know more about it than anybody else on my team, the company is looking to me to deliver the goods on a proposed $US800K development, team leader of a team of 12, and you know what? Despite the pay rise I just got, I cant be bothered. Plus Ive just had a 4 week vacation. Anybody else here been at it for 10+ years? What motivates you now? Isnt it all just the same thing, over and over? |
| Fri 22 Mar | Michael Butler | nearly 14 years experience. Started feeling bored around the 10 year mark. Still get the occasional period where the work doesn't interest me. I'm doing contract work rather than working for one single company. It helps to vary the work. Inbetween the contracts, I'm developing my own stuff which is a lot more interesting. |
| Fri 22 Mar | razib khan | my experience is very few people work in jobs they have passions for anyhow. if you can get 10 years out of a job-that's not bad. |
| Fri 22 Mar | John C | I guess when you're younger and starting out you've got a rose-tinted spectales view on working life and as you get older and (dare I say it) wiser, you become more realistic. And for most people, it's a job, and having to work for a living is never going to be ideal at the best of times. You're not going to single-handedly change the world by writing code (well, not most people). Come on, even being a test pilot can get pretty dull after a few years of flying planes around... |
| Fri 22 Mar | Paul Brinkley | I wonder what you're counting as experience - doing it for a living, or doing it? I've been programming for nearly 20 years, for a living for about 10 of them. I feel like I'm just getting started. There are projects I want to embark on that I think would be really nifty; they'd either sell like crazy, or at least give me some wonderful insights into my chosen trade. I suspect that if I were doing nothing more than assembling IT architectures for midsize companies, or building web apps, or being a program manager, orsomething like that, I might find it dull, too. How about trying a new subarea within computers? Try to find a job writing a different kind of software. Particularly something fun. A game company, perhaps. |
| Fri 22 Mar | A. | Believe not those that would tell you that the feelings you are having normal, natural, and should be ignored. Carpe every diem. |
| Fri 22 Mar | Hoang Do | I've been at it for 13 years. 7 of it mainly in embedded realtime, 4 years in the Microsoft camp at the low-level side, and for the past 2 1/2 years I am discovering the world of web and data access on my own expense. I think you don't get bored if you are learning/discovering something new. Of course as you get older and more 'simmered', the likelihood of your learning something new (and not stupid) grows dimmer. Just don't expect to be as enamoured with programming as your first 3 years of starting out. |
| Fri 22 Mar | Michael Butler | 14 years professional experience but been programming computers for 20 years. (And I'm still only 30) |
| Fri 22 Mar | Simon Lucy | Until recently I was beginning to think the same thing, after around 23 years experience. Now though I have a new paying project, new people and its not so bad. |
| Fri 22 Mar | B | I had the same experience about 4 years back and decided to quit my day job (after 10 years) and go to school studying music instead. At the same time I started doing consulting work on the side to pay for the bills. The fact that I didn't spend my entire day during that period thinking about software helped a lot, and I came out ready to start fresh in the software business again. I don't know if there's any cure for not being motivated after coming back from a vacation. It's always harder to get back to work after taking days off. |
| Fri 22 Mar | Mike Swieton | The others here may be bored, or may not. Don't ask them if you should or shouldn't be bored! If you're bored, change something. Pick a different project. Go back to school, become a hardware engineer. Become a janitor and code OSS projects in your spare time. Whatever! What worked for the rest of us may or may not work for you: if YOU like it, that's what matters! And ditto if you don't like it. |
| Fri 22 Mar | ! | I think that someof the questions you need to ask is why do you find it dull now, and what did you find exciting about it before? For myself, I have found that part of the problem is that I no longer feel technically challenged by some of the projects that I am working on. Many of the new projects I approach can be solved using variations on things I have done in the past so it isn't really a stretch to accomplish them anymore. I still spend time looking at new concepts and tools, but they no longer have the same excitement or wow-factor associated with them. Where once it might have been a brand new concept, it is now just a variation on a theme. The amount of truly new things I am learning is dropping off. To combat this, I have tried looking at changing problem domains. While this hasn't made the development side any more exciting, it has given me the opportunity to continue learning and face new problems. Of course, if you started off in a fairly complex domain, it can be hard to find other domains that will maintain your interest for long. At the end of the day, it is a matter of doing the same thing over and over. As a developer, your job is to find an optimal solution (or perhaps just a workable solution) to a problem. If you solve enough of these problems, you will see the patterns in them and the challenge will fade. My only advice is to try to find distinctly different problems which require you to divine new patterns. |
| Fri 22 Mar | Jeff Darcy | Depending on how you count, I've been at it for 13-17 years. I definitely feel that I've gone through a transition during that time in how I motivate myself. The first several years it was all about learning new stuff - from GUIs to networks to kernels and on and on. Each job was new and exciting. Then everything started to blur together, and I found I was getting bored, so I decided to start going for depth instead of breadth. I found some unsolved problems that touched on several of the areas I'd worked in, and started working on solving them. Learning from other people has been replaced by learning what *nobody* knows, not just in an ivory-tower research sense by also in the sense of figuring out what it takes to turn those ivory-tower ideas into practical commercial reality. In general, 'living on the frontier' keeps me pretty motivated, but sometimes I still find myself in the doldrums. That's when I go off to find some kind of programming that's so far from what I work on 'during the day' (global-scale data distribution and storage) that it's like being a kid again. For a while it was Python and Java GUI stuff, then I twiddled around on some PalmOS stuff, more recently it's been PHP junk on the web. I'll never make my living at any of those things (though I now know I could, and easily) but it's like cross-training for my mind. The change of pace leaves me feeling both more refreshed and more in touch with the programming mainstream, and then I can go back to doing my 'real work' with a renewed sense of purpose. Obviously there are problems with this approach, from finding an employer willing to get behind my weird little agenda to steering through the political shoals to feeling totally lost at sea sometimes, but despite all that it works for me. YMMV. |
| Fri 22 Mar | Bella | Tony, Dont throw in the towel just yet. You've done C++ for 10 years in a row. Try something new. You have'nt yet exhausted yourself. After a few reinventions of yourself, THEN you can say. 'ho hum, new language, new this, new that...same old same old....' |
| Fri 22 Mar | Steve Wheeler | I wrote my first program back in the 60's. I've been earning my living as a programmer for more than 20 years. I find that these feelings come and go. One of the reasons I've been with the same small company for 16 years now is that I get a variety of things to do (I work in the embedded software field, and get to do real-time software, compiler work, communications protocol design, custom applications in various languages, and so on). Another is that management and my coworkers appreciate me. I never got that feeling when I worked at a larger company.
Still, some days I don't want to go to work. Other times I take work home. It depends upon how much what I'm doing interests (better yet, fascinates) me.
If you're disenchanted with what you're doing, look to do something else. You might find that having a project at home, such as working on one of the many open-source development efforts, would be enough to get you interested again.
Different tasks provide new insights that can be useful elsewhere. Learning the math behind the 3-D operations in a graphics package or game may let you say, 'Hey, I could apply |
| Fri 22 Mar | Mark W | Hmm. Or you can start a website & a startup company and become a guru whose message board is filled with people like us. |
| Fri 22 Mar | Dan Sickles | Are you bored by the application that you are building? I would be bored by 'yet another corporate table editing application' but the possibilities of the net are only beginning to be realized. This is exciting to me. The programming is exciting proportionate to the application for me. Do you have ideas for applications burning iside? I have many....focusing on just one is my biggest problem. And I still (after 10 years) love learing new languages/technologies...at my own expense. Programming (along with music) is still the hobby it was before I started doing it professionally. |
| Fri 22 Mar | Dan Sickles | and one of these days I'll lear english. |
| Fri 22 Mar | Bella | Play piano? LOL I leave the house at 7am, and get home at 9pm. I barely have time to shit, let alone learn a fucking instrument. |
| Sat 23 Mar | chunks | i've been at it for 10+ years. motivation: money It is just the same thing over and over. My dad's a doctor, he delivers babies. He looks at women's crotches and witnesses the miracle of life on a first hand basis, every day. He told me that it gets boring. the thing is, if you are good at something, people pay you to do it over and over again. that's what experts do. the solution to your boredom is to charge 10 times as much money as you do now. |
| Sat 23 Mar | Tony | Thank you all for the responses - I am not alone. My enthusiasm was meant to increase as I moved from C++ to vb.net (company decision - I wanted c# but lost the battle). In the end I think I just need more sex. Just joking - I enjoyed the responses, I think ultimately I'm sick of 'corporate' software and need to do something a little different. Cheers |
| Sat 23 Mar | Mark W | |
| Sat 23 Mar | Bella | Tony, So you'll get to learn VB, cool. Have you done much GUI app dev? You may find it a nice change. Do you like the mgmt side? Maybe you can focus more on that, and spec out the entire project, design docs, meet with users, etc? Have you done a lot of DB tasks? Maybe get more into the database side? Design the data model, etc...Maybe learn some DBA skills... etc,,,,there's a lot of room to mix things up, within a project.... Good luck, And if those dont work, take every cent you have, and put it all on RED... |
| Sat 23 Mar | Tony | Bella - what you said about putting it all on Red is quite funny right now. Last week my wife and I went to the casino (2nd time for me, 1st time for her, boy is that a sad place) and we played roulette and put $5 a time on red - can you believe that black came up 9 times in a row, i.e we lost $45. So I think you meant to say, put it all on black. |
| Sun 24 Mar | Roman Eremin | For me - the change is a key. I have 12 year of experience and stilllearning. Here is what I did (in historic sequence): - C++ programming - FoxPro, PowerBuilder programming - Delphi 1 programming - Oracle DB maintainence in HP clisters. - Shell, Perl, TCL/TK programming - Delphi 3 programming - System Architect - Software Project Management And I still have many things to learn and 4 books I have to read. When man said 'I have 9 years of experience' - it usually mean 1 year experience applied 9 times. (Jim Rhon) So change your focus and learn new things. And since this requires energy - don't work longer. Work smarter. |
| Sun 24 Mar | Bella | Good point, Roman. Learning something new takes ENERGY and time. Usually overtime. When you're in a comfortable predictable groove, like Tony seems to have been (C++ for 10 years) it takes a lot of motivation to disrupt that. Hence, why so many programmers get into a rut, and wake up finding that they've been maintainting AS/400 apps for 10 years, and can't find another job. This of course, leads to the age discrimination scapegoat, but thats another story. |
| ADO vs. ADO.Net | Wed 20 Mar | Joel Spolsky |
| Today I spent a pleasant hour amusing myself with Chapter 13 of Bill Vaughns ADO.NET book (http://www.amazon.com/exec/obidos/ASIN/1893115682/joelonsoftware). From two miles up, it sounds like ADO.NET is a giant leap backwards from ADO (not that ADO was all that hot). Then I tried playing around with it and discovered that the sheer number of concepts you need to do a simple SELECT is much greater than ever before. DataSets, DataAdapters, DataTables, ... it seems like the minimum number of things you need to memorize to be able to do your garden-variety SELECT, UPDATE, DELETE, and INSERT has gone up a lot since ADO. So I thought Id ask here -- am I missing the point or is it really that bad? Are any .NET developers using the old ADO for performance reasons? (Please, lets not let this degenerate into random .net religious chitchat. I just want to hear from developers who are experienced with ADO.NET vs. ADO in particular.) |
| Wed 20 Mar | Richard Caetano | I hear ya... When I first started using ADO.NET I was totally confused with the new set of objects. The old ADO seemed much simpler. But after digging in my perspective quickly changed. What did it for me was the concept of a 'strongly typed' dataset. That sucker is slick! I found it so much easier to work with rather than the adodb recordset. An XML schema is used to describe the data (Tables, Rows, Columns, relationships). It's like having a mini-database all in one object. An since it's strongly typed it's posssible to call properties like this: myDataSet.Customers.Add('Tigger'); Binding is more feature rich. Drop a datagrid on an ASPX page along with a ST dataset and you're ready to go...with full on WYSIWYG editing. When I first started learning .NET, I started with NOTEPAD and CSC. It was a lot of work (but I learned alot about the framework). Now I'm using the VS.NET editor to build most of the code for me...then plug in the glue. It became much more practical. I'm not sure if your doing the same, but that was my experience. (I hope that wasn't to marketing like...I'm just a little excited about the new options) |
| Wed 20 Mar | Ben | I find that the SQLDataReader does the job for most queries, so I don't bother with DataSets, DataAdapters and DataTables. The DataReader is a fire hose cursor so it's fast. The IBuySpy examples seem to use the SQLDataReader for their component layer, see: http://www.ibuyspystore.com/docs/Components_ProductsDB_cs.htm |
| Thu 21 Mar | Tony | I'm really disappointed to hear that ADO.net requires so many 'bits' to achieve something simple. I think that this fragmentation has been happening to microsoft development products generally for a few years now, and the sheer volume of stuff that I need to know to do something that used to be simple is starting to become an unpleasant aspect of developing. The size of the woods is the same, but there are now so many trees that its getting too hard to find the path. |
| Thu 21 Mar | Ben | I think you'll find that ADO.Net doesn't require more bits to perform simple operations such as Select statements with firehose cursors or Update statements with command objects. Remember, just because you can use ADO.Net to say, combine mutliple tables into the one DataSet doesn't mean that you have to. You could just use a Join query with a DataReader to return the results. Take the time to have a look at this article, which says: 'I predict that the biggest source of complaints about ADO.NET will be from developers trying to come to terms with DataSets; but in truth, mastering DataSets needn’t be a big problem.' - http://www.dnjonline.com/articles/essentials/iss22_essentials.html |
| Thu 21 Mar | Isaac | Yes, I think you're missing the point. If you want to reduce the number of things to memorise, while still using ADO.NET best practices, have a look at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/daab-rm.asp . Using this will allow you to use code like myDataReader = SqlHelper.ExecuteReader( myConnectionString, 'select * from authors'); while (myDataReader.Read()) { ... } It also provides really slick access to parameterised stored procedures. SqlHelper.ExecuteScalar( myConnectionString, 'spMyProc', 'first param', 1, DataTime.Now, 'fourth param', ... ) I like ADO.NET. I also like the Data Access Application Block. |
| Thu 21 Mar | Philip Rieck | I also like the data access application block - but unfortunately, they haven't released it for the RTM version yet (it's only for .NET beta 2). Pretty much useless until they do a full release, but by then I won't need it anymore, as I've had to do without and make my own sql helper classes. |
| Thu 21 Mar | Mike Gunderloy | Three things: 1) Forget all the crap from Microsoft about ADO.NET being an evolutionary change to ADO. It is not. It is a completely new system of data access. They should have changed the name of the library and of the objects, so people wouldn't get confused. But, of course, that would have hurt the warm and fuzzy message from marketing. 2) For performance, ADO.NET beats ADO if you're hitting SQL Server data sources. Less layers of gunk in the way. This is a sneaky retreat from the promises of 'universal data access' in ODBC and OLE DB, with Microsoft finally admitting that performance comes from working directly with the database API. 3) Bill Vaughn is a great author and his book rocks, but over the long term he has pooh-poohed EVERY data access library that he wasn't involved in writing himself. You need to take into account his point of view and read some other sources. Yes, there is a bunch of new stuff to learn, but taken for what it is -- an API optimized for disconnected data, and for fast retrieval directly from SQL Server databases - ADO.NET is great stuff. |
| Thu 21 Mar | Joel Spolsky | Ah, thanks everyone! I kind of got the feeling that despite the huge piles of complicated documentation, eventually I would discover the main thing I needed to memorize, e.g., how to execute a SQL SELECT statement and loop over the results! I guess it's a matter of bad documentation (at all levels). It didn't help that the first example I found was in an O'Reilly book (Programming ASP.NET) which actually had a bunch of unused and wrong code, and which spent a lot of time wrapping things up in objects where they could have just passed strings... |
| Thu 21 Mar | Scott Suchomel | I have found ADO.net's great strength is in caching disconnected data. This has been a huge problem for me in the past writing applications that required accessing the same small chunk of semi-static data over and over again. The fact that a dataset can easily save and reconstitute multiple tables in just a few steps is huge. In the past I have had to build xml caching features directly into web applications by hand. It was tedious and very error prone. Although I admit ADO.net is much more complex than ADO, I think it is definitely a move ahead. Oh, and I agree that Microsoft has finally conceded that universal data access is a somewhat misguided principle. I think the idea of separate data access providers (or whatever you call them) is a better way to go. Remove all those nasty layers. Microsoft has decided that a universal data format (the dataset and xml) is the principle that has real merit, while the method of actual data access can just be similar--and I agree. |
| Thu 21 Mar | Richard Caetano | I second Mike Gunderloy's post. |
| Thu 21 Mar | Brad Wilson | 20,000 foot view: DataSet holds tables of information, which are DataTables. That means one DataSet can hold the results from more than one query. DataTable hold rows of information, which are DataRows. The real power, IMO, comes from strongly typed data support (as someone earlier pointed out), but all in all, it's pretty easy once you get used to it: 1. Create an OleDbConnection to connect to the DB. 2. Create an OleDbCommand to represent your query. 3. Create a DataAdapter to execute the command and fill your DataSet. Repeat #2 and 3 for each query to perform. Voila, DataSet full of data. It's really only a few lines of code. Using the 'foreach' is very nice, because everything behaves like a collection: foreach( DataTable table in myDataSet ) { foreach( DataRow row in table ) { ... etc. ... I found traditional ADO very hard to ramp up on, personally, but I got ADO.net really really quickly. |
| Thu 21 Mar | Satyadeep Musuvathy | I find the following site very helpful when working with .NET. Has lots of good examples. http://www.gotdotnet.com/ |
| Thu 21 Mar | Tim Thompson | Sorry if this is a dumb question, but what is ADO and how should I be using it? Is ADO the replacement for SQL Server or does it just replace MS Access? Does ADO require C++ or can I use it from Visual Basic? In ADO, does each user need his/her own login and password? Finally, whats the best book for learning ADO? I have some experience with Java (if that helps). Or am I better of starting out with ADO by itself? If you can explain a few of my questions here or provide a few links, I would appreciate it. Thanks, Tim |
| Thu 21 Mar | Mike Gunderloy | ADO is a data access library, not a database. As such it doesn't replace either SQL Server or Access. It can be used to retrieve data stored in SQL Server, or Access, or many other data sources. Think of it as 'plumbing' rather than 'storage' You can use ADO from any language that can call COM objects; Visual C++ and Visual Basic are both perfectly good ADO clients. Best book? I'm prejudiced, because I've written several books on the subject. But just to get started, you don't need a book; just hop over to msdn.microsoft.com and browse around the Data Access section of the MSDN Library. |
| Thu 21 Mar | Jeff Reese | I'm a bit late to this conversation, but Isaac made a good point about the Data Access Application Blocks from MS. Anybody that is working with parameterized stored procedures and wishes to save themselves a lot of typing while at the same time forcing best practices will do well to look into it. The Application Blocks do work with V1. Just recompile and you're on your way. |
| Fri 22 Mar | ian | Hey, does anyone know why Joel's link to Amazon wouldn't be displaying properly in IE6/Win2000? All I'm seeing is: (http://www.amazon.com/exec/obidos/ASIN/1893115682/joelonsoftw ...and only half the 'w' at that. I refreshed the page and checked the source but can't find anything that would be having that affect. Is anyone else seeing this? Just curious. Sorry to get off topic. |
| Fri 22 Mar | Tekumse | I have the same problem - IE 6 w2k. |
| Fri 22 Mar | Mark W | I think it has to do with his bizarre use of tables on his site. Here's a string of 150 characters, let's see how it displays. 123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x123456789x |
| Fri 22 Mar | Anthropologist on Planet Joel | See? In IE the table respects that it's only to be x pixels wide, and if the text is longer than that it's simply hidden. disappears from site. netscape, on the other hand, automatically expands the table - all of our right aligned names just scrolled off the screen. Question - why do these strange questions always pop up in the middle of an otherwise good thread? |
| Fri 22 Mar | Anthropologist on Planet Joel | *disappears from sight |
| Sun 24 Mar | Brent Rockwood | I've always been wary of overbuilt data layer components in n-tier applications. The argument has always been that the data layer abstracts the datasource so that you can change from SQL Server to Oracle or XML file storage, or radically change your schema, or whatever, and the changes to your app will be confined to your data layer. Your business and presentation logic need not be changed because their access to the datasource is abstracted. My question is this. Now that we're even more likely to use provider-specific objects to return and manipulate data (ie. the System.Data.SqlClient namespace), doesn't this further invalidate the idea of a big datalayer? I might keep a few common functions in here, like GetSqlConnection(strSqlConnectionString) or whatever, strictly for timesaving and simplicity. However, abstracting all access through a data layer object that doesn't really do anything seems like overkill - especially now. I'm anxious to hear people's responses to this. I've had this argument for several years now. My argument goes something like this -- '...but ADO is the data layer...' :) What do you think? |
| Sun 24 Mar | Brent Rockwood | PS...I won't be using the old ADO, strictly because I want to reduce the number of COM interop calls in my .Net apps. For high performance apps, the marshalling involved is likely to be expensive. I haven't tested it yet, but this is my intuition... |
| Sun 24 Mar | Christopher Wells | > '...but ADO is the data layer...' :) What do you think? When my system is big enough then I'll write my own separate data layer; I don't mind so much how low is the lower-level API to which my data layer interfaces (ADO, or whatever). |
| Open Source version of City Desk? | Wed 20 Mar | Doug Withau |
| I want to ask a theoretical question using a concrete example. I am looking for opinions and ideas, not trolling. Enlightened discussion is welcome. In Adam Fisk’s post http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=4951&ixReplies=29 Adam said Joel did not think much of Open Source. From Joel’s own comments http://www.softwaremarketsolution.com/ I get the same feeling. Joel is not a big open source supporter. So, let us say that somewhere there is a grad student, an Open Source believer, who is hacking away on his own equivalent to City Desk. If we assume this person is very bright, and they do a good job, their Open Source alternative could be very comparable to the basic version of City Desk. Maybe some things are better, some are worse, but all in all very comparable functionality, GUI, ease of use. For this discussion lets assume there is no intellectual property problem. There work is original, and there is no sue them out of existence option. Our young developer releases this product for Linux and announces that in 6 months there will be a Windows port. How does a company faced with Open Source (free as in beer) competition react? What do you do to keep your market share? Is FUD your only option? Marketing and advertising? |
| Wed 20 Mar | Robert Moir | you say you ain't trolling but you use terms like 'FUD' which are to say the least, emotive. Ok. Well you compete the same way you compete in most markets, by being better. In my experience, people don't mind paying for quality, and if your product lacks quality people will look for an alternative, regardless of whether there is an obvious open source alternative or obvious pay alternative or not. |
| Wed 20 Mar | Richard Jenkins | Let's assume the opensource programmer is completely rational and persistent. Oftentimes, companies talk about getting 'lock-in.' Even Joel has an article on this. It's sort of like the Two Eyes in Go, where there is a self-maintaining force that keeps your customers going to you. Unfortunately, Joel does not have a whole hell a lot of it. While Citydesk is probably doing well, he's getting a lot more income from new users than from churning money out of users with upgrades. And since he doesn't have different copies communicate with each other like Winer would have wanted (to plot about subjugating humanity?), there's no lock-in from users needing a proprietary lingua franca. Still, I wouldn't consider it a deadly threat. For one thing, Fogcreek has a tendency towards diversity. There's the sense that Citydesk just happens to be their most recent product, than being the defining work of the company. Also, such called shots to take out a particular company are rare. There are all sorts of boogeymen, and occasionally they appear (as Knuth did with TeX, putting many commercial typesetting developers out of business), but statistically that's rarer than management incompetence. Stallman actually did something similar against Symbolics for a few years. With enormous productivity, he wrote software to punish a single company and help its competitors. While costing them millions, he eventually stopped because there was a larger war, and Symbolics died for other reasons. I don't think this is a serious threat. Joel has very good PR (the proof of this being I'm not referring to 'Fogcreek') and it'll probably make good fodder for another article. |
| Wed 20 Mar | Mark W | There's no such thing as free beer. a) There are already similar products out there that are open source. b) The open source product would have to gain market share like any other. c) I'd say this grad student would be better served by choosing a niche that doesn't already have a product. d) I don't know how much work was put into CityDesk, but I imagine an equivelant amount of work would have to be put into an open source alternative. If despite the above, such an open source product comes into existance, I don't know that the larger company would have to worry that much about losing market share. Look at eGrail v. Interwoven, or Linux v. Microsoft. I know these are very touchy subjects for most people but if you looked at the user-install base, I don't think you'd have all that much to worry about. My (large) company just announced they're going with .Net. All our desktops are still Windows, and we all have MS Office. It doesn't look like that's about to change. There was an earlier announcement about potentially using Linux for non-critical systems, which would probably run on Solaris. Sun, meanwhile, announced that they'd start selling Linux servers. Sun adapted. Really it comes down to management. Are you going to be a Microsoft or are you going to be an Atari? I guess another variable is how quickly the non-open source version can make a name for itself so that it's seen to be a superior and stable brand. You could make an open source clothing store, but you'd have a hard time toppling the Gap. Also, the Gap has a serious marketing and sales force that an open source project could never get (Yeah, I know about evangelism). The Gap has also, in addition to amazing brand recognition, a serious supply chain, deals with every mall in America, economies of scale, which seems less important in software, and about a million other things going for it. Also, look at the trajectory of open source products. The strong ones with a core team behind them do well - Linux for example. Others don't do so well - eGrail became a $$ product, Netscape, a very high profile case lost out to Micro$oft. The fact is, if a company has a strong foundation you can look at it's books, it's management, etc. and know that it'll be around for a few years. Open source on the other hand has no such metrics. You can order an annual report from Microsoft, can you get that kind of barometer for the health of an open source project? Since there's no internal momentum keeping most of them going, there's no way of knowing what will happen to them. I'm sorry, am I spreading FUD? I thought I was spreading facts. |
| Wed 20 Mar | Ged Byrne | As the two recent reviews reflect, the big selling point of Citydesk is usability. There are plenty of other content management packages out there, but how many of them are usable? If your open source CM is as usable, then I think you will have made a break through in open source, because usability it its biggest weakness. As far as I can see, it tends to be written by developers for developers, and it shows. Non technical people tend to find open source software very difficult to use. As long as open source continues to pitch itself at the technically skilled minority, then the majority are still there for the commercial picking. |
| Wed 20 Mar | TK | Mark you made me laugh and cry with a big company going to .net. It's not about .net per se at all, it's about such an annoucement having any short term effect on the embedded systems. To the wise architect it just means that the next time you actually get a chance to make an architectural decision you'll see if you can cost justify .net or at least something that's not hostile to .net. The pop effect is that ordinary folks and managers thinking that it's finally time to dump IMS. |
| Wed 20 Mar | razib khan | on open source. i use a lot of open source. i like the movement. but the thing is-i feel that open source stuff is generally made by people who would use what they're making. since the people are software geeks-they make stuff software geeks like. there are plenty of open source code editors, but where's the credible open source alternative to photoshop or flash 5? i can't imagine someone spending their fee time coding on something that they wouldn't use themselves. many more geeks are comfortable with the command line than in the general population (myself being one) which prefers GUI oriented stuff. that's why apache has those little text .conf files-it seems so natural for the geeks. but it's not natural for other people. to citydesk, that's why i wonder who would make an open-source citydesk. citydesk's target audience is NOT geeks, and i don't know too many geeks that would use citydesk. if a geek wants to create a website for themselves, they'd prolly just slap it together themselves and make their own CMS. |
| Wed 20 Mar | Benji Smith | I don't think its necessarily true that one system (open source) or another (commercial) will CRUSH the other. Lots of open source products compete actively with commercial products. MySQL is a very popular RDBMS. Then again, so is MS SQL. So is Oracle. So is Postgre. And on and on and on. Mark made an excellent point when he said that open source products typically target developers or techies. I can't think of a single commercially viable open source project aimed at non-technical end users while still giving the developer an opportunity for revenue. The trick is this: open source can't make (much) money by selling their product, so they have to make money through some other means. Generally, this means providing consulting services (MySQL) or by creating training programs and certifications (Red Hat) or by hoping that end-users will give you money out of the goodness of their hearts (LimeWire). If your open source software is simple enough for an end user to use, then there is no need for consulting, certifications, or expensive training. And without any of these means of pulling in money, how will the project maintain momentum? How can users feel secure that there will be upgraded versions and bug fixes? I don't forsee open source software _ever_ making more than a tiny dent in the commercial software industry. Even if you could round up a bazillion volunteer slashdotters, the economics just won't let it happen. |
| Wed 20 Mar | Benji Smith | ...I thought I was finished posting, but I guess not... As lots of my friends have become avid supporters of the OSS movement (and its holy grail, the GPL), I see myself heading in the opposite direction. I think the really compelling facet of the open source movement is in the LGPL license (which is, unfortunately, looked down at because of its status as being _lesser_ than the GPL). Let's say you're working on some cool graphics software (at your JOB, not for recreation), and you need a really neat vector rendering library. It would take a long time to write. Let's also say that there is a library out there that accomplishes about 70% of what you want to do. Luckily it uses the LGPL (lesser GNU public license, in case you haven't heard of it), so you can modify the source and use it in your commercial application. Congratulations! You just saved yourself 40 - 60 hours of work. Now you can actually go home at 5:00 for the next two weeks. But what about the guy that wrote the original vector graphics rendering library? Did he get screwed? Did he get taken advantage of? No. Because the only reason he had time to write his library is because he saved himself 40 hours by using somebody else's 3D geometry handling library. Developers helping developers. The GPL is primarily designed to benefit the end user (so that they can have free-as-in-speech-and-beer software). But the LGPL primarily benefits PROGRAMMERS, so we don't all have to keep reinventing the wheel every lousy day. Even though GPL software is of primary benefit to the user, the programmers working on the GPL software want to get some kind of benefit from their hard work. Since they aren't getting paid, they want to be the programmers and the users. At least that way, they'll have really cool software to show for their hard work. But, if they were using LGPL libraries to complete projects they were getting paid for, AND saving massive amounts of time in the long run, they would already have a benefit, and the software could be targeted toward the general public. I'm all for commercial software. It keeps the paychecks rolling. I would stand firmly behind an open-source software movement that helps me (and everybody else) accomplish my job more efficiently. The free software foundation looks at the LGPL as a necessary evil, not as a real benefit to anybody. Just read the verbiage in their license documentation: http://www.gnu.org/licenses/why-not-lgpl.html http://www.gnu.org/licenses/lgpl.html (Okay, I think I'm finally finished...my brain hurts.) Your thoughts? |
| Wed 20 Mar | pb | It's pretty easy to compete against someone who isn't charging money. Most users understand that that's not a viable business strategy and would run to the door. Secondly, CityDesk is very much a usability/interface-defined product and open source stuff is notoriously weak in that department. Thirdly, Joel/FogCreek have a good product sensibility which I believe would lead to the open sourced version being, at best, a fast (slow?) follower. Open source may be good for some things but this certainly isn't one of them. |
| Thu 21 Mar | Simon Lucy | There's a difference in intent about providing a proprietary product against providing an open source product. A proprietary product (unless its so expensive that its a service you're buying such as SAP), has to stand or fall on its own two feet. Sufficient safety nets have to be built in to reduce the trivial support or usage problem as much as possible. Not particularly because it makes it a better product but because it makes it a viable product to sell. You won't go bust answering 800 calls. Open source comes along with an implied term of its own, you have to invest your own time and understanding to get beyond any but the most marginal of utility out of it. That doesn't mean its 'unusable' or 'unfriendly' just that all the bases are never covered. The upside to that is that you have a fairly friendly user community to help others. So a company that provides Open Source products isn't selling the product per se, it is selling a service around that product. A company selling a proprietary product may be also selling a service, but its the product that matters to it. |
| Thu 21 Mar | Ged Byrne | I would not say that Open Source is unfriendly. Take a look at PHP, I've never met a friendlier language. There is a convenience function for everything you could possibly want to do, programming has never been so easy. I also use the open source DynAPI package for cross browser DHTML. dynapi.sourcefourge.net. These open sourcers have succeeded where the big boys have failed. However, they are only friendly for their target audience. For other users they are just too powerful, too complex to use. I think Joels comment of programmer getting into trouble for installing Linux on their spouse's box sums it up. On the other hand, I find Word very unfriendly. How am I supposed to work with text without regular expressions. StarOffice has regular expressions. |
| Thu 21 Mar | Charles Miller | [Disclaimer: I love Open Source] Open Source software gets written either because a programmer wants to use it, or someone who is able to pay a programmer can make money off using the software, without making money off selling it. This works well with servers. If your company needs a module to run Ruby code Really Fast in apache, you're going to have to write it anyway, selling it is too much of a hassle, and it'll cost you nothing to contribute it back to the apache organization. It works well with programming tools, too. Some guys I work with wrote a Java object persistence framework. It's got a modest fan-base on sourceforge now, so the company gets to benefit from the free improvements. User-centric software, on the other hand, doesn't fare so well. Programs get written to meet the needs of the people programming them. Features get added because they interest the programmers There are heaps of Open Source content management systems, and they're mostly for running blogs, are insanely configurable, and require a significant amount of programming knowledge to get running. An Open Source Citydesk would require you to install MySQL to store your data, learn Scheme to code the pages, and it wouldn't have a GUI HTML editor, because everyone writes HTML by hand in vi or emacs, right? The only reason an Open Source version of Citydesk would ever appear is if someone really had it in for Joel and wanted to prove a point. |
| Thu 21 Mar | Charles Miller | Re-reading my post above, I'm wondering how long before we see an open source competitor for Radio Userland. It's surely only a matter of time. :) |
| Thu 21 Mar | Robert Moir | I do wonder about Radio Userland. I have an acquaintance who works for them who invited me to give it a go. I didn't like it, and said so - and why. Apparently most everything that I said was a fault was because I didn't understand, or because it was my fault for some reason. I've been working with internet stuff for at least 8 years; but it's my fault when I think userland behaves in a poor manner under certain conditions. Uh huh. Fine. I'm proving my point about userland by not using it. |
| Thu 21 Mar | Mark W | In my experience there are two times where open source is good, and upon analysis, sometimes it may be two sides of the same coin. 1) Software that supports a concept rather than a specific tool. GREP for example. Various text editors. These are ideas, almost mathematical algorithms. There's no real profit in it because it's a concept. Sure Homesite is a great tool and presumably made money, but then, they pull so many things together that it's worth the $60 or however many dollars in time savings. 2) Software that's very utilitarian. Like Perl or Linux. Maybe this is also a concept, but 'a really solid scripting language that's based on what works' is going to be supported because, well, it works. PHP would fall into this category. These things tend to be a bunch of tools cobbled together and glued somehow. In either case, if it broke, someone is going to *want* to fix it because of the wide install base and because they don't want to run into the same problem. Also, because, theoretically, it should be fixed. Sort of like piecing together TOE from various theories and concepts. Scientists would want to fix it if it didn't work because it's a concept that's supposed to be perfect. So, the question is, does CityDesk fall squarely into either one of these categories? Not in my opinion. Sure templating is a concept, blogging is a tool, as is scripting. Each one already exists independantly, but I don't think there's much value in pulling all to these things together. There are open source word processors, but nothing that does *everything* that MS Word does. Why? Because it's not simple or utilitarian enough for someone to want to support just for the heck of it. Yes I know about Star Office, but I'd barely consider that open source... That's Sun trying to knock Microsoft back a few notches, gain brand recognition, etc. Also, they have paid developers working on it, as with the Mozilla project, but since it's open source and they don't get paid for it, there's no gaurantee that they'll continue to upgrade it. Sun could drop it without losing money, just like AOL could drop Mozilla without losing money. MS Office, on the other hand, generates revenue for Microsoft and keeps people embedded in their OS, so there's an inscentive for them to keep it up to date and feature full. PS I don't really know what .net is, so why is it funny that my company announced they'd be using it? |
| Thu 21 Mar | Doug Withau | I was not asking, “Do you think this could happen?” “Do you think the UI would suck?” or “Is this possible?” I am asking a business question. Put yourself in the owner’s shoes. What if this happened to the project you are working on? Has this happened to you? I’ve though about this and answered my own question. You can use FUD, advertising, lock-in or add features to get customers to buy from your company. All of those answers can have bad consequences. FUD and lock-in can alienate customers. Adding features and advertising cost real money. Your company could join the movement. Take both products, merge the best features from each, and sell the latest, or sell the easy install version. You get the benefits of open source and still get paid. Obviously, you won’t get paid as much. None of my answers are ideal. Anyone have better ideas or different opinions? |
| Thu 21 Mar | Roger | Doug - I made a prediction back in 1998 that within ten years, most programmers will be as poor as most writers. Thanks to Open Source, my prediction is slowly but surely taking place. Sysadmins will not be affected much however. |
| Thu 21 Mar | Mark W | 'I was not asking, “Do you think this could happen?” “Do you think the UI would suck?” or “Is this possible?” I am asking a business question. Put yourself in the owner’s shoes. What if this happened to the project you are working on? Has this happened to you?' This is going to sound like manager speak, but where is the value add that a company can give to a product that an open source community can't? I'd figure out what that was and exploit it. I'd also do my best to learn from the open source folks, try to figure out what their product doesn't do, and do both. Again, I'd raise brand recognition as much as I could as quickly as I could, I'd put together a professional looking website and a strong sales force. MS Word is more robust than any single open source alternative, is relatively easy to use, and is therefore a great choice for enterprise wide deployment where the individual user will not be technically inclined, and will invariably want to do something bizarre and complex. It also produces files in a proprietary format so that other companies will want to use it so they can receive files from my company. This is sort of like the Fax machine. It was proprietary until it became widely distributed. If I were Fog Creek in this situation, I'd make CityDesk into an MS Word, piling features on at rediculous speed. I think this is why Vignette and Interwoven are doing so much better than eGrail and other newcomers with simpler, less robust products. I would also form very high visibility alliances with products that are well known that people will want to integrate with my product. I'd hire the lead developer(s) of the open source product, or otherwise integrate with it so any features it might have had that I didn't would get pulled in, and future development would slow down. Even at a few hundred thousand dollars for a handful of developers, it's cheaper to be a monopoly. The more I think about it, the more I think I'd be just like MicroSoft. |
| Thu 21 Mar | Richard Jenkins | I'm actually on the side of the opensource guy, but it's fun looking at these from both sides. Aside from the two I mentioned, JBoss vs. proprietary J2EE app servers is another case study. From what I hear, JBoss is higher quality in some respects, but still has strong competition from a wide range of companies. |
| Thu 21 Mar | Doug Withau | An interesting comment from today’s lunch discussion: 'Nobody can make money with open source software, but everyone can save money with open source software.' That's, like, really wise. If I'm quoting someone, apologies. |
| Thu 21 Mar | Roger | Doug - If you work in IT, would you work for a company who's looking to save a lot and spend very little in IT ? If the OS is free and the apps are free; tell me why you're worth more than $20k/year for them? |
| Thu 21 Mar | Mark W | Try telling that to Red Hat. |
| Thu 21 Mar | Christopher Wells | I'm not Doug, but I'd guess that the answer is ... I'm worth more than 20K/yr because in one year I produce software which they can sell for > 20K (or, if I were in a different business, which saves them > 20K/yr). And, if I can incorporate (and support) freeware or even relativelycheapware into the product, which saves me weeks or months of development time over having to write it myself, that's not a problem at all. It only means that I finish sooner, and therefore I can write other (more) stuff later in the year; and also, write stuff economically that I otherwise couldn't write at all (economically). |
| Fri 22 Mar | Sammy (whose browser just crashed & is sleepee) | You need to focus on specifics. * There is a free basic version of Citydesk. This mitigates things somewhat. * The point of Citydesk is to develop it rapidly using platform-specific tools. Our brilliant grad student Roderick would be facing an uphill battle. * Read Sun Tzu. One may know the principles of victory, without her being able to attain it. The opponent must often provide the tools for his own defeat. [ http://www.sonshi.com/learn.html ] I mention this because people can always respond with smarter and nastier boogeymen, but often the deciding factor is about taking advantage of tactical errors. These situations can't be known a priori. * The morale of contributors would be damaged by competing directly against a relatively benign company. |
| Fri 22 Mar | Sammy | Doug, in this case using FUD tactics would be like fondling a razor with your wrist. Who can see through FUD? Developers. Who provides the PR for opensource projects? Developers. Who reads joelonsoftware.com? Take it from Steve Ballmer. DEVELOPERS!!! |
| Fri 22 Mar | Simon Lucy | I've been taking it up the bottom from people like Steve Ballmer for so long that I no longer feel the pain. |
| Fri 22 Mar | Doug Withau | Rodger, I don't get this: 'If the OS is free and the apps are free; tell me why you're worth more than $20k/year for them' I do not work in IT, but... Assume my company still needs to upgrade PCs, hire support staff, and all the other IT activities. With the free software, the company saved money. If I did something to save my company money, that money would go to the bottom line. To my employer, that makes me a good employee, and therefore worth keeping. Do you really work in a company that wants to spend more on IT? Yes, other people can probably do my job, and maybe for less pay. That is always true whether the software is free or not. |
| Fri 22 Mar | Roger | Doug - Upgrade a PC? It won't happen much with Open Source. It runs well on low end machines. Sure, the company will need support technicians, but that's about it. The fact that your company is using free software makes you a good employee? how come? |
| Fri 22 Mar | Robert Moir | 'Upgrade a PC? It won't happen much with Open Source. It runs well on low end machines.' So if MS Office 2000 Pro was GPLd tomorrow it would suddenly run well on a 486 and cease being 'bloatware'? Get real. Theres nothing magical about 'open source'. Some good products some bad products. Just like every other kind of software. |
| Fri 22 Mar | Mark W | Star Office and Netscape 6 *are* open source and barely run on my 233mhz/64mb ram computer in Windows. I doubt they'd run much better if I installed Linux on this machine. |
| Fri 22 Mar | Robert Moir | Yeah but they are good or bad products because of the work that has gone into them. My point was, there is a lot of talking about 'open source' software being this or that, but it's not good, or bad, or bloatware, or compact and bijou because of it's licence terms. As I said, if the impossible happened and MS GPLd Office 2000, would it immediately run superbly on a 486? Of course not! But yet, according to a previous post open source software runs superbly on low end systems. |
| Fri 22 Mar | Hal O'Brien | 'Assume my company still needs to upgrade PCs, hire support staff, and all the other IT activities. With the free software, the company saved money. If I did something to save my company money, that money would go to the bottom line. To my employer, that makes me a good employee, and therefore worth keeping.' No, it doesn't because you didn't save the company any money at all. In fact, you've hit on the main problem of open source -- it's more expensive. Here's O'Brien's Law: The Box is the cheapest part of IT. Always. Doesn't matter if you're talking about supercomputers or PCs. What costs an arm and a leg is labor. Both end-user and IT staff. Open source staff is, generally, more expensive than proprietary staff. It's just a question of the size of the labor pool. The main reason midranges and mainframes largely disappeared is because you could either have big iron guys at $100K/yr or more, or PC guys at $40-60K/yr. So even if you think the guy will work for your company for only 2-3 years, that means a savings of $40-60K *per employee per year*. And, compared to this, you want to save the $1000 or so for proprietary software? Even if you upgrade every year, that's *as nothing* compared to the jump in labor costs. And that's before you get to the end-user workpool. How many secretaries know StarOffice? How many know Word? How about in Sales? Marketing? Warehouse? Open source is, from a business point of view, an attempt to go back to the Good Old Days of big iron salaries. And that's too expensive to ever get much traction among the guys who actually control the purse strings. *Programmers* love it, sure, but why wouldn't they? And how many CIOs ever become CEOs? But look at it this way. Could be worse. How many VPs of HR ever become CEOs? :) |
| Sat 23 Mar | chunks | bla bla bla. did anyone posting actually bother to think about the question? Too bad Doug posed the question in terms of 'open source', cuz that seems to polarize all discussion on this board. What (i gathered) he was really asking was: what happens when someone comes out with your same product, but it is free? Lets say Joe Bob Brady comes out with 'Country Table' next week. Country Table does everything that City Desk does, and then some. Joe Bob made a killing when he sold his hog farm to monsanto and plans to spend his early retirement improving upon Country Table. How does Joel compete with Joe Bob? |
| Sat 23 Mar | Mark W | Hey. A LOT of posts were from the point of view of a company who has competition from an open source competitor and did answer the question. Here's my short answer (for my long answer read my posts above): Joel is a better manager than Joe Bob. PS: Robert - I agree with you, I was pointing out that Bloatware exists in open source as well as in Shrink Wrap. Software is software, the 'open source/not open source' variable has little bearing on the other variables. |
| Sat 23 Mar | Sammy | Chunks, that question is completely different. My analysis does not hold under it. I do agree though that the Open Source part does trip people up. People are probably focusing too much in trying to say Joel Über Alles, when in reality he only has certain advantages. It is quite possible to kill Citydesk given a sufficiently scary boogeyman. I would turn the question around and ask how the boogeyman would kill Citydesk, given determined resistance. |
| Sun 24 Mar | Hal O'Brien | chunks, SourceForge lists 5155 open source projects for Win32. Surely some of those projects already compete with commercially available software. In other words, open source and commercial software are already in competition. The market's verdict on this, to date, has been fairly clear. Whether that changes in the future... enh. {shrug} |
| anyone else find this site excessively annoying? | Wed 20 Mar | Adam Fisk |
| Honestly, this site drives me insane. No offense, Joel, but I dont think your internship at Microsoft (which you both denigrate and use as a source of your legitimacy) makes you gods gift to computer programming, and the same goes for your founding of Fog Creek Software(what the hell is that anyway??). There are peopel who formally study UI, software engineering, software management etc. etc. rather than just spouting out whatever happens to come to mind that day on such and such a topic that you also have a superficial knowledge of. As you can see, Ive been holding all of this in for awhile. Let the counterattacks begin. Oh, and opening up the damn source so we can see this code you like to talk so much about as well as having a succussful company would (could?) increase your legitimacy factor. I like people speaking their views, but its the smugness and lack of formal knowledge that drives me so nuts. Peace. |
| Wed 20 Mar | Kenshi | Lack of 'formal knowledge'? Are you some sort of academic fascist or something? Joel has more right than most to talk about software development - he's earning a living by running a company that develops and sells software. Not an easy task at all. The fact that Fog Creek is shipping and supporting a great product (I can only comment on CityDesk cos thats all I've used), gives Joel's comments, opinions and anecdotes a hell of a lot more weight than that of some crusty academic living in an ivory tower, or some idealistic slashdot kiddie. |
| Wed 20 Mar | Sammy | Fair cop. But keep in mind that developers nowadays have a superficial understanding of many things, with a deep understanding of only a couple. Your criticism makes sense; a gentleman I know who recently joined MS had similar strong feelings. But I like the fact that it's a site where people at least mention the nuts & bolts of development. Everything else, including this webpage at your company: [ http://www.limewire.com/index.jsp/gnut_future ] is a bit rosy. There is not a hint of sarcasm. Did anyone have a little log complaining of Gnutella's scalability, or why no one thought of hypercube network topology before when it's in Tanenbaum's big book o' networking? BTW, can you grep through your HTML and change this line: 'Our team of developers hails from some of the world's most highly-regarded academic and professional institutions, such as MIT, Columbia, Goldman Sachs, Merrill Lynch, CIBC Oppenheimer, and Compaq.' Wrestling with Peopleware at Merill Lynch is no mean feat, but this list makes you sound like another Curl Corp to the VCs. I just mean this as a suggestion and not an insult. |
| Wed 20 Mar | Sammy | I have to say, limewire.com is really good. I have never seen a site with such good developer docs. |
| Wed 20 Mar | William C | Obviously, this guy came in here just to get a reaction. If he even comes back to read any responses is just a guess. The guy doesn't even get his facts straight. Joel wasn't an 'intern' at Microsoft. He was a program manager and worked there full-time for a few years. On top of that, what has this guy ever done in his career to criticize? I can guarantee that 'founders of software companies' (something that isn't easy) don't come onto message boards and start idiotic rants. My guess: under 18, has played around with a couple of programming languages, knows what a for-loop is, so he thinks he knows everything now. Again, all he wants is the reaction (must get his rocks off). It's obvious by this statement: 'Let the counterattacks begin.' This is what is called a Troll. |
| Wed 20 Mar | Adam Fisk | Uh oh -- I didn't think you guys would recognize me. So much for not having to be accountable for my careless lash-out. Anyway, I do value this site in that there are not many places where developers can discuss pressing questions in a comfortable environment. I admit that it is an excellent educational tool that works extremely well. It's really just the Joel gospel that gets to me. The damn book list is just like any other on Amazon.com. There's honestly nothing special about it, and some blatant omissions and ridiculous inclusions (Zen and the Art of Motorcycle Maintenance? I don't care if many other lists include it. That's required reading for people philosophizing on life, not programming. Christopher Alexander is a brilliant man and a brilliant architect who I very much admire, but a required read for a programmer? I don't think so.) This site should focus on it's role as an educational tool and lose the ego-tripping and the ridiculous joel-worship. No knock against Fog Creek in particular, but everyone and his ten year old brother started their own software company in the late nineties. This does not bring legitimacy as some soft of tech guru. It's software might be fine, but it's not a particularly interesting idea, is it? The point about our own background blurb is well taken and something we've been thinking about recently. Thanks for the suggestion. We do have the coflicting motivation that we are always on the look-out for new investors who care about those types of details, but we'll see. My basic point is that Joel is no Bill Joy. He's a somewhat young software developer who has created a web site to discuss pressing software issues. Lose the smugness. Lose the fluff. Oh, and some of the other guys want me to mention that these are my own personal views. There are others on the team who read this site regularly. Our owner in particular admires your work. Thanks. |
| Wed 20 Mar | Adam Fisk | Oh, and Joel was both a summer intern and lofty 'program manager' or whatever it is. This means what? You guys really have that much respect for people who start their own companies? Do you have any idea how easy it is to start your own company? You can literally do it in an afternoon. That's not a knock on Fog Creek at all, just an appeal to pay attention. |
| Wed 20 Mar | pb | Big diff between starting a company and bringing two reasonably successful products to market. Sorry, dude, you're way out of line. |
| Wed 20 Mar | Mike Swieton | You entirely missed the point: It isn't that he started his own company; I know how easy /that/ is, my brother's done it twice now. However, that's not relevant: sure, he started a company: you are correct in that that does not qualify him. However, his company is STILL IN BUSINESS. He has run his business SUCCESSFULLY. How many of those 2-bit afternoon software companies survive to release a product? How many of those release and successfully SELL, profitably, a good product that people use? And about the booklist, you should realize that all programming is not merely code: it is entirely an intellectual pursuit and THAT is why 'Zen' is on there. You'll never be great (not that I claim to be, either) until you realize that software is more than a for loop here and a hash over there. And besides, if you disagree w/ Joel's choice, don't read it! |
| Wed 20 Mar | Ryan Ware | Go home troll. I've reasigned your home directory it is not /dev/null |
| Wed 20 Mar | William C | In reply to: >>>>>>>> Oh, and Joel was both a summer intern and lofty 'program manager' or whatever it is. This means what? >>>>>>>> Obviously you missed the point. And we're supposed to take anything you say seriously? I did not say that he was a 'lofty' program manager. And I did not say he was a program manager to prove that he knows what he is talking about. I mentioned this to show that you did not have your facts straight. I would think that if you are trying to sway public opinion towards your ideas, you have to be *at least* factually correct. Now if you want to attack Joel, please point out something that he has written about and debate how you think that it is wrong. But, you have offered no ideas or contributions to this site. Instead you bring negativity and worthless rants. Please tell me. What's the point of doing that? |
| Wed 20 Mar | Phillip J. Eby | If I found the site excessively annoying, I wouldn't check back here every day. As for 'Joel Worship', well, the domain name *is* 'joelonsoftware.com'. If you don't want to here what 'joel' has to say 'onsoftware', then I guess you're at the wrong URL. Personally, however, I'd say that Joel's credentials are mostly irrelevant to me. What matters is his writing, which is thought-provoking whether you agree with it or not. I like to think, so... 'nuff said. |
| Wed 20 Mar | Phillip J. Eby | Argh. Make that 'hear', not 'here'. I can't believe I'm getting homophonic in my old age... |
| Wed 20 Mar | Roman Eremin | Don't read is not a solution. This site is too good to ignore it. I have no problem with preaching. Joel's articles always makes you think, so there is no problem if you disagree with him. I also was mad at Joel once for his promotions of FogBugz - something that i believe every developer should write for himself (like Joel did by the way). But I'm still here. Actually I found this site a little annoying - I came here more often than my rational side think is necessary. I'm addicted. |
| Wed 20 Mar | Adam Fisk | I know that it's not a smart move to knock this site when everyone reading this is a reader of this site by definition, but oh well. Ok, Fog Creek Software is moderately successful. Any idea how many small to medium size software companies there are that are moderately successful? Good, niether do I =). There are undoubtedly many thousands, however. I just have trouble seeing what makes Joel so special other than the fac that he talks about his views on software. Don't get me wrong -- I think it's great that Joel enjoys doing this, and I think that it benefits readers to a large extent. Again, it's the little guru club thing that's just yanks my chain, you know? There's a little too much hanging on Joel's every word an little too little thinking for yourself. This has been an impenetrable problem historically in many cases. Hell, Martin Luther King Jr. had the same problem of people following everything he did and elevating him to some untouchabel status (in addition to plagiarizing large portions of his dissertation), so it's not unique to Joel. I'm not saying that the emperor has no clothes -- I'm saying he doesn't have as many as everyone seems to think he does. In response to the last post, my point is that this site's strength is as an educational tool. The Joel-worship errodes that strength. Think about what Joel says (some of which I agree with, some of which I don't, but that's beside the point), then think about what you think, and keep the learning going. |
| Wed 20 Mar | Bella | >. However, his company is STILL IN BUSINESS. He has run his business SUCCESSFULLY. Boy, do you people have a LOT to learn about basic business... Releasing a product does NOT a successful company make....Rememebr CUE-CAT?? They released just fine..... Even selling a GOOD product that people LOVE doesnt make a SUCCESSFUL company. (rememner the countless DSL bankrupcies?) Success meaning making a profit. Period. Or you wont be around long... To be honest, Though I LOVE Joel's writing, I am slightly skeptical of FogCreek's viablity by selling $100 bug tracking software, (or whatever they charge). Yea, it may be great, and yea, people may love it, but does selling a few hundred copies of this thing cover expensive NYC office space and $100k coder salaries? I have no idea.... There are thousands of fake dotcom, missed the IPO boat companies still around, slowly draining their VC money. They don't make a dime, yet have 'been in business' for YEARS at this point. Are they successful? Lastly, I have nothing but respect for Joel's software writing . He espouses a basic no-nonsense pragmatic approach to development, which is rarem, crucial and INVALUABLE in this era of IT hype and vapor....Bravo !! |
| Wed 20 Mar | Jan Derk | Yes, a good old mud slinging and ego fight. I love it! Assuming from your post that you are working in a successful software company I could ask you (because you work for Limewire) how difficult it is to raise money for a company selling spyware which is used 99% of the time for illegal activities and has the RIAA all over it. But that would make me look as bad as you. So I won't. So I better say: The web is a free world. If you don't like a site, I suggest you click another link. |
| Wed 20 Mar | TK | This is what it is about to me: Few people can do, fewer folks can explain what they do, fewer still can write about it, and even fewer can write well about it. What I appreciate is that Joel is preaching and practicing what he preaches. He's giving us his opinions and how he came by those opinions. He's building a business based on these opinions and with some courage he's doing it in public. Lucky for us he owns up to his mistakes just as he takes pride in his successes and, he lets us publish our criticisms on this forum. |
| Wed 20 Mar | Adam Fisk | Go home troll. I've reasigned your home directory it is not /dev/null pretty witty smitty. actually, I really do have to get back to work, so thanks for the reminder. I've held back from making similar posts on about 4 occcassions, so I just thought I'd get all of that off my chest. Good luck to everyone, and my best wishes to joelonsoftware. My criticisms were really meant to be constructive, and my apologies if they did not end up that way. I honestly think the site would be better if some of what I'm saying would be taken in to account. The ego-tripping takes away from the useful nuggets of truth that often emerge. Back to releasing a new version of our software. Peace. |
| Wed 20 Mar | Sandra | Part of Joel's appeal is his confidence. I like to read his stuff because he doesn't attempt to railroad you or tell you that you are a moron for not doing something his way. He simply presents his idea/argument and lets the reader decide. I appreciate that. He also speaks in plain language and uses anecdotes to illustrate his points. It's not very technical I suppose, but it sure makes the book a lot more of a pleasure to read. I don't think he has ever said that he is a Usability guru, he just wants to get across the idea that usability is not only important, but isn't such a scary concept. Sure, it's great to get interface designers to come work on your product, but that isn't always possible, and even when it is you can only benefit by knowing what makes a good interface yourself. I am continually amazed by people who feel they need to post about a site being annoying, or the author not posting useful content, or whatever. If you dislike it so much and think the name 'Fog Creek' makes no sense, /why do you keep coming back/?? |
| Wed 20 Mar | Adam Fisk | One last thing -- I really am the only developer over here who feels this way. The rest of the LimeWire team that reads this site is generally very supportive of Joel. I am as well in some respects, but there are just aspects of it that I really can't stomach. But I'll shut up. Thanks. |
| Wed 20 Mar | Christopher Wells | Adam, for what it's worth (which is very little, imo) you aren't the only one. I've heard people describe this site as 'not serious', also not relevent to what we here do; I haven't tried to argue with them against that point of view, and don't intend to discuss this further. |
| Wed 20 Mar | William C | In reply to: >>>>>>>>>>>> Yea, it may be great, and yea, people may love it, but does selling a few hundred copies of this thing cover expensive NYC office space and $100k coder salaries? I have no idea.... >>>>>>>>>>>> In one of his articles he mentioned that FogBugz (just FogBugz) ends up paying for his office space and salaries. I'll try and find the article. So, it seems like this company is profitable (once you start taking CityDesk into account). |
| Wed 20 Mar | William C | Ok, I exaggerated that statement. I found the article (Rub-a-dub-dub): http://www.joelonsoftware.com/articles/fog0000000348.html First metnion of revenue: Of course, nothing ever works out exactly as planned. FogBUGZ was popular. Really popular. It accounts for a significant chunk of Fog Creek's revenue and sales are growing steadily. The People won't stop buying it Later on in the article: The code is now much more amenable to new features. We'll probably earn back the three weeks with the first new major feature we implement |
| Wed 20 Mar | Sammy | William C, I agree. I think Adam is a genuinely angry person, but at least he owes everyone an alternative to 'not Joel' or even a 'spayed, overly humble Joel.' Looking carefully, it is easy to understand a bit of anger against Joel. Limewire sells a Free Software end-product, built upon a shaky new platform. That is nontrivial, and a work of love. Joel is from MSFT, and profitably sells good implementations of old software. In his articles, he's pointed out how silly it is to release sourcecode. I dunno, I'm glad Adam can come on here and vent honestly, in the same way our favorite Spolsky can recommend a book on Motorcycle Maintenance. Human interaction is sometimes messy but enlightenening. And damn well entertaining. ;-) (Jan: I don't think it's such evil spyware. I haven't read anything about Limewire until today -- Adam unwittingly made them some good PR -- but they clearly apologized with the whole ClickTillUWin accident. Plus, they use the GPL, so there's a motivation not to abuse users.) |
| Wed 20 Mar | Frederik Slijkerman | Adam: 'Back to releasing a new version of our software. Peace.' How much memory is it going to require this time? 512 MB at least? :-) |
| Wed 20 Mar | Mike Gunderloy | It's a big Internet. You don't like it here, go somewhere else. Or don't |
| Wed 20 Mar | Adam Fisk | We're hoping to increase memory use as much as possible. I definitely think you're on to something with the 512MB idea =). Seriously, though, LimeWire in general loves FogCreek, even if it knocks open source (i've never seen this, but I'll take your word for it) -- it just sometimes bothers me personally, although I almost never read it. There was just a point when I got sick of hearing 'Joel says this' and 'Joel says that.' After awhile, I just felt like 'who the hell is joel'? I also found myself disagreeing with all of the absolute statements made here, like you should NEVER do such and such a thing, or ALWAYS do this other thing. Those are always the answers you can rule out right at the beginning in multiple choice tests, right? I think it's the same way with software. Basically, these kinds of sweeping, absolute statements are almost always wrong (yes, the 'NEVER re-write code from scratch' falls in here, and the 'ANY company that doesn't do automatic builds is a bad company' kind of thinking also falls into this category. I think Netscape should have been rewritten because it was crappy code. It was a bad short term decision, but a good long term one). OK, and the 'Microsoft is so succussful because it does X' combined with the 'the problem with Microsoft is Y' emotionally torments me a bit too. I also think that I just got back from vacation and am looking for an excuse not to write any code today, which is why I seem to be having trouble fulfilling my earlier promise to shut the hell up. Sorry... |
| Wed 20 Mar | Joel Goldstick | whoa man o' man! such a lively site! |
| Wed 20 Mar | Matthew Burns | happens to all of us. http://www.joelonsoftware.com/articles/fog0000000339.html though for the record I've gotten a lot of good tips about development from this site. and a lot of validation. I didn't go to school to get a programming job, I started doing it on the side at my company, teaching myself as I went, mostly to do the tedious work that they wanted me to do by hand. Eventually they created a development position for me. But up until I read this site I didn't really feel like a programmer. Joel showed me that the things I did were normal and made me feel better about the way I got things done. For that he has my respect. I've also read a lot of his ideas and they've helped me a great deal. though I know what you mean. Joel is a great programmer, he's a great writer, and he has a really great feel for the industry. He makes good points and he backs everything up with well though out comments. But he's not a god. thugh after reading thru the site I can say I would much rather work for him than God any day. |
| Wed 20 Mar | Joost (dutch Java developer) | The one thing that makes me interested in this site is that it comes from somebody who approaches software developent from the Microsoft-side of things. For instance I find the pattern-XP-movement sometimes a bit asphyxiating in its mindshare among developers. Making fun of the famous 'pencils and 3'' by 9'' cards' of the smalltalk-CRC gurus as Joel did f.i. is to me an example of 'thinking against the current'. Further am I intrigued by the intensity of competitive pragmatism that emenates from his writings. In contrast to the open-source world that can have a 'make peace, not war' feel to it that gets a bit boring after a while. So, Joel, keep up de Microsoft voice! |
| Wed 20 Mar | anon | I love Joel's writing for it's approachability, and for the fact that he brings up many interesting things to think about and argue over. I find what he has to say interesting, and I'm very, very glad he takes the time. That said, I can see a glimmer of truth in what Adam is saying. I think he's saying, 'watch out for ego, Joel' and everyone is responding, 'but we value Joel, don't attack him.' Perhaps the tone Adam is refering to is found in comments such as, 'The good news is that a lot of stuff I write about UI is starting to have an impact on the Gnome and KDE people.' (http://www.softwaremarketsolution.com/) The conclusion that KDE and Gnome developers are listening to him *personally* is a strange one, and implies a big ego. So maybe both sides are right - we love Joel's writing, and he has a big ego. :) |
| Wed 20 Mar | Moazam | Blah blah blah. Lets get back to the point. Joel and his company should just post some real source code for everyone to see. If you are going to go on and on about how great your coding skills are....prove it. Handing someone a binary does not prove it..source does. I'm not saying he should open-source his companies software...no way should he do that. But what he needs to do is show some example code (like a full example application) when pontificating on how to create good architecture and code. Of course, he doesn't *have* to do jack. Just a suggestion. |
| Wed 20 Mar | Charles Monk | Anon, A kinder interpretation of ... 'The good news is that a lot of stuff I write about UI is starting to have an impact on the Gnome and KDE people.' ... would be that Joel meant that the ideas which he promotes are being accepted, not because he is writing about them but because they are good ideas which are gaining acceptance. Since he is obviously writing much of his material off the cuff (and most of us enjoy the fresh style this imparts to the results), I think that we should make a kind interpretation wherever possible. |
| Wed 20 Mar | Sylvain G. | If there is one thing I've learned in online forums, it is that the few individuals who are totally full of themselves tend to be the first and foremost whiners when it comes to the supposedly excessive size of everybody else's ego. And it only makes sense. OK, enough of this. Can we talk about something of substance now ? Thank you. |
| Wed 20 Mar | Bella | I still make reference to Joel's comments on how detailed the operations procedures at McDonald's are. THe whole gormet chef vs. McDonald's comparison to software development. http://www.joelonsoftware.com/articles/fog0000000024.html |
| Wed 20 Mar | Richard Jenkins | Moazam, Why? I thought the goal of the software was to be good for the end user, not for some arbitrary notion of code aesthetics. So the binary is actually the proof of concept. If Joel wrote on and on about how software should Be, and his end result sucked, don't you think he'd have egg on his face? |
| Wed 20 Mar | Ged Byrne | I can see Adam's point that sometimes the worship of Joel can go a little far. Personally, I'm learning a hellova lot from Joel, and I am eternally grateful. However, the Joel Cult can get a bit excessive. I remember when Dave Winner posted here a little while back, and was pretty much flamed. I didn't like that, it seemed bang out of order. |
| Wed 20 Mar | Anthropologist on Planet Joel | Thus this BBS enters the second phase of growth: The Flame Wars. Roughly equivelant to the tumultous teen years so many of us experienced, this is an important step in the lifecycle of all sucesslful Bulletin Boards. Like many primitive mating rituals, the males of the species will puff themselves up to look larger than they are and fight over a non-existant prize. Let us step back and watch the native posters do battle with each other. When the dust has cleared, I'm sure the Joel on Software forum will emerge as a mature discussion forum. |
| Wed 20 Mar | Akira | I totally agree with Adam. Joel must be the most annoying guy to read his comments on software engineering. I loved his book on UI but other than that he need a reality and ego check. I really get pissed when i read his comments, the guy is cocky ignorant and plain stupid sometimes. I stopped visiting this site but whenever he gets linked from a site I visit, it annoys me because it is boosting his ego to post his garbage. He thinks his CMS is something but the truth it is a piece of crap unfortunately not many have the knowledge to work with real CMS and a bad easy to use crap sometimes is successful, look at Windows. I urge Joel to think about his comments. Again the most annoying thing is the confidence he has in making his stupid comments. |
| Wed 20 Mar | Leonardo Herrera | BTW... Why Adam think Joel is a young developer? I have the impression that Joel is not _too_ young. |
| Wed 20 Mar | James Ladd | Everyone is entitled to their opinion. Even Adam. If Adam wants to have his own discussion site, then im sure that over time, he too will have his share of praise and knocks. I thank Joel for his opnions and I read them as food for thought, not fact. |
| Wed 20 Mar | Akira | Maybe my previous post marked evidence to back my claims, i really don't feel like proving my points because Joel is so cocky that he doens't listen. Anyway: Java GUI is not ugly, and his comments on justifying why he didn't use Java are absurd. Jedit.org limewire.org only a few example of nice responsive GUI and complex apps written in Java. Open Source, I won't go there but the guy has no idea about open source. Comparing a bloated software to an encyclopedia must be my favorite stupid comment he made. While an encyclopedia has much more information that you need it doesn't hurt to have extra info that you might need one day. On the other hand a bloated software is slower, harder to maintain harder to use since it is hard for users to find the features they need. If i had the time and the patience i would comment on all the annoying things he have said in the past but unfortunately i have better things to do now. |
| Wed 20 Mar | Phillip J. Eby | Crap CMS? Jeez. I use CityDesk to run an open source project site ( http://telecommunity.com/TransWarp/ ), and as a Zope user/developer for quite a few years, I do know the difference between 'real CMS' and CityDesk. CityDesk is better. Hands down, no contest, for 90% of the people, 90% of the time. The other 10% of the people already have solutions they can buy or obtain for free. CityDesk is a welcome innovation for the 90% of people who need a simple site, use Windows, and don't run their own server. I also run Unix boxes, such as the one used to serve the CVS and mailing lists for TransWarp, but I sure as heck would rather do articles in CityDesk than in vi. So please don't imply that affection for CityDesk has anything to do with ignorance on the part of the user. Usability is good, because it makes things easier for experts, too. |
| Wed 20 Mar | Akira | Try doing anything a real CMS is supposed to do with CitiDesk. Integrate it with a portal. Manage word documents and XML documents. Do something a little complex and maybe you'll get the point. CitiDesk is probably a very good blogger not a CMS, as your site gest more and more complex you would see that citidesk won't do any help. |
| Wed 20 Mar | tucky | I for one understand Adam's points, but I don't think he expresses his problems very well. He(Adam) is expressing frustration at people reading Joel's site and then taking one of Joel's points out of context and then using it to 'prove' something else that he doesn't like or agree with. Also, Joel's use of absolutes(NEVER, ALWAYS) indicates a inflexibility that most programmers cringe at (Einstein believed that there are no absolutes). I think Joel's writing is very intelligent when it comes to organizational behaviors, developer behavior/feeding/care and software management. The problem comes in with his architectural analysis. Probably(I'm just guessing here) his(Joel's) experience is mostly Windows based. I'm also guessing he is a self-taught engineer with no formal theorical background in Computer Science. So the fact that he thinks rewriting a product from scratch is NEVER the right thing to do is understandable. Wrong, but understandable. Getting a native Windows app to work requires alot of hacking. But there are other platforms and environments where hacking isn't necessary because of the stability of the platform. On UNIX, C++ references aren't very likely to just become NULL like they do on Window(especially NT 3.51). This is why there is division on this board right now. Adam's point is simply that Joel isn't the be all/end all of software and that while reading this site(and anything else for that matter) remember that the writer has a view point, just like you and the guy at the cubical across the way. It is up to you what to accept and what to reject and even how to interpret it. To all self-educated programmers/engineers: admit to yourself that you don't know everything just because you have been programming for 20yrs and you might have made mistakes over the years because of your lack of a theortical background. To all college-educated engineers: admit to yourself that theory isn't everything and relevant experience is import in making decisions on details. There, is everyone happy now... |
| Wed 20 Mar | Jan Derk | Adam Fisk wrote: 'Go home troll.' Yes I was trolling and being totally unfair, but reread your first post and you have to admit you were asking for it. Let's get serious now. You do have a good point. I agree that the Joel worshipping sometimes takes extreme forms. The 'Joel says' statement is often used as an argument of something being true. Doing that is IMHO a serious sign of weakness as the poster apparently could not come up with a real argument. Almost everyone agrees that this web site is a great resource of information for any serious programmer. The problem is that some people take everything he says as the one and only software truth. For me 50% of Joel's work is extremely valuable, 25% is good and 25% I don't agree with at all. All in all a pretty good score, but not perfect. There are a lot a good pieces to pick up. But there's some trash too. To me it feels similar to Jacob Nielsen. Does he have many good ideas about web design? Yes. Did I skip large parts in his book because I found them boring? Yes, I did. Do I like his web site? Nope, I would almost recommend it to Vincent Flanders' http://www.WebPagesThatSuck.com If there's stuff you don't like just walk around it or post a comment with arguments why you disagree. I'd be interested in those posts. Adam Fisk wrote: 'I also found myself disagreeing with all of the absolute statements made here, like you should NEVER do such and such a thing, or ALWAYS do this other thing. [..] NEVER re-write code from scratch' I totally agree. Way too many people (incl. Joel sometimes (or at least he writes it that way)) think the world is black or white. There are many shades of gray and sometimes even weird shades of blue. There's ample of crappy code messed up so good that it only deserves to be rewritten. In one case I was involved in rewriting a large Fortran project in a more modern language, because we got sick of the crappy Fortran, the lousy tools and the platform it ran on. Was that a good decision? It sure was. Even after 4? years of development I tend to agree that Mozilla is a good thing, but I have to admit I know too little about the Netscape/Mozilla code to form a real opinion on that matter. The interesting points in Joel's article was that he warns us strongly to think at least three times before we rewrite. There are just too many examples of programmers/managers deciding lightly on this matter. I do agree when Joel says (take notice: this means it's true ;) If there's only a small change required, you don't rewrite. You dig up the old tools, an old programmer and make an incredibly expensive hack, but it will always be cheaper than rewriting. What I would hope is that Joel more often joins the discussion. That would show that he's not an ivory tower type of guy. Maybe even admit sometimes that someone has a good idea he did not think of or that he was wrong on an occasion. On the other hand I can imagine that he's reluctant to enter the hotter debates, because there are just too many people ready to rip him to pieces in another ego fight only to prove that they are smarter than he is. At least the link on the JoelOnSoftware.com main page proves that his Royal Highness noticed your remarks while he laughs his ass off reading this thread ;) |
| Wed 20 Mar | anon | 'Einstein believed that there are no absolutes' is both an 'absolute' and an example of quoting somebody to prove something. |
| Wed 20 Mar | Sammy | Peopleware => PeopleSoft. Merril Lynch people wrestle with PeopleSoft. I feel like a methodology-spewing moron. |
| Wed 20 Mar | Anonymous Coward | For those who wonder what Joel's education and experience is: http://joel.spolsky.com/resume.htm Somewhat related comment: Having just seen the URL for this site in Software Development magazine makes me wonder if this site will soon go the way of Ward Cunningham's Wiki Wiki Web site (which was pretty good until it got popular and then the site suffered as a result IMHO). Popularity seems to destroy good web sites. |
| Wed 20 Mar | Akira | it is no surprise that joel posted his comment related to this thread that miss the whole point. Adam is not only commenting on his coworkers quoting joel he is commenting on quoting someone who isn't a reliable source on software eng. |
| Wed 20 Mar | tucky | Anon: Why don't you re-read the 'quote'?(It wasn't even really a quote since Einstein would never refer to himself in the 3rd person) It says he believed, which means that even his(Einstein's) opinion isn't absolute. Nice try at irony...but like most people you couldn't define 'irony'. Why don't you join the conversation instead of trying to nit-pick at other people's posts. Or are you just unemployed with nothing better to do... |
| Wed 20 Mar | razib khan | I do the 'Joel says...' sometimes, but usually it's an answer to someone posting, 'How come Joel doesn't do this?', but hasn't read the article where Joel addresses the question the question they are asking. That's most of the time I see people saying 'Joel says...' I don't think most people here are Joel followers. It's just nice to find a site that's not devoted to flamewars (ironic I say this). In addition, the discussion of software is less technical and more 'holistic' (I think that's the meaning I'm trying to get across). If I need to find detailed technical info, I just look in GOOGLE, but if I want to talk about the 'why' (normative questions as they'd say in other fields), I would come here. As for questions about Joel's credentials, I don't think most people care that much about how good of a programmer Joel is. I think he's got to be pretty good on some level seeing as he's been more than just a code monkey at no-name companies-but that's beside the point. What Joel says stimulates you-and he can put it in clear English (sometime other programmers with blogs aren't as good at-hell, I'm not very good at it when trying to communicate software related stuff to my less technical coworkers). I'm not saying Joel is the Carl Sagan or Richard Dawkins of computer science and software management. But these scientists weren't really the brightest lights when it came to real lab work. What they are famous for is being able to communicate the concepts of science to others (often to fields in other areas of science-I went to a talk given by Dawkins to the biology dept. at my college and over half the people were from physics, chemistry and geology). Anyway, that's my piece. |
| Wed 20 Mar | d | There is no 'Adam Fisk' That message is post by Joel him slef...!!! Just to understand how much people like his site and what do people think about it..!!! |
| Wed 20 Mar | Leonardo Herrera | Gee, I don't think the world is black or white always, but I cannot believe there is some people who actually thinks the Mozilla affair is something good. Boys and Girls, Mozilla is the reason number one why you never should rewrite your code from scratch. Some people are confusing the 'rewrite from scratch' practice with 'migration.' A 20 years old Fortran monstruosity can't be rewritten from scratch; instead, you start by trying to understand some parts of it, write an appropiate replacement, move on. That's migration, not rewrite, IMHO. Regards, and excuse my english, please. |
| Wed 20 Mar | Akira | Mozilla is an excellent application. If it wasn't re-written it wouldn't be what it is right now. People forge that mozilla is available on so many platforms and operating systems and it has so many features and subprojects. IE doesn't come close to mozilla, just look at the serious security holes in IE, lack of standard compliance compared to the latest mozilla builds. |
| Wed 20 Mar | Joey | Joel says: 'It's true.' See! Joel, eh, I mean Adam is right, then. Now, let's all think for ourselves! Yaaa! Reminds me of Steve Martin's Non-conformity oath: 'Okay, repeat after me! I promise to be different!' Audience repeats. 'I promise to be unique!' Audience repeats. 'I promise not to repeat things other people tell me to!' Audience confused. 'Good!' |
| Wed 20 Mar | Greg Bildson | Adam does exist and has some good reasons for venting a little Joel frustration. We have some very pro Joel proponents at LimeWire as well as those that take opposing views. Its interesting that Joel wrote a column recently that discussed subverting parts of a development effort to your way of thinking even if nobody buys into it at first. That sounds well intentioned but it assumes that you are more enlightened than your peers. If everyone reads Joel then chaos may erupt. Intelligent programmers need to agree on intelligent practices. (http://www.joelonsoftware.com/articles/fog0000000332.html) There is a wealth of knowledge and experience out there if you are lucky enough to find it. Joel makes very good points most of the time. I’m sure he is totally wrong occasionally. Joel’s value appears to be in reminding us or perhaps first acquainting some of us with the great works of the software industry. Occasionally he is more entertaining than practical (“A Pattern Language” rather than “Design Patterns: Elements of Reusable Object-Oriented Software”?). All in all, this site is good at bringing intelligent thought to the software development process. That’s my take. Thanks -greg |
| Wed 20 Mar | Greg Bildson | You are doing an incredible disservice to the group of developers behind this particular Merrill Lynch work by calling this Peoplesoft work. In all honesty, they were mainly contractors rather than Merrill full timers. These hired guns had a great mixture of wise experience and youthful energy. The project in question was a classic Unix/C++/Motif/RDBMS development that was ahead of its time in many ways. It encompassed a workflow engine, sophisticated user interfaces, lex and yacc for its own business rules language, SGML, vector graphics, a rules engine and finally direct postscript and PDF generation. In 1994, this was the most sophisticated publishing (financial planning) system that I had seen other than that used for the electronic Oxford English Dictionary. The workflow process was an interesting example of distributed computing. I happen to know that Merrill Lynch also does some state of the art financial modeling in the fixed income, swaps and derivatives markets. They have quants and mathematicians that literally wrote the book in the fixed income market. It sounds like the person disparaging Merrill perhaps had a little more exposure to the HR department and PeopleSoft software. I don't think that this person is familiar with the diverse styles of development that go on at financial companies. Interest rate models, covariance matrix based risk models, portfolio manipulation tools, sophisticated EJB based applications, ... All of these areas can be very interesting. I would never work on something that wasn't interesting and challenging. NYC based developers are very likely to have this type of background. Thanks -greg |
| Thu 21 Mar | Jutta Jordans | Goodness gracious, isn't the internet providing a lot of fun sometimes? :-) I visit this site several times a day, normally, mostly to browse through the discussion forum. I also read most of Joel's articles and I found most of the articles very true. In some cases I find them a little extreme and I suspect Joel to take a devil's advocate stand in some. It never appeared to me to tell anyone: 'Do it that way because Joel says it's right.' and I think, it would definitedly p*** me off if someone used it as an argument in a serious discussion. I don't do things because Joel, Einstein or Alice Schwarzer think they are right (if you don't know who Alice Schwarzer is, don't worry about it). I do things because they make sense to me and I appreciate if the people around me do their own thinking, either, never mind if they agree with me or not. In that way I can understand the Adam-like frustration when 'but Joel said' becomes a reappearing argument in discussions (at my last job we had something similar happen with Kent Beck, every decision was suddenly based on 'but Kent said' arguments, just awful, even though I argee with Kent Beck in many points). I do not blame this on Joel or his site, though. This would be like saying: 'Well, let's not put anything true in the www anymore, people could stop thinking for themselves.' Read Joel, don't worship him :-) Have fun, |
| Thu 21 Mar | Simon Lucy | Ummm well I don't visit this site to find out Joel's opinions, worship them, decry or snub them. Since he rarely says anything on here anyway. I come here to find out what other developers believe, spout, opinionate. Ok, actually what I do is like seeing my own name in blue pixels. |
| Thu 21 Mar | Sammy | Greg, I am aware of what Merrill Lynch does, but color me chastened anyway. I did not mean to insult anyone's previous work, even if my unfortunate sense of humor leads me to underestimate programming projects in general. ;-( |
| Thu 21 Mar | Guess Who | GOD DAMN IT! I just wrote a fairly long response to this, and Joel's discussion software totally ate it without so much as a warning. Joel, get off the lecture circuit and fix your freaking software before you expect us to take anything you say seriously. Add a preview feature. Add HTML support. They're not hard; I've done both. In my previous response I said that Joel most clearly does not practice what he preaches (see http://slashdot.org/comments.pl?sid=29702&cid=3187052) for a specific example. I said that his brain is big but his ego even bigger, that he has a lot of great ideas and writes eloquently about important matters but is also far more accomplished troll than Adam Fisk will ever be. I wound up by saying that the best way to counter the Joelites is to point out *specific* flaws or inconsistencies in Joel's Grand Theory of Everything. I was actually rather pleased with how it turned out, but never expected that Joel's software itself would provide me with such a perfect example of what I'm talking about. Joel, most days I admire you, but today YOU SUCK. |
| Thu 21 Mar | Christopher Wells | > GOD DAMN IT! I just wrote a fairly long response to this, and Joel's discussion software totally ate it without so much as a warning When that happens, one may use the 'Back' button on one's browser ... this will take one back to the edit screen in which one entered one's text (so that one don't lose one's text); or, compose in notepad and then copy-and-paste to the browser. |
| Thu 21 Mar | Guess Who | No, the text wasn't there when I used the 'back' button, you supercilious fool. Sometimes I do save a copy of my text in a real text editor (Notepad is for people who don't know any better BTW) before I hit thesubmit button because this kind of brain-damage is all too common, but I shouldn't have to do it *every single time* especially on a system written by a supposed software-quality expert. It still annoys me when this sort of thing happens. Do you tell people who get rear-ended that it's entirely their own fault because they didn't have to be on the road, or do you allow the person who was tailgating to share at least some small part of the blame? |
| Thu 21 Mar | Carey Mueller, Technical Writer, Programmer | Mr. Fisk, After reading your post and your various responses, I wonder if you're really objecting to Joel's writing, or to your co-workers (over)quoting him so much in your workplace: >>...software. Don't get me wrong -- I think it's great that Joel enjoys doing this, and I think that it benefits readers to a large extent. Again, it's the little guru club thing that's just yanks my chain, you know? There's a little too much hanging on Joel's every word an little too little thinking for yourself...<< And: >>...it just sometimes bothers me personally, although I almost never read it. There was just a point when I got sick of hearing 'Joel says this' and 'Joel says that.' After awhile, I just felt like 'who the hell is joel'?...<< The conclusions that I draw from the content of your postings are: a) You read little, if any, of his (Joel's) writings until after you posted to his site, b) you didn't test his theories or draw from your own programming experience to see if they work or not, and c) you offer no supporting examples or information for your viewpoint. If you think Joel, or anyone else, is wrong, show us! >> I also found myself disagreeing with all of the absolute statements made here, like you should NEVER do such and such a thing, or ALWAYS do this other thing. Those are always the answers you can rule out right at the beginning in multiple choice tests, right? << Then demonstrate, by example, why you disagree with those statements. And no, those aren't the answers you can rule out at the beginning of a multiple choice test. Whether you can rule them out or not depends on the kind of test (example: Psychological profiling test vs. programming test) and what sort of person wrote the test in the first place (example: Person testing the test-taker's ability to think vs. Person weeding out incompetent job applicants). I, for one, would LOVE to see a contrary viewpoint --with information, experience, and examples to back it up. That would be constructive criticism, and beneficial to everyone who reads it for the resulting discussion. |
| Thu 21 Mar | Christopher Wells | > No, the text wasn't there when I used the 'back' button, you supercilious fool.
Sorry about that; it's always been there for me, on each occasion where I found that 'Post Message' didn't post a message.
> It still annoys me when this sort of thing happens.
Being around software, I get used to it. |
| Thu 21 Mar | Guess Who | Being around *my own* software instead of yours, I'm less used to such brain-damage. :-P |
| Thu 21 Mar | Mark W | I've also had problems posting, mostly in netscape, and netscape typically doesn't keep the text for you when you hit the back button. I haven't tried posting from Opera. |
| Thu 21 Mar | Christopher Wells | I've been using IE v5 point something. |
| Thu 21 Mar | Guess Who | IE 6.0 here. I've also had it happen in Konqueror. |
| Thu 21 Mar | Jeff Darcy | Getting back on topic, what I originally wrote for Adam is that - whether any of us here believe he deserves it or not - Joel does have some serious cred. If people are bashing you over the head with stuff Joel says, denying this manifestly obvious fact will only convince them that you require further education. The 'right' thing to do, as I see it, is to demonstrate *particular* things that Joel says that are wrong, either in your particular environment or in general, based on reason and experience. That will at least get them off your back about the particular points that you refute, and if you do it often enough then the Joelists' fervor will abate. BTW, the same rule applies to UML addicts, XP fanatics, and so on. When confronted with a mixed bag of good and bad ideas, your first goal should be to distinguish the two so you won't be seen as attacking the obviously good parts. |
| Thu 21 Mar | Prakash S | Adam Fisk wrote 'I think it's the same way with software. Basically, these kinds of sweeping, absolute statements are almost always wrong (yes, the 'NEVER re-write code from scratch' falls in here, and the 'ANY company that doesn't do automatic builds is a bad company' kind of thinking also falls into this category. I think Netscape should have been rewritten because it was crappy code. It was a bad short term decision, but a good long term one). OK, and the 'Microsoft is so succussful because it does X' combined with the 'the problem with Microsoft is Y' emotionally torments me a bit too.' That is why Netscape is not in business today. You don't have to agree on everything put up on this site. If whatever you reads gives you knowledge, clears up your thought process, or gives you a different perspective of looking at things - IMHO you should leave it at that. If you have a differenet view please name the topic, and express your views on it - that might gives us all a different way of looking at things. |
| Thu 21 Mar | pb | akira, your comments are completely idiotic. mozilla is borderline garbage and is at a minimum 3 years late and blaoted beyond belief. the fact that it is available on multiple platforms demonstrates a lack of business acumen. the encyclopedia analogy perfectly supports why it's unlikely that a 'lite' word processor would ever over-take ms word. noone is claiming that CityDesk is Vignette. who the heck is putting word and xml documents on their web site? the point is not to 'do something more complex', it's to do something more simply! |
| Thu 21 Mar | Mark W | 'Basically, these kinds of sweeping, absolute statements are almost always wrong' Would you care to re-state that so that it's not a sweeping 'almost' absolute statement. |
| Thu 21 Mar | Jim L. | It is rather amusing to read through this thread. My favorite part is the absolute statements decrying absolute statements (not that I don't believe in absolutes!). While some folks have been very considerate in their wording, other posts lok like they came off of a Yahoo stock message board. The real gripe appears to be with those who seemingly quote Joel and others think the opinion is wrong. Ok, what's my point? Agree of disagree with Joel, but it's his party and he'll post what he wants to. According to the info from whois below, he paid for it, so it's his pulpit. Those who don't like that should consider the last line: Organization: Joel Spolsky Joel Spolsky 27 W. 76th St. Apt 3B New York, NY 10023 US Phone: 1-212-787-8065 Email: spolsky@panix.com Registrar Name....: Register.com Registrar Whois...: whois.register.com Registrar Homepage: http://www.register.com Domain Name: JOELONSOFTWARE.COM Created on..............: Sat, Jul 29, 2000 Expires on..............: Mon, Jul 29, 2002 Record last updated on..: Wed, Jun 27, 2001 Administrative Contact: Joel Spolsky Joel Spolsky 27 W. 76th St. Apt 3B New York, NY 10023 US Phone: 1-212-787-8065 Email: spolsky@panix.com Technical Contact, Zone Contact: Register.Com Domain Registrar 575 8th Avenue - 11th Floor New York, NY 10018 US Phone: 212-798-9200 Fax..: 212-629-9305 Email: domain-registrar@register.com Domain servers in listed order: BABAR.FOGCREEK.NET 64.243.120.211 QANTAS.FOGCREEK.NET 151.202.18.65 Register your domain name at http://www.register.com You may be able to buy this domain name through http://www.afternic.com/offer |
| Thu 21 Mar | chunks | Disregarding the other comments for a moment, I'm glad Adam dissed Joel's book list. It is embarrassing! The tech books are totally dull and on everyone else's tech book list. The non tech books should really not be considered worth reading by anyone over 18 years old. Godel, Escher, Bach?? I guess software people don't have time to read much... |
| Thu 21 Mar | Christopher Wells | > My favorite part is the absolute statements decrying absolute statements (not that I don't believe in absolutes!). 'I always tell a young man never to use the word 'always'.' |
| Thu 21 Mar | Jeff Darcy | It's all very well to say it's his party, he paid for it, etc. but he did create this forum for a reason. What do you think that reason was? So he could bask in the glow of adulation unalloyed with criticism, or so that he could be challenged and provoked to look at the world in new ways just as he likes to challenge and provoke others? I could be wrong here, maybe I'm overestimating Joel, but I'm going to guess it's more of the latter than the former. Joel's a big boy, I'm sure he's not afraid of the thrust and parry that tends to occur when geeks get to talking about the best way to write software, even if things occasionally turn ugly. Do you think otherwise? |
| Thu 21 Mar | Matthew John Wills | Guess Who, http://slashdot.org/comments.pl?sid=29702&cid=3187052 is hardly relevant given that Joel's essay was about rewriting ENTIRE PROGRAMS - therefore pointing out that he rewrites FUNCTIONS proves nothing. Joel is pro-refactoring (which obviously sometimes involves rewriting functions), but that is different to being pro-total system rewrite! I am not saying I worship Joel or anything, just that the argument of the above slashdot post is meaningless (ie comparing apples to oranges). Seeya Matthew |
| Thu 21 Mar | Jeff Darcy | Read the example it points to, Matthew. In Joel's own words, he is clearly referring in the 'Nancy' example to a rewrite of a single function. |
| Thu 21 Mar | Richard J. | Chunks, I've recommended GEB often to people interested in learning programming, since I had to cast about for a book that isn't dry and dull. Programming can easily be dull. When I was at a lecture of Hofstadters, he freely admitted that GEB made it a bit embarrassing to be around experts because GEB was meant to be a popularization, and people considered it a great work in its own right. But that is the difference between inspiration and dry exposition. If you have a better booklist, post it here or link to it. I'd seriously be interesting in looking at it. |
| Thu 21 Mar | Brian B. | Embarrasingly, just last night I said to a friend that joel is my hero. I wasn't serious, of course, but it is ironic. I've read much of the sight and found it to be mostly good. And yes, I've said the 'joel said this' phrase so I feel I am amply qualified to explain why this is said. I think, I do not take things at face value, I have already formed opinions about many of the things I've read here and it is nice that they are backed up by a website where they are discussed more eloquently than I could. So when I said 'Joel said' it is basically a short-cut meaning 'I agree with the stuff that Joel wrote and you can find out more if you go read the site.' Yes, its lazy, but its not lazy thinking, its lazy explaining. Am I making myself look like an idiot? Speaking of contradictions, I found the following enlightening: pb wrote:the encyclopedia analogy perfectly supports why it's unlikely that a 'lite' word processor would ever over-take ms word. noone is claiming that CityDesk is Vignette. who the heck is putting word and xml documents on their web site? the point is not to 'do something more complex', it's to do something more simply! On the one hand Word's encyclopaedic bloat is a GoodThing and on the otherhand, CityDesks simplicity compared to Vignette's encyclopaedic bloat is a GoodThing. I hate having all that Word add-on crap that I never use poluting my hard-drive. All I do is write technical documents and word is really bad for that. I would love a simple XML based tool that supported XML based searches and greps and simple XSLT WYSIWYG stuff. There doesn't seem to be anything, though. |
| Thu 21 Mar | The Stranger | There once was a forum quite slick That produced a sizeable clique Fisk posted a stink That forced you to think Is there more to value than shtick? |
| Thu 21 Mar | Tony | anyone else find this topic excessively annoying? |
| Thu 21 Mar | Guy Incognito | To Adam (the Shawn Fanning wannabe), Excuse me, but I never read the article/post/diatribe/whatever in which Joel claimed to be the Messiah of Software development. Maybe you could in all your wisdom point it out to me. Most everything you read written by Joel on this site are his own opinions based on his experiences with software development. Whether or not you feel he’s qualified or if his opinion matters is entirely up to you. I think Joel is a very good writer. I don’t agree with everything he writes, but I do enjoy reading his perspective. What makes his ramblings unique is that, like I sai earlier, he is (in my opinion!) a very good writer. I also think this forum serves as a hub for those interested in software development to share their opinions and experiences. I have seen many interesting and thought provoking topics on this board. I’ve also seen and been a part of others that weren’t as productive. While we’re on the subject of opinions… If the only purpose of the flagship product of the company I worked for was the proliferation of porn, warez and pirated music, I might think twice about being so boastful. Who knows? In the future when all the VC capital dries up and you’ve realized you can’t make money giving away your product and soliciting pirated intellectual property, maybe Joel might have a job for you? Probably not… |
| Thu 21 Mar | Timothy Falconer | uml addicts? |
| Thu 21 Mar | Bella | No more typing your news stories in a big edit box in a web browser: CityDesk's slick Windows word processor supports spell checking, WYSIWYG, drag and drop, word count, and search and replace Reinventing the wheel? I'll just use WORD to edit my text.. |
| Thu 21 Mar | . | Joel graduated top of his class from Yale CS. He isn't some young punk intern kid... ...besides, if you don't like what you read here, stop coming back for more, it'll make you unhappy... |
| Thu 21 Mar | . | If you want a look at Fog Creek source code try FogBUGZ. It's written in ASP, so the source code is open for viewing... |
| Thu 21 Mar | Leonardo Herrera | 'Reinventing the wheel? I'll just use WORD to edit my text.. ' Yes, and then exporting it to HTML, then apply your site template (you know, the logo at the top, some links in the left, a disclaimer and a couple of other links at the bottom) and upload it with some FTP application (let be friendly, WS Ftp or Cute FTP.) Of course, some people likes to do this kind of thing. I don't. |
| Fri 22 Mar | Timothy Falconer | No one has said this, so I guess I will. What many seem to have missed is that Joel Spolsky has done a very successful job at marketing himself, his company, and his products, and for very little money, I'd imagine. Yes, there's overuse of the word 'guru' on his business site and other Blockbuster box language throughout: 'Fog Creek Consulting is run by Joel Spolsky, whose website Joel on Software is read by thousands of developers worldwide every day for its insight into the management of software projects. His famous Joel Test is used by software teams everywhere to do better work. His brilliantly readable book UI Design for Programmers, available in print and on the web, has received numerous accolades.' ... thousands of developers worldwide every day ... ... his famous Joel Test ... ... used by software teams everywhere ... ... his brilliantly readable book ... ... numerous accolades ... Is this over the top? Of course. But he's MARKETING. Even in his articles he's marketing. There's just no being subtle when you're bragging about your business. If you don't sing your own praises, no one will hear you. That said, there's the Taoist approach: 'She doesn't boast, so she is recognized. She doesn't claim credit, so she advances and endures' BTW, I'd add the Tao Te Ching to any reading list. |
| Fri 22 Mar | Andrew Friar | 'Technology is EASY, Common Sense isn't' |
| Fri 22 Mar | James Wann | Well said Tim! Technology is often about acquiring mindshare and marketshare. I find that Joel has certainly created a good degree of mindshare (good and bad) among the software community. People who quote 'joel said this' are in danger of taking a handful of practical project management ideas and mutating it into a CAPITAL 'M' Methodology. A certain formula for failure. The same can be said for XP, which is just a 'collection of practices' that emerged from the mind of Kent Beck after getting burned from too many - shall we say - 'interesting' projects. In the end, with all of these different techniques, what are we to do? We'll, for one, we can stop being religious about it. Pick a handful of practices that you feel good about (a dash of xp, a handful from jos, a splash of brooks, and a pinch of weigers), and focus on delivering PRODUCTS! Don't turn the means into the goal, because in the end, you'll be wondering why you didn't deliver a product even though you sucessfully followed all the recommendations from somebody's website ;-) |
| Fri 22 Mar | Jutta Jordans | > anyone else find this topic excessively annoying? nope, actually, I find it rather refreshing, even if a little time wasting, maybe :-) Have fun, |
| Fri 22 Mar | Lawrence Attrill | All I can say is that Joel's comments and observations have kept me amused/sane for the past few months, and helped me overcome the stress of office politics. Like Scott Adams, Joel soothes the daily grind of office life, and I thank them both. Regards from the UK, |
| Fri 22 Mar | Tony | Jutta, I'm not having fun, because you said nasty things to me and then you ended with 'have fun' and that makes me want to vomit. Have luvvly, wuvverly fun |
| Fri 22 Mar | mark | He's not the Messiah he's a very naughty boy. Love the site, articles are helpful and thought provoking, nobody has all the answers. |
| Fri 22 Mar | Eric W. Sink | I like the site. Joel is a heckuva writer, and I have to believe that FogCreek will eventually find a success formula. He's smart and he has time on his side. I chuckled a bit when he tried to hire a marketing person *after* the feature set for CityDesk was set in stone. That's one of my pet issues -- everybody thinks marketing is about telling people what you built, but good marketing starts when you're trying to figure out what to build in the first place. Nonetheless, FogCreek is apparently not beholden to a bunch of VCs, so they probably have time to make lots of excellent mistakes and learn from them. In the meantime, I can't figure out how Joel finds so much time to write, but I still like reading his stuff, and I would enjoy seeing FogCreek become a success. |
| Fri 22 Mar | Mark W | Brian B, have you tried XML Spy? It's got a good XSLT transformation engine and a great XML editor, though it's not really aimed at paragraphs and paragraphs of text, but you can do the XML editing in your favorite text editor and then run it through the XSLT transformer. And to the 100'th poster on this thread, you win a prize... (I believe I'm 99) |
| Fri 22 Mar | Adam | Back to the Mozilla thing (netscape6+) It is actually wuite a good browser. I've been using it almost exclusively for the past year. There have been quantum leaps in the stability this year. I think it is safe to say that Netscape as a company was eviscerated before the decision to rewrite Gecko went in to effect. The thing to keep in mind is that the Browser is now: 1)Open Source. Unlike a web site, and especially website building software, something as baseline as a browser should be open source. I much don't care what you do on your end of the the HTTP pipeline so long as it works on my end. I have not actaully looked at the Mozilla Source code. I have no idea how good the current or how bad the original was. If something like the rendering engine needs to be rebuilt, and it affects the entire system the way the Mozilla project was affected, it sounds like what needed to happen first was some solid refactroing that just got things into the right places. Then rework the algorithm. My guess was that enough of the original people (Andreeson et alles) had left so that the people left standing had no idea how the existing code was supposed to work. I can understand wanting to do a complete rewrite at that point. Enough Rambling |
| Fri 22 Mar | Mark W | When I tried Netscape 6, it was unbelievably slow and bloated. I run Windows 95 on a Pentium MMX 233mhz at home, and it would take minutes to boot up. The GUI felt like that Java gui everyone's always complaining about... At version 6, it was obvious a lot of work went into it because it was feature full, but it still had a lot of '1.0ness' about it. Perhaps if they had built up rather than re-built, it wouldn't have felt that way to me. I'm currently using Netscape 4.7. My company standardized on Netscape in 1996 when it was the only browser of choice - IE was in version 2.x, and though new computers come with IE (though they're not configured for the proxy), at work I tend to use Netscape because all the other developers use IE and I want to know whether or not their sites will break for the average user who is still 95% Netscape (which is opposite the real world, I know). |
| Fri 22 Mar | Mark W | I just thought about that. Open Source Bloatware. Not a lot of it right now. My candidates would be Star Office and Netscape 6. |
| Fri 22 Mar | James Wann | You might want to run Spy++ on Netscape 6. http://james.wann.org/wlimages/netscape_spy.gif Netscape 6 runs using a SINGLE windows class, which is the equivalent of having a giant switch statement from hell inside the program. With custom-implemented widgets to boot, they probably wrote enough code to to have built a custom windowing system inside the browser. |
| Fri 22 Mar | Mark W | Or not run netscape 6 at all. I like Opera and IE. Say, what does this have to do with hating joel? Somebody flame someone already, this browser talk is out of place! |
| Fri 22 Mar | Hal O'Brien | Well, to go back to the top: 'Honestly, this site drives me insane. No offense, Joel, but I don't think your internship at Microsoft (which you both denigrate and use as a source of your legitimacy) makes you god's gift to computer programming, and the same goes for your founding of 'Fog Creek Software'(what the hell is that anyway??). There are peopel who formally study UI, software engineering, software management etc. etc. rather than just spouting out whatever happens to come to mind that day on such and such a topic that you also have a superficial knowledge of.' * My observation is that Joel writes about Juno at least as much as he does about Microsoft. He writes about Fog Creek most of all. Given that your employer is an open source company, is it possible that your real beef with Joel's tenure at MS is that he's very positive about it? Or that he *does* seem to know what he's doing, even though he was an MS employee? Kinda makes it harder to believe in the Great Satan when it gets humanized like that, doesn't it? * What's Fog Creek? What's Lime Wire? And you're the *spokesman* for these guys? Given your inarticulate postings here, and the fuzzy reasoning therein, could you please go public soon so I can short your stock? I mean, if you're the best Lime Wire can do when it comes to a public face... * Yup, people study many things. Some people do things, too. Dissing someone because they *only* study, or because they *only* do things, seems less than conducive to either pursuit. As may be, as has been pointed out, it's not terribly relevant here. |
| Fri 22 Mar | Akira | Why no one seems to get it. Look at the way joel is handling it, he post on his front page stop the joel worship, and bunch of ignorant readers defend him and he end up boosting his stupid ego without noticing that his writings are based on personal experiences and don't apply to most computer scientist. On the other hand if you are a manager maybe you would enjoy it much better. Science and business are too very different fields and Joel is a Philip Greenspun wannabe without the knowledge or the IQ to be anything close to what Philip is. |
| Fri 22 Mar | . | Akira, Tell me again what happened with Philip Greenspun and ArsDigita. Remind us all about what Joel said about VC and what it will do to a company... |
| Sat 23 Mar | Akira | Well genius '. 'Joel just recopied Philip impressions on VCs when he started having problems at ArsDigita. Even though Joel consider ArsDigita to be a failure, they have produced an amazing software and redhat is going to release the ACSJ 5.0 under a GNU liscense. Again genius . you don't judge software only on it success of the business behind it. Philip is a true computer scientist with love for technology Joel is a microsoft brain washed programmer, once you become brain washed @ microsoft you become a manager. When I was at Standford getting my degree in CS most of my friends detested the idea of working for Microsoft. But few very bright programmers did go work for microsoft because microsoft gave them the top 4 in my graduating year an $800000 signing deal plus other compensation for joining microsoft. I used to receive coutless software from Microsoft which I threw in the garbage in front of the person giving to me. From that point the brain washing begins. Unfortunatelly money have a very strong effect on our society and we judge to much things and people buy their monetary values. Phlip got 8 million dollars by the way from the VC, I don't think that is too bad. So comparing Joel to Philip is like comparing me to Bill Joy which is one of the greatest computer scientist. I could go on about many things but it is hard to explain a philisophy, a culture to someone who sees programming only as a way to make money. |
| Sat 23 Mar | Akira | I should stop posting, I thought I can just make a statement and make someone think a little and reflect. So I don't have to get so frustrated when I see another site referencing Joel's stupidity. Unlike other people I don't just start talking I read most what Joel writes just to see if i misjudged the guy. I can see why so many people like him, I admit that he has a great style of writting, unlike my terrible english which is my 3rd language. You guys reading and boosting his confidence is allowing him to write all the stupidity he writes. Like i said in my first post that his UI book was really good and the success he got from that. book influenced his writting, he thinks that he has the right to talk about software eng when obviously he doens't have the knowledge or the experience, and yes microsoft doesn't count. And his current software, just go on sourceforge and see hte number of great software that manny people write everyday. Example jedit.org, which I was a contributor, Sacha the main author was only 15 when he started writting it. It is a gazillion times a better software then CitiDesk. |
| Sat 23 Mar | Tony | Money talks, bullshit walks. All I can see here is a load of bullshit. |
| Sat 23 Mar | Art Vandelay | Akira, I can respect your points on corporate programming sucking. Your frustration at making eloquent points in your third language is understandable. Often I hate when people equate programming = moolah. But I'm looking at my copy of jEdit sourcecode now. Are you sure this is such impressive software? Can you point out to me what I should notice? All of this Beanshell stuff is written by someone else, and the same goes with many plugins. Maybe I'm looking at it too critically, but it's hard not to because you're holding it up as an example of what's 'a gazillion times better' than Citydesk. Ordinarily, I think of it as fine, stable software that I've never really used. But right now I expect it to do my dishes. Can you hold up an example of a usable free software tool, for someone who is not a very technical user? I don't think you can, because the only one I know in that space is Miguel de Icaza and his friends, and they're working on the infrastructure right now. The other free software projects seem to have a contempt for the user. In the specific case of jEdit, that is why many people prefer Jext. Jext is simply cleaner and more usable, even if it does not have jEdit's features. |
| Sat 23 Mar | Eric Hoffland | Joel's articles are very insighful and interesting as are many of the comments from other programmers who contribute to the discussion. It's easy to see why so many of us have a healthy respect and admiration for Joel. (Respect && admiration != worship.) Obviously, Mr. Fisk's comments are not well taken. |
| Sat 23 Mar | Akira | Example of very good Open Source software that is not technical: Evolution as good as outlook without the viruses Red-carpet best installer. Gnome excellent GUI. Gnumeric really good Excel replacement. movabletype.org/ is an excellent blogger software which is what CitiDesk is. CitiDesk is not a CMS. LimeWire good gnutella client. OpenOffice office replacement, (it's getting there) The GIMP photoshop replacement with a lot of nice features for web developers. I have been using linux for 5 years, all my machines run linux, and i have seen linux change from a very technical OS to a very user friendly OS to the point I was able to install it on my father computer because he was sick of the blue screen of death. Anyway my comments are general replies to many things Joel has written. My father who use the computer for word processing, internet browsing and research is super happy with linux. I configured it for him optimized it for his needs and suggested few sites to read. The point is linux is becoming a very good desktop OS unless you are a gammer or in an industry that requires certain software that is not available yet on linux. This site is mostly visited by Windows users that have a total different mindset and the developers that visit this site tend to not understand open source developement in general. |
| Sat 23 Mar | Tony | Akira, What a great son you must be - you actually inflicted linux upon your parents. Now your father wont be able to share in any software discussions with any of his probably elderly friends because they wont know what he's talking about, and he wont know what they're talking about. You have socially ostracized your father, poor man. |
| Sat 23 Mar | Akira | Actually Tony, I don't have to drive to my parents house everytime windows decide to stop working and fix it. Since I installed it my father has a 300+ days uptime with no problems and he thanks me for that. He does use word and excell documents for his work and star office does an excellent job for that. Ocassionaly he runs into minor problems and I either ssh or vnc to his computer and guide him to a solution. Computers are used to accomplish certain tasks not to drive the user crasy. I wonder when would a person say enough is enough after windows crash a million times after you loose 1000 hours of work. Instead of spending some time to learn how to use a real OS you would rather work a little reboot than wait forever than work reboot curse reboot reinstall windows because the hard disk became too fragmented. |
| Sat 23 Mar | Leonardo Herrera | Akira, you're being religious. Don't. |
| Sat 23 Mar | Art Vandelay | I think taking the anti-M$ route is dangerous. For one thing, too many open-source people fell into the arms of Sun. Sun is a dangerous company, partly anti-Linux and definitely anti-BSD. Their monopoly position on Java is overwhelming, and we've seen how they treat 'partners' like Apache and Blackdown. Furthermore, McNealy along with Ellison wanted to capitalize on Sept. 11 with their selfless offerings of technology for national ID cards. Even RMS doesn't think that MSFT is particularly bad compared to others. Watch out. I work very deeply with Java, but only for the time being. Eventually, someone will develop reasonable crossplatform GUIs for .NET and better IL extensions, and then I can really develop using Mono. |
| Sat 23 Mar | Akira | Art, Sun is not as bad as you are saying, cross platform developement tools for .NET are not going to solve many problems. J2EE is technically superior to .NET. Regarding your statement SUN has a close relation with Apache but new headlines would make you think otherwise, 2 days ago sun rectified the JCP too please Apache concers you would be very happy to read the modifications because they affect open source and Java. Sun and blackdown work together really well, sun has helped blackdown release JAI and Java3D on linux. So what you are saying is not true anymore. Sun is one of the only big companies I have respect for. They refused to cooperate with Microsoft even if it would generate them more money. Unlike IBM HP and Compaq who hate Microsoft but need to have some communication with Microsoft. Things are changing, HP recently moved all internal developement to Linux, IBM is spending billions on Linux and Sun is going to offer linux distribution and low end servers running linux. I predict a big shift in the industry in the next few years. 1) Microsoft would keep on running into legal problems. 2) Companies realize that Microsoft is bad for doing business with. Example Nokia, Yahoo ... 3) University students start using Linux more and more (future developers) They are many factors that would show that Linux have a bright future while microsoft, they are running out of luck. |
| Sat 23 Mar | Devil's Advocate | i concur ciao |
| Sun 24 Mar | Mark W | 'Unlike IBM HP and Compaq who hate Microsoft but need to have some communication with Microsoft.' now we have brainless legal entities expressing emotions. |
| Sun 24 Mar | Akira | Mark, do you understand the negative effect of Microsoft monopoly on the computer industry? I guess not, I wish people think before voicing their opinions, but what can i expect from a joel reader! |
| Sun 24 Mar | Mark W | Funny Akira, I was thinking the same thing of you. |
| Sun 24 Mar | Sammy (wonders why he posts on a sweet Sunday afternoon) | A 'Joel reader.' That is what I'm reduced to. I never knew my existence was so sad. Like with Slashdot, the people who post aren't representative of the viewing population. In fact, you're the embodiment of an anti-M$ stereotype, in the same way us posters are Mammon-worshippers who try seducing smart, sweet boys with our filthy lucre. The rest are people who simply like entertaining reads that stay with them when they go back to their lives. Why do I enjoy reading Joel's missives? Because frankly he can't remember a thing. If you read his articles, you may notice there's not much he can keep up there in his head. He has two slots for remembering bugs; the flaws of Cue:Cats exceed his ability to grok multiple things. Therefore he is constantly rederiving things and seeing them anew. He's not off spouting something he read in a book, but instead using that damned brain for thought. If you have ever flipped through books by 2nd-rate engineers like Kernighan and Knuth, you've observed an odd humor where they readily admit the flaws and tradeoffs of their systems. No (trite) religion, just a little smile and chagrin. Honesty. I don't need to 'defend' Joel, because I (perhaps mistakenly) assume he can consider criticisms in the abstract. But I definitely won't accept stupidity from you. You can do better than that. |
| Sun 24 Mar | Mark W | All of the most functional people (and I mean both in terms of productivity and the emotional sense) acknowledge and accept their flaws and limitations. I think this is an essential component of being a human being, and a tough lesson for a lot of people.
'What flaws? I don't have any flaws! I'm right and you're wrong, if anyone around here is flawed it's you.'
I think you have to have been around the block a few times, and burned a few times to start acknowleding flaws. The acknowledgement seems to come with gray or thinning hair and extra pudge.
|
| Sun 24 Mar | Kendall Blaine Young | I'm sure that I don't 'know' what you mean by 'formal knowledge.' But, I do think that 'thou doest protest to much.' In the short time that I've 'tuned in' to this site, I haven't seen Joel say much of anything that I hadn't already said to many people close to me. But, I don't have the audience that he has. I think you're wrong to characterize those who admire his admonitions are somehow 'worshipping' him. Kendall |
| Sun 24 Mar | Mark W | You mean you don't have a Joel Shrine in your office? Where do people go to pray when their projects are going off course? I even have the little Joel shaped candles (very pricy, but there are cheap knockoffs in the discount software stores, I've heard they're less effective though). I hope to get one of the big Joel shaped candles, but Fog Creek hasn't released the proper dimensions for them yet. If your office is anti Joel, I posted an article on www.MarkOnJoelOnSoftware.com on how to create a desk drawer altar, and what types of incense to use to convert people. I've found that patchouli and dust from an old 5-1/4 floppy disk work best. |
| Sun 24 Mar | 'I cant believe Ive read it all'-bert | It is amazing how much can people write in just 4 days (and two of them in the weekend) about a non-technical topic (compare it to the 'ADO vs. ADO.Net' discussion, which started in the same day). |
| Sun 24 Mar | Mark W | Oh, but this is so much more FUN than ADO. Also I understand this thread. |
| Sun 24 Mar | Akira | Actually I wrote so much because Joel has been annoying me for a long time, and I finally had a chance to reply. |
| Sun 24 Mar | Akira | I was waiting till Joel's Forg Creek becomes a total failure to voice my opinion but his latest interview was too much and I felt the need to respond. FogBUGZ , please check check the open source bugzilla and even better scarab. I wonder why anyone would pay for inferior products. CitiDesk. No Comment. |
| Sun 24 Mar | Luis Alonso Ramos | >> Actually I wrote so much because Joel has been annoying me for a long time, and I finally had a chance to reply. << If it has been annoying to you for that long, why keep coming back to the site? >> I was waiting till Joel's Forg Creek becomes a total failure to voice my opinion << Again, if you can't stand Joel or Fog Creek, simply forget about him, don't read his articles and don't buy his software. Period. -- LuisR |
| Sun 24 Mar | Akira | Luis, you sure are really smart, if you read my previous post you would notice that I do not visit this site, but I get annoyed when other sites mention Joel which change my respect for that site. You wouldn't see a interview with Joel on dr Bob of software developement magazine or any respectable software magazine. |
| Sun 24 Mar | Luis Alonso Ramos | Akira, If other sites which you frequent and respect sometimes mention (most times positively) Joel's site, then he obviously must be doing something right. >> I get annoyed when other sites mention Joel which change my respect for that site << So, when a site you like mentions Joel, you *automatically* change your opinion on it? Hmmm, you must have something personal against Joel. -- LuisR |
| Sun 24 Mar | Akira | Yes him proclaminig that he is a software guru and ui guru plus him insulting the open source community which I am a member of. And his comments on Java and other topics. It is annoying to read someone who express so much confidence in his writtings when they are wrong and based only on personal experience. |
| Sun 24 Mar | Luis Alonso Ramos | Akira, You surely are *very* interested in this discussion. Not even 5 minutes ago I made my last post and you have already answered it. He never said being a software or usability guru. It is not the person who names himself a guru, but the audience that reads and likes his work. Joel on Software, a weblog, by definition is based on the author's personal experience. He has written many times that the articles represent his unique point of view, and may or may not agree with your point of view. It is OK for you to express your own point of view, but writing personal attacks is different. -- LuisR |
| Open and Closed | Fri 22 Mar | Benji Smith |
| Heres a tricky problem. Lets say that in my spare time I read some open source software and I spot a tricky algorithm that I really like. When I head back to my job, maybe one day Im faced with a task that would be perfectly solved using the ideas behind that algorithm. So I incorporate it into my companys software. I dont use any of the actual code from that original open source project. I rewrite the entire thing not based on my memory of the code, but on my memory of the concept of the algorithm. Am I breaking violating the license agreement of the open source code that I read? Are the concepts behind the open source project protected by the license, or just the actual code? What if my commercial project uses an entirely different programming language than the original? |
| Fri 22 Mar | Simon Lucy | Depends if you're standing on US soil or not. Algorithms are discoveries not inventions, except in the US. The actual text, the code, is copyright. Remembering how some piece of code works and re-implementing it yourself isn't (in my ever so hedged and disclaimed from any liability of you depending on it point of view) a breach of copyright. If possible though at least credit the original author with the idea in the code. If its in a liberal open source licence (ie not GPL) then include it as a separate source file with the licence intact for that source file. |
| Fri 22 Mar | Mike Swieton | Actually, the terms of the GPL and LGPL do not allow you to merely put it in a file. The LGPL lets you put it in a dynamic lib (dll). But if its GPL, you can't take the code. Now, imho, there is NO possible OSS author that would object to you using his/her algorithm, most especially if you gave credit. Your bigger problem I expect will be YOUR legal department. :) Only a few bitchy corporations have ever sued for algorithm stealing, iirc :) Anyway, read the relevant license. |
| Sat 23 Mar | Arthur Vandelay | Here is a programmer's understanding. Licenses like the GPL derive their strength from copyright law. The problems concerning use of algorithms stem from patent law. Therefore there is no problem, unless there is also a patent on the algorithm. |
| Longterm impact of .NET | Thu 21 Mar | Stephan |
| And now for something completely different (sorry, trolls): As I understood, with .NET it doesnt really matter which programming language you use, since in the end youll get MSIL anyway. Furthermore you can derive from .NET components no matter if theyre programmed in C#, VB.NET, C++ with Managed Extensions... Do you think this will change the way we use different programming languages. Is it just a question of personal taste? What about using different programming languages within the same project? |
| Thu 21 Mar | razib khan | it is a matter of personal taste to some extent already. .NET makes it a difference of degree rather than kind, it might exacerbate a trend that exists already-but it won't create a sea change (let me qualify it as 'in my opinion'). i've read a crap-load of .NET articles in the past month or so. my impression that it will be an evolutionary advance-rather than a revolutionary breakthrough (makes things we do today far easier, rather than a whole new paradigm). so i think it will be a factor in the evolution of specialized programming languages (for instance, Perl is traditionally a language geared toward regexp and command line tools-but now they have visual Perls-Java added regexp in 1.4, and so forth) developing into general purpose languages that reflects a convergence in function though a maintenance of stylistic differences. personally, i can't live without {} and ;, so i know where i stand. |
| Thu 21 Mar | Ged Byrne | The 'Language Independant' aspect of .Net isn't new. In ASP you can use either VBScript or Javascript. You can even add PHP or Perlscript. The strange thing is that everybody uses VBScript. This has always puzzled me. At my place we have to use VBScript on our ASP code, company standard. Yet we also have to use Javascript on the client code. Surely it makes more sense to use Javascript at both ends - then you have to deal with only one language. As it stands I'm switching between the two, which isn't ideal. So I think that everybody will just use C#, because thats the recommended language, except for those that have migrated using VB.NET. |
| Thu 21 Mar | Ben | Your choice of language may also depend on what everybody else is using. For instance if there are thousands of tutorials on every aspect of programming in C#, but developing in JScript on the .NET platform isn't well documented, you may find developing in C# easier. |
| Thu 21 Mar | Mike Gunderloy | If there's anything new in the .NET approach to multiple languages, it's that you can use the languages very closely together. It's more than just being able to call a function written in C# from a VB .NET client; you can actually subclass a C# class with VB .NET code. If there's another system that offers this, it's news to me (though I wouldn't be surprised). This is much deeper language integration than just hosting multiple script engines in classic ASP. On the other hand, the 'language independence' has been blown a bit out of proportion by Microsoft's PR machine. The design of the CLR (Common Language Runtime) imposes some limits on what a language can do and still be a first-class .NET language. Plus, how often do you NEED to derive a class from someone else's source code in another language? As to the long-term impact...too soon to tell, of course. I switch back and forth between C# and VB .NET depending on the project. But then, I've done that in other language for years, before .NET appeared on the scene. |
| Thu 21 Mar | razib khan | on using javascript on server-side and client-side for ASP-the reason against this for some people is that it can be confusing for some people to switch between two modes of using javascript, and using vbscript gets rid of the confusion. i always thought it was a lame excuse, but ppl use it nonetheless (i think it applies to newbies-i always habitually add ; at the end of a line of vbscript when i first use it after a long break) |
| Thu 21 Mar | Richard Caetano | Just because they all compile to IL doesn't mean they compile the same. Here's a recent example: http://www.stronglytyped.com/Articles/fog0000000032.html Peter Drayton posted the teaser...very interesting. http://www.razorsoft.net/weblog/ |
| Thu 21 Mar | Philip Rieck | I switch depending on what I'm doing now (VB.NET to C#), but I could stay in one and still get things done - it's mostly switching just because I can. On the 'how often do you NEED to' subclass or inherit from someone else's code, it's not that I have needed to, but I am guessing that component vendors will eventually use this to great advantage: ship the widget assembly and let the customer (developer) inherit and extend: or allow your widget to graph out a collection of wonkets, or any other object a developer wants to put in, as long as they implement IWonket or inherit from wonket (perhaps nifty functions there). It's a simpler step from the current 'implement this COM interface' that some windows things do, and it has no horrible language interactions. I do agree that it's going to be a more evolutionary process, because people (like me) will take steps down the wrong roads because we can - but eventually, .NET will be a pretty langauge independant system. Hopefuly, employers will know that a C# guru will do pretty good with VB.NET, too. |
| Fri 22 Mar | Szasz Attila | A thought that crossed my mind: if C# is case sensitive then you can declare two classes with same name only different case. But then, when calling from VB (that's not case sensitive) which one will be called? I have'nt tried this yet. |
| Fri 22 Mar | Ian Lowe | Szasz, The CLR mandates that any externally callable (ie, non-private) members' names must differ by more than just case. So, even though C# supports case-insensitivity, exposing multiple members or classes that differ only by case will break CLR-compatibility. |
| Fri 22 Mar | Mike Gunderloy | VB will call whichever version is declared first in the C# namespace. It won't see them both. |
| Fri 22 Mar | Igor Krivokon | Some not-so-obvious things about .NET and language interoperability: 1) CLR has some features than are not accessible from C# or vrom VB.NET. If you write in IL assembly, you can access all the CLR features. Example: C# has 4 acess types (public, private, protected, internal) while CLR has 5 (4 + 'protected internal'). 2) From the other hand, to enable cross-language interoperbility, the code should follow CLS (Common Language Specification) standard, which is usually a subset of a CLR-based language. Example: Int32 is CLS type, UInt32 is not (but it's available in C#) |
| Sat 23 Mar | Kenshi | I think MS loved to trumpet that whole language interop stuff just to make .NET sound cool, and to poke Sun in the eye for their 'Java everywhere' stance. .NET just seems like COM version 2. Write components, use them in any language. Sure, in .NET you can inherit classes across languages etc. but do you really think thats a *good* idea? |
| Joel: Your all your own individuals... | Thu 21 Mar | Ged Byrne |
| Crowd: Were all our own individuals. Joel: I havent yet written the article that says that if you cant think for yourself, no amount of methodology is going to save you. Crowd: If we cannot think for ourselves, no amount of methodology is going to save us. Joel then burst into a renditions of Always look on the bright side of life |
| Thu 21 Mar | Simon Lucy | rhubarb, rhubarb, mutter, mutter |
| Thu 21 Mar | Robert Moir | splitter! |
| Thu 21 Mar | Mark W | 'He's a programmer and he's okay. He works all night and he sleeps all day...' |
| Thu 21 Mar | Jeff Darcy | Joel: You are all individuals. Adam: I'm not! |
| Thu 21 Mar | Reg | What's Joel ever done for us? |
| Thu 21 Mar | Damian | He's not the messiah He's a very naughty boy |
| Thu 21 Mar | Andrew Simmons | Fisk eunt domus. |
| Fri 22 Mar | Tony | Of course, being an American, he may not understand this python stuff at all, but hey, is'nt python a programming language too, he'll probably understand that OK. |
| Fri 22 Mar | Christopher Wells | -What's Joel ever done for us? -Well he's given us hope; techniques; insight; amusement; relief; software ... -Yes yes but apart from *that*, what's Joel ever done for us? |
| Fri 22 Mar | Ged Byrne | Its would seem that the people here just love to quote, full stop. |
| Sat 23 Mar | Mark W | 'Its would seem that the people here just love to quote, full stop. ' (sorry, couldn't help it) |
| I hope Fog Creek succeeds hugely... | Fri 22 Mar | Aaron Lawrence |
| ... because growing from a small company to a bigger company is a huge test for anyone, and hence a good test for Joels philosophies. Suddenly you cant turn around and talk to your team, there are instead 8 buildings with dozens of people in each, some working in languages you dont understand, dozens of people just managing finance and staff, a legion of end-user support staff... Best theory Ive had so far is that you (or your products) get bought out by a big company thats already figured all that stuff out - or at least, if they havent, they still pay you great widges of money :) Good luck Joel ;-) |
| Fri 22 Mar | Mark W | And JoelonSoftware.com will read as some sort of programming Mein Kamf? Imagine if Bill Gates had a blog. |
| Open source vb projects? | Thu 21 Mar | Bill Harkless |
| Does anyone know of any open source vb projects out there? We are moving from C++ applications to vb applications at work and seeing some good code would really help me learn vb. I am seeking some professional ( or as close as one can get ) projects not some weak example code snippets. Thanks. |
| Thu 21 Mar | F.J. Weiland | Meaning no disrespect, but you got my curiosity going - if you all are already set and going on C++ (an assuption on my part), why on earth would you be moving to VB? |
| Thu 21 Mar | Bill Harkless | I wish I knew... management. I should have put my name as Dilbert. |
| Thu 21 Mar | James Montebello | Moving from C++ to VB: For the same reason people move from C++ to Java, or from C to Perl, or, for that matter, from assembly language to C. One can typically develop working applications with fewer bugs in a much shorter timeframe using a higher level language. If you don't absolutely need the performance advantages of the lower-level approach (and very few applications need it in more than 5-10% of the code, if that), then it's a net win all the way round. |
| Thu 21 Mar | Richard Caetano | Check out C#. You'll get the rapid dev cycles like VB and you'll leverage your C++ skills. |
| Thu 21 Mar | Ged Byrne | Maybe your manager has been reading Joel, since making C++ programmers use VB is one of his doctrines. |
| Thu 21 Mar | Ged Byrne | Theres a list of links at http://www.vb-bookmark.com/vbSourceCode.html There was a vb open source project, but they seem to have disappeared. Also take a look through the lists at http://www.programmersheaven.com/zone1/index.htm |
| Thu 21 Mar | Bill Harkless | Personally, I dont care what they hell I code in. It is just a pain to take the time and learn something new again. One spends so much time getting good at one skill set, and then... |
| Thu 21 Mar | Ben | I guess this would be a pretty good place to start - http://sourceforge.net/softwaremap/trove_list.php?form_cat=186 686 open source VB projects |
| Thu 21 Mar | Andrew Simmons | There are a lot of useful small things at KArl Petersen's site: http://www.mvps.org/vb/ along with some interesting papers. |
| Thu 21 Mar | Guy Incognito | Maybe it's time to look for a new job? It's just my opinion, but I think a manager choosing which language established programmers are going to use is a bad descision. -- Or maybe tell your manager to look for a new job! :) -- What type of applications are you going to be building? Like someone else suggested, maybe you could persaude the manager to choose C#, Java or Managed C++ over Visual Basic. Not that there is anything wrong with Visual Basic though! |
| Thu 21 Mar | Leonardo Herrera | Hmm... Good Programmers do programming. The most valuable skill set is the programming itself; not 'VB programming,' not 'C++ programming,' no 'Java programming.' Just plain programming, a set of many skills including abstraction, problem solving, algorythms, and, most important skill of all, smartness. So, if they are good C++ programmers, to me it's a good decision move to Visual Basic (the productivity will boost like a rocket.) Not a decision that I will make myself, mind you, but a good decision nonetheless. Personally, I prefer to use a language that can be considered high level but still has many low level features (of course, I mean Delphi) |
| Fri 22 Mar | Bill Harkless | I certainly did not intend for this to be a language debate. Our company simply needs to develop an app for a customer quickly, which honestly vb would be perfectly for. I compare programming much like the game Go, 'It takes a minute to learn and a lifetime to master.' Now, I know that programming certainly takes more than a minute to learn, but it is the nuances and picadillos that only experience can teach. My question was intended to find some resources that would help me learn and become a better vb programmer. For C/C++ projects there are PLENTY of open source projects that one can learn from; but for vb... less so. Which I think is interesting because I have read that there is more Vb code out there than any other language. Thanks all that sent links and suggestions. |
| Fri 22 Mar | Christopher Wells | I'd second the suggestion of using MVPs' code as a starting point. E.g. googling for 'MVP VB' turns up http://vyaskn.tripod.com/vbres.htm |
| Fri 22 Mar | Robert Moir | Don't trust all the MVPs, they even let me be one for heavens sake! |
| Fri 22 Mar | Christopher Wells | > Don't trust all the MVPs, they even let me be one for heavens sake!
|
| Fri 22 Mar | Robert Moir | 'Rob, was yours a seriously-intended caveat?' Yes, albeit in a lighthearted way. I've been an MVP for years on Windows servers, NT Server, 2000 server, .net server, and by extension, xp pro, win 2000 pro, nt worksation. I also 'cover' proxy servers, web servers, email technology. I'm not a coder though, but like most really good network admins/designers I can knock out a bit of code to do a job. Any code you found on my website would probably do the job I claimed it did, but I'd shudder to think that anyone used it as an example of how to code. Felix, of course, is a bona fide code guru... |
| Fri 22 Mar | Robert Moir | Doh! Hate to follow on from myself, but wanted to add about code gurus, imho Karl, whose site was referenced earlier, also qualifies. |
| Sydney Morning Herald Review of CityDesk | Wed 20 Mar | Charles Monk |
| Hi Joel, I thought that the SMH piece provided a better explanation of what the CityDesk software is for than appears on your web site. I guess you wrote your own pages yourself, so I am sorry if this is upsetting to hear. Maybe I am just thick, but I honestly had no idea what a Content Management System was. Over the last few months, I must have read over 50 pages of stuff about software development on your site, but on my first visit, when I glanced at http://www.fogcreek.com/CityDesk/ it just didnt grab my interest at all. I scanned the first ffew lines, encountered CityDesk brings everybody the power of industrial-strength content management systems, thought WTF?, and hit the back button. The SMH journo managed to stick an definition of CMS into the opening paragraph without it being boring, and made me realise that your software might be relevant to my work. Ill go and download the demo now. Meanwhile, I suggest that you adapt the content of your CityDesk homepage to make it more like the SMH piece. After all, with your software that should be a quick and easy job, shouldnt it? ;-) Best wishes, Charles Monk |
| Wed 20 Mar | Ryan | Couldn't agree more. Joel may be the UI Jedi, but the Fog Creek crew sure could learn something about Marketing and Sales. Get CD onto magazine CD's. Have it reviewed in the computer press. Get the word out! I was trying to get info about CityDesk before it was released - nada. No one would say anything. I've seldom seen develpers so reticent and users so excited about the product. Whether that excitement can translate into sales to Big Corporate Customers is still in the air. It's called a Content Management System, but it has no workflow management - so it lacks some of the key elements of a Content Management system. I don't know if the corporate crowd will really go for it for that reason alone. Marketing CD as 'a Web site editor' may not be a bad idea. There are several things that they could do with the site: 1. Make a 'benefits' page as well as a 'features' page. Benefits for non-techies. Features for techies. I suggested that months ago. No response. 2. Make a *real* 'CityDesk for Geeks' page. http://www.fogcreek.com/CityDesk/fog0000000068.html is actually a 'CityDesk for Beginners' page. I would expect a detailed description of the database in the 'For Geeks' explanation. While Joel has a Microsoft background, his company often seems to be totally in the dark about marketing and promotion. See .Net. No one can explain what it is, but you are convinced from the marketing that it's somehow something great. It's great to have such a wonderful product, but it's equally wonderful to tell people about it in an understandable way. I hope Fogcreek can achieve the success their thinking and technology deserves, while at the same time knowing that it ain't the companies with the best technology that have all the money . . . |
| Fri 22 Mar | Oz | Gee, those Aussies are smart, no wonder they win all the Oscars. |
| Resize and close window | Tue 19 Mar | razib khan |
| I was wondering-Ive seen this mentioned in other places. In Windows (at least Windows 98 which is the only one I have regular contact with), why is it that resize and close window are right next to each other on the top right? Ive gotten better at not mistakenly closing the window-but I know plenty of people that still do it by mistake. Is there some rational reason? It seems like this is a UI problem thats just stuck. |
| Tue 19 Mar | Roman Eremin | The 'rational' reason is that graphic designer wanted 'consistency' and uniformely placed these squares with equal separators. This is a kind of consistency that kills me. Very often when I see a stupid UI decision, explanation from developer is 'this is the way we have it everywhere in our app'. |
| Tue 19 Mar | Mark W | This is sort of a legacy thing, and I KNOW I'm getting the sytanx wrong so someone correct me, but the symbols represent the keystrokes required to perform those actions... |
| Tue 19 Mar | Mark W | Also, on my windows NT there's a pixel or two more between the two resize buttons and the close button. |
| Tue 19 Mar | Roman Eremin | 'Also, on my windows NT there's a pixel or two more between the two resize buttons and the close button.' But not in my Windows XP. Consistency has won! |
| Tue 19 Mar | Dave Fischer | 'but the symbols represent the keystrokes required to perform those actions... |
| Tue 19 Mar | Rich | I'm really not trying to start an OS war here, but did those icons come from NeXT? A major difference being that the window sizing icon was as far away from the close button as possible. Screen shot at: http://www.osdata.com/system/ui/screens/snext.htm |
| Wed 20 Mar | Banana Fred | I think Windows 95's choice of window button placement can be somewhat forgiven. In Windows 3.1 and 95, there is the 'system menu' in the upper-left corner of each window. Windows 3.1 then had the minimize/maximize buttons in the upper-right window corner. So the question for Microsoft's graphic designers, given that UI compatibility with Windows 3.1 is paramount, should you place the new window close button [X] on the left near the system menu or on the right near the minimize/maximize buttons?? I don't think either choice is a safe one.. Windows 3.1 screenshots: http://www.bris.ac.uk/is/selfhelp/documentation/win-i1/win-i1.htm Compare this to Mac OS X's Aqua windows. The minimize/maximize/close button are indistinguishable, except for their color! Mac OS X screenshot: http://www.apple.com/macosx/technologies/aqua.html |
| Wed 20 Mar | DB | Nice. Anybody else reminded of the three sea-shells in 'Demolition Man'? |
| Wed 20 Mar | Jan Derk | I agree it's irritating. That's probably why many people who know about prefer to double click the Caption bar to maximize or restore the window. It's much easier because of the larger area and does not have the danger of clicking the close button. What I find at least as irritating is that the buttons on the taskbar (including the startbutton) have a one pixel space with the screen edge. To answer the question on why this is so bloody irritating (most Windows only users aren't even aware of the issue) read question 5 in Ask Togs 'A Quiz Designed to Give You Fitts': '5. Explain why a Macintosh pull-down menu can be accessed at least five times faster than a typical Windows pull-down menu.' http://www.asktog.com/columns/022DesignedToGiveFitts.html For more on this check out Fitts's law: http://www.asktog.com/basics/firstPrinciples.html#fitts's%20law |
| Wed 20 Mar | Ged Byrne | I think one of the problems is that windows came to the GUI market quite late. Other GUIs (Like MAC and NEXT) already had the best options, and Windows had to do thing differently to avoid Look and Feel issues. |
| Wed 20 Mar | DB | Personally I disagree with the menu placement criticism. I'm lazy. My mouse mat is not the size of my desk either. I don't want to move my hand much, so large mouse movements involve a succession of small movements, with the mouse being lifted up and replaced where I started from (I've only just realised I'm doing this). So to go from the middle of my 1280x1024 screen to the top where the Mac boys want the menu to be, I need 3 to 4 mouse movements. To go to the menu bar on the explorer window I'm currently typing into... that I can do in one or two movements. Even if I overshot I've done no worse, and usually better, than the amount of movements I'd need to get to the screen edge. What stunned me was, as pointed out earlier, that the Aqua GUI had three *identical* and *blank* buttons to perform three different tasks - the only difference between them being their colour. This sort of thing is a triumph of style over useability and makes it hard to listen to the Mac bunch going on about how Windows does it 'wrong' and MacOS does it 'right'. There are lots of GUI elements that work well in both these systems - sadly that gets hidden in the 'our way is best' arguments oh-so-often presented. |
| Wed 20 Mar | Jan Derk | DB wrote: 'Personally I disagree with the menu placement criticism.' That's not what I meant. I guess I did not make my point clear enough. What bothers me is the fact that the buttons in the task bar are located 2 pixels from the screen edge. It does not seem much but it's the difference between a 22 pixels and infinite target height. The Apple menu items are placed directly against the screen edge to make them infinitely high. Here's an example. Let's say your cursor is near the center of the screen and you want to click the Start button. Most users will quickly move the mouse in the lower left corner and slow down when arriving at the location because the target to hit is quite small (55 pixel wide and 22 pixels high). Without visually focussing and carefull mouse movements it is practically impossible to hit that target. Now imagine that Microsoft in all its wisdom had decided to place the Start button right against the lower left screen corner. If they had done that the Start button would have had infinite height and width. You could have moved your mouse at 200 mph to the lower left corner with your eyes closed and still hit the Start button with a 100% success rate. Just try it. (spoiler: you won't succeed because you will be clicking the useless left bottom corner pixel) Not using that most expensive piece of real estate (the screen corner pixels and the screen borders) is a very serious design flaw in Windows and makes hitting the Start button or any Task bar button 5 times as slow as it could have been. This is one of the reasons why ages ago Apple put their menu's right against the top of the screen. If you don't believe me, just ask Tog ;) |
| Wed 20 Mar | Malcolm | Jan, I guess you were sending pyschic waves to Microsoft, because in Windows XP the start menu, and indeed all the task bar items, outside of the system tray, can be invoking by hitting the last pixel on the screen. |
| Wed 20 Mar | Jutta Jordans | >Jan, I guess you were sending pyschic waves to Microsoft Well, maybe the people at MS just read Tog or Joel :-) You do not need to get esoteric to gain wisdom. Good to see that they are able to learn, though, isn't it? Have fun, |
| Wed 20 Mar | Jan Derk | Malcolm wrote: '[..]in Windows XP the start menu, and indeed all the task bar items, outside of the system tray, can be invoking by hitting the last pixel on the screen.' That's really good news. I'm a bit ashamed to admit that I worked with an XP computer for half an hour and did not notice that. Like Jutta says it's good they learn, although it should have been done W95 already. What I did notice in WindowsXP is ClearType. If you have a laptop or an LCD screen with Windows XP, switch it on right now (it's somewhere in the advanced Desktop properties). Cleartype is a subpixel type anti-aliasing that makes your fonts look marvelous. The improved readability will reduce eye strain a lot. Gibson has some gif images which show you how it looks on any Windows computer (the greatness will only show using an LCD display): http://grc.com/ctwhat.htm Here's the MS page: http://www.microsoft.com/typography/cleartype/ Nielsen even claims that you will save $2000,- a year if you use it: http://www.useit.com/alertbox/20020203.html The bad news is it will only work with LCD's and that it is not switched on by default. Cleartype alone is for me enough reason to get an LCD and upgrade to XP. |
| Wed 20 Mar | pb | DB, that's baloney! I can easily move over the entire area of my 1600 x 1200 screen in one motion, even in Windows which has much less refined mouse movement. |
| Wed 20 Mar | Christopher Wells | > DB, that's baloney! I can easily move over the entire area of my 1600 x 1200 screen in one motion, even in Windows which has much less refined mouse movement. It depends on how fast your mouse is (in NT v4 that's setup using Control Panel/Mouse/Motion). |
| Thu 21 Mar | DB | Plus as I said - I'm lazy. Why move my hand a few inches when a few cm will do, especially when I've got paper all over the desk impeding on my mouse mat? :) |
| Fri 22 Mar | Mark W | 1) DB, try a trackball. A bit of getting used to but no picking up and moving it. I've all but forgotten what that's like. If you're that lazy, it'll be great for you. Moving your thumb is a lot less effort that moving your whole arm, and you can keep your arm on the desk rather than hovering.
2) Is it just me or is |
| Fri 22 Mar | B | > 5) That must be what I was thinking of. > The upper left hand Win31 dash was meant > to look like a space bar. I was sure there > were two others though. Here's a Windows 3.1 screenshot that shows an MDI frame and an MDI child. The frame has a 'space bar' graphic indicating ALT+SPACE opens its menu, and the MDI child has a 'minus' graphic, which means you can use ALT+- key combo to open its menu. http://www.valt.helsinki.fi/atk/basic99/win311.jpg I don't recall a third one. One of those UI design features that never really took off. Reminds me of the 'menu item ellipsis' idea. Nobody does it right, including Microsoft. Wouldn't it be fun to start a topic to see how everyone thinks it is REALLY supposed to be used? |
| specific problems with Java Swing UI | Mon 18 Mar | Stan Krute |
| I noticed in Joels booklist a mention of problems he has with Suns Java Swing UI. Anything specific that folks dont like about it ?? (I work with Java Swing these days, and find it quite serviceable, but would love to hear other folks thoughts ...) Stan |
| Mon 18 Mar | rODbegbie | 1) It's slow. 2) It's buggy. 3) It doesn't look and behave the same way as other Windows applications. And I say that as an engineer who got his current job because he knew Swing. It's even worse when you try to apply the Windows look & feel. Now you've got components who kind-of look like Windows components, but don't behave the way you expected them too. Some of it is great -- Layout Managers rock my world -- but I'd rather work in .NET's Windows Forms, these days. rOD. |
| Mon 18 Mar | Mike Swieton | My thoughts: on a FAST system, it runs ACCEPTABLY. This is a box with lots of ram in my particular case. Now, on slow systems, it's downright painful. I use it for two reasons, however: 1) It's easy: learning to do anything major is relatively trivial. Compared to, say, the Win32 API.... 2) Portability: I like writing small apps in linux and not worrying about moving it to a windows system. Those two are the only advantages I can see, and I don't really think they are as important for commercial apps: I've done mostly quick hacks, and for that and being able to require 128mb ram, it works fine. But I wouldnt sell something like that :) |
| Tue 19 Mar | Ged Byrne | Heres a specific example: The Open File dialog does not allow me go to a folder by typeing in a fully qualificied path. If I want to access a network drive I have to map it first. On our NT network I can't just type \\NetworkServerName\ShareName$ when saving, and I will then be able to browse from that folder. In Swings apps this is not possible. I used to use an excellent Java editor called Jext, but this one little frustration made me have to look elsewhere because there just aren't enough drives mappings to go round. |
| Tue 19 Mar | Richard J. | I use it all the time too. Apparently Swing in JDK 1.4 is much better performancewise than the previous releases, but I haven't tested it personally. 1. Fonts render to different sizes on different platforms. This is because Swing uses the native renderer on each system, presumably for performance. Normally, people say it's not a problem if you stay away from null layouts, but there are times when you must simply use a fontsize conversion table. 2. Sun gets in the way of a successful Java (and by extension Swing) all the damn time. Swing *can* feel right on any platform. Take a look at Mac OSX -- they worked closely with Apple, including giving them a consultant, and Java is integrated beautifully into that OS. Should Sun work with the Beast in Redmond? I don't know, but they also piss off the opensource community, who could have made it their best interest to create a great Windows L&F. No doubt, it could be done so that the L&F could stay on its own platform to avoid legal issues. |
| Tue 19 Mar | Timothy Falconer | To answer your Swing file chooser problem, use a FileDialog instead of a JFileChooser. Yes, this is a peered AWT component, not Swing one, but it solves your problem. |
| Wed 20 Mar | Simon Lucy | On this Windows 2k workstation I run with 113% sized fonts (so I can read them), this screws Forte and Net Beans dialogs so that you have to aim half a line below the target to hit it, and if you resize the dialogs they snap the depth completely wrongly the other way. I guess this is Swing that's at fault is there any fix? |
| Wed 20 Mar | Richard J | Hmm, testing larger fonts out on Win98 had no adverse effects. I will try to reproduce this when I get access to a Win2k machine, since this certainly impacts me. |
| Thu 21 Mar | Simon Lucy | This is running at 1280 x 1024 setting to use large fonts (125%) has the same result. Its a proportional bug so I guess 1024x800 and 800x600 will fit. |
| Thu 21 Mar | Ged Byrne | Timothy, Thanks for the tip. |
| Fri 22 Mar | Simon Lucy | My problem seems worse using WindowBlinds to furkle with the windows skin, not using WindowBlinds improves things a lot but the basic problem remains. So it may well be that XP gives a similar problem though I'm staying away from XP as an OS. |
| My First Vacation In 9 Years! | Mon 18 Mar | Norrick |
| Im just imagining everything. Theres nothing wrong with the software development industry. Theres nothing wrong with the way my company manages projects. The software industry has no downsides. Its all in my head because I need a vacation. And if I simply take a vacation, < a href=http://www.processwave.co.uk/Essays/BackgroundWhatAreWeFixing/BackgroundWhatAreWeFixing.htm >everything that I believe to suck about this industry will heal itself in my absence. I will return to a veritable shangri-la of an industry, complete with promises of eternal life upon project delivery and 79 virgin interns to help me write my code. At least, thats what those of you who mercilessly ripped into my dissertation on what sucks about being a developer seemed to imply. Well, guess what? Im going on vacation! 3 weeks. And Im not going to touch a keyboard the entire time. Well, maybe once or twice... In all seriousness, this is going to be great. Im going to box every day rather than my usual twice per week. Im going to play golf with a fat friend. Im going to give my 2-year old boy a double serving of playtime. Im going to tan. Im going to make love to my wife. Im going to visit my parents new home in the mountains. Im going to Disneyland. And Im going to savor every minute of it, just in case I cant get another vacation for 9 more years! And when I come back, everything will be perfect, right? I mean, thats what you guys said. If I go on vacation, Ill return to find that salesmen have stopped giving estimates without consulting technical staff. Ill return to find project managers that say No! to unrealistic deadlines. Ill return to find developers who cheerfully document their code. Ill return to find that the entire way the software development world works has been turned on its head, all because Norrick finally took a vacation. Itll be great! All the co-workers who have been suffering alongside me will say, Why did you wait so long, Norrick? We were just waiting for you to leave before we started doing things right! You should have done this years ago - we feel great! Thanks!. Why, Ill be the hero of the entire industry! Well alright...maybe not. But Ill certainly feel much better. MUCH better. And maybe, just maybe, Ill have the strength to continue fighting the good fight against the forces of apathy and stupidity. Plus, Ill have a chance to find out how smart I really am - because my company is putting me on the Project Manager career track! My training starts when I return, so Ill soon have a chance to see life from the other side of the fence. More money, more power, more stress. Story of my career. And I wouldnt have it any other way. But for now, Im just looking forward to that golf game...and some quality time with my wife. ;) |
| Mon 18 Mar | Norrick | Oops...that's not how you insert a link, now is it? *ashamed* |
| Mon 18 Mar | Sasa Velickovic | You poor US citizens only having so few days off... In Europe we won't satisfy without at least 4 weeks a year, but rather 6 ;) I think I read you get this amount of vacation working at Joel's, too. I really believe it is important for total recreation and getting back to work with _full power_... I hope you will have the best time of your live and I hope all your wishes get true Greetings Sasa |
| Tue 19 Mar | Tony | Sorry to be a downer but you will probably find that when you come back in 3 weeks your software skills will be hopelessly out of date and it will take you another 9 years to find a job. Also, while you're away, an underling will start to pick up some of the tasks that are currently your responsibility and your bosses will say, hey, how come we are paying Norrick $x per year and the said underling $x/2 per year and he is able to do the same job. They will then start to allocate trivial meaningless jobs to you and super interesting current technology jobs to the underling (a smarmy nerd with 6 months experience and a huge ego) in the hope that you will go out of your mind with boredom and quit. You will end up having a fist fight in the office with the said underling and will be sacked for unacceptable behavior. Then your wife will leave you. Have a nice vacation. |
| Tue 19 Mar | B | Congratulations! >There's nothing wrong with the software development industry. There's nothing wrong with the way my company manages projects. The software industry has no downsides. >It's all in my head because I need a vacation. Actually, I think a lot of it is in your head. You make it sound like you got railroaded into all this crazy stuff, but it sounds more to me like you signed up for a lot of it. You just need to say NO more! No! I'm not agreeing to that milestone! No! I'm not delaying my vacation because of the 'important' presentation! Decide what is important to you and stick to your guns. |
| Tue 19 Mar | Norrick | And the mean-spirited posts begin anew...unbelievable. |
| Tue 19 Mar | Tony | Sorry Norrick, I'm only joking, of course. I am into my 3rd week of holidays/unemployment after a 2 year contract where I only had a week of holidays. I think I only had a week of between that contract and the last one. I heartily recommend time off. Its the best thing I've done for years. I'm starting to realise that one's head becomes filled with all sorts of rubbish if one treats oneself merely as a working drone. I started off, like yourself, playing golf etc, my wife and I took a trip to Australia and New Zealand. I was worn out. I'm almost looking forward to the next project, but I'm in no hurry. Have a well earned break. The world keeps turning. |
| Tue 19 Mar | Jutta Jordans | Hi Norrick, I wish you a great time off. Will you travel anywhere? Have fun, |
| Tue 19 Mar | Sammy | Hmm, could you do one last thing before you head off into the Great Vacation? Just mention how people can disagree with you, respectfully holding diametrically opposing views, without 'mercilessly ripping into you.' By the way, have a good time. Fat friends are the best. I admit to a bit of stress, and I'm apparently trying to become one to all my friends. |
| Tue 19 Mar | Ged Byrne | Norrick, Personally I totally agreed with your 'Programming Sucks' article. Sometimes it seems to me that some of the posters here live in a better world that I can only dream of. My reality is much closer to Dilbert. |
| Tue 19 Mar | Norrick | Sammy, be real here. I said you guys ripped into my dissertation, and you did. You're not fooling me! I'm not traveling anywhere farther than an hour's drive. I commute 40 miles to work every day and I want to spend as little time in the car as I can while I'm off. Car = bad. Taking a walk in the sun = gooooooooooood. Besides, I live in a beach town in Southern California. Where could I travel on vacation that would be any better? ;) Well, OK, the Canary Islands maybe... |
| Tue 19 Mar | Sammy | You just can't stop insulting and attacking... Unbelievable! ;-P |
| Tue 19 Mar | Norrick | Heh. |
| Tue 19 Mar | Sammy | > There's nothing wrong with the software development > industry. There's nothing wrong with the way my > company manages projects. The software industry has > no downsides. FWIW, I believe I 'get your point.' Cool competence is always much easier than frenzied incompetence, and people seem afraid to believe it. But we're all (umm) professionals here, and part of that is knowing overwork leads to obstacles in finding solutions to things. At least our books say that. Now, maybe there is no rational solution, and anger is really the true solution. But the dialog isn't killed. It can wait until you're done with the vacation. I think your perception will be boosted. If not, hey, it was worth a shot. Advice is so easy to give. You know, I had to be forced into a vacation. And unlike you, I really did go to the Canary Islands. ;-) I thought it was crazy extravagant, but in reality it wasn't that expensive. And I think it made me deeper, because before I was really hardened, and maybe going for a train wreck. I brought a TAOCP with me, so I was cheating a bit... My lady friend was none too pleased, but it was just for the beach. The vacation after that, I spent studying. I now think they're very important, because you get to see the forest and then focus on any particular tree. You get to see how some things are irrelevant while others are at the heart. YMMV, since you're playing golf. |
| Tue 19 Mar | Timothy Falconer | Say, when Europeans talk of 4 to 6 weeks of vacation, do they also get 8 to 15 legal holidays and 5 to 15 sick/personal days? In other words, if Europeans took every day off available to them, what would it add up to? I always hear about the vacation days, never the rest. |
| Wed 20 Mar | Jan Derk | Timothy Falconer wrote: 'If Europeans took every day off available to them, what would it add up to?' The answer is you really don't want to know. When I still used to work for a semi-government type organization in the Netherlands everbody got (before you ask: yes I found it ridiculous too): - 24 days vacation. - 20 days extra because we had an official 36 hour workweek while we worked 40 hours. Don't ask me to explain this. (In addition, nobody worked longer than 40 hours). Some people choose to work 4 days of 9 hours per week instead of taking the additional 20 days. - About 5-8 legal holidays (New years day, Easter, Xmas, Queens day, Liberation day, etc.). - When you're sick, you always get paid 100%. - I have no idea what a personal day is, so I guess we don't have those. - If you get a child you get 1 day per week off for 15 months for very little money less (parental leave). Note, this is for both men and women. It starts again with a second, third, etc child. I almost decided to get lots of children ;) A friend of mine calculated once that some of our colleagues were on leave for more than 40% of their time. My girlfriend and I could travel through Africa for 6 weeks using a single year's holidays and still have plenty of days left. US employees might get paid more, but we have all the fun ;) In commercial companies it's a little more realistic though. Those people generally get 23 days vacation and 5-8 legal holidays. |
| Wed 20 Mar | Jutta Jordans | >Say, when Europeans talk of 4 to 6 weeks of vacation, do they also get 8 to 15 legal holidays and 5 to 15 sick/personal days? In other words, if Europeans took every day off available to them, what would it add up to? I always hear about the vacation days, never the rest. The number of public holidays differs a little from country to country and from state to state, in the part of Germany where I live, we have 12 legal holidays if I counted rightly. I don't know what you mean by sick/personal days. I don't think we have that concept. If an employee in Germany is sick, he goes to see a doctor and gets an 'attest' (don't know if this would be the same word in English). You are sick as long as you are sick, covered partly by the health insurance (which is obligatory in Germany and quite expensive) and partly by the employer, depending on how long you are sick. At my current job I have 26 days of vacation a year, all employees have the same number here. The job I had before that offered me even 33 days, but there was a considerably lower payment because of this. I still wanted it that way, because I am studying to get a CS degree beside work and needed some time for exam preparation. If you add up the public holidays and the vacation days, I end up with 38 days off a year. I heard that numbers are even higher in the Netherlands, Sweden and Norway, but I might be misinformed. Have fun, |
| Wed 20 Mar | DB | In the UK there are 8 'legal' holidays, most companies offer between 20 and 25 holiday days, and sick pay is 100% (and more importantly, doesn't involve any legwork on the part of the employee to get it) - but I forget how many days you can take sick in a year. Most companies will be thinking about sacking you if it's more than 10 or so, particular if you aren't covering yourself with a note from your doctor explaining that yes, your leg really did fall off and then get re-attached a week later. I also have no idea what a 'personal' day is. Just noticed my company has quietly dropped one day off our holiday entitlement without telling anybody... nice. |
| Wed 20 Mar | Norrick | 'A friend of mine calculated once that some of our colleagues were on leave for more than 40% of their time.' That goes a long way toward explaining the U.S.'s economic productivity AND heart attack rates compared to Europe's. |
| Wed 20 Mar | patrick | I believe that European workers are more productive than American workers. This might no be what the statistics say, but it makes a lot of sense if you think about it. If American workers are worn out 90% of the time then they obviously can't work very well. Well, maybe they produce a lot of useless code which would in fact mean that they are more productive, but it does certainly not mean that the quality of their work is at the same level as the European's work. Anyway, this is my personal opinion, not backed up by any facts - flame me if you wish. |
| Thu 21 Mar | Simon Lucy | Its not as simple as comparing statutory holidays and personal days against compassionate days, company sickpay and the rest. People in our trade tend to work long hours because its often a broken work pattern. Sometimes 2 in the morning is exactly the right time to work out a problem. Its also quite difficult for some (like my wife), to actually take all their holiday entitlement since there aren't enough people around to cover and as school holidays are always pretty much at the same time there's a collision. |
| Thu 21 Mar | Christopher Wells | > Its also quite difficult for some (like my wife), to actually take all their holiday entitlement since there aren't enough people around to cover and as school holidays are always pretty much at the same time there's a collision. My UK-based brother once had 9 months leave accrued (holiday, sabbatical, paternity leave) ... joked that he didn't want to take it all in case they discovered that they could do without him. |
| Fri 22 Mar | Timothy Falconer | Hmm... my company is doing better than I thought. We give 4 weeks vacation & 10 holidays (which you need to take when they show up), plus 4 'season days' (a week before or after winter/spring/summer/autumn equinox & solstice (our way around religious holidays)) and 1 year long birthday floater. No sick days or personal days. As we have complete flex time, if you're sick, you can work weekends or whenever to make it up, if you want, or you can use the days as vacation. 4 weeks + 15 days off = 35 days, or 7 weeks per year. From what I'm hearing, that's close to European standards, yes? |
| Best books for programmers | Thu 14 Mar | Cindy Brown |
| Code Complete. Read it BEFORE you learn how to program. Programmers Book of Rules by Ledin and Ledin (my version is 1979) ISBN 0-534-97993-9 Again, readi t BEFORE you start writing code for people. |
| Mon 18 Mar | Andrzej Kocon | A Discipline of Programming, Edsger Wybe Dijkstra, Prentice Hall 1976, ISBN 0-13-215871-X |
| Fri 22 Mar | Wei Wang | Software for use: that's the how-to book Alan Cooper talked about in 'the imates are running the asylum' and never wrote. |
| Patterns never took off? | Wed 13 Mar | Charles Miller |
| On the book reviews page, Joel says about Alexanders A Pattern Language, I think the patterns movement in programming never quite took off because it was an attempt to copy the form of this book rather than the wisdom of this book. I find this pronouncement a bit strange, because where I work, design patterns are ubiquitous. I cant move from the elevator to my desk without running into patterns. A lot of the time, design patterns are misunderstood or misused (the idea is not to take a bunch of square pegs and shove them in round holes, its just to recognise when the hole is square in the first place, and pick the right peg), but its very difficult to avoid them. Or am I just working in a weird corner of the industry? |
| Fri 22 Mar | David Clayworth | It seems to me that Patterns DID take off, but only very narrowly. Specificly, everyone is using the original GoF patterns, but nobody is inventing any other really useful ones, at least not in the actual software development arena. I did a quick web search, and only turned up a couple of pages that were not reviews of the GoF book, or pages explaining what patterns are, but not defining any new ones. There are a couple of 'Catalogs of Software Design Patterns', but most of them seem to have only the original GoF patterns or minor variants. Is it possible that the GoF actually identified all the useful ones? |
| Fri 22 Mar | Christopher Wells | > Is it possible that the GoF actually identified all the useful ones? There's a series of at least 4 books called _Pattern Languages of Programming_, apparently the results/proceedings of an annual conference. The patterns in them are more mixed than the GoF ones, with domains ranging from user input validation, real-time software, how to organize staff into various roles, a dozen or so patterns per book. I think the GoF identified core ones. |
| Languages to learn? | Thu 07 Mar | razib khan |
| I know this topic has been done before. But I want to go over it again. How languages should someone learn? Im asking because of this reason. I work mostly in Perl and Java. I dabble/do a little work in others such as VBA, Python, PHP and C. I still feel I havent totally mastered Perl or Java-but sometimes I wonder if Im limiting myself by doing all my work (90%+) in these two languages. For the job market right now-you have to have a lot of skills because of the loose labor market. How many languages do you think its good to be highly proficient at vs. familiar with??? One thing Ive though of course-its a lot different switching from Perl to PHP than Perl to Python or VB. So obviously the difference and complexity of the language matters (I gave up trying to work in Lisp too much because it seemed kind impractical at this point). |
| Mon 18 Mar | Timothy Falconer | I highly recommend SNOBOL. Okay, so I lied, I just wanted to see it in the list. |
| Wed 20 Mar | suhu | I think you can start off with C. Me, I started with VB and ASP but then I was a late starter..really late. |
| Fri 22 Mar | Mike Gunderloy | Do not, under any circumstances, start with RPG II. Hmm, perhaps we need a 'worst language you ever worked with' thread. Except I bet it would end up listing all of the languages that have already come up in this thread. |
| Best way to avoid key staff members? | Fri 01 Mar | Patrik |
| I have now finished a project, and it has been in production for a while. Would be happiness. The thing is, I accepted 3 months employment to finish my project, which I started as a consultant. We were in agreement that I would finish the design/programming part, and that I would not maintain the system once done. I repeatedly pointed out the need for new staff members to come into the project to learn the system so they would be able to do the day to day stuff later, so that I would not be the one sitting with all the knowledge. This did not happen, so now I am in the position of being the only one capable of maintaining the system. This situation is good only when negotiating salary. Bad for all others. Things that crossed my mind: 1) File for 18 weeks vaccation 2) Call in sick, and tell them I told you so These 2 are ofcourse, professional suicide, and not an option. The only thing I can come up with is simply to refuse doing solo-projects. What is your thoughts and experiences avoiding this situation? |
| Fri 22 Mar | Tony | I wonder what your version of 'finished' and 'maintain' is. you say.. 'The thing is, I accepted 3 months employment to finish my project, which I started as a consultant. We were in agreement that I would finish the design/programming part, and that I would not maintain the system once done.' Often I have heard programmers/designers, whatever you want ot call them say this, what they really mean is, ' I've done the easy stuff, and now that the going's gunna get tough I want out.' Dig deep, if you're any good, when you leave the customer will be happy. Otherwise, you have failed, and are merely taking the easy way out. |
| Books | Wed 14 Nov | Joel Spolsky |
| Its about time that I updated my crufty old list of recommended books at http://www.joelonsoftware.com/navLinks/fog0000000262.html . What books should I have up there? Ground rules: to keep this conversation on track, everybody gets to vote for ONE book, and one book only. I really want to hear what people think is the SINGLE best book on painless software management. |
| Mon 18 Mar | Made in the Dark | Voting for books is like going into a good bordello and trying to chose a good ... well read. If you haven't then do it period. The Visual Display of Quanitative Information Edward Tufts |
| Mon 18 Mar | John Dougherty | 'The Age of Spiritual Machines' by Ray Kurzweil. A clever and believable look at the next 100 years in the evolution of computers and people. |
| Mon 18 Mar | Marc Brooks | I've gotta give the nod to Principles of Transaction Procession by Bernstein and Newcomer. Runner up is Debugging The Development Process by Steve Maguire |
| Mon 18 Mar | Art Mellor | 'Structure and Interpretation of Computer Programs' by Sussman and Abelson is probably the definitive text on software engineering. And probably the best text book on almost any topic written. http://www.amazon.com/exec/obidos/ASIN/0262011530/qid=1016498256/sr=8-1/ref=sr_8_67_1/102-7680519-9653711 |
| Mon 18 Mar | Jonas Källström | Gödel, Escher, Bach get my vote anyday. Now that you have mentioned it, I want to read it again... and all I find in my bookshelf is Metamagical Themas, which is not a bad book, but not nearly as good as Gödel, Escher, Bach. Looks as if I have to go buy another copy... |
| Mon 18 Mar | Justin Akehurst | Inmates are Running the Asylum gets my vote, since it is now time to switch gears towards human-centric development. |
| Mon 18 Mar | Grant Case | I'm voting for a book outside of the programming sort, but the issues tackled are the ones where I have seen programmers fail miserably. Getting to Yes by Gary Fischer In my brief time in the working world I have seen the use of the principles of this book and the good things that can happen and the not using the principles and the not-so-good things that happen. While it is a book on negotiation, its critical to be able to negotiate with the user community when it comes to features, schedules, and the like. This book gets you there and its why its my pick for a book that should occupy the shelf of every programmer. |
| Tue 19 Mar | Bruno Bonnefont | Excellent list. I totally agree with your comments about K&R C book. I would also vote for Edward Tufte's 'The Visual Display of Quantitative Information'. And 'The Design of Everyday Things' changed my life. What is missing is a single good book about : - (computer) data structures - telecommunications (architecture and protocols) and information theory. Probably because there is none. |
| Tue 19 Mar | Srivathsan | 'Programming Pearls' by Jon Bentley This is the only book which I have come across which talks about the small things in programming, and how they can make a big effect on your programs. (Like the strings example Joel gave in one of his articles). This book is a must read for the school of programmers who have gone straight up from OOPS and Java, and dont know a thing about how things get done in bits and bytes. All the examples given are written either in Fortran, Pascal or C, and from the surface, may not seem to be relevant today. But, make no mistake, these are exactly the same issues that we are try to solve even today. I guess it can be called as one of the Bible's of any programmer! |
| Tue 19 Mar | Charles Hood | Please add 'Writing Solid Code' by Steve Maguire ISBN 1-55615-551-4 to your list. This book was instrumental to me perfecting my craft as a programmer. This book is timeless, because it applies no matter what programming language you use. |
| Tue 19 Mar | Tom Milne | I've read and liked 80% of the books in your list, including yours. Thanks to Nick K for that. But I guess I'm showing my age when I think Knuth's books and Aho/Hopcroft and Ullman were missing. But perhaps my favorite of all time is: UNIX Programming Environment, The by Brian W. Kernighan, Rob Pike (Contributor) It was the first book which taught me the elegance of providing tools which can be chained together in creative ways to solve problems. Very abstract and mathematical in nature. It's quite like what folks are writing about .NET and XML, but makes it a lot clearer and easier to grasp. |
| Tue 19 Mar | Christopher Rohrs | A good list, though maybe a bit long on the philosophy part. I would at the least add Knuth's 'Art of Computer Programming' or Cormen, Leiserson, and Rivest's 'Introduction to Algorithms'. I'm also surprised you mentioned Christopher Alexander's book without an explicit reference to Gamma et. al's excellent 'Design Fatterns'. You refer to programming design patterns as a passing fad. Not with the engineers I know! I think it's just assumed that a good programmer knows the difference between an Observor and a Composite pattern. Design patterns are now standard programming vocabulary. |
| Tue 19 Mar | Greg Ball | Alice in Wonderland, by Lewis Carrol. (Apologies to Alan J. Perlis) |
| Wed 20 Mar | Simone Naftel | K&R - we call it 'The Bible' over here. For its size it costs an arm and a leg but that's because it really is worth its weight in gold. I could not not recommend this book more highly to anyone. |
| Wed 20 Mar | Dave Carlson | Any of Gerald M. Weinberg's books. http://www.geraldmweinberg.com/ |
| Wed 20 Mar | Yaneric Roussel | Two books: The Object Primer (Ambler) Software for Use (Constantine, Lockwood) Many others are really good, but these ones are the base and have to be well understood. |
| Fri 22 Mar | David Burrows | If I don't read K&R and I code what am I? I've spent most of my career building useful thing from code other people have written - I mean, this was the point of OOP and components. Does this mean I'm not a programmer? The comments on the K&R book are pretty narrow minded and if everybody followed that advice we'd have alot more holier than thou idiots and a lot less creative thinkers. A man cannot live by C alone - get with the 21st century grandad. (for the record I'm 31, so I can't really call myself a script kid) |
| Programming Languages | Wed 17 Oct | Joel Spolsky |
| In todays story (Working on CityDesk, Part 3), I explain why we chose to use VB and C++ to develop CityDesk. Whats your opinion? (please read the article first, though!) |
| Fri 22 Mar | Ed Kaulakis | Everytime I consider using Java, VB, or C# for serious work I realize how much I like C++. I love having simple protocols to eliminate whole classes of errors. But maybe it's time to move with the times. A question for former C++ users - how much do you miss the resource allocation is initialization idiom? What does not having deterministic destruction feel like? Does error handling without resource leaks get harder? |
| Clamoring for spiffy new features | Tue 19 Mar | Tony |
| Yeah right Joel, I need a napkin to soak up my drool. Just out of interest since this discussion group is about discussing things raised by Joel, and the last thing he raised was the new version of Citydesk - does anybody here actually use it? Did you clamor? Did it deliver? Lets subject Joels software to the acid test of public opinion. Love the site. |
| Tue 19 Mar | Roman Eremin | I'm using it for my extreme programming web site in Russian - http://www.xprogramming.ru |
| Tue 19 Mar | Mike Gunderloy | You know, of course, that there's an entire Fog Creek discussion forum for CityDesk? It's at http://discuss.fogcreek.com/citydesk/ . Lots of happy users there. |
| Tue 19 Mar | TK | Here is a list of CityDesk sites that I know of. Let me know about others. http://tk-jk.net/city/Articles/fog0000000007.html Roman, I added your site too. |
| Tue 19 Mar | Mike Gunderloy | http://www.larkware.com/ is my own entrant :) (Let me know if you have trouble with it - the DNS servers got mucked up over the weekend, but supposedly they're better now). |
| Wed 20 Mar | Robert Moir | well www.robertmoir.co.uk might be humble but it's very happy to be a citydesk site. I do find it makes a big difference to my ability to just sit down and write something, and then just publish it, without the hassle i had producing html pages, editing menus, etc with dreamweaver or frontpage. Hasn't been updated in a while because i'm laid up in bed with a slipped disk (ouch) and while i can use my laptop to type little bits like this, laying on your back with your laptop on your knees while on drugs really really sucks for serious creative work. Well for my sort of creative work, anyway! |
| Thu 21 Mar | Tony | Spent most of today learning citydesk. Ok, I'm impressed enough. |
| Article about Lines of Code | Mon 18 Mar | Leonardo Herrera |
| I know, slashdot its not the place to found good articles related to anything close to management, but today they posted this article: http://slashdot.org/features/02/03/14/1939246.shtml?tid=156 Its about programmers productivity, specially about that lines of code thing. Nice article, but it feels incomplete and kind of naïve, IMHO. |
| Mon 18 Mar | Martin L. Shoemaker | This, of course, is the rationale behind Function Points and similar measures: the idea that you can quantify the amount of functionality delivered, rather than just lines of code produced. The lines-of-code measure fits well with a short-sighted definition of productivity from manufacturing: number of widgets produced per unit of time. Well, on an assembly line, a widget built is a requirement satisfied. But as the article points out, a line of code written is not necessarily a requirement satisfied. Sometimes, a requirement can be satisfied by throwing out some lines of code and taking another tack. You end with a net negative lines of code, yet with a requirement satisfied. The manufacturing equivalent would be measuring, not widgets produced, but widgets passing QA (and in practice, this is a more common measure). And as someone said just recently (was it in one of Joel's articles? I cannot recall), a real measure of quality is requirements/expectations satisfied. Another reason why lines-of-code is an attractive measure is that it tends to be a fairly consistent measure (if not a correct nor a useful measure). This gets into basics of human comprehension, and how many ideas we can keep in our heads at one time. Now part of what attracts many of us to programming is that we're better than average at keeping things straight in our heads; but regardless, we have limits (on average) not too far beyond those of mere mortals. And regardless of the language, a line of code represents one 'thing' (assuming you have proficiency with the language), one concept to keep straight in your head. So teams of similar intelligence and skill and experience and discipline tend to produce lines of code at a similar rate. But there are a LOT of qualifiers in that. Differences in experience and discipline may lead you to produce fewer lines of code, but more correct/maintainable ones, and more requirements satisfied in the process. Differences in skill and intelligence may lead you to accomplish the same number of requirements with far fewer lines of code. The net result, I believe, is that lines of code are a misleading predictor/measure of productivity. Now I like Function Points as a concept, but I have little experience with them as a measure of productivity. (I have used them with some success in estimating, not measurement.) The idea is simple, though, and ties into the purpose of this article: productivity measured in terms of requirements satisfied per unit of time. In Garmus's Function Point book, he spends a lot of ink on measuring existing functionality, changing functionality, and new functionality, all with an eye to measuring how much you need to change in the code. The problem is that two requirements may be very different in size/complexity; so simply measuring items checked off a TODO list may tell you something about progress, but it's not very predictable or quantifiable. Function Points are an effort to size and quantify requirements and functionality. I'm not yet persuaded that they form a correct, perfect answer to that problem, but they're an interesting start. |
| Tue 19 Mar | Ori Berger | I think it was Dijkstra (please correct me if I deny someone else of their rightful credit) who said that Lines of Code should be counted as a Liability, not as an Asset; That is, each line of code is money spent getting the process to completion. Think about it: If you can buy something for 100 bucks, there's no reason yuo should pay 1000 bucks for it - unless, of course, the 100 bucks product requires lots of additional work and expenses, and the 1000 bucks is a a turnkey solution - but this is rarely the case. Equivalently -- If you can do something in 100 lines of code, there's no reason you should do it in 1000 lines of code - unless, of course, those 100 lines are fragile and unmaintainable, and the 1000 lines are trivial - but this is rarely the case. Every single line of code costs money - in review, while debugging, while explaining, while porting, etc. It's a little hard to quantify, but nevertheless every LOC costs real money. Measuring productivity by LOC is much like measuring success of a marketing campaign by money SPENT. While in the internet economy the latter was sometimes accepted (because money was too cheap), in general you want to minimize expenses (and thus, lines of code) to produce the same result. In both cases, a given challenge usually has an accepted minimum below which you wouldn't even try to go, and you usually don't care to be _exactly_ at the minumum as long as you're relatively close. A small comment regarding the comment (I think originally JWZ's but also used by Joel numerous times) that 'free software is free only if you don't value your time' - that is true. But there's a limit: A company I worked for installed Microsoft Exchange server a few months before I started working there. Original cost? ~$40K; Cost of a similar qmail setup? ~$2K in labour (definitely non-free, but possibly refunded in reduced hardware requirements for qmail; my estimate, based on the fact that the sysadmin in charge wasn't a Unix guy - if I set-up qmail myself, it would probably be down to $200 - I've done it before numerous times). Was the $38K difference worth it? My opinion would be 'no', but others would disagree. Was the $40K a one time expense? Definitely not. Money, administration time for upgrades and service etc (all NOT improving the service -- just maintaining it) kept flowing. And now back to the subject: qmail is ridiculously short for what it delivers, but its source is also not too readable for mere mortals and average programmers. Although it's probably not the 'minimal' solution (in the Kolmogorov sense), I'll take it to be the shortest possible one in LOC for the sake of argument - I can't count at the moment, but the whole distribution is ~120K, and it includes manuals and setup code not requires for actual execution: If qmail's author, Dan Bernstein, had taken the time to write code that's more readable but less concise, he would have probably been able to do that in 20-30% more LOCs. Most probably, it's between a 100 to 1000 times short than Exchange sources. Exchange does more - perhaps even a lot more, but little more that is useful. Now, I ask - who's more productive - the Exchange Team, or Dan Bernstein? In just about every respect, I vote for Dan any day, even though he's probably miles behind the Exchange Team in LOC/day. For example, since qmail-1.03 came out, I couldn't find a single bug report filed anywhere. Surely there are bugs, but it seems non of them matter enough for anyone to report - can you say the same about Exchange? [qmail probably delivers more mail than Exchange overall, btw - it's used by Yahoo, Hotmail and just about any other massive webmail/list management service]. Qmail's concisesness makes an effective security audit possible within a matter of days - you can read AND GROK all of its source; No dependencies on outside components, no huge structures - just plain code. That's probably one reason why it's so robust. To sum up and to clear up, this is not criticism of the Exchange Team - they are producing a product that is easy to market and that produces significant income and that is, in the end, almost all that matter. I just used it as an example to contrast with qmail, which is phenomenal in it's featurelist/LOC ratio. |
| Tue 19 Mar | Andrzej Kocon | The Dijkstra's statement is from his EWD1036, 'On the cruelty of really teaching computing science', published also in the CACM 32(12), Dec 1989, with many comments. See http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF |
| Thu 21 Mar | Ed Kaulakis | I hate code. It's all bug habitat. I try to write as little of it as possible. This post is onomatopoeic. |
| Simple Batch copy – What software would you use? | Sun 17 Mar | Albert D. Kallal |
| I have a old program that was written in clipper (before me), and then after a few years some changes where needed. The original programmer was long gone, but we had the source. I of course came along and modified the source code (this was 1993). I did not have clipper, but did use FoxPro and the runtime distribution kit. That means this simple little program in dbase could be changed, and then converted to a STAND ALONE exe file. The above approach is seems fine. Just this week I was called in by these folks to *modify* the software. My thinking is that this little and simple program should be upgraded to something that is not ms-dos based, and can be supported for another 8 years. Remember, I came along in 1993, but that little piece of code had already been in use for a few years. The software is a *SIMPLE* little program that copies a few files. These files have nothing to do with database. DBaseIII was no doubt used at the time since the ms-dos batch commands *could* have been used, but they are very poor at prompting the user for a date. Also, a nice language with a if/then/else structure of course made this whole thing a lot easier to write (dBaseIII also has a nice “file exist” function). The program simply looks for the existence of two files (with a known name). For each of these two files, the user is prompted for a date. When the user hits enter, the files are copied to a archive directory with a format of: 16Mar02.snt. Thus, the language also needs some ability to convert a date from 03/16/02 to the above format. Of course now the software will need to prompt for 4 files (and thus actually 4 dates). Usually the date will be the same, but sometimes the operator will change several of the dates. At any rate, the default date (today) is displayed, and the user can choose to modify it. My first choice is to use windows scripting. After all, I want to keep this as simple as possible. My 2nd choice is of course VB. Building a VB install package via the VB package and deployment wizard seems like over kill in this case. I could certainly just create a exe file in VB, and if I say away from any ActiveX controls, then I could simply email the client a nice and tiny exe file. (the resulting VB exe would be less than 50k). Of course not using the date picker in VB will also kind of suck when it comes to entering dates. Of course windows scripting is even worse from a user interface point of view, and cannot place up a small form that prompts the user for more than *one* date (I am assuming that the only reasonable means here is to use inputbox). In addition, I don’t get any kind of “mask” for the date input. What should I use to develop this little copy program? Perhaps this one case where I should continue to use the old program, and simply modify the dbase code? Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com |
| Mon 18 Mar | Ged Byrne | The problem with VBScript automation is that it requires Windows Sripting Host. Only users with an up to date browser or IE installed can use it. Since were talking about a site that is still using dbase scripts, Its not safe to assume that they still haven't got a few pre-pentiums still in action. Place I worked at last still had 386s running Windows 3.1. I think the question is a valid one, and not just a simple programming question. Is there an alternative to the increasing complexity and dependancy? It becomes even more of an important issue with the .Net juggernaught. Is there any future for the 312k stand alone executable? Can we really do without it? |
| Mon 18 Mar | DB | Delphi would appear to be a good fit for this sort of task, it's not going to require any additional DLLs or similar nonsense. I wouldn't agree that it was large or complex. Delphi is far easier to get into than any equivalent product and even a newbie should be able to knock up what you're requiring in an afternoon. But if you don't already have it, or Pascal experience, it's certainly overkill to get it just for this. In this situation modding the existing code makes a lot of sense and certainly gets the job done NOW rather than later. If it won't be touched for another decade or so it hardly matters what dev tool is used, it'll always be out of date when you come back to it. |
| Mon 18 Mar | Mike G. | I think given the simplicity of the problem, and the 'no outside dependencies' requirement, I'd go for C or C++, and make sure the executable is statically linked. Any kind of ActiveX/Delphi/WSH/Perl (my 1st choice)/Prolog/Lisp solution would make it hard to avoid dependencies, and would require that the development environment still be around in 5-10 years. By using 'vanilla' C/C++, you should be insulated from that kind of problem. |
| Mon 18 Mar | njkayaker | VB would suck for this because it is a pain (in my experience) to install VB apps. I'd dump the dbase app because dbase is going to be harder to support as time goes on. If you know VC++, I'd suggest writing a *simple* VC++ program to do the task. Installing simple VC++ apps is easy. While writing such a simple app in VC++ might seem to be overkill, over time, you'll likely spend less time supporting the app and it may be easier to pass the support to someone else. |
| Mon 18 Mar | Bella | Mr. Kalall, You seem to have to most pragmatic approach of anyone on this thread. I suggest you ignore the babble you've received as repiles. Can't the user just be asked to enter 'Mar' instead of '03' ? I suggest you make a simple DOS script that takes the final file name as a cmdline param. ($1, $2, etc) You will be DONE coding sooner than it will take you to read the rest of my RANT.... The replies here are are the PARAGON of what is wrong with software development today. Almost EVERYONE ignored his MAIN PRIMARY REQUEST, which was to keep it simple. Everoyne has their own damn agenda, and solving the user's problem is of secondary importance. That is why the IT boom will be going down the toilet soon enough. Companies have wasted their last dollar on superflous bullshit developement. Many of you reccomended a GUI DEV TOOL (VB/Delphi) to do a FREAKING FILE COPY.... You idiots should be fired, as you are incompetent software designers. Stick to being code drones, handed specs. And Reccomending enterprise level .NET is this taken to a furthur LAUGHABLE extreme. I'm shocked no one suggested making XML based JavaBeans webservice to do the file copy. Others suggested C++. Yes, no install dependency, but to get into hardocre OO for a freaking file copy? The issue of staff knowledge and maintainability is also an issue here. Way off base, if you ask me. Anyone reccomending Unix is simply an idiot who has never had a real job that solved problems.. He's not gonna redo his god damn OS just for this file copy. Get a clue. Anyone reccomding esoteric random shit like TCL, prolog, lisp. Get a clue. You are a detriment to whereever you work. MAINTAINABILITY is the core of the posters INITAL problem, for christ's sake! YOU HAVE A HAMMER, AND ALL PROBLEMS ARE A NAIL. |
| Mon 18 Mar | Timothy Falconer | >i'd go with either prolog or lisp ;) Hmm... see that little winking smiley at the end there? The fact that two different people took me seriously is pretty incredible, even without the smiley. It was a joke! Also the misunderstanding about Unix/Linux. I was just bemoaning the lack of a decent command-line interpreter in DOS, not suggesting anyone change their OS. Now that I think about it, I'm surprised someone didn't think I was suggesting he switch the client to using a TRS-80! |
| Tue 19 Mar | Michael Chansky | Despite the ranting, I think Bella's got most of this down. Use whatever you know, it's not worth the time it'll take to learn something new. Don't worry about whether it can be maintained or not, because if the language is obsolete in a few years you can rewrite the thing in an hour. If the language you're using can't make a staticaly linked program like this in under a meg, there's probably something wrong with it, but oh well. Is it really going to matter if the file's 50 kB or 1.4 MB? Will they even notice? Similarly, if you need a full-blown installer for the program there's probably something wrong, but will the client refuse to use it, or think much less of you if you do? Everything seems to come in an installer these days, even when it's just a self-extracting zip file (aparently it can't be assumed that I can unzip files by myself, or maybe that would look unprofesional). Finally, I can't resist commenting on 'your scripting language better be able to convert 03 to the string text 'Mar', or you will have to start writing some code!' That code is pretty trivial, so I wouldn't make this a major criteron for your language selection. |
| Tue 19 Mar | Sonny | >Many of you reccomended a GUI DEV TOOL (VB/Delphi) >to do a FREAKING FILE COPY Whoah, easy tiger! Forget your Ritalin this morning? In addition to being (IMHO) the greatest GUI tool on the planet, Delphi also enables you create console applications by either using the {$APPTYPE CONSOLE} directive, or going into Project Options and clicking the 'Generate Console Application' checkbox. I agree with your sentiment that sometimes a console app is the best option. I have a number of them in use, all created with Delphi. I get the extreme power of Delphi combined with the elegance of Object Pascal all wrapped up in a relatively non-complex console application. >You idiots should be fired, as you are incompetent >software designers. Lets put this into perspective: I suggested a tool that does both GUI and command-line, using a common language in either case. Further, my suggested tool creates standalone EXEs that require no runtime support such as VBRUN*.DLL. And I'm the incompetent idiot? |
| Tue 19 Mar | Tony | I am sure there will exist a simple OCX that would achieve this brainlessly. |
| Tue 19 Mar | DB | Indeed - what Sonny said. Fun to read a rant based on ignorance though. |
| Tue 19 Mar | Tony | Storm in a tea cup. |
| Tue 19 Mar | Bella | Wait, why was the HTML page with some VBscript that has the logic nixed? Was it version dependence? User must have IE installed? Is that an acceptable requirement (since IE is std on windows) |
| Tue 19 Mar | njkayaker | While a simple DOS script might seem to be a reasonable solution, it probably would not be acceptible to most users (it would not fly in my company or for our clients). A simple GUI program might seem to be overkill, but most users would find it easier to use than a console app. Thus, Bella seems to be completely ignorant of what pretty-much everybody else here is aware of. |
| Tue 19 Mar | Bella | Is there any way to get around requiring any user input at all ? (The user is basically entering in the date every day.) Once your script can determine the date, perhaps the entire copy can be automated, via the windows services scheduler... |
| Tue 19 Mar | Albert D. Kallal | I could probably eliminat the need for the date prompt...but on occasion it *does* need to be changed! >”Storm in a Tea Cup” What a nice way of putting things. Yes, this is a small problem. Interesting, that I am willing to use Vbscript here. All of the client PC’s are less than one year old (all new dells...those little tiny bookshelf things). Since all these new PC’s were replacing some Wise Terminals, several have flat screen LCD monitors. Those color monitors are *much* larger then our old slim Wise terminals, and would cramp up the front area too much). Thus, the oldest OS and pc is now less than one year old. There are a few vbscripts in use now. The users, and the system are not connected to the net, nor do use the net, or email as part of the work routine. Thus, virtually all hardware was replaced this year. The software was moved from a very old box to the Linux box (Red Hat). The RS232 cabling was dumped and now is a network. Access to the software running on the Server is via a terminal emulation on the windows pc’s. Thus, they all have PC’s, but the software is still text based. Of course a portion of the billing system now does use Word, and code was written to integrate Word into the system. The terminal software can launch Word, and at that point my software takes data from the Server and builds some patient records (information is transcribed from a Dictaphone into these patents records, part of which are now word. Hence billing data and codes come from the Linux server). These files are then saved in a document area, keyed to the patient. There is only the ONE small dbase script. Looking at this situation, I should get rid of this dbase thing once an for all. In other words, I think that creating a VB package is not too bad. As long as I place the package in a directory, then it can be re-installed when that windows PC surely will crap out (however, a stand alone exe needs no install, and can be *restored* from a back up). In fact, if I do switch this over to VB, then I actually will have to have LARGE letters on the form explain to use the TAB key in place of the Enter key on this form. Since all of the current software still uses the Enter key to move to the next field. Of course any of you who have to mix legacy software, or have migrated users from Green screens to windows know what I am up against! I was quite surprised by several people’s suggestion here to have the user type in the Actual date. For more than 10 years the Terminal software would launch this tiny dbase script, and the user could hit Enter 3 times, and be done. (the 2 dates default + a ok prompt default). Introducing the idea that user start typing in the file name/date is for sure a no go. Every single user would be surprised that the NEW software requires more typing than the old. Not to mention training of users on the correct file format. In other words, someone would have to COMMUNICATE that the correct file format is 16Mar02.snt. In fact, if I make too much of change for this simple little task, then training users will come into play (not to mention the updating of documentation and the how to’s). You folks have heard of procedure manuals...have you not? Users DO NOT have to know that 16/04/02 gets converted to 16Mar02.snt. In fact, they probably don’t care or even know what/why happens here! This simple change to the system should NOT require a phone call to support. If I use VB, then the Enter key also DOES NOT move to the next field. This is actually a problem! I can see it now. Hey, Sue how do we archive the billings for transmission to the government. Oh, lets just ask Julie down the hall. Julie does not work at this station anymore, but she did use the system for a good 5years. She also used to train people so she will know. So, Julie on phone (intercom #233) simply states you select the archive option, and a prompt comes up. You just enter a few times and you are done. Sue replies back...but the Enter key does nothing now. Julie shrugs her shoulders...better call the tech people...something is wrong with the software.... Anyone who has read Joel’s comments on software, and the example of pushing a shopping cart around with a crappy wheel will understand this. There is no reason in the world that changes to my software should cause *increased* difficulty to the user. The cost of any support call will out weight the cost of the actual change to the software! Also remember, that any procedure that can introduce a error into the system has to be though of quality control issue. Filing patient info to the wrong person can result is a huge mess, not to mention lost time, and legal issues (diagnose information going to the wrong patient is a night mare). The changes to the software were tested for 7 days. After we moved, we found one patient doc got miss filed. Needless to say, 2 clinics were shut down for a Saturday, and all available staff was called in to check each and every record for the week. People don’t like giving up their Saturday like that. Worse is he possibility of miss-filed information. Is that a cold you have, or a tumor? I will not even being to think the liability here. Procedures in place caught this mistake, but the software was modified to prevent the possibility of this happening in the future. This could not happen with the old word processing system, but the introduction of Word did allow this. Now the code in ms Word will not let users screw this task up (the save location and doc ID is handled by my code now). At the end of a day, a task can seem trivial. However, a trivial mistake can result in very much damage to your client. If my reservation software screws up, then people probably will not die, but it certainly can ruin their ski holiday, and I am not even going to let that happen! Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com |
| Tue 19 Mar | Bella | So what was the verdict on distributing an HTML/javascript file to each user's machine? I'm not sure of the 'sandbox' limitations with regard to file security/permissions, but I don't think this is an issue. You'll get a nice GUI & scripting to do date conversions/defaults.... To automate, maybe you can even add it to the scheduler, and have your javascript does a form.submit() on the open event...? |
| Tue 19 Mar | Leonardo Herrera | I'm not arguing about using Delphi to solve this particular problem, but I feel the urge of point some facts: 1) Delphi IS a _really big_ development environment, at least from the size point of view. 2) Executable programs compiled with Delphi doesn't need any extra DLLs by default. You can create executables that depend on VCL dlls, but usually you don't need that. 3) Delphi executables are medium sized (around 500-700kb) 4) Delphi supports CORBA _and_ COM. 5) Combined with Kylix you can create applications for Windows and Linux with ease. What else can I say... I love Delphi. Please, note that I'm not urging anybody to solve a small file copy problem with it. ----------- Albert pointed a very interesting issue here, about people being used to press Enter instead of Tab to move between fields... that's a difficult choice, but if that people are in contact with modern apps, they can get used to press tab in a relatively short amount of time. And if you want a default date, that's one keystroke (default OK, just press enter) instead of your three keystrokes. Sorry for my english :-) |
| Wed 20 Mar | Timothy Falconer | Will ... not ... write ... this ... thing ... myself .... Seriously, it'd take less time to write it than to sift through this topic. I'll admit there's a sadistic thrill to watching everyone argue about the philosophical underpinnings of simple console apps, but really! |
| Wed 20 Mar | Sonny | >If I use VB, then the Enter key also DOES NOT move >to the next field. This is actually a problem! In Delphi you can use the Enter key as the Tab key with the following code in the OnKeyPress event: If Key = Char(VK_RETURN) Then Begin Key:= #0; Perform(WM_NEXTDLGCTL, 0, 0); End; You can put the code in individual OnKeyPress events for each edit control, but it is cleaner to create a single OnKeyPress handler and share the handler. Drop me an offline message if you want samples. |
| Wed 20 Mar | Bella | Are you Delphi coders actually EMPLOYED?? Who on EARTH uses Delphi?? You must be at the last remaining firm that does... |
| Wed 20 Mar | Christopher Wells | > Are you Delphi coders actually EMPLOYED?? Who on EARTH uses Delphi?? You must be at the last remaining firm that does... So far as I can tell from the population I hang out with, most self-employed programmers use it. |
| Thu 21 Mar | Sunish | Did u know that net2phone, homesite, hotdog and thousands of other programs use delphi. The big guys don't tell that they use delphi just because projecting the MS part gives more confidence. |
| Thu 21 Mar | Simon Lucy | Umm, has the Fox .exe suddenly broken? Has something changed that means future users would never understand it? If you want to make it all new with a fresh coat of paint build exactly the same source with Visual Fox if you want. But it doesn't sound as if the users really care. Longevity is not a sin. It just means it does what's needed. |
| Thu 21 Mar | Simon Lucy | Of course reading all the comments to the original made me forget the original post and that it needed updating. Mea culpa Still, if you still have, or they do, Fox 2.6 do the changes in there, the users won't need to learn anything 'new' and it can be forgotten for another 10 years. |
| Should programmers admin their workstations? | Wed 13 Mar | Doug Withau |
| In the Teaching Laziness thread http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=4579&ixReplies=22 I said that developers should not have permission to administrate their workstations. “a programmer” replied that he would quit if they did not have control over their machine. If he worked for me I would say goodbye and have a nice life. Letting someone change their computer whenever and however they want introduces random variables. I personally don’t need that headache. Any IT person would say that you couldn’t let users change or install anything they want. Are programmers special? Are we better or worse than the general computer user? Programmers, is control of your workstation worth quitting over? Managers, what is your stand? Has anyone ever actually quit over this? Please, give concrete examples and stories both good and bad. Im talking about a situation with more than 3-4 people working together. |
| Wed 20 Mar | Vardhan Varma | If my SysAdmin know how to create 10 times bigger mouse cursor on X, i'll gladly let him administer my machine. if he can undo that i did to my machine, without reinstalling everything, i'll let him administer my machine. If my sysadmin can just set the anti-virus NOT to scan the zip file, when i rename is, i'll let him administer my machine. If he doesn't run to me once in a week to ask me how to do this and that, i'll let him admnister my machine. |
| Thu 21 Mar | Leonardo Herrera | MY computer, MY world. I'm not going to tell any manager what he can put over his desk. |
| Thu 21 Mar | Robert Moir | It's not your computer, Leonardo, it's your employer's. Personally, I don't think either blindly letting some people admin their machines, or blindly stopping them from doing so is a good idea. It should be obvious that some people need great access to their machine configuration than others, and it should be obvious that some standards have to be set and maintained regardless of who has access to what. |
| Categories of developers | Wed 06 Mar | Cedric |
| The way I see it, there are two classes of developers out there: - Class B (average) - Class A (good) The class A can be further divided into roughly three categories: 3) Good hackers 2) Good hackers with a CS education 1) Good developers These three categories include each other: 2) includes 3) with something added, and 1) includes 2) with something added. A good developer is a good hacker with the big picture. Its someone who can not only crank out code but - has education and CS classes under their belt - has higher knowledge than bit fiddling,O(n) algorithms and NP-complete problems - knows about deadlines and making compromises to deliver quality running code (which is different from quality static code, also known as academic code :-)) Also, a category 1 developer: - knows several programming languages (different paradigms a plus, like Java and Lisp) - has a solid grasp of OO concepts (not just overriding and interfaces. I used to ask for example if candidates can describe multiple inheritance of implementation and suggest a way to implement it like C++ compilers typically do). Typically, the questions I ask cover OO notions that exist only on other languages than Java, such as C++, Eiffel, Objective C, Beta, etc... Constrained genericity, covariance, etc... There is a lot to choose from. - knows about the contraints of working in a team, which includes abiding by coding conventions, communicating by email or verbally, treating everyone as equals: managers, docs, QA, etc... (something that is usually not seen in categories 2 and 3) - has an extended culture beyond the stricly engineering one. This can be very broad and ideally include some bleeding edge notions. For example, it can include (but is not limited to): design patterns, aspect-oriented/functional/declarative/... programming, knowing both Windows and UNIX, or both X Window and Windows, knowing how a compiler works or having worked in assembly, reading a lot (I always ask candidates what their latest technical readings were and what they thought of it), knowing COM when your area of expertise is J2EE (or the reverse), etc... Does this breakdown match your experience? |
| Thu 21 Mar | Stans | I contradict that outline regarding hackers as good developers. It sounds like car breakers (aiming to steal things inside) are well qualified vehicle engeineeres. Most valuable hacker's ability is to track down some technical feature that can be helpful to acheive system or protection damage. Usually a hacker even can't and doesn't mind how the whole system deployed. All that hacker needs is just to believe in system damageability. The belief may get weakened it the hacker's knowledge gets deeper. |
| Thu 21 Mar | Christopher Wells | > I contradict that outline regarding hackers as good developers. It sounds like car breakers (aiming to steal things inside) are well qualified vehicle engeineeres. Stan, American programmers use the term 'hacker' to mean something like this: http://www.tuxedo.org/~esr/jargon/html/entry/hacker.html The [deprecated] sense in which you're using it is called a 'cracker' (like somebody who 'cracks' safes or strongboxes), not a 'hacker'. |
| Software for your head | Tue 19 Mar | Roman Eremin |
| http://www.amazon.com/exec/obidos/ASIN/0201604566/xprogrammingr-20 Did anybody here read this book? Did anybody tried to apply this process? It looks like it will cure all the problem we have in our team, but I dont want to let it me another managerial inspirational performance... |
| Wed 20 Mar | Jutta Jordans | I am reading it at the moment (up to page 80 or so); I bought it after it was so warmly recommended on the Xtreme Programming homepage. Since I am not into project management, I do not know if I will have the opportunity to put much of it to use. It sounds interesting, though, and some of the things said concerning motivation and atttitude (like 'You cannot be too emotional' or 'Never do anything dumb on purpose') can be put to use without being able to change the overall team structure. If you really try to adopt the core protocols for a real life project, I would be very much interested in how it works out. I imagine that you might find many resistancies with fellow colleagues and management at the beginning. Have fun, |
| Wed 20 Mar | Roman Eremin | Good thing is that i can start from myself. :-) |
| Programmer's Bookshelf candidate | Tue 19 Mar | Pete Wilson |
| Gerald Weinberg, The Psychology of Computer Programming Somewhat long of tooth now, but this is the book that opened my eyes to the joys, trials, and rewards of project management. The two big ideas, the ones that set me free, are: 1. Notion of egoless programming; and 2. The huge, inestimable, nonpareil, essential, priceless, treasured, ..., value and character of the code review. I could not work without code reviews. Very nice to see on the list some books that never seem to be mentioned: Design of Everyday Things and K&R as a tutorial: finally somebody agrees with me :-) I feel so .... so /validated/. |
| Tue 19 Mar | Gordon Love | So nice to see so many old friends again - Donald Norman's 'Psychology of Everyday Things', Frederic Brooks 'Mythical Man Month', the first book the Pragmatic Programmers wrote, Peopleware, 'Zen', even Microserfs and Jakob Nielsen. (I started my subscription to his e-trailed web-site the same day I started my subscription to JoelOnSoftware) Good to see Joel endorses his new book, as I'm just going to order it this week. Enough of the agreement, tho'... what's missing? I toyed with 'Software Engineering Economics' by Barry Boehm. Just getting 'economics' to coexist with 'software engineering' in programmers' brains is a valuable enough step, and Mr. Beohm does have useful and interesting things to say. But what we really need on our bookshelf is his book cut down into the a version the size and style of 'The Mythical Man-Month'. Short, well-argued, and digestible in increments. So... close, but no cigar. Also considered was 'Strategic Planning for the Small Business' by Craig S. Rice. Short, digestible, and directly usable, covering business planning from start-up to sell-out. But Joel already has one book in this area, so... I toyed with 'How Designers Think' by Bryan Lawson. but it doesn't do what it says on the tin. And the author doesn't really consider any designers outside of architecture. One day, someone will write the book that this title was made for. I looked at all my programming-specific books, and everything was just *too* specific. With the exception of 'Programming Ruby' by Dave Thomas & Andy Hunt (the Pragmatic Programmers). From their Preface - 'Take a true O-O language like Smalltalk. Drop the unfamiliar syntax and move to more conventional file-based source code. Now add in a good measure of the flexibility and covenience of languages such as Python and Perl - you end up with Ruby. Use Ruby, and you'll write better code, be more productive, and enjoy programming more. More than any other language with which we have worked, Ruby /stays out of your way/. You can concentrate on solving the problem at hand. ' As well as its printed form, this book is available in electronic form, free-of-charge, as part of the Ruby for Windows development environment, which is itself available on-line free-of-charge. So... what else makes my list? Definitely - 'The Business Value of Computers', by Paul Straussman. Thorough and extensive, but still readable, it's long, because it covers a lot of ground. But the bottom line is - enterprises should concentrate on developing or implementing software systems that support their core business processes. Information systems put in for management never have as positive an effect. What else? 'Getting to Yes' by Fisher,Ury & Patton. It's subtitled 'Negotiating an agreement without giving in'. Published in over 20 languages now, it's a guidebook on how to turn from adversarial bargaining to the construction of joint problem-solving. It also has a sequel, 'Getting past No', subtitled 'Negotiating with difficult people'. I like to think of these books as 'How to negotiate effectively without sinking to their level', parts I & II. These are pretty much all the books that have changed my thinking, over the years. But the 'book that changed my life' needs listing here. 'The Shockwave Rider' by John Brunner. A late-sixties/early-seventies science fictional account of... well, today, to intents and purposes. The way computing has become entwined with telecommunications to become all-pervasive, and potentially oppressive even in the free-est of societies. This is the book that made me swap from medicine to IT just as I was leaving secondary school for university. |
| Wed 20 Mar | Hal O'Brien | 'Shockwave Rider' is mid-1970's, actually. 1975. What's an intresting piece of serendip is that I owe finding Alexander to 'Shockwave Rider'. There's a passage that describes Precipice, the town that's a semi-utopia in post-BigQuake California, as a mix of Taliesin, Ghiradelli, Valencia, and Portmeirion. Looking for a book to nail down those references -- casual enough to me today, but I was a freshman in college -- Alexander's was the first *big* book in the card catalog that looked relevant. I thought a book that big was likely to have a bibliography, so... I was wrong. But in a good way. (And I still think there should be a bibiliography for 'Pattern Language'. Which, as I slowly do a by-hand migration to HTML for my own use (I intensely dislike the official version on Alexander's web site), I'm doing.) |
| What must the great programmer know? | Sat 16 Mar | Richard J. |
| Management only goes so far. But strong management skills need strong programmers to manage. What do you think that a passionate programmer should know? I think there are at least two things: computational theory and algorithms. I dont think knowing these two makes an incredible coder, but I think incredible coders know them. I had only been studying computation a couple of weeks while holding down a full-time job, but already I feel an order of magnitude better. After learning to speak the language of tuples and graphs, my APIs are clearer; less complicated. Or at the very least, it takes me less time to come up with them and know their soundness. Whereas knowing algorithms keeps me aware of how to implement these designs, keeping my performance-devouring tendencies in check. ;-) |
| Mon 18 Mar | DB | What must the great programmer know? 1. The location of Google Groups Er... that's it. I agree most development seems easy, but I am constantly amazed by the simple things that can stump people. What is even more amazing is when they struggle for hours/days/weeks without trying to find out if someone else has had the same problem. Everyone knows about code re-use but knowledge re-use? Real engineers do not re-invent the wheel without a damn good reason. Software engineers seem to revel in re-inventing it. |
| Mon 18 Mar | Nope | db - to my mind you hit the nail on the head. it is why patterns are so useful to me - as soon as i recognise 'oh, that is just the observer pattern' i know the problem is solved and i can get on with actually doing those bits which are unique to the system in hand. it cuts out shed loads of development work in designing some solution (which turns out to be just the same as the one i did two projects ago), writing code, fixing bugs, etc. perhaps we could just say that 'good programmers are lazy' :-) |
| Mon 18 Mar | Richard J. | Tony, when I learned cooking, it was important to learn the knife. Food needs to be cut and shaped, and for many tasks the knife is simple but versatile. Are knives hard to use? No, any idiot can learn to use it without cutting oneself. And while I can imagine a brilliant chef who never really cuts anything, I would normally consider a great one to know how to use the knife. While this is a metaphor, I think it stabs at the heart of what I think on what a passionate programmer comes to have an acquaintance with. I have thought as you did, but I must repeat, these random things like knowing knives don't make the chef, but the chef knows them anyhow. Being conversant with computation may just mean you're a monkey with a memory, but everything you know really explodes the possibilities of what you can do. Intelligence does not make the programmer, knowledge is what carves the programmer out of the intelligent person. |
| Mon 18 Mar | Doug Withau | Problem solving skills. I work with many highly intelegent people. The best programmers can find bugs. Fixing them is usually easy, finding what to fix is the hard part. Great programmers don't get stuck on on part of the problem. They can separate the interesting bits from the crap because they truely understand their code. Most of all, they have more than one way of looking at the problem. They never assume they know what the bug is and throw off a quick bandaid. The best are not happy until they understand what is broken, why it broke, the best way to fix it, and how we will prevent the same problem in the future. The truly great programmers can do all this under pressure. |
| Mon 18 Mar | Tony | Richard, I see what you mean, I think you are confusing the roles of a mathemetician or philosopher with those of a software developer. |
| Tue 19 Mar | Jan Derk | Richard J. wrote: 'What must the great programmer know?' 1) How to write readable code And I mean making it so readable that it's fun to read in bed before you go to sleep. Or that any junior programmer thinks the stuff you write is simple. 2) When to split up in smaller chunks. Often overlooked, but combine those two and you'll be amazed how much productivity goes up. |
| Tue 19 Mar | Tony | The great programmer must know that (s)he has wasted a life being a programmer. Seriously. |
| Tue 19 Mar | Richard J. | I can easily agree with that last comment Tony, but that's not relevant for my purposes right now. Frankly, do what you're passionate for. I can easily forgive an underprivileged person for not doing that. I know it sounds cold, but I have less sympathy for privileged people who don't, unless someone really has an emotional hold on them that forces them into an unhappy life. As for me, I'm doing what I love right now, even if the business world is the worst part of it. But I won't love it forever, and eventually it will be a tool in attaining what I'll want then. So, all I care about is what makes an incredible programmer. I don't care about the negatives of asking such a question, because though this stupid Richard needs to be bludgeoned into seeing reason, asking questions is in the end better than not. |
| Tue 19 Mar | Christopher Wells | > What do you think that a passionate programmer should know? 1) should know better (ie be able to learn good/better from other people/sources); 2) should know some restraint (e.g. don't use expensive surgery when the patient only needs a bandaid); 3) should know no limits (when unlimited or less limited is appropriate). |
| Wed 20 Mar | Bruno Bonnefont | >1. how to read other's code... >2. how to instinctively refactor their own code to make it more generally useful, more readable, more concise >3. how to sit down and *STUDY* a computer book or manual, straight through, for its own sake >4. how to use a debugger and a profiler Better still: how to avoid using a debugger >5. when to give up for the day and go home Also, take a break every 90 mn. I would add: how to _name_ things correctly (in english, using nouns and verbs). And how to summarize a design on a single sheet of paper. |
| Wed 20 Mar | Norrick | A good programmer is one one who is highly technically proficient. A great programmer is highly technically proficient AND highly business proficient. |
| Lighthouse on Web Article | Tue 19 Mar | Steven B |
| In the article it states: What makes CityDesk a stand-out investment proposition is that its .cty site files are just Access 2000 databases. So you can learn the basics of content management without investing huge amounts of money or time - and then, if you decide to quit CityDesk for a bigger CMS down the track, you can simply port your entire database over to XML or MySQL or SQLServer or Oracle or whatever your new system understands. Is that true? All you have to do is port the Access database over and it will work in a different CMS system. On a different note - How are sales of CityDesk going? |
| Tue 19 Mar | Joel Spolsky | You would have to do something to map the CityDesk schema to the schema of the target CMS. But this is something can can be done rapidly and mechanically. If you try to import a bunch of raw HTML files into (any) content management system, there is a lot of manual work separating the templates from the article content which is almost impossible to automate. |
| For ASP developers | Sat 16 Mar | Wanderley Miyata |
| Just curious: 1. When writing a lot of ASP pages, do you guys write on every page or use ? 2. Do you guys use one ASP page for each task or just one page (like Joe)? And if you use just one page, you code everything there or split it into multiple include files? 3. Encapsulate VBScript code in a COM DLL or just be lazy (as me)? Im finishing a big ASP project and I wonder if everybody has the same approach. :-) |
| Mon 18 Mar | Andrew Cherry | I always used to multi-purpose a page - it's content and function would invariably decided by the URL-encoded arguments. I stopped doing this for one reason mainly. Users can't get to obvious areas of your site by typing the URL. As an example, the contact section of a site I designed originally was accessed using the url 'www.sitename.com/main.cfm?section=contact' (plus other arguments tacked on to that when things got more specific). The problem was that when asking users how they thought it most likely that they'd get to the contact section, a lot of them tried typing 'www.sitename.com/contact' - if I had a sensible directory structure, this would work. Or if I was using Apache say, I could fiddle round with mod_rewrite and make it work. But being windows based (and this primarily being related to asp) I decided to abandon that. In short, these days I try wherever possible to reflect the site content in it's directory structure. It enhances usability. Many people far more qualified than me have said this - but I can't think of any URLs of the top of my head. You'll just have to put up with my thoughts as an opinion! |
| Tue 19 Mar | Vincent Marquez | Mostly I think it depends on how much of the Content is Dynamic on a particular site. If each 'section' of the site has a differenty dynamic aspect, I would have one ASP content page per section, and the rest of it would be DB generated or pulled from a template or something. ASP is scripted, so remember, the longer the page is the slower it will be. (stupid fusebox methedology) Those are my two cents, as I've worked on some pretty large ASP sites. |
| How to disable Flash in IE | Fri 15 Mar | Colin Davies |
| I hate Flash intros - is there any way to stop Internet Explorer from running them? |
| Tue 19 Mar | Mark W | Advertisers really have gotten obnoxious with those flash adds though. Especially the ones you can't close until 10 seconds into the ad that (a) starts invisible, and (b) scroll all over the page before popping up a close button.
|
| Managerial Acccounting | Fri 15 Mar | MatteyBoy |
| Yesterday, in search of some insight into software development management, I dusted off my Accounting Textbook from college. I found two very interesting things under Managerial Accounting. (Which is a form of Acct. designed specifically to provide guidance/information for decision makers.) It led me to this theory: Many Generally Accepted Accounting Principles (GAAP) are mired in the 1930s, and this is harming software development(*) (1) Accounting to Man. Acct. Theory, there are three kinds of departments: (A) Cost Centers. Manufacturing, HR, etc. (B) Revenue Centers. Sales Departments. (C) Investment Centers. Mortgage Departments or asset management firms, which both incur large costs now and (may) bring larger returns later. Under Man. Acct. Theory, Software Development Departments are COST CENTERS. Managers of Cost Centers are evaluated _solely_ on thier ability to stay below budget. This logic explains the slow machines and lack of cutting-edge tools in our industry - if the only measure of the department is cost ... we need to cut cust. Now, there is a solution: In manufacturing operations, you can come up with a standard cost for a unit. Then, if you make more units, you can spend more money - as long as you have demand and the cost of developing each unit is below standard cost So, if we had a unit for measuring costs (not KLOC, more like Function Points), we could prove our expenses we just. We could also set a standard, instead of having budgets that spiral downward in tough times, and we could come up with some measurable proof of ROI. (Did you notice that that extra $10,000 on HardWare and Training Last year netted us 200 more function points, and at $200 each standard, we made $30,000?) But, sadly, realistically, we just dont have this. So we live in GAAP. (2) My book surprised me by saying that every level of management should be involved in the budgeting process - but not ANY of hte people actually doing the work. The argument was that lower managment had a better idea of reality than upper management. What about the people doing the work? Then I remember that GAAP was written in the 1930s, when American business was much more entrenched in a caste mentality, and a technical middle class hadnt fully emerged. The Typical level 1 Supervisor back then MIGHT have MAYBE had a high school education. Involving labor in budgeting was simply unrealistic and not practical - they didnt have much to add. Today, a typical Software Department might have someone with a degree in accounting, business, a couplea CS guys, etc, etc. They probably each have years of professional business experience combined with a great deal of experience in create project plans and living with the consequences of budgets. They may have more time with thier current company than thier manager. Why not involve them (to a slight extent) in the planning process? My guess? Because the accounting books say not to. This leads me to my solutions: (1) Software Companies seem to be generally better at this than companies that do something else as a core function. Obviously, Wal-Mart sees its money in retail sales, not automation. Exceptions about for sales force automation, etc, etc, but, overall, Software is a cost Center for these companies - while technology companies may see Software departments as having direct effects on revenue. (2) SW Companies led by programmers, former programmers, or other folks who have a great deal of experience in technology are much for likely to get it. (IE Yahoos Semil might have problems with this.) (3) SW Management Programs and MBAs with an emphasis in E-Commerce(etc) should teach something like Joel Spolskys Article on Converting Capital into Code through programmers. (http://www.joelonsoftware.com/articles/fog0000000074.html) (IE - The idea is that when you invest in hardware and tools and morale budgets, you get more stuff done, which you can then sell for more money.) thoughts? (*) - GAAP was created in the 1930s as a response to the great depression. |
| Mon 18 Mar | MatteyBoy | (The following mostly applies to only large companies) The post above runs along similar lines to what I have heard: 'The key to managerial compensation lies in direct reports.' Or, in other words: 'The big bucks comes when a lot of people report to you.' Plus, in a 'boom' year, it's possible for a manager to increase departmental size as much as +50%. (Allthough multiple hundreds of percents were possible in the dotCom era.) Two years later, when the E-Conomy is back in the tank, the only thing to cut before starting layoffs is 'toys' - hardware, software, captial expenses, training budgets, etc. And, sadly, managerial accounting 'helps' this. Thanks for the book recommendation! |
| Tue 19 Mar | F.J. Weiland | 'Interesting ideas here. I have, myself, been thinking that some of the problems we have with SW development is because management thinking is stuck back in the early part of the 20th century when the low level workers were doing production line work, not thinking type work...' I agree. The statements about GAAP made me think about something I've suspected for a while now. I've had a pretty fair amount of experience with organizations that had little or no process (think CMM level 1). It seems to me that it's especially difficult to get orgnizations at/near 'CMM 1' to agree to pay for process improvements or tools to make work better/faster/cheaper. My suspicion is that the folks who'd authorize the expenditures are often steeped in the 'old-fashioned' GAAP (as described above) thought, and as a result, they want you to show ROI before approving the change. Well, that has a nice ring to it, sounds reasonable and all, but there's a problem for CMM 1 organizations... ROI computations normally require a ratio between returns(or costs) *with* the proposed change and returns(or costs) *without* the change (i.e. the current state of the system). OK, makes sense. The problem arises because in an immature process, by definition, there's no data normally available to tell you what the current return(cost) is. Without this number, you have nothing to compare against. You're left telling folks that the change will cost $X to buy or put in place, but nobody knows what the hell things cost now, so how do you make a case? I suppose you can do a lot of research and try to find case studies, assuming the decision maker believes them. At this point, I'm about cynical enough regarding the whole situation that I'd almost say you just have to have a leader who 'gets it' to begin with if you hope to get improvements made in immature organizations in a reasonable timeframe. Another tactic is to wait until the inevitable blow-up when the existing chaotic process messes all over itself and then point out (with as much restraint and diplomacy as can be mustered) that perhaps now they might see the value in having done what was suggested. Seems like a hell of a way to run a railroad, though. Thoughts anyone? |
| .NET, Visual Studio.NET, VB.NET, C# | Thu 14 Mar | matt |
| Its been about a month now since version 1.0 of Visual Studio.NET was officially released. So I was wondering if anyone started using .NET either full time or part time? If so what language are you coding in and what are your thoughts on the overall environment and framework? |
| Mon 18 Mar | DB | Haven't taken any measurements as such Ged, and now it's residing in its own VM I cannot do so. My overall impression was that the WinForms stuff was not noticeably different in speed to similar stuff created in Delphi. And the IDE was of similar performance to D6 - I'd expected it to be slower. |
| Tue 19 Mar | Tony | I've been using VB6 for the last couple of years. Would anybody care to comment upon what they found useful in terms of reference material for moving to .NET? Cheers. |
| Tue 19 Mar | Mike Gunderloy | The information in the online help is actually pretty good. I find myself using search a lot, though, because the organization is a mess; in particular, many topics are spread willy-nilly across the Framework help and the Visual Studio .NET help. Install the docs to your hard drive if you've got room; it really speeds things up. As far as things you can buy -- remember, almost everything out there was written by authors who were using Beta 2, and as a result there are disconnects between the books and the shipping product. Also, of course, every author in the universe has rushed out a book or a part of a book on .NET, and many of them are little mroe than rehashes of the help (says the man who added half a dozen .NET chapters to his own most recent book). Still, there are some good ones out there. For the specific task of moving from VB6 to VB.NET, take a look at Brian Bischof's THE .NET LANGUAGES: A QUICK TRANSLATION GUIDE (Apress). |
| Big Pile of money. | Thu 14 Mar | Ged Byrne |
| In his review of Capitalism for Programmers joel says: If you spend enough time in this industry its almost impossible to avoid suddenly finding yourself with a big pile of money that you are going to have to manage somehow. http://www.joelonsoftware.com/navLinks/fog0000000262.html I wish, I wish. Am I alone in finding it not only quite possible, but very easy, to work in this industry year after year and not even find yourself with a tiny pile of money? |
| Tue 19 Mar | Christophe Portenier | Keeping the dream alive ... Many people believe that it is easy to make money in the Software industry ... it is not that simple: - It is nearly impossible to protect intellectual property - There are no or only very low barriers to entry (such as initial investments etc.) - There are thousands of software programmers developping similar applications - It is more difficult to sell a solution than to create one However, if you find a niche where an application creates value for the client and your customer service distinguishes you from the rest ... then it is eventually possible to create a nice little asset (financially spoken). So guys, keep the dream alive, the ears and eyes open and you might have the chance of combining a hobby, a great job and a bit of cash for the golfing days. |
| Tue 19 Mar | Christopher Wells | > There are no or only very low barriers to entry (such as initial investments etc.) Only a few million for marketing, and the fact that big resellers ('the channel') won't stock product from fly-by-nighters, and... |
| Tools we love, tools we want | Sun 10 Mar | Mike Gunderloy |
| What obscure little software tools make your life as a developer easier? Conversely, which tools do you _wish_ someone would write for you to use? |
| Mon 18 Mar | Stan Krute | Just wanted to second the mention of UltraEdit. A great text editor. Bonus: handles hex. |
| Mon 18 Mar | KJK::Hyperion | I wonder if someone will still read this (looks a pretty old topic), but I've seen nobody mention some of my favorite programs, so here I am: - text editor: I tried TextPad, I tried UltraEdit, I tried GVim. They all sucked. Either too much useless cruft, or too much to configure. I was about to give up. Then, I discovered SciTE (Scintilla Test Editor). Words alone can't describe its beauty. Unlike most editors, and unlike *any* cross-platform app (SciTE runs on Linux too), it *just works*. You'll feel like you've always used it. Ctrl+del deletes the word at the right of the cursor, Alt+drag selects text in multi-line rectangles, even the ancient Ctrl+Ins / Shift+Ins / Shift+Del / Alt+Backspace work just like you would expect. Best learning curve I've ever experienced. Download and test it by yourself: http://www.scintilla.org/SciTE.html (did I mention that it does syntax highlighting, code folding, paren matching, and has builtin ctags and grep?) - the Unix tools for NT: http://www2.informatik.tu-muenchen.de/pub/sw/UnxUtils.html . grep, gzip, bzip2, find, diff, less, sed, and many, many more. Win32 apps, no stinkin' emulation layers. It even includes a (barely functional, alas) shell, a quite good one too (zsh) - 4NT, an advanced command interpreter fully compatible with DOS command and NT cmd. I can't imagine doing anything without it. Worth its $70: http://www.jpsoft.com/ - all the free utilities by Mark Russinovich, without exception, at http://www.sysinternals.com/ - phpMyAdmin: web based administration interface for MySQL databases. Requires PHP 4 and a web server (don't waste time with IIS, get Apache for this). URL: http://phpmyadmin.sourceforge.net/ (actually, I'm using it only waiting for MyCC - http://www.mysql.com/ - to reach at least beta stage) - TortoiseCVS. Yeah, right, command line is powerful, flexible, blah blah blah. Or maybe all the GUI programs you've used just plain suck. TortoiseCVS is a shell extension that nicely integrates CVS into Explorer, so that you can use the familiar icon / context menu / property sheet concepts to control CVS source trees. Sounds clumsy? odd? wait until you use it! http://www.tortoisecvs.org/ - Steve P. Miller's Dependency Walker: http://www.dependencywalker.com/ . One word: invaluable |
| Tue 19 Mar | Carlo Walentiny | There are some interesting studies showing that the tools programmers do use are not always the tools they should use. Grep for example is very frequently used for code comprehension (which is a task programmers spend a considerable amount of time on daily), but unfortunately grep is not the right tool for this job. A very interesting paper: http://www.site.uottawa.ca/~tcl/papers/Cascon/Cascon97MergedPages.html More pointers (and info about a different kind of tool for code comprehension, produced by my company) is here: http://infotectonica.com/juliet/tour/ |
| What do you want from this forum? | Sun 17 Mar | Timothy Falconer |
| Personally, Id prefer it if we stick to topics stemming from Joels articles, such as writing functional specs, UI design, running a software company, interviewing, the software industry, great books, software marketing, project management fundamentals, etc. Do we really need another how-to resource for specific programming technologies? |
| Mon 18 Mar | Timothy Falconer | In all successful forums I've participated in (going back to 1981 or so), there's either been a self-regulating group of folks that kept topic drift to a minimum, or there's been a moderator that does the same. Slashdot of course is a third option. This *really* works on the WELL. They've been doing it right since the mid-80s. Of course, $10/mo keeps most people out, which helps. I just starting reading posts here a week ago, so I hardly qualify as an old-timer complaining. My question in the topic title is sincere... what do others want? If the answer is 'a little technology-specific talk in with the rest', then that's fine. I still believe there's value in someone raising the question. As for your challenge... write a series of articles on software & life, start a forum ... sounds like a good idea. |
| Mon 18 Mar | Jutta Jordans | Personally, I find about half of the threads raised in the forum interesting and the other half does not bother me. I think this is a pretty good quota. I find the threads sharing experience (like 'What books do you read?', 'What tools do you use?' etc) most helpful. I also like the threads which just give inside in other people's working conditions, motivations and the like. Not so much to learn from them, but just because I am curious. I normally skip the threads on specific technologies, because many of the things discussed there have little to do with my everyday work or my private interests (even though I try to stay open for new technologies and other fields of work, but you just cannot read up on anything, I guess). Sometimes I follow a thread even though the topic seems not that interesting to me at first, just because the opinions shared there are presented and argued well. Have fun, |
| Mon 18 Mar | Ged Byrne | One of the reasons for topic drift is because Joel hasn't had much to say recently. This is understandable - he does have a job after all. If the board was limited to just Joel's discussions, then there wouldn't be anything new for long stretches. With that people would stop checking for discussion on a regular basis and a lot of the energy will be lost. |
| Mon 18 Mar | razib khan | flames are in my opinion the true bane of message boards, not off topic posts. one can easily ignore off topic posts as long as you find stuff you're interested in. but flames discourage a lot of people from posting-and a larger and larger portion of the posters will be recreational flamers, feeding the cycle and strangling polite discussion. at least that seems to be what happens when an un-moderated board reaches a critical mass and you have enough bad apples to spoil the batch.... thankfully, i think we're a good distance from that on this board. i came here from a link from slashdot. if slashdot links again, and again...then maybe we'll start to see enough traffic to spoil it. |
| Mon 18 Mar | Mike Gunderloy | As on old-time WELL user myself, I just had to post a big horse laugh about the notion of the WELL as a system where the moderators keep things on-topic. Or, as they say over there, YMMV. Yeah, there are some conferences where things stay on-topic, but not most of the ones that I ever visited. Then again, I ended up dropping the WELL when the newbies took over :) I do suspect further changes in the tone of this place are inevitable as it becomes more popular. I'm trying hard not to see those changes as deterioration. My own experience has been that only closed, invitation-only fora stay on topic -- and that, of course, would be self-defeating for a place whose main purpose is to help market Joel's brand. |
| Mon 18 Mar | Mark W | I've given this a little (think: wee) bit of thought. I was part of a Bass Player's e-mail list (The Bottom Line). It was excellent when I first discovered it a few years ago and I became a very active participant. Posting somehow got up to a fevered pitch and they'd release 3-4 digests a day, each with 10-15 posts. (You can only subscribe in digest format.) I left about that time overwhelmed by the number of posts. I would have to dedicate at least an hour a day reading it if I were to stay on top, and since I tend to be a bad skimmer... The posts were 95% relevant and interesting, some about the very techical aspects of amplifier configuration and sonic properties of this or that, others more philosophical, others practical, all about playing bass. I recently re-joined and I found that the digest comes out now only once a day. Each digest is still around 10-15 e-mails, but there's only one a day. This makes it much more easily digested, and forces people to be more concise and at the same time thorough - it'll be 24 hours before they get a reply and another 24 before their post will appear. I don't suggest Joel On Software adopt that format, but the relatively low barrier to entry (click reply, no registration, post appears instantly, not even a preview) contributes to the 'off the cuff' feel. IMHO. YMMV. |
| Visual Basic Code Issue | Fri 15 Mar | chad Steinacker |
| I’ve been trying to figure this problem out for over 2 weeks now! Can you please send me what you believe the Visual Basic code should look like for this problem? *Assume you have a bank account that compounds interest on a yearly basis? In other words if you deposit $100 for two years at 4% interest, at the end of the year you will have $104. At the end of two years you will have $104 plus 4% of that, or $108.16. Create the Visual Basic program that would read in deposit amount, a term in years, and an interest rate. The program should display the running balance on the form, or a separate form. The program should also: · Check for invalid data being entered. · Display a message to the user indicating the mistake, and · Give them the chance to re-enter the correct information The form must contain a minimum of three (3) command buttons: · Calculate. Takes all the value entered by the user, and displays the answer. · Clear / Start Over: Must clear the values entered by the user, and clear the displayed answer(s). It must also reset the focus on the main form ready for the user to begin entering data. · Exit Anyone thats willing to send me the code for this PLEASE DO... Ive just recently started on VB coding and this problem has me stumped! HELP is needed. Thank you- |
| Mon 18 Mar | Ged Byrne | If this problem has foxed him for 2 weeks, he really should consider an alternative career. What chance does he have with pointers? |
| Mon 18 Mar | DB | Somebody post a code snippet, but ROT13 it. That should keep him quiet for another two weeks. |
| Mon 18 Mar | Jutta Jordans | Excuse my ignorance, but what's ROT13 ? |
| Mon 18 Mar | DB | uggc://jjj.ryvgrpnpghf.bet/jbex/ebg13.ugzy |
| Mon 18 Mar | Jutta Jordans | *argl* How convinient, an encoder/decoder :-) such a shame I did not have it to decode the url This makes me think of my long gone youth *lol* when I wrote an encoder/decoder programm simular to that one on my C64. It must have been one of my first programms ever, it was really nice, you could specify a code (up to 6 digits or so) that was used for encryption. A friend and I used it to encrypt/decrypt letters to each other (very secretive, Calvin & Hobbes like). Have fun, |
| Mon 18 Mar | Ged Byrne | http://www.elitecactus.org/work/rot13.html |
| Mon 18 Mar | Timothy Falconer | Qb lbh fhccbfr guvf vf oernxvat gur ynj? Cyrnfr qba'g qrfpenzoyr guvf vs lbh'er va Vena, Vend, Yvoln, Fbznyvn, Nstunavfgna, Phon, be Abegu Xbern. |
| Mon 18 Mar | Timothy Falconer | What's the difference between golf and skydiving? Tbysref tb, 'Junpx .. Fuvg.' Fxlqviref tb, 'Fuvg .. Junpx.' |
| Mon 18 Mar | Tony | Aww, why did you guys have to mention the ROTI thing, I'm meant to be working and now I just have to find out about it. Bloody internet... |
| Mon 18 Mar | Tony | ROT13 I mean...see more wasted time... |
| POLL:Programming taking toll on personal lives? | Sun 10 Mar | Bella |
| I want to take a survey of how long hours affect programmers personal lives. Do you feel your long hours have taken a lot away from qualitiy of time with your spouse and/or family? Do you often wish for a way out? Also, some demographics may be helpful. For easy parsing, please reply in the following format: If you are single, type in your reply: STATUS|S If you are married, type in your reply: STATUS|M If you have kids, type in your reply: KIDS|number_of_kids Knowing age may help... AGE|your_age Thanks. |
| Mon 18 Mar | F.J. Weiland | Willam C made a great point about flex hours, IMO. I concur. It works very well for me, as does the ability to work remotely. Often being at the tail end of things in QA, I can't always tell reliably how long something's going to take. As William C describes, sometimes you just get into it and the hours fly by. I'm sure you all have this happen as well. Remote working is not routine for us, but there's no prohibition against it. There have been a number of mornings when I'll roll out of bed at 5 am, goto my lab at home and get started working and really get into it. Along around early or mid morning, I've sent an email to the PMs and others I'm interfacing with that I'm into what I'm doing and don't want to stop the flow to lose two hours to shower and face my lengthy commute into work. (I hope the genius - or geniuses - who came up with VPN got richly rewarded) Sometimes I need to use the lab at work, so staying home isn't an option. But overall the flextime and the ability to work remotely have helped me greatly deal with those unavoidable situations when some amount of over-work is just going to happen. Good point, William C! |
| Mon 18 Mar | mackinac | James writes: 'It's too bad that long hours are the norm in the software industry. I'm hoping it will fully change in the next 10-20 years, when more Gen-X'ers who grew up and evolved with the computer industry will become 'management'. They'll lead the push for the essential processes that are necessary for a healthy software organization.' This does not seem very likely to me. Where will they learn those 'essential processes'? I have had experience working for an employer that did a lot of things right, but now am in a closer to average work environment. One thing I notice is that the younger people may complain, but they tend to accept things the way they are as the normal way of doing business. They don't really have an idea of how things could be better. When they get to management, they'll probably keep doing things the same way. |
| Mon 18 Mar | Christopher Wells | > (I hope the genius - or geniuses - who came up with VPN got richly rewarded) As an application it's worth millions to a telco ... there's some corresponding money to be made by selling them the kit. |
| Mon 18 Mar | James Wann | Hi mackinac, You hit the nail on the head. The younger programmers complain because they actually have the ability to *identify* the sore points in software development. You'd be surprised at the number of PHB types currently in the industry who have incredibly low EQ's that don't see the very basic problems in a development environment. The typical stuff that a large number of upper/middle managers do not understand. As for not doing anything about it, I often find that it's management that's disempowered them, especially in this economy. There's probably HUGE room for a discussion for dealing with passive agressive software developers. A lot of upper-management types at this stage of the industry have limited exposure, and are often one-trick ponys (ie. Database, GUI, Network, Embedded/Hardware, FireFight, but rarely a combination of the above), whereas today's software field is multi-faceted, with development expertise spanning one or more of the sub-fields that's mentioned above. Sure, today's development environment might just as well turn out PHB's of tomorrow (and I'm certain it WILL!), but engineers today feel the pressure and difficulty and challenges of building large complex systems. And this challenge - for those who last past the ten year survival period for software engineers - will create battle hardened technical leaders that can more effectively deal with schedule pressures, moving requirements, over-architecture, under-specification, because they know and can recognize the symptoms - which is certainly better than PHB's today. BTW, I don't really like to use the term PHB, but it's better than saying something like 'upper and middle management' over and over again. De-normalize if you wish :-P |
| Visual Modelling Tools - UML, OPEN and others | Sun 03 Mar | Ori Berger |
| Its been about two years now that Im constantly bombarded with advice that I should use visual modelling tools for developing software, or I would stand no chance in being able to develop or understand the complex relationships in todays software. Being a practitioner of the if it aint broke, dont fix it school, and not having anything broken with my ability to develop software, I was in no rush - but after a while, I decided to play a little with some modelling tools. I havent spent enough time to be an expert witness on this subject, but to me it seems like pure overhead. I reverse-engineered a project I was not familiar with, and tried to gain elightenment through the generated diagrams. Granted, Im not very proficient at reading them, but they seem to give very little of the REAL semantic info - I got much more insight much faster by reading the source; And eventually, the source is all there is - the semantic mapping between any of the UML concepts and what actually happens is so shaky if at all existent that I find the additional value hardly worth the trouble. I have yet to start a project from scratch and try to apply this methodology - I hope to do that sometime soon, but I havent seen anything to hint my experience will be different. Im not saying the concepts are wrong - far from it. Use cases and such are absolutely essential. But I really dont see how a sequence diagram helps you any more than the code that implements it, ESPECIALLY since the semantic correspondence is virtually non-existent so the diagram and the code arent guaranteed to represent each other. If its complex enough to require nontrivial documentation, UML isnt much help (A free form text file will probably be required), and if its simple enough than the code is enough. Back in 83 when I first studied how to program, most beginner books insisted that if you dont draw a flow-chart before writing code, youre doomed to a miserable future of being unable to understand your own code. People actually believed it at some poing in time, but eventually sense (IMHO) won, and most of us DONT flowchart. Most of the UML propaganda I hear is along the same lines, which gives me that feeling of deja vu -- except this time, theres lots of money involved. Either I am just not getting it (like Im sure at least some of the responses will say), or I AM getting it, but theres too much money in it for the industry to admit. Id like to hear others experience and thoughts on the subject (Especially you Joel, if you can find the time). I was able to trace all success stories I could find regarding visual modelling tools back to the press releases of the company whose tool was used - are there any independent success stories or case studies we can discuss? |
| Mon 18 Mar | Martin L. Shoemaker | << So can the UMLers of the world point to some examples of successful and well known software where UML has been applied successfully ? Is it used at Microsoft ? What products ? >> I can speak to this one. The answer is: Maybe. Depends what you mean by Microsoft. For various reasons, groups within Microsoft are at liberty to use whatever development methodologies and tools they choose. They're judged not on conformance to some corporate standard, but simply on producing results. So some groups use UML a little, some use it a lot, and some won't touch it. I have taught UML a number of times to the Great Plains group at Microsoft. I actually haven't seen them at work; but since they keep asking me back, I can only assume they're using UML in their development efforts. << Are are these companies going to be overcome once some UML powered skunkworks comes out with a Solution to world hunger and captures Osama Bin Laden ? >> Nope. Good design is important, but it's not enough by itself to displace long-established market leaders. UML adoption is a slow process, and the payoff only happens over time. |
| Patching software | Wed 23 Jan | Joel Spolsky |
| Does anybody have any experience with binary patching software? (Were working on the SP1 version of CityDesk). I wanted to use .RTPatch which Ive found to be reliable and well designed, but their lowest, entry level price is $5000, which seems a bit steep. |
| Mon 18 Mar | Just Curious | Joel, in the end what did you use? Did you decide to simply redistribute the changed files? |