I would say that if your team is using IntelliJ, and you're using emacs, you should not blame everyone else for the confusing directory structure. Teams should use the same tools. One of my descriptions for a software engineer is that they work very closely with their team. Some methodologies even call for pair programming. Hard to do when you can't even agree on an editor.
My second point is, I've never used an IDE that forced, or even recommended, a particular directory structure. I use VS6, VS.NET, and Eclipse primarily, and I have complete control over the directory structure. There are probably reasons why your project had that particular directory structure. If it wasn't actually chosen by someone on the team, perhaps it came about because they used some kind of wizard to generate an application skeleton.
I know many other Software Engineers, and I'm familiar with many development organizations. I don't know any of them that don't use an IDE. The thought of not using one never even occurs to them. It's not 1975 anymore.
What do you mean by "inhibit sensibility of source code structure"? It doesn't mean anything to me...
I can understand why you thought I meant it that way, but you misunderstood me. I was not saying great programmers only do that type of development work, I was using that type of work as an example of the true complexity and sophistication of a modern software project. Those in the slashdot crowd that think they're L33T because they wrote a Perl script to insert text into a web page are mostly unaware of what the modern software project looks like. How many people on slashdot even know what a design pattern is? Or a message queue? Or remoting?
I agree with you that the Great's are open to different tools, and I would add that they are open to different operating systems too. This stands in contrast to Graham's postulate that real hackers will refuse to use anything but opens source. Bull puckey.
I agree with what you said here, but I don't understand why you call that a craftsman. It sounds like a pretty good definition of engineering to me.
I suppose one of the problems with software development is we still don't have alot of good vocabulary to describe it.
I understand why people want to call software development a craft. There are elements of it that are more closely resemble art than engineering (for example, how do you measure a programmer's productivity? Answer: you can't). To call it strictly a craft or strictly engineering is over-simplifying it either way; there are elements of both. I just think calling it a craft, and calling programmers "hackers", causes more problems than it solves. And calling it engineering more closely describes the problems associated with building any application of significant size or complexity.
That's probably because you're still giving the "hacker" label to the best developers. I still think that the best developers are engineers. They design applications, they don't hack them together. If you were in the market for a new stereo, would want something that was soldered together in some guy's garage? That's a craftsman/hacker. While it's true he may have alot of raw talent, his stereo is not going to be better than one designed and built by engineers at Bose.
This could turn into a whole other discussion, but alot of software sucks because of the way projects are mismanaged. Software project management is one of the biggest challenges in the industry.
I firmly believe that the notion that great software developers are arrogant and difficult to get along with is a total MYTH. I think those individuals believe they are great (hence the word arrogant) and they may successfully convince others, especially non-technical people, that they are great, but they are not.
In today's large, complex, object-oriented enterprise application development environments, being able to work with teams and communicate is an essential skill. Sticking an asshole in a corner and waiting for him to kick out thousands of lines of code by himself doesn't fly anymore. Developers not only have to get along with their teammates, they often have to communicate with business people, or even customers. This is even more true when they're consultants.
No offense, my friend, but I think he was describing software developers, not sysadmins. Writing small helper programs in perl can be considered "programming", but it's not software application development. Great developers build large enterprise applications in object-oriented toolsets, distributed components published as web services, integrated to legacy mainframe systems with message queue servers, and tied to a relational database backend (and this may even be behind a data broker layer). I'm talking about the kind of system that takes 15 people 2 years to build. They don't do it in perl. Ever.
I know there have been flame wars about using the word "hacker" for years, and I certainly don't want to start another one. I don't care if people use the term as a pejorative or a badge of honor. I don't care if it means a computer criminal or software developer. I don't care if it means white hat or black hat. That's a debate best left back in 1985.
But having said that, I think it's time we retire the word "hacker". The reason I think this is because the use of this word, which is supposed to be so positive: the curious, problem-solving tinkerer, isn't really that positive anymore. I'm talking about hackers as craftsmen (another word the author uses in the article). Defining software development as a craft harkens back to a an age when the industry was young and still defining itself. An age when the industry was hidden behind equipment in a backoffice or university machine room populated by bright-but-eccentric pioneers. A time when the industry, and its pioneers, didn't know what its Best Practices were. Those days are over.
Today, the industry has matured in many ways. Today, projects, and the organizations that manage them, don't want a tinkerer who will sit in the backoffice and figure stuff out. They want well-rounded individuals who can gather and interpret requirements, communicate with their team, and develop elegant, well-designed solutions using best practices. They want Software Engineers and Software Architects.
There is still a camp out there that is resisting this change. They still believe in the craftsman lifestyle, and they still code with emacs (oops, another flame war!;) But I don't think this view represents the majority of developers; it may not even represent the majority of open source developers. The hacker/craftsman camp is a small minority.
The author makes the point that some developers are so much more productive than their peers because of how they use technology, but does he realize that those productive developers are not hackers/craftsmen pecking out PHP or perl in their emacs session? They are Software Engineers using latest-generation tools and languages, design patterns and best practices, object-oriented techniques and integration technologies like message queues, not to mention web services and remoting. And incidently, they're still employable.
ASP.NET manages state on the server side. It's very impressive. The developer hardly has to do anything. Gone of the days of hours of "plumbing" work to manage state (or the days of web forms that lose your data when there is an error, because no one ever did the plumbing).
I don't see how you can say that your only options are the MS Toolbox or client-side javascript. The toolbox is just a suite of components. You can create your own components, buy components, or download (many are free). This way, you can continue to use the ASP.NET framework the way it was intended, and you can continue to be browser-agnostic (because the components are server-side).
I'm not sure I agree that "The Microsoft Network" was seen as competing with the Internet (thus, as you say, reinventing the wheel). I think that MS offered MSN to compete with AOL, and that they truly didn't see the value of the Internet.
Also, I'm not sure why you say that.NET was another "wheel-reinvention", or why you think it is a failure. It's been out a short time and already seems to be quite successful. I guess you could say that they are reinventing Java, but that's not really fair -- it's perfectly reasonable for software companies to create competition for Java without critics putting such a negative spin on it and labeling it as "reinvention". Besides, even without Java in the picture, MS really, really needed a next-generation development environment (to replace MFC).
And I have no idea what you mean by "bastardized HTML". For a while there, IE5/6 was the most standards-compliant browser around, although it's fallen behind in the last year or two. But there is a big difference between falling behind and "bastardized".
I think he understand the difference between a window manager and a desktop environment. The point is, if you have limited resources, it might be better not to use a desktop environment at all. Since a desktop environment essentially rests on top of a window manager, it is optional.
I think you're missing the point if you think it's all about competition. Imagine Microsoft opened it's code... now let's say some medium size company that has been paying a few thousand dollars to license all of it's employees to use Windows and Office. Now this company only has to buy a CD for $30 and pass it around to everyone in the company. Microsoft's profit just decreased by several orders of magnitude. I would expect the NASDAQ to collapse shortly thereafter.
I'm not the original poster, but I'll answer anyway. There are several tags that have optional closing tags, including the ones the poster mentioned. I found this in HTML 4 Unleashed Professional Reference Edition from SAMS Publishing. You can also find the actual specifications at the W3C website.
As for nested tables, as long as you use the closing TABLE tag, it doesn't matter if you close TR and TD. The closing TABLE tag is required by the specs.
pretty good value compared with the costs of four Athlon-class servers and four Win2000 server licenses, a MSexChange license, and another $500 per user for Orifice, $200 per user for the OS
Accept that it doesn't do nearly as much, or even as well in many cases.
Umm... you realize that XP is not a programming language, right? It's a methodology; a set of rules that a developer team adheres to while working on a software project.
I'm just trying to figure out if you're a troll, or making an honest mistake, or if I read your post wrong.
The authors of XP claim that if you're not using ALL of XP, you're not really using XP. Sure you can mix and match, but it's risky, and it isn't XP by definition.
The real problem with patents is that people on slashdot don't know what they are. For example, this thread is about Copyrights, and you're talking about patents.
You're using many of the same languages as I am.
I would say that if your team is using IntelliJ, and you're using emacs, you should not blame everyone else for the confusing directory structure. Teams should use the same tools. One of my descriptions for a software engineer is that they work very closely with their team. Some methodologies even call for pair programming. Hard to do when you can't even agree on an editor.
My second point is, I've never used an IDE that forced, or even recommended, a particular directory structure. I use VS6, VS.NET, and Eclipse primarily, and I have complete control over the directory structure. There are probably reasons why your project had that particular directory structure. If it wasn't actually chosen by someone on the team, perhaps it came about because they used some kind of wizard to generate an application skeleton.
I'm a Software Engineer. What about you?
I know many other Software Engineers, and I'm familiar with many development organizations. I don't know any of them that don't use an IDE. The thought of not using one never even occurs to them. It's not 1975 anymore.
What do you mean by "inhibit sensibility of source code structure"? It doesn't mean anything to me...
I can understand why you thought I meant it that way, but you misunderstood me. I was not saying great programmers only do that type of development work, I was using that type of work as an example of the true complexity and sophistication of a modern software project. Those in the slashdot crowd that think they're L33T because they wrote a Perl script to insert text into a web page are mostly unaware of what the modern software project looks like. How many people on slashdot even know what a design pattern is? Or a message queue? Or remoting?
I agree with you that the Great's are open to different tools, and I would add that they are open to different operating systems too. This stands in contrast to Graham's postulate that real hackers will refuse to use anything but opens source. Bull puckey.
I agree with what you said here, but I don't understand why you call that a craftsman. It sounds like a pretty good definition of engineering to me.
I suppose one of the problems with software development is we still don't have alot of good vocabulary to describe it.
I understand why people want to call software development a craft. There are elements of it that are more closely resemble art than engineering (for example, how do you measure a programmer's productivity? Answer: you can't). To call it strictly a craft or strictly engineering is over-simplifying it either way; there are elements of both. I just think calling it a craft, and calling programmers "hackers", causes more problems than it solves. And calling it engineering more closely describes the problems associated with building any application of significant size or complexity.
and your head is shaped like a pin :)
That's probably because you're still giving the "hacker" label to the best developers. I still think that the best developers are engineers. They design applications, they don't hack them together. If you were in the market for a new stereo, would want something that was soldered together in some guy's garage? That's a craftsman/hacker. While it's true he may have alot of raw talent, his stereo is not going to be better than one designed and built by engineers at Bose.
This could turn into a whole other discussion, but alot of software sucks because of the way projects are mismanaged. Software project management is one of the biggest challenges in the industry.
I firmly believe that the notion that great software developers are arrogant and difficult to get along with is a total MYTH. I think those individuals believe they are great (hence the word arrogant) and they may successfully convince others, especially non-technical people, that they are great, but they are not.
In today's large, complex, object-oriented enterprise application development environments, being able to work with teams and communicate is an essential skill. Sticking an asshole in a corner and waiting for him to kick out thousands of lines of code by himself doesn't fly anymore. Developers not only have to get along with their teammates, they often have to communicate with business people, or even customers. This is even more true when they're consultants.
No offense, my friend, but I think he was describing software developers, not sysadmins. Writing small helper programs in perl can be considered "programming", but it's not software application development. Great developers build large enterprise applications in object-oriented toolsets, distributed components published as web services, integrated to legacy mainframe systems with message queue servers, and tied to a relational database backend (and this may even be behind a data broker layer). I'm talking about the kind of system that takes 15 people 2 years to build. They don't do it in perl. Ever.
I know there have been flame wars about using the word "hacker" for years, and I certainly don't want to start another one. I don't care if people use the term as a pejorative or a badge of honor. I don't care if it means a computer criminal or software developer. I don't care if it means white hat or black hat. That's a debate best left back in 1985.
;) But I don't think this view represents the majority of developers; it may not even represent the majority of open source developers. The hacker/craftsman camp is a small minority.
But having said that, I think it's time we retire the word "hacker". The reason I think this is because the use of this word, which is supposed to be so positive: the curious, problem-solving tinkerer, isn't really that positive anymore. I'm talking about hackers as craftsmen (another word the author uses in the article). Defining software development as a craft harkens back to a an age when the industry was young and still defining itself. An age when the industry was hidden behind equipment in a backoffice or university machine room populated by bright-but-eccentric pioneers. A time when the industry, and its pioneers, didn't know what its Best Practices were. Those days are over.
Today, the industry has matured in many ways. Today, projects, and the organizations that manage them, don't want a tinkerer who will sit in the backoffice and figure stuff out. They want well-rounded individuals who can gather and interpret requirements, communicate with their team, and develop elegant, well-designed solutions using best practices. They want Software Engineers and Software Architects.
There is still a camp out there that is resisting this change. They still believe in the craftsman lifestyle, and they still code with emacs (oops, another flame war!
The author makes the point that some developers are so much more productive than their peers because of how they use technology, but does he realize that those productive developers are not hackers/craftsmen pecking out PHP or perl in their emacs session? They are Software Engineers using latest-generation tools and languages, design patterns and best practices, object-oriented techniques and integration technologies like message queues, not to mention web services and remoting. And incidently, they're still employable.
ASP.NET manages state on the server side. It's very impressive. The developer hardly has to do anything. Gone of the days of hours of "plumbing" work to manage state (or the days of web forms that lose your data when there is an error, because no one ever did the plumbing).
I don't see how you can say that your only options are the MS Toolbox or client-side javascript. The toolbox is just a suite of components. You can create your own components, buy components, or download (many are free). This way, you can continue to use the ASP.NET framework the way it was intended, and you can continue to be browser-agnostic (because the components are server-side).
I'm not sure I agree that "The Microsoft Network" was seen as competing with the Internet (thus, as you say, reinventing the wheel). I think that MS offered MSN to compete with AOL, and that they truly didn't see the value of the Internet.
.NET was another "wheel-reinvention", or why you think it is a failure. It's been out a short time and already seems to be quite successful. I guess you could say that they are reinventing Java, but that's not really fair -- it's perfectly reasonable for software companies to create competition for Java without critics putting such a negative spin on it and labeling it as "reinvention". Besides, even without Java in the picture, MS really, really needed a next-generation development environment (to replace MFC).
Also, I'm not sure why you say that
And I have no idea what you mean by "bastardized HTML". For a while there, IE5/6 was the most standards-compliant browser around, although it's fallen behind in the last year or two. But there is a big difference between falling behind and "bastardized".
I think he understand the difference between a window manager and a desktop environment. The point is, if you have limited resources, it might be better not to use a desktop environment at all. Since a desktop environment essentially rests on top of a window manager, it is optional.
I think you're missing the point if you think it's all about competition. Imagine Microsoft opened it's code... now let's say some medium size company that has been paying a few thousand dollars to license all of it's employees to use Windows and Office. Now this company only has to buy a CD for $30 and pass it around to everyone in the company. Microsoft's profit just decreased by several orders of magnitude. I would expect the NASDAQ to collapse shortly thereafter.
As for nested tables, as long as you use the closing TABLE tag, it doesn't matter if you close TR and TD. The closing TABLE tag is required by the specs.
IE is the most standards compliant browser I know of. Have you developed strict HTML4/CSS1 webpages? Have you compared them between browsers?
AOL's email client is not OE. It has inferior capabilities. Although many in this discussion apparently think that is a good thing.
Using pine IS a malay!
Accept that it doesn't do nearly as much, or even as well in many cases.
If Microsoft goes open source, who will open source copy its designs from?
OK, I see. Thats what some of the other replies dealt with, but I wasn't sure if that's really what you meant.
Umm... you realize that XP is not a programming language, right? It's a methodology; a set of rules that a developer team adheres to while working on a software project.
I'm just trying to figure out if you're a troll, or making an honest mistake, or if I read your post wrong.
The authors of XP claim that if you're not using ALL of XP, you're not really using XP. Sure you can mix and match, but it's risky, and it isn't XP by definition.
XP doesn't claim to work in all cases. Have you read the book?
It's another recipe to add to your cookbook. Use it if you want to.
The real problem with patents is that people on slashdot don't know what they are. For example, this thread is about Copyrights, and you're talking about patents.