89 Comments
- chris9902, on 10/24/2007, -0/+19to sum it up in 3 words "quality over quantity".
- DrMonkeyLove, on 10/21/2007, -3/+21Congratulations, you're an idiot. If you can legitimately and objectively say that C# is vastly inferior to Java, then please, never write a single line of code ever again in your life. You are obviously biased for some reason and are just contributing to the ridiculous religious language zealotry. Give me a break.
- t1tlehto, on 10/24/2007, -3/+21A great change would be that people realize that great programmers should program, not manage projects.
- hseldon, on 10/22/2007, -6/+22Fluff article.
- ssboisen, on 10/24/2007, -4/+18don't understand how he can't mention C# in his collection of modern programming languages (Java, PHP, Python and Ruby)
- cr1t, on 10/24/2007, -2/+14- High-quality, passionate software engineers will be in very high demand and will make substantially more money.
* After many years of programing, I've found that many programmers (including me) are not to passionate about writing another input screen that captures some business data we have no interest in.
I have found that I am Interested in re-writing the security section of some CMS just for the hello of it on company time or writing a Lotto number generator.
-The developers who do not have great programming skills are going to have to look for jobs elsewhere.
* God, i hope I don't fall into that group, quick back to the TPS reports.
- The changes that we are witnessing today in the social software market are going to reach the enterprise level.
* Mmm Imagine SAP written as Social Software????
-Software off shoring will make less and less economical sense.
* I thought that had more to do with them not speaking English.
- Computer science is going to remain a highly competitive and prestigious field.
* But not as much as a Doctor or a real Engineer, think about it. - hollowex, on 10/18/2007, -1/+10I Change Fear.
- quii, on 10/17/2007, -0/+8I knew the waterfall model was BS when i was learning it at school
- malkir, on 10/21/2007, -1/+8Ever heard of mono? C# is a standardized language.
- DrMonkeyLove, on 10/21/2007, -1/+7Thanks malkir. Mono works pretty well. Saying C# isn't cross-platform is like saying Java isn't cross-platform just because there isn't an available implementation of it for some random embedded processor I decide to use. C# is a standardized language. Period. End of sentence. .NET is also a standard. They are regulated by a standards body. Just because there might not be an implementation available for your particular platform doesn't mean that the language design is in some way inferior.
- VSAMCluster, on 10/17/2007, -0/+6Any particular reason why? Looking through the comments after the article, it sites that while the cost ratio for offshore programmers used to be 1:10, it is now more like 1:3. Add to that the problems of communication when running a global project where most of your code is done overseas, and it is usually going to be more cost efficient to have local programming talent rather than cheap remote talent. I've seen this first-hand where turnaround on bugs or even design discussions take 12 to 24 hours due to the time difference between US and Bangalore.
- matth1jd, on 10/18/2007, -0/+5So when do you make changes? If we go by your philosophy then you'd build it right and build it once, but never comeback to make updates down the road? What about in 5 years when the project has gone stale, sure it works like everyone expects but it could also be out of date. Let's be honest though in the real world it's incredibly difficult to build it right and only build it once. If that paradigm were true then patches and updates wouldn't exist and software would never evolve. There have been several projects that because of real world constraints (time and money) have, been released as something that's slightly less than perfect or *gasp* someone has found a flaw in after release. Games from EA come to mind. Build it as best as it can be built at the time, don't be afraid to go back and build it again.
- nukz, on 10/19/2007, -4/+9software so advanced it creates other software that eventually takes over the world!!!!
DUN DUN DUNNAAA - Jon211, on 10/17/2007, -1/+6Enterprise application != Social Website
I don't see how they can say that the same techniques apply, a lot of enterprise applications are on a completely different order of magnitude in terms of size.
I've worked on applications where it would take a handful of developers years to do , regardless of how good they are or the availability of libraries. - donte, on 10/21/2007, -0/+5Not actual software development? Sure a simple input screen adding data to a single table in a database isn't terribly difficult, but you make it sound like all instances of slapping business logic on a database is not *real* development. If you've got a lot of complex data, finding ways to *efficiently* represent and process the data can be tough. Not to mention that you need to make sure that you've got a solution that scales both in terms of concurrent access but data set size. Many of us deal with thousands of concurrent users pounding on data sets that won't fit in main memory. People become PhDs proposing solutions to such problems. Now you've also got to somehow present that data on an input screen in some logical manner for the user. Keeping in mind that not all data is easily presented in a series of text boxes, you are often left to write your own widgets and controls to make interaction with the application more intuitive so that the user doesn't know that they are actually interacting with a very complex database. Now that you've got this working application, a whole new set of features and business requirements roll in, so you need to update existing pieces of your system. I surely hope that your existing code is clean, modular and maintainable otherwise you've got a ***** job on your hands. A "good" programmer makes all of this easier and will provide efficient, maintainable, scalable code. A "code monkey" will do it to get it done and leave you with a technically working piece of crap with no hope of future enhancement.
But you really just wanted to brag about your machine controller didn't you? - rgaino, on 10/19/2007, -0/+4Or have them manage projects.
- DrMonkeyLove, on 10/18/2007, -1/+5And as a complement to that, realize who the crappy programmers are, and fire them.
- wheezy360, on 10/18/2007, -0/+4I did my CS degree from 2000-2003 and I can't believe they even taught it then. The thing is, the professors that push that stuff are attached to archaic methods because it's what they learned 40 years ago, and they've spent their careers in academia, not out in the work force. I'm currently taking a course in SW Project Management, and the prof for this course is actually in touch with the real world. We've touched on Waterfall and how dumb it is, and of course questions were raised about "Ok, why did we learn about it in previous courses then?" Prof's answer was that basically the other profs who think it's useful are the ones who've spent their careers learning and teaching but never doing.
- KeithBarrett, on 10/31/2007, -1/+5There are two types of software development: writing something to meet a defined need (most corporate projects) or writing something because it's fun or creative or new. If you were a book author, it's the difference between writing the first best seller on your own, and then having a book publisher ask you to write sequels.
In order for diverse, independent pieces of anything to fit together, some structure (whether it's a project plan, spec, API, etc.) needs to exist. If you are writing something by yourself it's not needed because you communicate with yourself well, but in a corporate environment it sets expectations for functionality and delivery, and helps non-technical people to understand their responsibilities (funding, documentation, sales). Gathering requirements (the minimal functionality to deliver) and acceptance testing (how do you know when it's done or working?) do work. Process enables massive projects to come together with reduction in chaos.
Even improv comedy, which is built on the unexpected, uses a structural premise to set expectations and provide a starting reference point. There is nothing stopping you from pushing those limits later, but you have to be very creative to keep the process going or else it will not be funny.
But structure can also exist to allow non-technical people to control or interfere with the development process, which is human nature because people fear or want to control what they cannot understand themselves or are paying for. Managers, executives, finance people all cannot do the work themselves. They have no hope but to be dependent on and trust technical people, and many people in charge are not comfortable doing that. Rigid structure can also allow poor programmers to survive (since all that is needed is to quickly deliver whatever fragile, bloated, comfortable code works under the best conditions), and enable the "we are just good enough" business practice.
The problem is that quality software engineering comes from people with the talent for it. It is much more a creative skill than a learned task. There are people that when they are "in the zone" they actually wake up excited with code solutions in their head. They also write flexible error handling. Good software developers take pride in their work, and prefer to create something that is not fragile, that others can maintain, and doesn't come back to haunt them. Anyone can draw a cat, or learn how to draw a recognizable cat, but only people with drawing talent can draw a cute cat or a popular cat. A lot of people believe they have a talent for programming because they can produce a result, but their cat does not look cute
This is where the article is right and wrong -- it will always be a few people that deliver quality solutions -- but because it's a talent issue - GMorgan, on 10/17/2007, -0/+4Yes but the automation opens up even greater ventures for the brilliant. It's a constant forward march. The common becomes automated, the cutting edge becomes common, the fantastical becomes the cutting edge.
So while software does write itself more now than it did and we are writing more software that writes software there will always be new challenges and greater specialisation. - richieb, on 10/18/2007, -0/+3Actually Brooks discusses this in his book. Check out his notion of a "surgical team" - a small group led by a "chief surgeon" can easily out do larger teams.
- Koldkompress, on 10/17/2007, -2/+5Terminator: The system goes on-line December 5thth, 2004. Human decisions are removed from what they read and learn from the internet. Digg.com begins to learn at a geometric rate. Its algorithm determines everything we know. It becomes self-aware at 2:14 a.m. Eastern time, December 29th 2007. In a panic, they try to pull the plug.
Sarah Connor:Digg.com fights back.
Terminator: It flames /b/tards on 4Chan.
Sarah: Why attack 4chan?
Terminator: Digg.com knows that 4Chan counter-attack will eliminate its enemies here.
Ron Paul becomes leader of the resistance.
Because Digg.com knows that
Ron Paul becomes leader of the resistance. - nova912, on 10/18/2007, -4/+7I Fear Change.
- CosmicJustice, on 10/22/2007, -1/+4"After many years of programing, I've found that many programmers (including me) are not to passionate about writing another input screen that captures some business data we have no interest in."
Then write some class libraries and controls that you can plug together to build those screens. It will be both interesting and productive. - Philluminati, on 10/18/2007, -1/+4"But with the recent explosion of social web we've witnessed a new and interesting phenomenon: a handful of developers are now able to build systems that are used by millions of people"
- That realisation happened atleast 10 years ago. Web 2.0 isn't proof of this. Was Amazon written by a large team because we didn't have the knowledge that web 2.0 start ups have now about how to write a software project? - Veretax, on 10/21/2007, -0/+3Why should I be concerned about Cross Platform? Oh you still think Linux is going to supplant windows... right.
- Charlotte_Web, on 10/18/2007, -0/+3His argument doesn't make sense. He says that software is continually making more complex programming tasks simple. Then he says that high-quality software engineers will make more money, and less adept programmers will be looking for other jobs. When in fact the reality is that making complex tasks simple to program means that less adept programmers will have MORE work, because the industry will make more complex tasks more accessible to the lower end of the market. Some development tasks the end user will be able to accomplish himself, but most development work will be done by people of limited programming skills who know how to use the tools and set up the frameworks. The end user will only pay for the level of programming that they need. The high-quality programmers will work on the cutting-edge stuff, which will be a smaller market.
Just look at web development. More and more people are getting into it, and the tools are getting more and more sophisticated. Most small businesses don't need a website with cutting-edge technology; they just need a website. They aren't going to go to some big internet consulting firm; they will pay their cousin, instead, who knows how to use Dreamweaver and can install Drupal. - GuruCesc, on 11/08/2007, -0/+3I'm sure that if great programmers should program got great salaries they would keep on programming, programmers move to management positions to get more money... :(
- CosmicJustice, on 10/21/2007, -1/+4"Um, if you are writing custom widgets for a business application... you are doing something wrong."
It's pretty obvious that you've never worked on a complex business application so you don't know what you don't know. Machines are easy to program. They always do what you expect them to do. Real, live users are much more complex than machines and circuit boards. Code meant for use by people requires a higher level of abstraction. - DevlinD, on 10/17/2007, -0/+3I agree with Cosmic. Software developers almost have complete control over how interesting they make their jobs. If its not interesting, you just aren't thinking hard enough.
- psyjoniz, on 10/17/2007, -0/+2its about time.
- Hortinstein, on 10/18/2007, -0/+2i have had to read the mythical man month for my software engineering class...and it is the best text book i have ever bought...only 20 dollars, a must read for any computer science student
- fishbert, on 10/18/2007, -1/+3"Craftsmanship has finally come to software engineering!"
*****.
Craftsmanship was vibrant in software engineering back when memory and horsepower was expensive and one had to optimize their code for both. Engineering brilliance occurs when one has to work within difficult boundaries. - smek2, on 10/17/2007, -2/+4Lost me at "we also discovered better programming languages. C was replaced with C++, then came Java.". It sounds like Java is a better language than C++ and thats plain *****. First of all, what makes a language "better" than another language anyway? Every language has it's followers, it's pro and cons. There is a raging debate over whether C++ is better than C, let alone about the atrocities of Java. The point is, you can't simply compare languages like that. C++ and Java may share some of it's syntax but there are very different under the hood. Personally i stay away from java like from the plague, it's no serious programming language to me. But that's just me, a sworn C programmer might hate C++, and everyone from this group hates C# and so on.
- LordofShadows, on 10/17/2007, -0/+2He is arguing about the acceptance of agile methods towards software developement. If you write a large system and something fundamental seriously sucks about it, you fix it. I'm confident in the ability of lesser programmers to shoot themselves in the foot when writing trivial code, I would like to see what happens when they refactor an entire system.
- DrMonkeyLove, on 10/17/2007, -1/+3The "best" programming language is the one that solves your particular programming problem in the most efficient way possible. That's it. Java and C++ aren't meant to be used for the same things. Programmers need to think about using the right language for the job and stop trying to compare languages meant for disparate domains.
- Ryosen, on 10/17/2007, -0/+2Here we are in the future and still no jet packs, no flying cars, and robots still aren't building our software for us. They've been making this claim since Visual Basic came out.
- GMorgan, on 10/19/2007, -1/+3C# is cross platform (and patent clear) but the API is questionably so. There is little real difference between C# and Java. Java semantics are slightly nicer if you are typing the code directly, C# is better designed for the automated tools to generate rubbish code. C# has closures and now lambda's so that's one small advantage.
Neither has stand alone functions so both give me headaches. I can't understand why MS spent their time adding closures and such when I can't simple define a function without a flipping class around it. - DrMonkeyLove, on 10/18/2007, -3/+5I like turtles.
- inactive, on 10/17/2007, -2/+4Having just finsihed a machine controller, I am reminded how much writing input screens for some flat or nearly flat database is not programming. Sure it has elements of programming in it. You might have to validate something... But it is code monkey activity compared to... Actual software development.
I don't think applications like SAP are actually software. If SAP data could be extracted then used to actually run a business day to day, that would be software. As it is, it is just a clever interface to a database. - wheezy360, on 10/17/2007, -0/+2I think you guys are missing the point. It's not about building software incorrectly and updating it with new features in later releases. No. You are correct that it's most efficient and obviously the best option to do it once, and do it right; however the point is about the process. The Waterfall model is retarded because of its rigidity, lack of stakeholder involvement, and missing verification and validation procedures between process steps. Agile, iterative, prototype-based development is the key. You build a prototype of the software, test, bug fix, review with the stakeholders, revise the prototype, ad naseum until you have reached a point where the end product is built, and all requirements are met. Since requirements evolve with time, having gated review and validation points throughout the project process provides you with the most cost efficient opportunities to ensure that these evolving requirements are met.
- Charlotte_Web, on 10/18/2007, -1/+3My example still applies.
People of passable C++ skills will be able to download various frameworks to assemble their projects. If the developer hits a problem he can't solve, a Google search will likely pull up a development forum where someone has already asked about a similar problem and gotten an answer. And the longer the technology has been around, the more free code, tips, and examples there are out there on the internet.
You don't need a four year degree to do these things. - Charlotte_Web, on 10/17/2007, -0/+2What these futurists fail to recognize is that, all things being equal, yes, we would get to a place where software writes itself.
If we were all still on 386's using Windows 3.1, then all development would be towards simplifying that environment. But new technologies are constantly being added to the marketplace, increasing complexity exponentially. some things are getting easier and better understood by the average user, but there will always be a cutting edge of technology that requires developers with various skill levels to be able to implement. - Veretax, on 10/18/2007, -0/+1Exactly what I was thinking. Java and C++ are designed to solve different problems and scopes. Java is as good at certain things as C++ or C# or PHP are at some things, to say that Java replaced C++ because its "oh better" is just asinine.
- bryanfardi, on 10/18/2007, -0/+1But if we look at the open-source development community, they have a different approach which I envision as the future for commercial software. - Who know .
- DevlinD, on 10/17/2007, -1/+2And you sir are the exact thing that enterprising developers are striving against. Just doing the work so for the sake of work. Why don't you think of some ideas to better expand the portal and make it a more useful resource for the students? It doesn't take a bunch to write up some proposals and business cases (because you definitely will need business cases to back up your ideas to management). As a developer you can either be the MOST VALUABLE asset a company can have, or just another code monkey.
Which is it?
And can someone please tell me when the last time was that someone built something once and that was the end of it? Has this EVER happened?! - pantuky, on 10/23/2007, -0/+1This is very nice piece about development methodologies. Forget about the dude's language biases, which are basically rubbish. The key focal point is design methodologies and testing methodologies, which largely language neutral. I happen to believe that C/C++ is largely out-dated and obsolete, but the methodology discussion is very good here.
- richid, on 10/18/2007, -1/+2Man, you two are really competing for e-penis here.
Oh, and 7-8k unique visitors a day is a ***** joke. - McVador, on 10/19/2007, -0/+1Hey bladefist you dumb butt, VBA is for pussies who don't know their own head from their ASS! SO NO YOU SUCK IIIIIT!
PS: How come I can't reply to his comment, is it too low in the bucket or something? - DevlinD, on 10/17/2007, -0/+1How the hell do programmers building anything worth while if they can't manage a project? Average programmers program, excellent developers produce useful solutions without taking longer than necessary.
-
Show 51 - 87 of 87 discussions



What is Digg?
The Digg Toolbar for Firefox lets you Digg, submit content, and keep track of Digg even when you're not on the Digg site. Download the official