| last updated:16 Dec 2002 17:17 UK time |
![]() |
| JOS Statistics - Recent Comments (Comments added for week ending Sun 15 Dec 2002) | View Other Weeks |
| PHP vs ASP | Sun 15 Dec | PC |
| Im developing a web application for uploading and downloading images and associated information. I had started writing it with PHP, MySQL, Apache (on Linux) but the client insisted on ASP, MSSQL, IIS and Windows 2000, so I wrote an ASP version. I now have 2 (unfinished) versions of the application and neither has been tested under real life conditions (I expect a lot of traffic and the image files will be over 20mb each). Im predicting the performance of the PHP/Apache version will be much better. Is there any reason I should continue developing the ASP/Windows version? (Of course, if the client insists on Windows no matter what, that will be what they get.) Im just wondering what other developers have experienced in comparing the 2 platforms for high-traffic web applications. |
| Sun 15 Dec | GiorgioG | << I had started writing it with PHP, MySQL, Apache (on Linux) but the client insisted on ASP, MSSQL, IIS and Windows 2000, so I wrote an ASP version. >> Not to sound rude, but why did you start writing this application without clarifying/specifying the platform with the client? << I now have 2 (unfinished) versions of the application and neither has been tested under real life conditions (I expect a lot of traffic and the image files will be over 20mb each). >> You could use Microsoft's Web Application Stress Tool to test both of these versions. You say you 'expect a lot of traffic' - what does that mean? You really need to have an idea of the target traffic - not only for the software implementation side - but also for the hardware side. i.e. how many servers, what will you use for load balancing? How about SSL traffic? high or low? You may need/want an SSL Accelerator to take the encryption/decryption load off the web servers, etc. << I'm predicting the performance of the PHP/Apache version will be much better. >> I doubt it will be much faster. I think the majority of your execution time will be spent doing large I/O transfers than interpreting large amounts of script. That is unless PHP's file handling calls are faster than ASP's. << Is there any reason I should continue developing the ASP/Windows version? >> Just out of curiosity, if speed is a major concern and you plan on having lots of traffic, and your clients want Windows, MSSQL, asp - why have you not considered ASP.NET? It's compiled and is faster than classic ASP. Contrary to popular belief you don't need Visual Studio.NET to create asp.net sites. All you need is the .NET Framework SDK (Free from Microsoft's site) and SharpDevelop (free from http://www.icsharpcode.net/OpenSource/SD/default.asp) You get output caching, compiled code, all for 'free' so to speak. Just an aside - your personal bias against ASP shouldn't interfere with your client's needs/wants. (read: You want to get paid right?) I personally don't like ASP's syntax. PHP is more like C++/Java/C# which is the style I prefer. But in the end, if your client wants it written with a certain tool - use it. If you don't think ASP can handle high traffic sites, just visit Buy.com, Microsoft.com, bn.com ;-) You server hardware & load-balancing scheme are another important consideration. Finally, I don't think you've given us enough information on the application/architecture to really say which one would be faster. Sounds like a more thorough requirements analysis is needed. |
| Sun 15 Dec | Torment | '(Of course, if the client insists on Windows no matter what, that will be what they get.) ' If you want to use PHP, and the client insists on Windows, why have you not considered running PHP/IIS? ASP is not the server. ASP is an ISAPI program that plugs into IIS. PHP also can plug into IIS with ISAPI. I've done it before. For that matter, why can you not also run Apache on Windows? What is the problem again? |
| Sun 15 Dec | PC | I see I didn't explain it well. I think (maybe wrongly) that Apache for Unix/Linux is a MUCH better web server than IIS, and Unix is a MUCH better operating system than Windows. But maybe that's because I work in a place where they HATE Microsoft, so I never hear anything good about it. There is ASP for Unix and there is PHP for Windows, so ASP vs PHP should not have been the subject. I mean Apache/Unix vs IIS/Windows 2000. |
| Sun 15 Dec | Herbert Sitz | Hmmm. Well you can also run Apache on Windows if you want. As far as speed and scalability I don't think Apache has an advantage over IIS; in fact I think mosts tests show Apache somewhat slower. Main reason Apache is thought preferable to IIS by many is because IIS has a bad history of security holes. Not sure to what extent that's a concern now. (I don't mean to suggest that IIS is up to Apache's level -- I have no idea whether it is or not -- just that I don't hear the panic-level concerns over IIS security anymore that used to be such a common occurrence.) |
| Sun 15 Dec | Brian R | 'For that matter, why can you not also run Apache on Windows? What is the problem again? ' Exactly, what is the problem? I tried to get the Apache Web server to work on Windows and couldn't do it. Anyone here do it successfully? |
| Sun 15 Dec | braid_ged | I have installed Apache on 5 or so windows machines. Like all things the first couple of times you do it there are niggly frustrating problems, after that it's a breeze. If I remember correctly the apache group, in their docs, recomend a linux install and specifically state they make no guarantees apache's behaviour in the windows environment. The windows install was simpler for me than a linux install. I develop php apps on a windows machine with mysql and then move them to a testing or production linux machine. The biggest compatibilty problem I have had so far was when the linux and windows versions of php were different and session handling was no consistent across the two. |
| Sun 15 Dec | PC | I know there is Apache for Windows and I had installed it and started writing the application in PHP for Windows. But what's the point? Anyway, they insisted on ASP (after having agreed to PHP). So I got ActivePerl because I was not going to write it in VBScript. What's wrong with PHP/Apache/Linux? Anyway, now I have both so I'm ready for them to change their mind several more times. .NET is not an option because I'm not learning C# at this time since I'm in the process of learning JSP and Struts at work and my brain is tired. |
| Sun 15 Dec | Walter Rumsby | If you want to write ASP pages, but you don't want to write them in VBScript then you can write them in JScript. Whilst most/all documentation for ASP is geared towards the VBScript programmer you'll find the class and method names to basically be the same in JScript (JScript is case-sensitive however). http://www.4guysfromrolla.com/webtech/LearnMore/jscript.asp If you don't want to write ASP.NET pages in .NET, but you don't want to write them in C# you can write them in... JScript.NET! http://www.gotdotnet.com/team/jscript/ Major benefit: both client-side and server-side code is written in the same language. |
| Sun 15 Dec | Walter Rumsby | Sorry 'f you don't want to write ASP.NET pages in .NET' should be 'f you don't want to write ASP.NET pages in C#' |
| Sun 15 Dec | Walter Rumsby | No, that wasn't right either :( Oh well, perhaps WalterRumsbyPostTotal > GedBrynePostTotal |
| JSP + EJB (+ Java Beans) | Sun 15 Dec | Rasmus Grunnet |
| Hi My company is building a java app that uses EJB on the server side. As the client, we have a Swing java app. We are looking to build some web-based interfaces for remote access that e.g. customers and suppliers of our client can use to access the system. We (the developers) have a pretty good understanding and knowledge of writting EJB code and Swing clients, but we are not that familiar with JSP, at least not the kind of advanced JSP that connects to server side EJBs. Do any of you know some online resources for this kind of thing? I have honestly not been able to find any thing through Google, only Hello World JSP tutorials. I need something more advanced, espeacially about how design the web app so that as much java code is reused as possible and of course to optimize speed. Any thing would be appriciated. Thanks, Rasmus Grunnet |
| Sun 15 Dec | Eric Debois | I dont know if I understood your question.. JSPs are excuted serverside. Running a bean is simply a matter of including it and calling the methods. |
| Sun 15 Dec | Rasmus Grunnet | What I need is some guides on how to do this. |
| Sun 15 Dec | Eric Debois | Here is an example of a common use:
<%@ page import='java.sql.*' %>
|
| Sun 15 Dec | Eric Debois | Here are some references: http://java.sun.com/products/jsp/tags/11/syntaxref1115.html http://javaalmanac.com/egs/javax.servlet.jsp/usebean.jsp.html?l=rel |
| Sun 15 Dec | Philippe Back | Use this and have a prototype in hours: http://www.creamtec.com/webcream/ |
| Sun 15 Dec | Daryl Oidy | Have a look at the OpenSymphony tools. I don't do a lot of JSP work, but people I work with who have particularly recommend WebWork. http://www.opensymphony.com/ |
| Sun 15 Dec | Ged Byrne | The Isavvix community not only provides a series of tutorials, but they also provide a 'dev space' so you can try the code on their servers. http://community.isavvix.com/ |
| Sun 15 Dec | Miles Barr | Jakarta Struts is pretty much the defacto standard for doing complicated JSP work. Check out their website at: http://jakarta.apache.org/struts/ and OnJava has a few tutorials too: http://www.onjava.com |
| Sun 15 Dec | Rasmus Grunnet | Thanks a lot for all the replies. Rasmus Grunnet |
| time management books/help? | Sun 15 Dec | ontime |
| Im interested in learning how to manage my time better. It used to not matter so much, because I was one of those freaky coders who just hacked all day and all night anyway. It worked out pretty well when I was young. Now Im old and have a girlfriend, and need to go to the gym, and stuff like that, so I need to change my habits. I thought it would be as simple as getting a calendar and not fucking around as much, but so far it isnt working so well. I need a conceptual framework. Im loathe to visit the business/self help section of barnes and noble, but maybe I should? Anyone got any suggestions on books? Websites? Something software specific would be useful. |
| Sun 15 Dec | John Ridout | Task list: write a task list first thing each morning of what you intend to do that day. The more you break down the tasks the better. It helps me to focus and gives me a small feeling of satisfaction as I mark each task somplete. You may work from a longer task list but looking at it during the day is often discouraging. Oh yes and don't forget to reward yourself with small treats for completed tasks. Plain chocolate hobnobs, yum. |
| Sun 15 Dec | Brad Siemens | You might even go as far as getting a shareware scheduling app. Hmmm... Painless Schedule jumps to mind. www.uil.net |
| Sun 15 Dec | . | Just like quitting drugs or alcohol, there is no secret here (contrary to what self-help books might tell you). There's nothing you can learn from a book that you don't know already. To manage your time better, just exercise some planning, scheduling, and self-discipline. |
| Sun 15 Dec | Brad Siemens | LMFAO Where I'd leave my boot straps? |
| Sun 15 Dec | Love my ptouch labeler | Get this book: _Getting Things Done_ by David Allen. I was not a naturally organized person. However, this book gave me a system that really works. The important work gets done, bills get paid, papers are never lost, and best of all, you feel relaxed, because you know that nothing is being dropped on the floor. He has a web site too: http://www.davidco.com |
| Sun 15 Dec | ontime | Heh. YEah, I realize there is no magic bullet. However, I was mostly just looking for suggestions on reading material on 'systems' that work for other people. This last link looks kind of promising. semi related note: I used to be a compulsive chainsmoker. I smoked nearly two packs a day! I tried quitting a number of times, always failing. Then I read something somewhere that said a radical change of environment would help. I've spent my life in gloomy crowded northeastern (and european) cities, so I moved to sunny Florida for three months. Never had a desire to smoke in florida, and haven't smoked since! (two years ) Anyway, how this relates to organizational skills, I'm not sure. Maybe I need to join the military? ;-) |
| Hey Joel, ever hear of Flash? | Sun 15 Dec | Byron Fast |
| Joel keeps http://www.joelonsoftware.com/articles/LordPalmerston.html talking about cross platform development but insists on ignoring Flash. Yeah, I know, its not all the way there yet but its not like any of the other technologies he lists are, either. Joel has spoken out against web based apps before (cant find the link just now) so maybe this is a blind spot. Like I said, its not there yet, but its damn close. I cant see any reason why any of Fog Creeks current products couldnt run as Flash apps. There may be some unacceptable compromises there, but if were talking about cross platform I cant see how Flash forces any worse compromises than Java. |
| Sun 15 Dec | Marc | I’ll only make two points here: 50% of what Joel produces is a “web app”. I can’t think of much more of an endorsement of a technology than to actually use it yourself. As for the rest of you post, relating to Flash; are you kidding? Flash is cool and all but it is really just a content delivery system. As most it could be described as a scripting language. It as a lot more in common with JavaScript than Java (and they are *not* nearly the same technology). I don’t see Flash becoming the development platform for any significant percentage of business applications. It is one of the best web UI tools on the planet, but UI is only 30% of an application. |
| Sun 15 Dec | Walter Rumsby | Hey, I have a better idea for web applications.... HTML! |
| Sun 15 Dec | Byron Fast | As for the web app endorsement, I use Fogbugz and so am familiar with Fogcreek's excellent ability to build web apps. The article I was referring to had Joel saying that web apps are great, but can't be everything - he was defending CityDesk as a Windows app. As for Flash, you just don't take it seriously because you haven't seen great apps with it. But that doesn't mean the tool doesn't have the possibilities. It's true, the syntax of Flash's 'scripting' language is the same as Javascript, a fact which has no meaning other than that their syntaxes are the same. Maybe I'm mistaken, but Java as a client with virtual machines that run on anything was the original selling feature of that language. Java has fled to the server at least partly because it was a failure as a unifying client. Flash can do far more far easily and can run in far more places than Java can. People don't take Flash seriously because it has been used to make so much crap: web ads, welcome screens, whatever. Meanwhile, this has paid the bills and forced Flash to actually do something useful. As a result, it has become an excellent programming environment that has realized a lot of goals that things like java virtual machines never quite did. Flash *can* be used to build web-apps that exceed the capabilities of HTML, but until somebody comes out with an eBay-level success with it, I don't imagine anybody will give a shit. Maybe it'll never happen - but I would at least encourage people like Joel and his readers to take a look at it. You'll probably find that it's not quite good enough to do some things you want to do, but at least you should discover that the potential is not far off. |
| Mr. Moneybags | Sat 14 Dec | X. J. Scott |
| A lot of debates on these forums between software professionals end with one party presenting indisputable facts and the other party retorting with Well I make more money than you do so everything you say is wrong. It reminds me of arguments with PhDs who sign their name ending with comma pee aich dee. They make bold claims and when you ask for evidence or provide obvious counterexamples, they reply You wouldnt be able to understand that because I have a PhD and you dont. The thing is that there is absolutely no correlation in a given field between income and competance. Should I say that again? There is absolutely no correlation in a given field between income and competance. Lets look at the field of medicine for example since it often comes up by way of comparison. Some doctors are in it for the money. They party hard in school, make the right connections, get a job at a pretstigious hospital and work their way up to administrator where they practice no medicine at all (perhaps a good thing) while drawing million dollar salaries and figuring out how they can refuse to treat poor people without getting too much bad publicity. Other doctors enter with a desire to help people, study long and hard, think carefully about their life, and move to Haiti where they treat impoverished people in great need, live in modest surroundings and make less than $100/month while they save literally thousands of lives. Which doctor is more successful? It depends on where your values are. is life about raking in the dough and finishing at the top of the heap? Or is it about following your own path and vision? Is it about creating something new and fulfilling? Is it about helping others to lead fulfilling lives? Or is it about shafting it to people as you try and see how much you can get while throwing your weight around like a hippopotamus? Allow me to drop a clue on in on this party: Money is the leash that the man uses to make you go bow wow. You hate your job. You cant do what you want. You work with a bunch of stupid jerks in your opinion. Your whole life is a joke. All you have left is to tell us how much money you make. But I say who cares -- its irrelevant. Money isnt success. If it was, the highlight of your week would not be anonymously posting to JOS about how rich you are while you look down on us peasants from the moneybags you sit on while being driven around in your limousine. It would be doing something worthwhile with your life. there is absolutely no correlation in a given field between income and competance |
| Sat 14 Dec | Gerald | Pure bunk. Generally speaking, people in the IT industry who perform better then others tend to make more. Is the correlation 100%, definitely not, but neither is it 0% as you suggest. One nice thing about IT is that it is for most part a meritocracy. |
| Sat 14 Dec | Nat Ersoz | No correlation? That may be over-reaching. On the other hand, there are lots of people serving time at the plush minimum security facility in Redmond that think 'I'm rich, therefore I'm smart'. That is certainly a gross error. Competency is so hard to quantify that we often replace any metric with income. Its somewhat objective and you cannot argue with results. At least thats the basis for the argument - life as a rat race. In my next life, I just wanna be a greyhound that runs the track at Wheeling Downs. Better than being a rat. |
| Sat 14 Dec | Bella | You may want learn a little bit more about the controversial treatment of racing greyhounds... http://www.google.com/search?sourceid=navclient&q=greyhound+abuse |
| Sat 14 Dec | Joe Paradise | People with hard tech skills usually get paid what they're worth. Management is another story. I've never seen so many overpaid dipshits in any other industry. |
| Sat 14 Dec | Nick B. | With all due respect, I do disagree with Gerald. X.J. Scott’s statements are NOT bunk at all. People in the I.T. industry who perform better than others DO NOT tend to make more. Ok, X.J. makes a melodramatic analogy, but the correlation between performance and salary is closer to maybe 30% than 100%. I.T. is NOT a meritocracy. Hiring practices and salary scales within the industry make absolutely no sense. If you do work for an organization, or generally have worked for organizations in which salary scales are actually based on something rational, you are fortunate. I am hopeful though. The “crash” in many software sectors was, for the most part, self- inflicted. And in challenging economic times, I do think that the fittest will survive, and various sectors of the software industry will probably continue to mature and gain some measure of integrity. Paying people of low competence high salaries for odd political reasons ultimately isn’t conducive to a company’s success. (oh gee, what a deep insight!) |
| Sat 14 Dec | John Chong | 'You wouldn't be able to understand that because I have a PhD and you don't.' I don't want to burst your bubble, but that's probably a true statement in most instances. It doesn't mean he/she isn't being a jerk, and it doesn't mean you aren't as smart as him/her, but let's face it: A PhD requires a tremendous amount of work and knowledge. It's like me with a BS in Comp. Sci. and 6 years of paid experience explaining computer concepts to my mom. She's a smart woman, but I have to make broad generalizations and occasionaly I just say 'trust me on this one, mom'. |
| Sat 14 Dec | Must be a manager | I would have thought XJ Scott's point was so well-known as to be incontestible. The best developers generally work away at their projects while the less capable work at moving up the hierarchy or changing to other roles that give them satisfaction in other ways they can achieve, such as more money. His medical example is spot-on. John Chong, PhD's aren't the only tasks that require sustained attention and intellect. Many serious development projects and even policy and administrative tasks have similar characteristics. So the argument that the holder of a PhD is possessed of superior expertise or reasoning powers has no basis. |
| Sat 14 Dec | pb | With all due respect, this is the dumbest thing I've heard in a long time. I'll give you three industries: football, baseball and basketball. While compensaton and competence may not be perfectly correlated, they are obviously very closely correlated. Know-it-all programmers sitting around complaining all day about management and how much better coders they can do everything than everyone who's making more cash are bores. Get over it already. Prople who make a lot of money obviously have at least one competence: making a lot of money. |
| Sat 14 Dec | chocolate | 'John Chong, PhD's aren't the only tasks that require sustained attention and intellect. ' I don't think that was the point john chong was trying to make. What he was saying is that there is a good chance that someone without a PhD would not understand what a PhD holder was talking about. Which is true, if the PhD person is talking about their subject. For instance, I work at a software lab where most people have a PhD in biochemistry or microbiology. I generally have no idea what they are talking about, especially when they say 'the p4234 is transcription factor which activates the B-galactosidase binding site.' Of course this becomes a problem when someone with a PhD in microbiology says 'Orange juice prevents the common cold,' which it obviously does not, and then insists it does, because whatever they say is true due to their PhD. However, this only occurs in limited cases. Most PhDs I know are so broken down and burned out by the end of graduate school, that they are really happy if someone engages them in a conversation about anything. ;-) Anyway, most people making claims like X.J. are programmers who feel they aren't making enough money. Being the baddest-ass programmer in the world does NOT translate into more money. Making money is a separate set of skills entirely. |
| Sun 15 Dec | Sum people are Dum | 'And in challenging economic times, I do think that the fittest will survive'. Seems like a lottery to me, rather than some Darwinistic result. Plenty of good people don't have work at the moment, and I mean good. Some of the more silly people with work are starting to see themselves as the 'fittest' when in actual fact many of them are merely fortunate. Strange how we can turn the misfortunes of others into our own apparent success, casting ourselves in the most positive light, out of nothing other than sheer luck. All this talk about money, well big deal, are you happy? If you didn't have so much money what do you think would happen to you? Would you end up living in a dumpster? People who discuss money constantly are usually filled with fear. |
| Sun 15 Dec | Nick B. | I thought I had implied it clearly, but when I said, “the fittest will survive”, I was talking about organizations, not individual programmers. I don’t know where in the nation you live. But in Southern California, there are many quality professionals who have been dealt a bad hand due to poor management practices and tough economic conditions. In no way was I suggesting that this is somehow good or fair. However, I am suggesting that the struggles and failures on the part of many technology companies have been self-inflicted due to incompetent business practices (e.g. dubious hiring practices and salary scales), not solely as a result of “the economy”. |
| Sun 15 Dec | Eric Moore | Sheer luck and office politics seem to have as much impact as technical competance. I've worked with a few Phd's and the good ones IMHO seemed to be the ones who viewed thier doctorate as just a ticket that had to get punched. |
| Sun 15 Dec | Simon Lucy | Being smart isn't a qualification for being right. Earning a lot of money may be a value of your worth, but more often its a value that has nothing to do with you personally. |
| Sun 15 Dec | Jan Derk | It seems like this discussion focuses on proving or disproving the correlation between the monthly paycheck and knowing what's best. While that's jolly good fun to talk about, the other higher abstraction is IMHO much more interesting. Why are non-arguments so often used to try to win a discussion? Why do people say I'm right because: - I make more money that you; - I hold a PHD and you don't; - I work at a much cooler company than you; - My great hero Joel says so; - I am smarter than you are; - I am white and you're black; - I am stronger than you; - The bible/koran says so; - I live in country X and you don't; - I am always right; - etc, etc; Bringing non-arguments into a discussion is a clear sign of weakness. Luckily for the people using them, they generally go by unnoticed. Like Margaret Thatcher said: 'I always cheer up immensely if an attack is particularly wounding because I think, well, if they attack one personally, it means they have not a single political argument left.' |
| Sun 15 Dec | John Chong | 'argument that the holder of a PhD is possessed of superior expertise or reasoning powers has no basis' If you think that having a PhD in astrophysics is no basis for having superior expertise in astrophysics, then I can't argue with you; we'll just have to agree to disagree. I also didn't say that the PhD has superior reasoning powers. I also didn't say that a PhD in english lit is allowed to say 'trust me on this, I have a PhD' when they're talking about astrophysics. |
| Sun 15 Dec | Bella | > Making money is a separate set of skills entirely. Yes, making money requires a separate set of 'soft' skills (interviewing skills, marketing your skills, job search skills, knowing where to find high paying jobs, time mgmt skills, recruiter screening skills, proactive networking, knowing the difference b/w FT vs. contract, tax deduction skills, knowing cost of living vs. salary inefficiencies, etc, etc, etc) There are 'soft' skills, and there are raw 'tech' skills. Either skill alone will not make you money. Great tech skills with zero 'soft' skills will rarely land you big money. Great business saavy and zero tech skills will not get you far either. There's an optimal balance somewhere. |
| Sun 15 Dec | Alex Chernavsky | Two quotes without comment: '...the race is not to the swift, nor the battle to the strong, neither yet bread to the wise, nor yet riches to men of understanding, nor yet favour to men of skill; but time and chance happeneth to them all.' -- Ecclesiastes 9:11 http://tinyurl.com/3k1c 'I don't want to be lumped in with the hucksters of the world, because we have the real deal,' Jeff Dachis, co-founder of Razorfish.com, told the paper of record [The New York Times]. 'I feel completely and utterly entitled to whatever success comes our way. Not everybody's good, not everybody has the winning idea, not every idea deserves to be funded or to be public. I'm sorry, but there are sheep and there are shepherds, and I fancy myself to be the latter.' -- Jeff Dachis, who holds a BA degree in dance and dramatic literature from the State University of New York (SUNY) at Purchase http://www.suck.com/daily/99/06/03/daily.html |
| Sun 15 Dec | Prakash S | Nat & Bella have seemed to get it right. I guess this would be a better way of conveying the essence of this thread: 'There is no absolute co-relation between pure competence and income generated' |
| Sun 15 Dec | Daryl Oidy | 'I also didn't say ... I also didn't say ...' What you *did* say is that the 'PhD = right' argument is 'probably a true statement in most instances'. Most conversations aren't about astrophysics, and if you read what he did say, he's talking about people who use that argument in response to 'obvious counterexamples'. |
| Sun 15 Dec | John Chong | You just don't get it Darly, 'obvious' to you probably isn't so obvious when you have the expertise level of a PhD. Just like when I explain concepts to my mom, and I have to tell her that 'obvious' things really aren't as they seem. |
| Sun 15 Dec | John Chong | Like when I try to tell my mom that just because she chose to delete something from the menu in windows, it's not really deleted. She provides the 'obvious' counterexample that yes, the file is no longer there. 'See, watch: right-click then delete, then it's gone!'. Time for the lesson about the recycle bin, and how to clear files from there. So she empties the recycle bin, then I tell her that its still not really deleted. Do I go into the lesson about how the bits still reside on the disk? Hell no! 'Trust me on this one, mom' Sure this is a contrived example, but you see what I mean? Sometimes it's easier to make an appeal to authority than to try to explain something to somebody. |
| Sun 15 Dec | Must be a manager | John Chong, the original statement about inappropriate invocation of PhDs was different from the one you're arguing for. X J Scott wrote about people who: 'sign their name ending with 'comma pee aich dee'. XJS was mocking people who adduce the holding of a PhD as an authority in contexts where it's not relevant. I concurr with XJS in this. |
| Sun 15 Dec | John Chong | As do I. |
| Alternative degrees | Sat 14 Dec | PC |
| I have a question regarding the debate on whether or not you should get a CS degree. How about degrees in other subjects? Is it possible that studying other subjects could be as useful for programmers as CS? I dont have an opinion, Im just asking. A degree in any difficult subject proves you arent lazy. My degree is in linguistics because I think an understanding of how language works in general is at least as relevant to computer programming as mathematics. And if you consider math as a kind of language, then linguistics can actually help you understand math in general, as well as any form of information processing. For example, Larry Walls degree is in natural and artificial languages, so he is a type of linguist. I had various other reasons for studying linguistics rather than engineering or math and CS (Im good at language, not so good at math, soI got a linguistics assistanceship and therefore free tuition and a stipend). I now have been programming as a job for 8 years. So would my resume be thrown out because of lack of a CS degree? Are there others here with alternative degrees, and do you think it qualifies you as much as a CS degree? I have tried to make up for my lack of CS education by reading CS books. I think I know a lot about the history of computers, how they work, and basic CS concepts such as data structures and algorithms. Although Ive read a lot of Teach Yourself and For Dummies books, I also have some theoretical background. In other words, I agree that a CS degree gives you some advantages, but there might be other ways to prove youre a good programmer. |
| Sat 14 Dec | SM | Over the last 20 years I have worked with over 60 developers whose work I know sufficiently intimately to be able to judge their productivity and whose educational background I also know. Of these none of the top 20% have CS degrees but all of the top 20% (except one) do have degrees in something. These are mostly in physics or mathematics but the top all-round developer I have ever worked with had a degree in philosophy from a not so hot university. The one thing they had in common was that they pursued their degrees for the challenge, the insight and the knowledge they could acquire - not to 'get a job'. Interestingly enough, none of the bottom 30% have CS degrees either - most of those have degrees in business, engineering, business college programming courses or nothing at all. So you might say that requiring a CS degree gives you no more likelihood of getting a good developer but it does help you avoid getting a really bad one. If you are hiring for an entry level position looking for a CS degree might help but I don't hire entry level so it is a non-issue for me. P.S. This is taken from my experience in the areas of scientific and business programming (no gaming, embedded, OS, etc.). |
| Sat 14 Dec | X. J. Scott | Linguistics, math, music, physics and cognitive science are all degrees that are well-regarded by many employers, especially when combined with your eight years of real life experience. You sound perfectly qualified to me. |
| Sat 14 Dec | B | >>>How about degrees in other subjects? Is it possible that studying other subjects could be as useful for programmers as CS? <<< This depends on your definition of a programmer. Most development programmers are creative and think; most big company maintainance programmers are drones. Also, what does CS teach you? You dont need a CS degree to program but it helps to at least have a technical/hardscience degree (and a name school matters) to get a job. >>>Are there others here with alternative degrees, and do you think it qualifies you as much as a CS degree?<<< I have a degree in mathematics and a degree in economics. Does this qualify me much as a CS degree, that depends on who is doing the qualifying. |
| Sat 14 Dec | B | Follow up. SAT scores matter more than a CS degree IMO. |
| Sat 14 Dec | J. D. Trollinger | I dunno, but studies show that an MBA degree doesn't help your career at all (the real data doesn't start until the second page of this article): http://www.business2.com/articles/mag/0,1640,41346,FF.html |
| Sat 14 Dec | PC | [SAT scores matter more than a CS degree] Do employers ever ask your SAT scores? |
| Sat 14 Dec | B | Do employers ever ask your SAT scores? Some do. Anyone can churn out a degree in 4 years from Diploma Mill University. |
| Sat 14 Dec | Bob | Some of the guys I have interviewed with ask me about my non-CS degree (I have a BS in Mechanical Engineering). Even with 5 years experience, it kinda hurts. |
| Sun 15 Dec | Eric Moore | I guess I'm lucky, I have a BSEE degree and nobody has ever said a word about it once I switched to software. |
| foo.conf | Sat 14 Dec | BDKR |
| I have to say, this tickled me to death. >>>I think this person was trying to say that in the Linux world they dont write setup programs. Well, I hate to disappoint you, but you have something just as complicated: imake, make, config files, and all that stuff, and when youre done, you still distribute applications with a 20KB INSTALL file full of witty instructions like Youre going to need zlib (whats that?) or This may take a while. Go get some runts. (Runts are a kind of candy, I think.) And the registry -- instead of one big organized hive of name/value pairs, you have a thousand different file formats, one per application, with .whateverrc and foo.conf files living all over the place. And emacs wants you to learn how to program lisp if youre going to change settings, and each shell wants you to learn its personal dialect of shell script programming if you want to change settings, and on and on. <<< I laughed and laughed. BUT, I do wish to say that those .whateverrc and foo.conf files normally have only two places to live. One is the /etc directory. The other is your user directory. The vast majority of apps pay heed to this standard. Furthermore, there is also the /usr/lib and /usr/local/lib directories for, you guessed it, libs, and /home for the various users. But oh well. Its really just a matter of what youre familiar and comfortable with. When I first came to the *nix world, I was a tad bit confused, to say the least. Cheers, BDKR |
| Sat 14 Dec | Mike Swieton | The thing that I think needs to be pointed out here more than anything is that the systems that a lot of Unix utilities and the general unix paradigm use has advantages! The majority of arguments for both sides tend to be religious, but it must be considered that the proponents of both worlds are so strongly attached to their sides because there are very real advantages there, and if they overlook the disadvantages, that's common. And the registry does have severe issues (As do config files, but the issues differ). The point is that while it's easy to dismiss arguments for something because the proponents tend to gloss over the disadvantages is ignorant: You should consider it closely anyway. I know this isn't what Joel meant, but out of context that's what it looks like. Just remember that no product or idea gets so many followers if it doesn't have a few saving graces. |
| Sun 15 Dec | Dan Maas | If you want to stay sane on Linux you must use a distribution with a solid packaging system (e.g. Debian's dpkg/apt). Then if you want to install some software you can just type 'apt-get install |
| Back to the green screen | Sat 14 Dec | crusty admin |
| There has been a lot of talk here on Gui things recently. As gui goes I tend to like Microsoft’s implementation the best. The downside is the cost and compromise it brings to the business computing setting. Pc’s are fine for people at home or who can’t afford a server, but for business they are a money Pit. Capital “P” on that. For business computing a centralized model of computing is the only one that is cost effective. The number of pc’s in an organization compound the problem exponentially. I think the gui has led to this problem. Gui’s have made people think computers were user friendly. Companies quickly bought into that idea. Lets think about guis for a moment. As soon as you spec gui, your costs go up. Guis usually mean a computer at the users feet. More bandwidth to display the application over a wan. Slower response on a given bandwidth compared with a text based interface. Higher administration costs due to specialized tools needed (pc anywhere, etc) to effectively administer pc’s and servers remotely. I wonder if companies consider the bandwidth cost of guis. Paying for bandwidth is a fixed cost (assuming same circuit speed). What do companies think they gain by going gui?. It drives up costs and lowers data entry productivity because users have to use the mouse rather than simply key from field to field or menu to menu. The gui has led to many of todays development issues. Developers and others have come to realize that centralized computing makes sense when it comes to app deployment. The whole internet works on this principle. Just imagine if the internet ran like most businesses. Yahoo would be on the phone with every person in the world that ever visited their site to upgrade client side software to implement new functionality. Yes businesses are on a smaller scale than this, but why do they continue to suffer upgrading end user computers? I think at some point businesses will realize that this whole business of giving users pc’s is a losing proposition. It simply costs too much in time and money. When will managers quit looking at marketing hype and use some common sense? There has to be an end. My hope is the current tough times help bring about the end of the fat client. Of course, this would effectively kill Microsoft as we know it today. They make a living giving computers to people that don’t know how to use them. Back to the green screen! Crusty. |
| Sat 14 Dec | GiorgioG | Crusty, My counter-argument is that browser based applications are still unable to do alot of what a fat client can do. 'But we can have applets!' - sure but you have to make sure you have a compatible version of the JVM on the client. 'But .NET apps can be launched right from a browser!' - same deal - only if the .NET runtimes are installed. Then there are 14 versions of 2 browsers to support. At a large client of mine, there are 15,000 employees. PCs are recycled every 3 years or so. So today, they're still using NT 4 SP3 on alot of machines, newer machines have 2000...who knows which browser they have? JVM? The only way to possibly solve this problem is to use something like Citrix MetaFrame. But then you better damn well make sure that server (or cluster of servers) is up 99.999% of the time. It's an option - but only if your users don't need to install special apps for their specific jobs (which is common in large corps.) This works well for places like call centers. << Higher administration costs due to specialized tools needed (pc anywhere, etc) to effectively administer pc’s and servers remotely. >> You can use Microsoft Management Console (MMC) to manage other PCs/servers. Otherwise you can get off your butt and walk to the machine ;-) If it's a windows 2k server you can use terminal server (not sure on NT4 Server.) << Developers and others have come to realize that centralized computing makes sense when it comes to app deployment. >> It make sense when everyone in your company has the same client pc/applications requirements or when you can justify the cost of X number of MetaFrame licenses. The problem is, you still have to support the client PCs anyway. So if you blow $100,000 on the Citrix software + licenses + X number of servers + hire a citrix admin, how can you justify the cost? or calculate the savings? If this were a no-brainer, everybody would be doing it. I just don't see a clear-cut advantage. |
| Sat 14 Dec | Troy King | Crusty, I'm right there with ya baby. That's something I've been yelling about for ten years. We're making our own problems, and computers really aren't any easier to use now than they were then, GUI or not. In the early 90s, I worked with secretaries and administrators day in and day out that used DOS apps and terminal apps, and they got plenty more done than they do now that they're fighting Windows and and everything else. Having all the options visible on the menus doesn't make it easier to use. Their keyboard templates got them through the learning phase, and it all became second nature to them. Apps it may have been a little harder to learn, but they were definitely easy to use. I think we've made some really excellent computer and programming advancements in the past dozen or so years, but I don't necessarily think the mass GUI-ization of everything has been one of them. |
| Sat 14 Dec | J. D. Trollinger | This link has been posted once before, but it's worth another look: http://www.nytimes.com/2002/04/28/technology/28GIZM.html |
| Sat 14 Dec | tired of all the whining | GUI is here to stay. People want the same type of user experience at work that they are used to at home. Get with it. Quit your bitchin or get out of the business. |
| Sat 14 Dec | crusty admin | 'UI is here to stay. People want the same type of user experience at work that they are used to at home.' WHY do people need a rich user experience at work. Its called work, not play. If you want a rich user experience work on a computer at home. Business needs reliability and productivity. A thin client monoculture is the best way to achieve that. People work for money. I think haveing a rich user experience on their pc is way down on their list of things to like or dislike at work. Besides, as someone else said, users were more productive on text based apps. |
| Sat 14 Dec | SM | I've worked on five text-based mainframe app to GUI Windows app conversions over the last several years and without exception users on the GUI based apps were significantly more productive (as much as 50% more). It is true that I have been lucky to have worked on projects that had pretty good business analysis/UI design. I have seen some projects where the designers just didn't have a clue and produced some sort of awkward, unusable mish-mash - halfway between mainframe and GUI. But if the analysis is done correctly the results can be impressive. |
| Sat 14 Dec | GiorgioG | << Besides, as someone else said, users were more productive on text based apps. >> Obviously, you apparently live/think in the narrow-minded (interface-wise) Unix/Mainframe world. How about graphic artists, writers, editors, business-people who need to make presentations, meeting agendas & reports. Or accountants, managers and the like who need to keep track of numbers and have to show pretty charts to the VP of Finance (the guy that pays you) - spreadsheets/Excel alone are a good reason for GUIs. Yes lotus 1-2-3 worked in DOS. Was it easier to use than Excel for Windows? Hell No. This is not about your comfort as a system/network admin. It's about making the business man's life a little easier. It's my belief that Microsoft is a powerhouse because that is their single raison d'etre when it comes to software. It's easy to use. Hands down. Look at the success of VB for example (if you want a programming tool for an example.) As much as I dislike VB as a language - nobody can deny that it was 10x easier than coding apps using C & the API. Anyone remember DOS/*nix/Mainframes/AS400s as being user-friendly? I don't think so. Again, you could have dumb terminals + a terminal server/citrix setup, but you still have to maintain that stuff & license it. You transfer the cost of 1 thing to another in this way. Sure you gain some things like only having to re-configure the terminal servers when new versions of apps come out. But you also lose in terms of flexibility & security plus now you have one massive single point of failure just waiting to happen (because all hardware will fail and business always tries to stretch it to the limit.) I don't think green screens are the answer. As a tech support/customer service/sales rep for Iomega (while I was in school) - we used a text-terminal based app. It was horrendously slow, difficult to maneuver around and in general - infuriating to work with. We also had a terminal-server based tech support case management system (Scopus) - it was great. Unless the server was down. Or the link to the Utah office was down. And lets not even discuss laptops - which are becoming more and more worthwhile for businesses as they get cheaper to lease. |
| Sat 14 Dec | crusty admin | I was referring to data entry type programs. Not presentation or graphics functions. |
| Sat 14 Dec | one programmer's opinion | 'I was referring to data entry type programs. Not presentation or graphics functions.' No offense, Crusty Admin but you never mentioned this fact in your original post. In your second post, you stated a personal opinion 'I think haveing a rich user experience on their pc is way down on their list of things to like or dislike at work' and you made a sweeping generalization, 'Besides, as someone else said, users were more productive on text based apps.' Yes, in some situations power users probably are more productive using a text based application. You seem to like the centralized computing concept because it makes your life easier. No shame in admitting that is there? Dumb terminals make a lot of sense when you are talking about data entry type of work. Browser-based applications make a lot sense when several hundred or more users need to use an application at the same time. In many other situations, DTs and browser-based applications don't make a lot of sense . |
| Sat 14 Dec | Troy King | My reply to Crusty was based on the assumption he meant data entry and/or word processing-type apps. I agreed with everything Crusty said, and I do not live in the unix or mainframe world -- I've been a Windows programmer since the early 1990s. Just because I (and presumedly Crusty) would like to see a return to that type of interface where it is appropriate doesn't mean I want to go back to things just like they were. We've learned a lot since then, and shouldn't go back and make the same mistakes. |
| Sat 14 Dec | Albert D. Kallal | This is a interesting subject. As for comments about Terminal Server and thin client…what use is up 400% and growing? It is not a no brainier for everyone, but purchasing a dumb windows terminal with no hard disk is in fact a way to reduce the total cost of ownership. I know companies rolling out windows XP and office xp. The client pc are old p200 MHz pc’s. They absolutely fly, and they never had to upgrade memory, or disk or nothing on the pc’s. The pc’s will just sit their for the next 10 years. They never have to setup, or install stuff on a pc. The are truly 100% trouble free, since they don’t do anything. Ok, now back to the issue about text based systems. Straight text entry is generally better, but then that is due to poor GUI design in most cases. One other person mentioned their experiences with converting a text based application to a gui. I had a chance 3 years ago to convert a application of mine from green screen to a GUI. The following is some observations on this project. This was project to convert a tour reservation package from Pick to ms-access. A few quick stats, and then I will outline the differences in a GUI system as compared to a green screen system. Text green screen system (mv-basic lines of code): Albert 20821 RIDES 28816 Reports 16561 KALLAL 11000 AL.EDITS 3143 Total lines of code = 80341 Ms-access (lines of VB code) lines of code in Modules = 6959 forms code = 14964 reports code = 1976 Class objects = 982 Total lines of code = 24881 Ok, enough stats. For a detailed article on what I learned during the conversing you can read the following when you have some time. http://www.attcanada.net/%7ekallal.msn/Articles/fog0000000003.html Advantages of GUI: ** GUI is cool! Now before you dismiss this, think about what I mean here. The most amazing aspect of using a GUI in place of a green screen was the impression that the users have. I cannot believe how impressionable users are. I often hear companies say: Oh, wow, you guys are using windows….we are still using some old DOS based system (it may not be dos…but the association with TEXT is most certainly that the system has to be old, and creaky). Just last week on phone talking to a resort, the first thing the girl mentioned to me was they still use some old text based system. There was no complaints about the text based system, expcet that is seemed very old fashion. In fact, just the impression that the company makes on the employees when they walk in and see green screens. Staff will think they walked into a time machine. I do not possess the proper English skills to convey how powerful and how often this issues of green screen, and old fashioned the company will seem to employees. Often of course these days the green screen in is a “window” on a pc machine, but the effect is the same. If you are tying to sell a product, a green screen system with better features will in fact loose out to a GUI system. For sure, like clothes, cars, food or whatever, this impression is not to be ignored. I don’t view software this way, but the general public most certainly does! Of course the whole point here is not about impressions, but is all the trouble that GUI causes worth it? From a cost point of view, a GUI might not be worth it, but from a customer impression point of view….you HAVE TO have a windows GUI. The public has voted here, and even if I disagree with their vote…they want a GUI. ** Training While a text based system is FASTER from a data entry point of view, GUI users DO NOT need any training for editing of data. This includes cut and paste, and general concepts of editing a screen. Most GUI systems are modeless, where a good many text systems have some type of “EDIT” mode. The result is that the INITIAL first use of the product is a better EXPERAINCE with GUI systems vs text systems. (the discovery process is easier with a GUI since most systems follow a similar format). People often confuse the issue of training required to use a system. Hence knowing HOW to use a system is the hard part, and I can’t say that GUI systems are necessary much easier in this regards. Thus, if you know a GUI, that does not mean you know a accounting program works (companies often make this mistake). I know of one company wanted to write a information system using Excel in place of a database system, since then there would be no training. (they said everyone already knew Excel). Forget it…if a accounting system is written in Excel, I still have to learn the accounting system. I seen spreadsheets that can take a month to learn. It is not Excel that is the problem, it is what you are supposed know before you enter data into the system that takes learning! The so called domain knowledge is what one needs to know to use the product. Again, if you have a great Text interface, or a great GUI it helps. A poor GUI is worse then a good text interface. However, I am finding that users discover, and even assume certain functions exist in a GUI system (such as a un-do option, and it is to be found under the Edit menu). GUI did bring consistency to applications. ** Screen Size This is a real big one. The amount of real estate we have on a GUI screen is really nice. On the other hand, often the 132 character mode of green screen systems is not used (a good many people I knew writing green screen stuff did use the 132 mode..and it helped a lot). If we had larger green screens (text), then even more then 132 chars could be placed on a screen. I don’t think anyone could have known how big computer monitors where going to get. Gosh…have you seen some of the new MONSTOER screens today? I can’t even see what the person looks like sitting at a desk anymore. All I can see is a big monitor!! Hence, few text applications take advantage of the extra screen real estate these days. Regardless, there is much more room on a GUI screen. The use of Tabbed controls is also nice. My text interface did have the equivalent of tabs anyway. At the end of the day, the freedom of a GUI is really nice. I often sit back, and say…wow…..using a GUI is just like painting, where as a green screen was like using a chalk board. The freedom to create nice screens is remarkable. As a developer, the freedom of screens is again a top issues. From a artistic point of view, I can express my self much better with a GUI. As a developer I need tools to express my designs. Software is my canvas. A GUI canvas for screens is MUCH better. ** Report prompts I am not talking about reports, but the GUI to prompt the users for reports. Boy, this again is near the top of my list for a GUI. Here is some sample screens shots of report prompts (do take a quick look): http://www.attcanada.net/~kallal.msn/ridesrpt/ridesrpt.html The above is only a small sample of the prompt screens for reports. I would say this is one area where the GUI over text truly shines. Of course, everyone agrees that for reporting and selection of things a GUI is much better than text systems anyway. I don’t think this is new, but we are making a list of why GUI are better. The above screens turned out MUCH better then straight text counter parts of the old system. It also reduced the learning curve, since each report screen in fact has a LOT of options, and in a text system, you generally need to break out the above type screens into several screens. Too many report screens creates confusion. ** Reports Here I am in fact talking about reports. Graphical displays, and report layouts again shine as compared to the text systems. Reports have much more flexibility. Even just placing a box around some fields as in the following example is much better in a GUI system: http://www.attcanada.net/~kallal.msn/test/bu1.gif You will also notice that the above menu bar for the report has options for email also. (another GUI issue). Every report in the system uses that common toolbar I wrote. However, the problem is MUCH more time needs to be spent to create reports when you have a zillion options for layout. (just choosing the fonts and colors can take more time then developing the whole report in text). They * can * cost more to make if you start getting fancy. However, again the need for visual communications today is real important. Just the freedom in font sizes alone is worth the jump to a GUI. You can design graphical stuff via a text interface (hey…ever heard of HTML?). However, again, for communication of ideas, and report layouts, a graphical system is far superior. ** Email I suppose one could add email to a text based system (in the early days…all email was text…and it was around long before the GUI browser). However, email in fact was the #1 reason why this system was re-written. (Email did not even exist when the old application was written). Email works just about everywhere in this system. Email is a standard means of communication in business today. Modern systems allow email to be integrated much easier then text based systems. This tour reservation product now has a very strong email part to it, and that is one area where I think again text systems fall down. Buttons for emailing invoices, and just launching the email program when looking at customer is available everywhere in the application. We could have added email fields to the old system, but integration into email via templates etc would have been hard. ** Word In fact, it is not really the fact of word, but the fact of com (object automation). I have a lot of word automation stuff in this application. What really is nice is how easy users can create their own templates. The client wanted to bring up a customer name or booking and print an envelope. Two mouse clicks, and they are looking at a word doc formatted as a envelop. Since every printer is different for envelops (side feed, center feed etc), then it would be impossible for me to customize envelope printing. In fact, I just built a general template system. It is the user who makes the word documents for whatever purpose they want. Allowing users to create templates is another area where the GUI is very powerful. They can make a reminder letter, or just a template to print single envelope. I most certainly have worked on text based systems that did allow merge options to word perfect, or the whatever text based word processor they where using. However, this again is one areas where a GUI system allows a lot more CUSTOM options for the CUSTOMER!. Just about every screen in my application has a word button that allows a SINGLE record to be sent to word. The button launches a standard template editor. From that they choose the letter, or create new one. Users can easily share those templates between users in the office. This whole process just works way better when you have a WSYIG editor. ** Mouse to keyboard dance Forcing users to switch between the mouse and keyboard is often a major criticism of a GUI based system. Well, that is simply because the GUI designer does not take the time to make the application * FLOW * correctly. I always make sure that the common (most used) screens and data entry stuff can be done complete by the keyboard. For example, the following explains how users search for data…and I don’t make them use the mouse: http://www.attcanada.net/~kallal.msn/Search/index.html ** Complex Operations are better with a GUI In the following screen users can be moved from one booking to another. This kind of display is VERY HARD with a text based system. I did not use drag and drop, since several options must be set BEFORE the person is moved (the make new slot check box is an example). I found drag and drop too prone to errors. A display like this can be done in a text system, but again it is hard work. That screen: http://www.attcanada.net/~kallal.msn/Rides/swap2.gif At the end of the day: The advantages of text systems tend to be that hands never need to grab a mouse, and no hassles/support occur on the client box. It is all on the server. While some of the software designs are easier (and cheaper) in Text based systems, you can do much more with a GUI. As a result, we do add more features with a GUI, since we can! So, in conclusion , I think that the GUI is a much more expressive canvass for a developer to work with. The freedom I have with these screens is amazing. Perhaps we should adopt thin clients for pc client…but the GUI does have a true benefits. The above is my own experience, and perhaps one’s mileage will vary. Having written both complex text based systems, and GUI based systems…I now am like my customers: I also vote for the GUI. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com |
| Sun 15 Dec | crusty admin | 'You seem to like the centralized computing concept because it makes your life easier. No shame in admitting that is there?' Not at all. I like efficiency. If that efficiency makes my life easier so much the better. I try to be lazy in a way that improves value to the company. I didn't mention specific apps or instances at first where I thought green screen was better, partly because I thought I'd get some better feedback if I ruffled some feathers so to speak. I do see Citrix/Terminal server as a vialble option. I don't necessarily oppose gui. My biggest bitch is de-centralized environments. I'll be the first to admit that gui has improved some things and some things can only be accomplished that way. I guess I am disappointed that people always choose gui, even if it doesn't make sense. Probably the best is a mix, but still stay centralized. Albert, I think I made this same suggestion to you, along time ago when you were talking about moving a pick client to windows or at the time I think you were looking at Linux and open office. What technology did you choose? An interesting note to some of you might be that I am in my early 30's and am not necessarily on the newer is better bandwagon. I say that because I think many of you will look at my handle of Crusty Admin and think I am a 50+ year old that doesn't like change. I embrace change if it improves things. I know 50+ year olds that think I'm too dam conservative. That's alright, takes all kinds to make the world go 'round. |
| Sun 15 Dec | Albert D. Kallal | >>Albert, I think I made this same suggestion to you, along time ago when you were talking about moving a pick client to windows or at the time I think you were looking at Linux and open office. What technology did you choose? Oh, we just picked up the phone and had them order a bunch of dell pc’s. They all came with office XP installed, and ready to go. They were those small work station models, and were a absolute bargain. They were such a good deal, that several were ordered with flat screens. So, we went with windows XP computers running Dell all the way. Just plug them in, and away they all they go. Too nice! The server does run Linux, and they use Samba. The database application also of course runs on the same Linux box (d3/pick). Each PC uses a terminal emulation program (aka green screen!!) to connect to the legacy application running on the Linux/pick box. (we of course dumped the rs232, and connect via the standard network). I wound up writing some VB code in Excel to interface to the database. It works very well (we did not use odbc..but could have). I have not heard a peep from them since mid summer,. …so all is very well. I guess getting dell to deliver a bunch of computers was really the path of least resistance. So was having office XP pre-installed. No time to play, and figure out what might work…..we just choose what does work. This whole approach might sound a bit lazy, but then that is the reality of most situations when time is limited. We just have to maximize our time in these projects, and the above was the right approach. We were in, and then we were out real fast. It will be interesting to see how the support and reliability of the whole system turns out. While all seems VERY good right now, I would think that each PC would have more maintenance then the ultra reliable old box that need a re-boot once very two years (I am NOT kidding here!!). Regardless, the Excel interface to the d3/pick database worked well, and everything else is running a 100% trouble free right now. I did hear that staff were caught playing solitaire, and boss always had thought computers were for staff to get work done. I believe they may have to remove the games. They are also in the process of giving everyone the internet and email. So much for work productivity increases! Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com |
| Non .Net Language to use for new project | Fri 13 Dec | Florian Heine |
| At the moment I am trying to decide what programming language to use for a little programming project aimed at corporate type users in a business setting. As this is a new thing I would like to make sure I dont end up making the codebase obsolete by choosing a tool that is a dead end. As Joel has pointed out before, the .Net framwork is a significant overhead and I am not sure how log it will take for .Net to be on every desktop in the corporate world (Most of mine are still NT4). VB has turned into a dead end for non-.Net development due to the fact that it no longer is supported for non .Net apps in Visual Studio .Net. C++ can still be used but lacks some of the ease of developping GUI apps. Delphi is an option but which way is Borland going to go? Any thoughs would be appreciated. |
| Fri 13 Dec | Z M | C. |
| Fri 13 Dec | Tim Sullivan | Borland is going toward .NET, however, Delphi 7 is a fantastic product for developing modern applications. You can make runtime-free applications (no ActiveX controls to install!), that support all the current buzzword technologies: SOAP, n-Tier, XP. :-) Also, there are a lot of excellent add-on components (that also don't require installation at your end-user's site) that can make your app do amazing, amazing things. You can't go wrong with Delphi. Itsupports both Win32 and Linux today, and will support .NET tomorrow. |
| Fri 13 Dec | GiorgioG | Have you considered making this a web app and still possibly using .net? (I know you mentioned non .net - but I figured I'd suggest it regardless) This would only require you to install the .net framework on the server. As far as Delphi is concerned - if Borland decides to move it to .NET - it's very likely that it will break compatibility with previous versions - just like with VB/VB.NET. |
| Fri 13 Dec | Woodrow Stool | Delphi, no question. |
| Fri 13 Dec | Bill Carlson | I respect your decision not to go the .NET route. However, I'd hesitate to use the fact that customers don't have the CLR as a reason. How long do you expect the product to be viable and supported? Likely, most of the released life of the product will exist in the period after the CLR has become ubiquitious. Also, the CLR is only 20 meg. Sounds like a lot. Really, it's just a couple minutes over a DSL connection. Best of luck, whatever you choose! |
| Fri 13 Dec | Herbert Sitz | GiorgioG -- As far as Delphi is concerned, I would say it is extremely unlikely that the compatibility differences between Delphi Win32 and Delphi.Net will be anything like the incompatibilities between VB and VB.NET. VB and VB.NET are essentially different languages with VB.NET retaining similar syntax. VB didn't fully accommodate object oriented programming (e.g., no inheritance) and MS decided to change this by creating a new language: VB.NET There is no need to make similar changes to Delphi to move it to .NET. I'm sure there will be some incompatibilities between versions, but nothing like those in VB. In fact, you can already program using Delphi in .NET (using the .NET preview compiler packaged with Delphi 7). You can read more about it at: http://bdn.borland.com/article/0,1410,28972,00.html , which also lists some (simple) things to avoid doing if you want code to be compatible across versions. |
| Fri 13 Dec | GiorgioG | Herbert, Interesting - I haven't messed with Delphi at all since version 2.0...So all else being 'equal' - why go with Delphi instead of VS.NET? (Just wondering) Price wise - VS.NET Enterprise Edition comes in at $1799 (or just shop around for a MSDN subscription and it's even less) and Delphi Enterprise comes in at $3000...sounds like you're paying a big premium to program in Delphi/Pascal. But that's my biased opinion - I really like the VS.NET IDE. |
| Fri 13 Dec | Giampiero | I believe that VB is far from a dead-end. Even though the current iteration is basically an overhaul that is incompatible with previous versions, it isn't like classic VB just picked up and walked away. Writing your code in VB would give you the ability to quickly right your application and is ideal for small projects. Maybe in a few years when you are on version 3 or 4 you can make the port to .NET (don't kill me Joel) if you want. While I am on the subject. The .NET overhead is not that great. In the end it is just a little worse than installing the JVM on someone's machine (because of GAC). You can even pick it up through Windows Update. Obviously, I don't know the situation at the firm you are working for/at. You may be faced with a situation where the IT managers don't want to upgrade the machines to .NET. This is common and understandable. But in this case right a program that uses VB. Use Delphi if you want as well. From what I have been reading in this thread it will probably have an easier time translating to .NET in the future. I haven't coded using Delphi, but I have coded in VB and I know that I can pump small apps really quickly. |
| Fri 13 Dec | Herbert Sitz | I think you're right that Borland tools are generally a bit more expensive than MS alternatives. (Surprising to some, I'd guess.) I'd say one of the main reasons to choose Delphi is the concern the original poster in this thread has: you may need to deploy to machines that don't have the CLR and aren't likely to be getting it soon. Other reasons: --- related: Develop now for Win32 and (hopefully) an easy port to .NET a couple years down the road. -- You aren't tying yourself to MS. -- Available 3rd party components for Delphi are easy to use (no activex install problems, they're compiled into your executable) and top-notch quality, both in product quality and quality of support. -- Cross-platform not only to .NET, but also to Linux via Kylix. -- Delphi program can be easily downloaded from internet via a dial-up connection, not practical if client also needs to download and install .NET CLR. -- Others? I'm sure I've left some out. |
| Fri 13 Dec | GiorgioG | I forgot to mention - nothing's stopping you from putting the .NET framework runtime in your installer/setup process on the client side. I'm not really sure what your environment is - but either you're deploying via CD (20mb of runtime is nothing in this case), via a LAN/WAN - not really too big a deal unless your clients are on dialup/remote-access. Just a thought... |
| Fri 13 Dec | Tim Sullivan | 'All else being equal' Well, all else isn't equal. Delphi produces smaller, faster, easier to maintain code than Visual Basic. There are no ActiveX controls to deploy, no runtimes, nothing (unless, of course, you want to deploy using packages or DLLs or whatever - the choice is yours). Why is Delphi more expensive than Visual Studio.Net? Easy: Borland doesn't have an OS monopoly financing it with an 85% profit margin. It needs to generate money to stay in business, and does that by consistently providing tools that are better than any alternative. Besides, you can get Delphi 7 Pro for, like, $450 or something. You don't NEED the Enterprise version to do most things. But if you want Bold, Rational Rose and some other, enterprise-level features, you can get Delphi Architect, which has them all. Having said that, the cost of Delphi will be the smallest cost in your development process. You'll spend a LOT more on your wetware. :-) |
| Fri 13 Dec | fool for python | Without knowing anything about the app, it's difficult to make a recommendation. Wait...no it's not....Python. and wxPython for the gui stuff. |
| Fri 13 Dec | crusty admin | Funny, no one has mentioned Java. |
| Fri 13 Dec | Troy King | What is wrong with using C? Ultimately maintainable code because so many programmers know it, the API was designed for it, there are a dozen Windows compilers that can be used, you're not pinned to a vendor, etc. OR -- give http://www.powerbasic.com/ a try if you're coming from VB. It makes tiny, fast, standalone exes. |
| Fri 13 Dec | Frederic Faure | Any scripting tool like Perl or Python that offers a GUI tool, or PowerBasic :-) |
| Fri 13 Dec | GiorgioG | Tim, << Delphi produces smaller, faster, easier to maintain code than Visual Basic. There are no ActiveX controls to deploy, no runtimes, nothing (unless, of course, you want to deploy using packages or DLLs or whatever - the choice is yours). >> Just to clarify, I was asking about VS.NET vs Delphi, not VB vs. Delphi. Faster? Unless his apps are cpu intensive, this isn't an issue as .NET apps are not java-slow. Smaller - sure. But in a standard corporate environment, installing the .net framework is not a huge issue. Easier to maintain? A pig can easily make a mess in any environment. Just as any half-decent & discipiled programmer can write elegant & maintanable code in any language. Personally, I don't like VB/VB.NET. I'm more of a fan of C++/C#/Java-like languages but claiming that Delphi code is more maintanable intrinsically - does not make sense to me. As 'fool for python' pointed out - it is very difficult to judge what is the best tool for this specific situation as we have no idea what type of applications are required. However, as this is quickly turning into my tool is bigger than your tool... I'm done talking about my tool ;-) |
| Fri 13 Dec | Walter Rumsby | GiorgioG - troll! '.NET is not Java slow'. FUD! FUD! FUD! I remember sitting in a Cold Fusion seminar and people being worried about Java's performance on the server side - oh please! Modern VMs like Hotspot run fast ( http://www.artima.com/designtechniques/hotspot.html , http://www.javaworld.com/javaworld/jw-08-2002/jw-0802-performance.html ). Given that Crusty Admin asks why no one has mentioned Java. If it's to be a web app Java is just as viable as .NET (+ flexibility to port to Linux, etc) and there is a a large Java developer community (+ it's taught in most CS programs) so a Java application will be supportable in the future. If it's to be a desktop app (for Windows only clients) then Java is probably not a good option (see discussions about weaknesses of Swing - one thing... it's slow :) ). If you don't want to go to .NET on the clients (these machines are running NT - they may be 3-4+ years old and not have enough resources to run either .NET or Java very happily client-side) then I think Delphi sounds like a very good option. Remember Delphi and .NET had the same architect ( http://c2.com/cgi-bin/wiki?AndersHejlsberg ) and share many of the same concepts. Delphi will become a .NET language and should be fairly easy to support in the future. |
| Fri 13 Dec | GiorgioG | Hey - I wasn't trolling. Yes, java apps can be fast on a 1.4ghz machine (as mine is) but chances are if this guy's users are running NT 4.0, they're running 266-400mhz machines (and that's being optimistic.) I did technical support a few years back with a java based chat support tool on a 400mhz. It was ungoddly slow. As were all other java based apps on pre-700mhz+ machines with less than 128mb of ram. In my opinion it's not as responsive as a normal win32 app (or .net for that matter) which was my initial point. |
| Fri 13 Dec | GiorgioG | Ok, my previous post was just a response to the 'troll-FUD' accusation ;-) As far as Java is concerned, in general I think it's a good platform for the server side. Unless you're talking about Websphere ;-) JBoss, Orion, et al may be better to that end. My biggest gripe with Java is the crappy visual IDEs. Websphere is so slow it's unusable IMO. Netbeans, Eclipse etc still seem sluggish compared to VS/VS.NET. I don't like IDEA's IDE (not sure why everybody gushes over it - especially with a $399-499 price tag.) If I'm not doing any UI work, then I'd just stick with Visual SlickEdit. But my mainstay these days isn't middleware, so I'm usually working on something that requires a UI. JBuilder may be an exception, but I tried for several days to get it to debug/deploy on a websphere server and never managed to get it running properly. Without going on a tangent, this is one of the reasons I like microsoft dev products...generally, they work out of the box. Please folks - I'm not trolling, these are my opinions and should only be taken as such. |
| Fri 13 Dec | Walter Rumsby | GiorgioG, I agree, IBM has a knack for turning out very resource hungry software (which I assume you are supposed to run on IBM hardware and pay IBM consultants to tweak for you - ie. 'buy more memory... from us!') and VisualStudio is a very good product - a couple of years ago I was using Visual J++ and it's very nice. These days I use IDEA which I find very intuitive (it uses a Swing interface, so no Alt+Space, etc - sorry Joel - although it does support VisualStudio keyboard mappings) and fairly responsive (my machine at work has < 200MB and IDEA certainly is more responsive than NetBeans or WebSphere). Some chap has a list of '25 Reasons I Love Using IDEA' - http://home.iprimus.com.au/trinexus/idea.html - for me it's mostly because it gets out of my way and lets me do my work (no wizards!), but then when I need it to help me out (eg. I move some source files around using Windows Explorer or I want to change a method's name) it does a really good job - ie. I don't have to clean up things it doesn't do properly because it seems to do everything properly. In terms of the original question - if you're doing Java development use IDEA - it costs less than VS.NET Studio :). Delphi sounds realistic for a desktop solution. |
| Fri 13 Dec | Fred Savage | I can't imagine why anyone hasn't mentioned COBOL? Another option would be M or [MUMPS] or [M]UMPS or [M][U][M][P][S]? It comes with a built in obfuscator -- the editor! (rimshot) |
| Fri 13 Dec | GiorgioG | Walter R., I just downloaded the latest & greatest version of IDEA trial version and to my dismay it's incredibly slow. I have a 1.4ghz with 1.5gb of ram and a 250gb of hdd space +(running at 1600x1200x16bit). A pretty hefty dev box at least by my standards anyway. Just as a test I created a little hello world project and closed IDEA. I reloaded IDEA and timed the load till I could edit the code - 19 seconds. Menus seem to take a bit over half a second to open. That's my gripe with Java ;-) And it's sad to say that this is probably 3-4 times faster than Websphere Studio (4.x anyway) With VS.NET I load up the IDE & am staring at code in 5 seconds. Sure, parts of the IDE are not built in .NET - but I don't care what it's built with as long as I don't have to wait for it. God knows I don't hate java for the language itself. We all know C# is basically Java++. But the speed really is an issue. But I digress. |
| Fri 13 Dec | crusty admin | I think a lot of people can't get by java's second rate and slow gui. I agree with a previous poster that server side it is rock solid and the cross-platform ability is cool. It does seem that Microsoft manages to kick the living crap out of almost everything out there for gui responsiveness and feel. If you get used to this on Windows I think it is really hard to use tools with crappy gui performance. |
| Sun 15 Dec | one programmer's opinion | Florian, How about supplying us with some more information regarding the corporate business application who plan on building? How many people do estimate will be using it? Type of architecture you plan on using, etc. |
| Sun 15 Dec | Ben | Powerbuilder? |
| Sun 15 Dec | one programmer's opinion | Hi GiorgioG, 'Just as a test I created a little hello world project and closed IDEA. I reloaded IDEA and timed the load till I could edit the code - 19 seconds....' Well, you are talking about the startup time here. My mom thinks her computer which has MS Windows installed on it is slow to load. 'Menus seem to take a bit over half a second to open.' Yes, this is much better! Talking about the sluggishness of a program (execution speed) while it is being used is a far more relevant and important metric imho. |
| Sun 15 Dec | GiorgioG | one programmer's opinion: << Well, you are talking about the startup time here. My mom thinks her computer which has MS Windows installed on it is slow to load. >> Well, I was just citing the most blatant example ;-) But yes, the menus are slow and the entire UI as a whole is just not crisp & does not 'snap to attention' like VS.NET or Visual SlickEdit. |
| Degrees, Publishing, and Professionality | Fri 13 Dec | Brent P. Newhall |
| Ive been reading the threads about getting a degree, and the discussion of whether the lack of a degree hurts ones chances of getting a job. And it struck me: This is very much like the writing business. A lot of beginning writers bemoan the fact that its so hard to get published these days, particularly short stories in magazines. Most writers collect many rejection letters -- dozens, usually -- before their stories are published regularly. However, magazine editors receive, literally, *hundreds* of manuscripts per month. *Hundreds*. And they have to choose six or so each month. How do they do it? They look for obvious flaws. If the manuscripts not in the standard format, theyll reject it. If there are obvious grammar or spelling mistakes, theyll reject it. If the story fails to draw the reader in within a paragraph or two, theyll reject it. Now, theyll still check the story to make sure theyre not rejecting Shakespeare, but Ill tell you a secret: They never do. Why? Because of professionality. If the writer hasnt had the discipline to find and follow the standard manuscript format (which is available everywhere), thats a good sign that they wont be disciplined in other areas. If they havent bothered to learn the language well enough to use grammar well or spell properly, what are the odds theyve bothered to make the plot interesting? And so forth. If you actually read these stories, this belief holds true, almost every time. A story with poor grammar is almost always poor in general. A story that doesnt follow the format is almost always lacking in other areas. Are there exceptions? Sure. But theyre extremely rare. The belief holds true. And thats the same attitude youll find when a recruiter hefts a stack of fifty resumes and is looking to find the best person for the job. Theyll look for common indicators of professionality. Having a university degree is one good indicator that youre a professional. Is it the only indicator? No. But having no degree is a mark against you, and why operate with an automatic mark against you, if you can help it? Now, this analogy isnt perfect; hiring an employee is not exactly the same as accepting a short story in a magazine, and getting a university degree requires way more work than reformatting a document. But the attitudes are very similar. And thats one of the reasons why having a university degree is important, in my opinion. |
| Fri 13 Dec | Officially on weekend leave | Of course you did not mean to imply otherwise, but having the degree might help in the short run, but won't do you any good in the long run if you have merely bought it. So I'd say, get that degree if you need the leg up when applying for jobs, but make sure you've earned it. |
| Fri 13 Dec | water | Software is also like the publishing industry, in that, degreed or not, unless you write a best-seller, you'll eventually get paid the same wages as a writer. |
| Fri 13 Dec | Anonymous Coward | A candidate can lie about having a degree but cannot lie about having good grammer. That is an important difference between looking a work product (like a short story) and looking for somebody to hire to produce a work product (like a computer programmer). |
| Fri 13 Dec | programmer | Employers discard resumes of people without bachelors' degrees NOT because they're thinking, 'Gee, so many resumes, I wonder how I can winnow them down -- I guess I will throw away the ones of people without bachelors' degrees.' It's not just an arbitrary way of thinning out the pile of resumes. No, they throw them away because people who don't have bachelors' degrees are lacking something as employees. You will not even get an interview where I work, if you don't have a bachelor's degree. It doesn't matter what subject it is in, but if you don't have it, you are not eligible to work here. You can say, 'But in programming you don't need a degree -- you should be judged solely on your skills, which you might have acquired on the job -- so why would they have that rule?' I suspect they require a degree because it shows you can orient yourself toward a goal, a goal that takes four years to accomplish, and stick with it -- taking courses that may not interest you, being disciplined about study, etc. It shows you are mature enough to take your education seriously. A relative who is director of human resources for a large (non-IT) company puts it well -- people without bachelors' degrees are 'missing something' as employees. Having earned a bachelor's degree definitely trains your intellect in ways you could not achieve in the workplace. Please don't bring up the example of Bill Gates or Larry Ellison. Sure, if you are headstrong and brilliant enough to start your own world-class software company, you don't need a degree. But the number of people in the world who are like that could fit inside the cubicle where I sit now -- and chances are, you're not one of them. |
| Fri 13 Dec | Nat Ersoz | Its actually very easy to publish an article in a technical journal. They are hungry for useful stuff that is 3 pages in length and has source code. I publshed 2 articles in Borland's C++ journal about 8(?) years ago. Paid $800 each. Not bad, and it gets your name out there, looks good on a resume. Gotta pay taxes off that - income as 1099. Its a good thing to do for those of you job hunting. |
| Fri 13 Dec | BS | 'people without bachelors' degrees are 'missing something' as employees. yes, they are 'missing' a bachelors' degree. 'Having earned a bachelor's degree definitely trains your intellect in ways you could not achieve in the workplace.' Did you attend the Sorbonne? Or perhaps tutorials at Oxford? Trains your intellect? Give me a break. These threads are at best tedious and at worst, ridiculous. On another thread, someone else is posting that George Mason University is considered Ivy League. I'm sure your mothers are very proud of you and your bachelor's degree, now get back to work, and finish paying off those student loans! |
| Fri 13 Dec | Nat Ersoz | I disagree with the notion that people without degrees are missing somethng as employees. Much as I love my experience in EE eduaction, and perhaps will go back full time some day, I don't see it as a prerequesite to employment. Neither do many tech firms, most notably MSFT. |
| Fri 13 Dec | Nat Ersoz | Well, BS hasn't got a clue either. But that's a dead horse. |
| Fri 13 Dec | Brad Siemens | Impersonation is the sincerest form of flattery or some such yammering... I can only add Hoo YA! |
| Fri 13 Dec | Brad Siemens | Just so there's no confusion... I'm not BS although I have a pretty good idea who is. |
| Fri 13 Dec | BS | My bad, maybe I am the clueless one. I did happen to miss the big George Mason U vs. Yale game this year, because I was too hungover from the Harvard/Ohio State School of Nursing Mixer the week before. Certainly not one qualified to comment on the value of higher education. |
| Fri 13 Dec | Bill Carlson | I appreciate 'programmer's points, though I don't agree. A degree shows that someone had their stuff together from age 18-22. Is this relevant to a 35 year old? Yes, but it's really only ancidotal evidence. People take different paths through life. Just as an example, I dropped out of high school to take care of my mother, who was sick. Started my own software business and operated it successfully for 6 years until she got better. This isn't dedication? Apperantly not enough for your company. I'm not fond of the stereotyping that occurs on these boards. A degree mean a button-up stuffed shirt with no creativity? Give me a break. No degree means 25 years old, read a couple 'in 21 days' books and wants $100K? Not necessarily. People are much too complex to reduce to any one axis. If there is positive coorelation between degree and competance, you're not losing by excluding the non-degreed. More power to you. I'm being sarcastic here, but why not exclude blacks, renters, old and fat people? Statistical coorelations can be used to justify any of these. My argument is that a company full of white, thin, young, homeowning, in shape people all with a degree isn't necessarily better than a company that hasn't applied arbitrary, unbending criteria. Remember, my point is in jest, but you see the idea. I see software development as primarily a human exercise. Someone who has, by choice or accident, taken a non-standard path MAY bring valuable human experience to the table that isn't brought by someone who's life has been 'paint by number'. |
| Fri 13 Dec | Marc | You nailed it on the head Bill. I, for example, don't have a degree. Not that I don't wish I had one, just for the sake of the university experience. I started out in the theatre and later the recording industry. Computers were just a hobby at the time. Though some odd set of circumstances I ended up writing an application to handle client booking at the studio and it just never ended. Once I realized that I was working 90% of the time on software, it was pretty obvious where my talents were. I've never looked back! ...much.... Some would say that this means I lack the 'university experience' and therefore I am 'missing something'. They may be right, but then I don't know may grads who have had my experiences either. Who is to say which were better? I guess studying the intricacies of Roman politics is something I'll never have the opportunity to do, but I wouldn't trade in the experience of recording with Peter Wolf for it. |
| Fri 13 Dec | anonQAguy | been thinking about this latest instance of the endless (and endlessly recurring) debate re university vs no university... Given: two individuals, Joe College and Bob Didnotgo, who at this instant are equally capable of doing a given software engineering job. Joe College has a BS in Computer Science, Bob Didnotgo has no college. Question: Given that they are equally capable, which has demonstrated more drive and innate learning ability? I have a personal bias here, but my intent (in case I've failed in doing so) is to pose this situation and question in a completely unbiased manner. ok, so let the fur fly... |
| Fri 13 Dec | Vincent Marquez | I'm not sure if anyone here has actually GONE through a bunch of resumes lately...I have, so I'll enlighten you: No one puts their education at the top, or even on the first page, unless they're fresh out of college. No, this isn't a generalization, this is after sifting through hundreds of resumes looking for a new J2EE architect. I agree with what everyone said about how a degree shows someone is mature, etc... but honestly, when I was going through the resumes, I didn't even care. I looked at their experience, they're knowledge, how they rated themselves, etc. Now, I'm pretty sure all you guys saying 'my company doesn't hire somoene without a degree' would make an excuse when they're desperate to fill a vital position. Your honestly telling me that if you found that one candidate who fits your position you'd throw him out soley because he didn't have a degree? I don't think so. Good people are hard to find. Good companies hire them when they find em. |
| Fri 13 Dec | one programmer's opinion | Imo, Corporate America's hiring practices (i.e. metrics) are currently (and have been for some time) in disarray. If a company needs young people who are capable of being productive right out of the gate then don't make a four-year college degree (or higher) a mandatory hiring policy for every open job position! Imo, a two-year degree is more than sufficient for most IT technical positions. Now having said this, there is nothing wrong with wanting to hire someone who has a Bachelor degree, an MBA, a Ph.D, etc. if the degree complements the position a particular company is looking to fill. If a company truly needs someone who has a background in engineering or scientific software development then so be it. However, if the job candidate is expected to build and maintain business applications, then they shouldn't be looking for an engineer or an academic. These individuals may or may not be very book smart, but that doesn't guarantee they have any practical work skills. What it typically guarantees is the feeling by the new hire of being underemployed. Somone who used the nickname Not Joel Spolsky mentioned in the thread 'Breaking into development without a degree' that his Comp. Sci. professor told him he was there to learn about computer science not computer programming. Imo, most four-year colleges (in any country) do a terrible job of preparing students for work in the 'real world'. Many college professors seem to agree with my opinion. Why do I say this? Because many don't believe people should be taking their classes for this reason (to get a job). Trade schools, technical colleges, etc. tend to do a much better job of preparing their students for work in the 'real world'. |
| Fri 13 Dec | programmer | Not having majored in computer science, I'm curious what that course of studies entails. Do Comp Sci majors mainly focus on learning languages, like Basic, Pascal, Fortran, C, C++, Java? Or do they study how computers work, and the theory behind computer programming, equipping them to perhaps create a new language? Or a little of both? |
| Fri 13 Dec | T. Norman | A good Computer Science program does not focus on languages; it focuses on various programming concepts that will enable you to learn new languages quickly and effectively. The programming languages used were mainly for application of the concepts. At the school I went to, in about half the classes students could even choose which language they wanted, using in different languages for different assignments. The courses I took included: - Object Oriented programming and design. - Computer graphics. - Algorithms and Data Structures. - Hardware architecture, including logic circuits. Assignments included writing microcode. - Assembly language programming. - Software engineering, in which 'real world' problems such as estimation and requirements management were studied. When I did the object oriented class, the language they focused on was C++. Today, the focus of that same class is Java. Because of the concepts learned and practised in that class, I was able to pick up designing and programming in Java very rapidly compared to co-workers who never had any training (neither classroom, self, or on the job) in object-oriented fundamentals. |
| Fri 13 Dec | T. Norman | As far as programming is concerned, people without bachelor's degrees in Computer Science or something close *are* missing something ... if they didn't take the initiative to learn that 'something' outside of a degree program. Bill Gates doesn't have a CS degree, but he has enough knowledge of the field that he could easily pass just about any exam or assignment given in a CS bachelor's degree program. Michael Jackson doesn't have a music degree, but with his knowledge and experience of singing and songwriting, he would wipe the floor with any music major who challenged him. Ted Turner doesn't have a business degree, but knows enough about business that he could teach classes in an MBA program. The VP of the company I worked for when I first graduated from college didn't have a CS degree, but over the years he had taken courses, read books, and written programs professionally and experimentally that he had more than the equivalent of a CS degree. So while the degree itself is not so important, the knowledge associated with it is very important. Those who are successful without the degree are usually those who have made the effort to acquire the degree knowledge by other means. That is the main reason why the degree is important; it provides a way that people can have some level of trust that you do know what you say you know. In this tight economy where there are several equally experienced applicants *with* degrees for every applicant without one, you can't really blame employers for not choosing those without degrees. |
| Fri 13 Dec | Eric Moore | My experience is that the window closed for software R&D jobs without a degree sometime in the early 80's. I have no idea about IT, thats a foreign world to me. It seems pointless to argue about whether a 4 year degree really matters, what is the incentive for an employer to take the extra risk of hiring someone without one nowadays? I'm curious where the author(s) of the threads about the benefits of getting a degree lives. |
| Fri 13 Dec | Tj | If you think that not having a degree requires creativity, then why complain? College is mainly about sex (whatever your gender) and seeing new perspectives which are normally censored by 'respectable people.' Creativity is something else -- and I don't think that undergrad is conducive to creativity. Most often, people who muddle through a degree learn how to follow in peoples' footsteps. So degreeless people of the world -- never complain about needing to be creative. It's the creative person's burden. |
| Fri 13 Dec | Anonymous Coward | I've got a B.S. in Comp Sci and some recruiter convinced me to submit my resume to Manugistics (Redwood City, CA). But, apparently, they want most of their programmers to have Ph.D.s. So, some companies have really stringent educational requirements (or are very narrow-minded if you look at it that way). |
| Fri 13 Dec | | Maybe I should drop out of high school? I'm a pretty good asp programmer now, and I don't want my creativity to suffer any more! |
| Fri 13 Dec | Tj | Don't patronize me. During highschool I took classes at two highly respected universities that you've definitely heard of. Highschool classes were fucking boring, and it's just a place where you learn to live with a dysfunctional family. Fun seasoning. But I respect some of those who drop out, because of all the fake history books that are bought because of politics, and the difficulty of seeing where it will all lead. No, I don't advocate dropping out. Instead sleep through class. I literally did that, and it worked out. |
| Fri 13 Dec | Tj | Sorry. Bad day at work. I'll shut up fer a while. ;) |
| Sat 14 Dec | echidna | Brent, you're saying that a degree is equivalent for indicating a programmer's capability as the actual writing is for assessing a writer. I would say it's not. It's much harder to assess software developers, and the factors that need to be considered are represented only to a small part by a degree. Some of the dumbest morons I've ever seen have had degrees. Getting a degree is not hard. As to companies that restrict their hiring to degree holders, I have seen many companies drop that restriction because their HR departments were rejecting top candidates. |
| Sun 15 Dec | echidna | Also, the example you use, the publishing industry, and writing in particular, actually contradicts your theme. Writers excel based almost entirely on their capability, with almost no reference to 'degrees.' Even though there are many media studies courses and media studies graduates, media companies such as newspapers take a dim view of such courses. They hire directly on talent. |
| Sun 15 Dec | Albert D. Kallal | I think the real benefits of education in computing is that you do get exposed to many types of things that you will not know. Things that can take years. A great example is the use of linked-lists and pointer type data. If you just start coding away in C++ it is un-likey you will think of using a linked-list to solve many common data storage problems. Since one does not know about a linked list, then the solution used by a programmer is to insert the hunk of data somewhere in the middle, and then force all the rest of the data to be moved down. This can be a huge waste of resources. With a linked list, this huge problem of moving/shifting data down to make a hole for the data is eliminated if you use a linked list (we are talking about inserting data in some sort order here). If the developer don’t know how, or has never used linked lists, it is unlikely that a linked list type of solution will be used. Also, you tend to get exposed a lot of classic, or common computing problems that can take a developer years to learn, or discover. A great example of this was some years ago we had two data files. We needed to merge the two data files into a 3rd data file. The resulting file had to be in the correct sorted order also. It also turns out that the two original files where also sorted in the correct order. I was amazed, since none of programmers on the team realized that no sorting is required to merge the two data files into a 3rd SORTED file. We had learned how to do this in one of my CS classes. In fact, one of the developers bet me that it was not a easy task. I said this is trivial…since I seen this concept before. Of course, many people who did not attend University would also find the above problem trivial. However, I knew exactly how to solve this problem. It is one of the classic problems that most CS students learn. I stress the word classic!! The same goes for learning concepts like assembler. Assembler is not that important, but a good understanding of how a processor executes instructions, and concepts like what a register is also enables one to make additional insights about how software works. The same goes for stuff like Virtual Memory, and also demand paged systems. Again, both of these technologies can have a great effect on how your software will work, or even what designs should be used. Again, virtual memory, or demand paged systems is not a huge concept but it helps to understand what they do. It can make you change your designs dramatically. Especially the order in which you process your data tables. I often run into people who cannot understand the difference between a file shared database system like list ms-access (JET), and a true client-server database. I am CONSTANTLY hearing from people that the difference in the products is that ms-access (JET) grabs the whole table across the network, and the true Client/Server system does not. This is 100% wrong!!! JET does not suck the whole table across the network, yet I hear this on a daily basis. If these people took some time to understand systems and architecture, you would NEVER hear people claim this. I am in not saying that a person needs to attend university to learn the above things. In fact, many people know the above. Hence, attending school is just a organized learning environment. However, when you work at a job on a daily basis, many times it can be months before you are presented with a new problem that is difficult to solve. In school, each day you are being given problems to solve, and these problems often don’t come up for years in the real world. (for sure the reverse can be true. The real world problems are much different then many you will see in school). Would you not all love to have a teacher explain all the classic problems you will encounter when writing software? Of course you can learn about stacks (LIFO, FILO) etc from a book. However, condensing all these problems, and feeding them to the students is a very good thing. Same goes for using a tree structure to parse a expression like: (65 + 2 * 3 + 5 + 2^3) If you have not been exposed to tree structures, then most programmers will not be able to write code to parse the above expression. Any CS grad will easily write you some code to parse the above, and they will use tree structure to do this! I OFTEN rely on techniques and concepts I learned in school. So, I only posted in this thread, because someone asked why, and what kinds of things you learn in school, and how do they help you. Nothing says the above stuff can’t be learned from a book…but I can certainly tell you that every CS grad I know can solve the above problems, because they seen them already. That is the kind of things you learn at school. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com |
| Sun 15 Dec | glenn | Albert, I'm curious what algorithm is used to merge the two text files. I'm a junior in a CS program, and nothing immediately comes to mind for solving this problem. If it's in the CLRS algorithms book, just tell me the name and I'll look it up myself. Thanks |
| Sun 15 Dec | glenn | On second thought, is a complex algorithm even needed? Do you just merge one line (if that's how the files are sorted) at a time? Start with the first line of one text file, compare it to the first line of the second file, and insert into the new file? Just go back and forth this way, and it only takes one iteration over each file to make the new merged file? Or have a missed a complexity here |
| Sun 15 Dec | Albert D. Kallal | Glenn, you have it 100% right. Assume You have both files open, and are to merge to a 3rd file. You simply compare the values of records from the two open files, and take which ever one is less of a value, and output that to the new file. You continue this process until you are done. It is not a hard concept, but as mentioned, I was in a room with 3 other programmers, and this approach was not readily apparent to them. I am sure if they sat down and thought about it for a little bit, then they would have realize this. It is clear that even you just thinking about this realized that the problem is very simple. It is just a example of the many things that you can learn in school. It turned out that in this merge problem that in fact each of the data files (they were from a mailing company, and were being read from tape backups) did in fact have several records that COULD BE out of order. However, on a list of 100,000 records from a tape, only about 3 – 5 records could be out of order in the list. Those names are special key names that the mailing house inserts to prevent fraud etc. So, I was still able to use the simple merge method, but I had to place two stack structures right before the routine that writes out the data. (hey, again the concept of using a stack to solve a problem came up). Even more interesting is perhaps the two programmers did realize the solution, but the fact of those special “control” names in the list eliminated the idea from their solutions. However, perhaps they were not aware of simply placing a stack structure (really a buffer) that allowed up to 10 values to be “stacked” from each file to solve this. After that, the whole process is again that simple merge. In fact, I am positive that the issue of “control” names in the data was NOT the issue, since we only found out about that AFTER we had written the software (I just remembered as I write this!!). As a result, I did resort to a making a stack “buffer” of 10 for each file. (I just bubbled each name down to their correct position, and then popped a value off of the simple stack) Again, using stacks can be a solution to common every day problems. That lecture on stacks, and assignment on some software to solve problems using stacks also helped me here. Stuff you learn in theory does on a daily bases get put into real world practice. As you can see, in that simple example, I used two of my lectures to solve the problem. Albert D. Kallal Edmonton, Alberta Canada Kallal@msn.com |
| Sun 15 Dec | Sarain H. | I think the actual technical term for this operation is the 'merge-sort', though I've always called it 'the zipper'. |
| Breaking into development without a degree | Thu 12 Dec | Giampiero |
| Well, I am finally moving this topic on its own. Sorry AC for clogging your thread. This is place where people can discuss the pros,cons, and any other information on why not having a degree will get your resume thrown out in the first rounds of filtering. I personally feel that it is unfair to do the first rounds of judgement based on this fact because there is relatively no correlation between Academic Computer Science and real-world computer programming. Anything that can be learned in a classroom can equally be learned reading books. So why is so much emphasis put on reading the books and not as much on the experience? |
| Thu 12 Dec | Giampiero | here is the link to the other topic that I accidentally cluttered up with this discussion. http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=22354 |
| Thu 12 Dec | raven | ' I personally feel that it is unfair to do the first rounds of judgement based on this fact... ' Grow up. Who cares if you personally feel it is unfair? I personally feel it is unfair that I haven't been selected to star in a feature film about my life. '...because there is relatively no correlation between Academic Computer Science and real-world computer programming.' This isn't true if you are writing a compiler, or anything to do with computer graphics, or writing a search engine, or anything beyond dotNet/J2EE backoffice style applications... '...Anything that can be learned in a classroom can equally be learned reading books. ...' I will grant you that. 'So why is so much emphasis put on reading the books and not as much on the experience?' This is a straw man. More emphasis is put on experience in 99% of the cases. If you don't have a degree, you have to get creative about getting hired. Mailing your resume to the HR robot is not a good strategy. I worked as a programmer for 6 years (starting at age 18) before finishing my undergraduate degree, which was in mathematics and biology. |
| Thu 12 Dec | Not Joel Spolsky | During my freshman year at Virginia Tech, my Intro to Comp. Sci. professor told the class, straight out, 'You're in this class because you're chasing a Bachelor's degree in Computer Science. CS is theory, CS is architecture, CS is design. Computer programming is a 2 year degree. If that is what you're looking for, you've come to the wrong place.' We were forewarned. That was 1995; while non-degree-chasers were working away during the dot.com boom, I decided to stay, but stretch out 4 years into 5 with server infrastructure co-oping. I came out with a Bachelor's degree, 2 years of experience (I worked for the school as well while taking classes), and an ability for analytical thought I wouldn't have gotten on my own, or from a book. Without that ability, I couldn't do my job of troubleshooting/debugging of enterprise systems, a job that I'm (relatively) happy with; I didn't want to be a programmer-drone to begin with. Fact is, someone may think they're the best thing since sliced bread, but so do the other 600 people applying for the job. You may be great, but if they're great with the tenacity and training it takes to get a CS degree, whittling down is a no-brainer. |
| Thu 12 Dec | Bill Carlson | A CS degree tells you a few things: - The person had their stuff together from age 18-22 enough to occupy a chair 15 hours a week. - The person was able to follow rules and procedures from age 18-22. - Likely, the person learned something about algorithms and wrote simple programs from age 18-22. How do you judge a 35 year old, mid-range developer based on these criteria? Sure, a degree is better than no degree, but of all the axis on which to measure a resume, these are pretty weak. I am sensitive to this issue, as I dropped out of school at 15, never to return. I'm lucky to have found a company that knows which ingredients make good software and knows you can't order them like you order a pizza. My advice for the degreeless: Know something about the industry you're trying to break into. Applying for a job as a 'financial services developer with knowledge of banking practices, protocols, and databases' may get you farther than 'know C, have degree'. You'd need to put this front and center on a resume. What needs to happen is for capitalism to take its course and the good developers (those that are not just programmers) will rise to the top. Probably optimistic, but there's hope. |
| Thu 12 Dec | Giampiero | Raven, You tell me to grow up. I have done a lot of growing in my lifetime, went to University for 5 years and got every credit except some electives. So as far as Math/CS goes (which is my degree program) I have as much schooling as any other University graduate. On top of that I have experience and drive. So what prevents me from getting a job? It is that first round of resume sifting that is a simple algorithm applicant.hasDegree ? cv.keep() : cv.throwOut() Wow, I am glad that I will be paying my HR people money to do research that a 10 year old can do. |
| Thu 12 Dec | I have a CS Degree and you don't | |
| Thu 12 Dec | Vincent Marquez | === I have a CS Degree and you don't === , You must be DREAMING. You actually believe everyone with a CS degree has even HALF of the skills you listed above??? I'd venture to say that 1/8th of them have those skills. And now what? Someone understands what an object is? This is like saying a guy that studies grammer for 4 years is going to be able to write a best selling novel. I don't think so. There is one thing I think a CS degree will do. I believe it will take a GOOD programmer, teach him things he hasn't thought about (i'm busy learning j2EE, not O notation), and sharpen his skills even more. It does not make programmers, it does not make computer science professionals, it doesn't even make good code monkeys. |
| Thu 12 Dec | mark | 'A CS degree will also tell you: * This person knows about hardware architecture * This person knows about compilers * This person understand OO fundamentals * This person works hard * This person can learn * This person has written and verbal skills * This person can work in a group environment * This person knows about finite automata * This p |