Sponsored by Microsoft
Microsoft responds to the headlines. view!
microsoft.com/everybodysbusiness - Read our developers' points of view on the headlines making news.
105 Comments
- brandonhines, on 10/12/2007, -3/+34"A truly inspiring article." might be a little a little dramatic...
- Claymore, on 10/12/2007, -0/+19With all the power tools (electric saws, drills, sanders) wood working is easier than it was in the past. I still couldn't build a beautiful table if my life depended on it. Sure I could build a board with four legs but it would be as ugly as sin.
Just because the tools are there doesn't mean the developer can make a quality product. BUT it does allow the developer to concentrate on the design and quality where their attention should be. - PoorManBilly, on 10/12/2007, -1/+15It's easy!?! Programming is hard and only getting hard. Java, Python, Perl, PHP, JavaScript, HTML, XML, XSD, XSLT, SQL, UML, build scripts, unit testing, change control, user training, disaster recovery, etc. You may be able to learn a language fairly quickly, but it'll take you several years to master the full scope of project management and design. Any Joe can bang out a hello world app, but try working in a business environment and creating something that's actually usefull. Trust me, you won't find it "easy".
- electrichead, on 10/12/2007, -5/+19Yeah, it's more like a pep talk telling people that programming is now so easy, anyone can do it! I was only surprised he didn't have a book to advertise at the end.
It hasn't got any easier. It's just simpler now. There's a difference. - BBSCI, on 10/12/2007, -5/+16 You're confusing Coding with Programming. Programming is no simpler today that it ever was; however, the Coding part is easier. That's why there has been so much outsourceing to low skilled programmers. It's also why there is so much really, really bad code.
- slippery, on 10/12/2007, -3/+13Programming is NOT easier, it is just different.
When programming was done in assembler and COBOL, programs were single threaded and the execution path was linear. Believe me, I started programming on an IBM mainframe in 1985. Interactive programs were written in CICS and most did not update a database in real time. Transactions were written to a file that was processed in a batch job overnight.
Now, most programs have a GUI interface and execute in a message loop, responding immediately to user actions. There are lot of libraries and high level languages like Python and Ruby, but programs are expected to do a lot more today than in the past.
Further, more development is happening on the web now than on the desktop or traditional client/server. When you combine, HTML + CSS + Javascript + AJAX + server side code (Java/PHP/Perl/Python/Ruby/ASP/.Net) + web server config + database wrappers + browser incompatabilities, you don't have something simpler. Maybe if you generate an add/change/delete form with Ruby on Rails, it's easy. But try adding business logic and building an application that does something useful, not so easy.
Same as it ever was. - denboy74, on 10/12/2007, -0/+9To me it seems like the more that is done for you in programming, the more the programmer is expected to do. So, the job really never gets "easier".
- chevy, on 10/12/2007, -0/+9Yeah programming has got easier, but still requires a vast amount of knowledge about the computer to do anything useful.
Look at writing a game mod, you have to know the scripting language, you have to know the exposed interface. You are probably gonna wind up learning far more about C linkage than you *ever* wanted to know. You may have to learn about XML in general, or a specific configuration file or DTD. You may have to learn the magic of installing and configuring a compiler toolchain. Blah blah blah.
Plenty of tasks are still like that. They may be more open and accessible now, but there is still a considerable barrier to entry. - Bogtha, on 10/12/2007, -4/+13> By saying it is easier as an effort to get people to try programming is not going to work; simply because they will quickly see that it isn't really that easy at all.
It's much easier than it used to be. For instance, writing two applications that run at the same time used to be a case of looking up interrupt numbers and writing traps. Now you literally don't have to think about it.
It used to be the case that the "API" people wrote to was the bare hardware and was necessarily designed around how the chip worked. You needed to understand the inner workings of the CPU in order to program. These days, for most programming tasks, the hardware has been abstracted away and the APIs are at a much higher level, in some cases disappearing completely as the operating system or libraries handle something automatically.
Because programming is easier, a lot more people can be productive programmers. I don't see why you are insisting that programming is just as hard as it ever was, that's obviously false. - gcube9x, on 10/12/2007, -5/+13strictnein:
Somewhere in their head, a ";" was misplaced. - Urusai, on 10/12/2007, -0/+8Just what the world needs, more bad code written by people who fancy they know a thing or two. I work on my own cars since, golly gee, it's not that complicated and it saves me money, but you'd be stupid to pay me for it and I'd be stupid to think I was as good as a mechanic.
- stretch611, on 10/12/2007, -1/+8Contrary to Digg's blurb on the article, (and not even mentioned in the article) programming is not easier. The tools are more advanced making the process simpler, but the thought process behind it is still difficult.
I first learned BASIC on an old Commodore Vic-20 and a Commodore PET. (predecessors to the C-64) Through time each new language that came out was "revolutionary" and will "allow non-programmers to write code." Each new language did add new features and advanced commands, and occasionally they removed some of the monotony of coding. However, none of the removed the necessity of organizing your design into a logical system that would work right.
To this day, no language has made it easier for non-programmers to program. The tools have evolved to the point that some people think they can program even when they can't. But a true programmer knows how to logically break-up and design a system which will work in the long run. A person without that skill may get lucky occasionally, but the old GIGO saying is still in effect: Garbage (code) In, Garbage Out. - aliengoods, on 10/12/2007, -0/+7The worst part is after these 'Teach Yourself Programming in 21 Days' people are done with a project, I usually get called in to make their crap work.
- dWhisper, on 10/12/2007, -2/+8Huh, so technology advances over time, apparently, as more people use and embrace it. Imagine that...
- kornerson, on 10/12/2007, -1/+7Sure... do not learn how to program properly. Just program. After being 10 years working as a programmer with a degree in C.S. I can say that 80% of the software written by people that have not taken programming lessons is usually crap. It's not well programmed, you can not mantain it, etc. I recommend you to look at this website if you don't know what I am talking about: http://thedailywtf.com/
- eczarny, on 10/12/2007, -1/+7Just what the world needs. More programmers who think programming is easy writing buggy/exploitable code. I can't wait.
- MattL920, on 10/12/2007, -0/+5Even after getting my computer science degree and programming for a couple years professionally, occasionally I catch myself either doing or considering some of the god awful things you see on that site. Some of them are just idiotic and take real skill to be that bad, but there are other bad practices that you could stumble on by accident if you don't make an effort not to. The trick is to actually care about writing good code, and continue learning how to improve your craft, even if you've had extensive training and experience. We all write bad code, but the good programmers are the ones who learn from it and don't do it again.
- stretch611, on 10/12/2007, -0/+5Actually, a CS degree does not mean anything. (Read on before you curse me out.)
A CS degree means you sat in school learning about Computer Science, not programming. A CS degree means you were able to complete the coursework with a passing grade. How many programmers in the business world actually believe that school is anything like the real world. Yes, a CS degree prepares you for programming; but it does not mean you are up to the requirements of the job. Programming requires much more than learning a language or two.
I knew someone who had a Masters degree in Software Engineering. That a lot more specialized for programming than a CS degree. She could not program herself out of a box even if there were holes in the side. I know other people with no more than a High School diploma (usually some college but no degree) who were/are remarkable programmers. I also know good programmers that had liberal arts and political science degrees. The degree (or lack thereof) is not indicative of a person's programming ability.
A good programmer is someone that not just learns a language, but knows the ins and outs of a language. When searching for a problem, they can logically break down the elements of a program and zero in on the root cause of the problem. Most of the good programmers did not learn how to program from a school or a class, but they learned from analyzing other code and figuring out what it is doing. Admittedly, school does help teach people how to structure their code better, but school does not make a programmer. - inactive, on 10/12/2007, -1/+6As someone who does mostly scripting, I have to say that this is a lot of hyperbole. Programming still IS hard. Just because you can whip up your own CMS with Ruby or Python doesn't mean you have the talent to write a Java based cross-platform bittorrent P2P client or write a device module for linux in C or write a full fledged enterprise email server in C/C++.
Great, you can do some cool stuff with scripting languages. Awesome. But there's a hell of a lot more than messing around with CGI and SQL and a few command line arguments involved in programming, friends. - dk911, on 10/12/2007, -2/+7I'll agree, to some extent, with rocjoe71... I've been a developer for close to as many years and programming is never easy. It may be simple to learn a language, but truely understanding the nuances of the language is what separates the casual programmer from the devoted programmer. It's what separates a coder from a software engineer. You can certainly make nice little programs in simple languages, ones that you take things like memory management for granted. However, gaining the understanding of how those operations work (and eventually trying your hand at making them better) is what leads to really understanding what writing an application is about.
People shouldn't be too quick to minimize what software engineers do, daily. Because, without them, casual coders wouldn't have Python or Ruby or Javascript to develop in. - bradk50, on 10/12/2007, -0/+5 Sure its easy to slap something together that looks good, but without really understanding computer science you can't write bug free programs that work under any sort of load. The digg effect is a glaring example of this, people not understanding how to optimize code or queries can make a web program that looks great and works fine with a few people, throw a load at it and watch the inefficient code come to a grinding halt. Theres no excuse for these sites to fail so fast, bandwidth issues are one thing, 500 errors are from poor programming/ application design..
- cmiz, on 10/12/2007, -0/+4As mentioned somewhere above, the tools of the trade have gotten a lot more user friendly (though there's something about C in a text editor that's just really satisfying). The actual act of programming is still as hard as it's ever been. It's the difference between knowing how to play the piano, and writing a symphony. Knowing how to use the tools is only a small part, it's what you can do once you've learned them.
Don't get me wrong, I'm all for more people learning how to program. I just don't know if easier tools will really draw more people. - Bogtha, on 10/12/2007, -3/+7> The actual programming still happens though.
Not by the person writing the application/utility though, and that's what matters when you are judging how easy things are for "user-developers".
> everything is as it was before, it's just that we are more specialized now.
"Specialisation" means that user-developers can focus on solving their problem instead of solving more generic problems like multitasking. Which makes it easier for them. Which lowers the barrier to entry.
Everything is *not* as it was before. Things are significantly different *because* other people have done work so user-developers don't have to. - rocjoe71, on 10/12/2007, -6/+10@chieffy:
Dude, I've been programming for 25 years, BASIC, 6502, Pascal, C, C , FoxPro, VB6, C# and Java. It was never that hard to learn. Beware of languages that make things "easy"-- it's harder to be better than average when someone/something else does all the heavy lifting for you. - JoJoDilio, on 10/12/2007, -0/+4I agree. I'm a computer science major and have about 4 years of programming courses behind me. But I'm also in the middle of an internship where it seems like NOTHING I know how to do is useful or helps a project in any way, other than reflecting the confusion and frustration of a user who doesn't know what's going on.
It seems like there's simply far too much specialization. Yeah, I know a handful of languages. Heck, I took a course last semester where I had to learn 4 languages. But I would never use them in a business environment without a LOT more studying and practicing.
So sure, learn your languages and write hello world all day, but don't think that knowing how to use multidimensional arrays will earn you a career. - airship, on 10/12/2007, -0/+4I think the point is that just about anyone who is somewhat smart and logical can jump in and create simple programs that work, without worrying about the underlying complications that used to make the 'cost of entry' way too high. You can create simple programs with Ruby and Python just like you could in the old BASICs, before they got all Oop. :) But to write a complex program that does Real Stuff in the Real World, you still have to know a lot. So yes, all of you Professional Programmers who are doing all the tubthumping, your Computer Science degrees are still useful. Don't feel threatened. Chill. The point is, Ruby and Python have made it possible for the amateur to have fun programming again.
- MattL920, on 10/12/2007, -0/+3True, but ruby still isn't compiled.
The whole compiled vs interpreted argument is really overblown IMO. If I were writing a graphics application, or a 3d game, or something like that where speed was a major concern, I would write it in a compiled language. But how many of us actually do that? For web pages, and even your average desktop application that isn't doing any serious number crunching, who cares if the language is slower than C? If you pick the right algorithms and don't write stupid code, an interpreted language won't slow things down too much, and you'll gain a lot more in programmer efficiency and bug reduction - electrichead, on 10/12/2007, -9/+12I wasn't being pedantic that time. What I meant was that it isn't easier to program; instead it is less complex (therefore, simpler). Specialization was good in that it allows for in-depth knowledge about a certain aspect of the process. Just because of this, it isn't easier to program well. The beginner will still have problems compared to someone with more experience. The jack-of-all-trades will still write code that is way more inefficient as one written by a specialized team.
By saying it is easier as an effort to get people to try programming is not going to work; simply because they will quickly see that it isn't really that easy at all. If they have the aptitude, they will do well, but this method will not attract anyone who wasn't going to do it in the first place. - electrichead, on 10/12/2007, -6/+9I don't know about that. It's true that you don't have to worry about garbage collection and other inner workings; but that doesn't mean that those things are not being programmed. It's just that they are programmed by other people and can be reused. The actual programming still happens though. All I'm saying is that everything is as it was before, it's just that we are more specialized now. The inner workings are coded by other people while you worry about high-level programming.
- LiquidPenguin, on 10/12/2007, -0/+3@1ivewire
I think his point is is that there's a distinction between building a nice GUI interface in something like Visual Basic and writing the entire underlying code structure to get that GUI to the screen.
For instance, I can change all of the fluids and do other simple repairs on my car, but I don't consider myself a mechanic. In the same vein, the mechanic can do far more complex diagnostic, repair and even rebuild an entire car but he wouldn't consider himself an engineer or machinist. The engineer would be the one that design the car and/or the components and the machinist would be the one that actually fabricates them.
Or to hit a little closer to home. When you build your own PC, do you consider yourself a fabricator, electrician or a component designer? Or are you really just putting together pre-made bits of hardware in pre-defined ways to build your custom PC? - jldugger, on 10/12/2007, -0/+3Going by the people I know of, the answer appears to be "Grad School" / "University." With a smidgeon of people employed by Redhat, Canonical, etc. A few appear to be regular paid developers for a company that happens to use some OSS tools, and they contribute back when they find cause to improve such tools. Most seem to be paid via something you might be familiar with: it's called a "Day Job." Open source is their hobby; it just happens that the programs they write for fun and give away, source and all, are occasionally better than every nonfree alternative. Why this is remains a mystery.
- 1ivewire, on 10/12/2007, -0/+3You're arguing semantics here.
Coding is a part of programming and definitely easier than it used to be. This has lowered the barrier to entry which is why there are so many of these low-skilled programmers that can produce working code. There are also many more mid and high-skilled programmers thanks to these same advances. - phreakstar, on 10/12/2007, -2/+5Wow, I sure do hate write-ups like this...Oh, programming is easy, anyone can do it! Sure, anyone can write code, but it takes a lot of skill to be a programmer. People think that just because they have picked up a scripting language and learned to print out 'hello James' that they are now a programmer. This guy is clearly just trying to get page hits. While I agree that programming is becoming easier every day, it has to do this, but only so that we can tackle more and more complex problems.
I mean honestly, this guy acts like proprietary software companies don't make simple scripting languages because they want programming to stay complex...that couldn't be farther from the truth. Everything that goes into modern proprietary programming languages from Java to C# is all about making things easier. It seems as though this writer equates type safety to complex. C# and Java have garbage collection, we get intellisense from IDEs, we have namespaces and object oriented libraries that make it easier to find things, etc... But suddenly these languages are so much more complex because I (for the most part) have to declare my variable types and cast things. Geez. As a professional programmer this article is just offensive, and if it weren't for all of the "hard" languages there wouldn't be any of these scripting languages. - baki, on 10/12/2007, -0/+2Sigh how little people actually know is very sad... In any case people keep saying it's hard because well it is. Completing your first "Hello World!" program in no way makes you any sort of a programmer, and for that matter completing your second, third, forth, etc in no way makes you any sort of a programmer. It is a total mindset that does not come easy.
What is being missed here is that outside of your chosen languages' syntax (which varies in difficulty, and is also a somewhat small part of the overall issue), you have your programs logic. Go tell people working on Halo 3's AI that what there doing isn't difficult. That trying to make a computer make realistic decisions takes no skill. Programming isn't about learning a language, or learning how to play with your operating system... instead it's about efficient problem solving in whatever the field may be.
Anyways I suppose the average person simply has no clue how much math/logic/thought/creativity goes into making this stuff work and it's reflected in so many of these posts. gcube9x just represents another clueless end-user. - evilTak, on 10/12/2007, -0/+2Developers of Free Software make money in many ways.
1) Custom software. Often, a company or an interested individual will want a particular feature added to a Free Software application, and will sponsor one of the project's developers to add it.
2) Selling boxed sets or nicely packaged distributions of your software. Richard Stallman sold tapes with Emacs code on them for years.
3) Many companies sponsor developers to work on Free Software projects that advance their business interests in some way. For example, IBM employs programmers to work on Eclipse, the Linux kernel, and various other projects. Novell, apart from SuSE/NLD, employs GNOME and Mono developers. - Bishoco, on 10/12/2007, -0/+2Say I give you some boards, some nails, a hammer, and a hand saw and told you to build a cabinet. Then, you proceed to build a really crappy cabinet. Then, I give some boards, some nails, a nail gun, and a power saw. You're still going to build a crappy cabinet.
Programming languages are just tools. Whether you're working with C or Ruby on Rails, you must have some knowledge of software design in order to build an effective program. I do agree that it will lower the bar to entry and make it easier for beginners and amateurs to learn the basics, but you still have to learn the basics.
Remeber, "A fool with a tool is still a fool." - chamblin, on 10/12/2007, -0/+2Almost anyone can program, and really, it's always been that way. I have stacks and stacks of issues of PC magazines from the early 90s (when SmallTalk and VB were the "easy languages") that claimed the exact same things that this article is claiming. And they're both right -- kind of.
The simplest things are not really much easier in Ruby or Python than C++, mainly because real programming happens at a meta-level, where it doesn't matter which language you're using. A quicksort isn't much easier in Python than it is in Java, because the real problem is not in the language of implementation -- it's in the reasoning. That is something that you're simply not going to be able to overcome with new languages. Modern languages simply make it easier to translate from a programmer's design into code.
This article makes the assumption that since anyone can write Hello World, we're suddenly going to be able to have everyone contributing to open source projects and nobody's going to have to pay for packaged software anymore (because, hey, everyone can write software!).
There is a big difference between Hello World and real programming. If you do not believe me, try debugging an over-eager CTO's excel "application." - ellem, on 10/12/2007, -0/+2i dunno... I bought a Learn Java in 21 Days in 1996 and I still can't program in Java! Perl, sure... Java no.
- lineman60, on 10/12/2007, -0/+2Could someone please explain how a software developer of Free software makes money? I've heard all the reasoning and such where you charge them for the services... but if you're only a single programmer your only assets (yourself and time) are limited... so how then can one make a living writing Free software?
there are several ways
1) Some offer a free basic version and a more expensive upgrade (customised) version.
http://juicereceiver.sourceforge.net/
2)Some offer advertising in it an example is Fire fox they get paid per google search
3) some like Bit torrent get paid to let others use there programs (Wold of Warcraft)
this is not a compleate list just off the top of my head - chuckd, on 10/12/2007, -2/+4Could someone please explain how a software developer of Free software makes money? I've heard all the reasoning and such where you charge them for the services... but if you're only a single programmer your only assets (yourself and time) are limited... so how then can one make a living writing Free software?
PS: I'm not trying to troll or anything, just an honest question. - LucasOman, on 10/12/2007, -2/+4And even if they can accomplish secure code, it certainly won't make use of design patterns to be modular, extensible, maintainable.
- stretch611, on 10/12/2007, -0/+2>>Programmers dont like the title programmer anymore because every nub
>>that writes hello world in some dinky scripting language call themselves
>> programmers these days.
I am a programmer. For the most part I don't care what my title is. I code, analyze, debug, design, develop, ... etc. I don't feel demeaned by being called a programmer, it is what I do. I don't care for "PC" bs.
For the record, my titles over the last 12 years have been: Jr. Programmer, Programmer, Member, Senior Technical Associate Level 2, Senior Technical Staff, Computer Scientist, Software Engineer, Consultant, Developer, Senior Developer, Analyst. For some reason right now, my company lists me in their directory as "DATA ANALYST/DBA" even though I am not a DBA. The whole time I have designed, developed, and maintained computer software systems. To this day I still wonder "MEMBER" wtf is that? I went to Comdex back in 1996 and they abbreviated my title on my name tag to "Sr. Technical Ass 2." I still have that name tag and get a laugh every time I see it. - aliengoods, on 10/12/2007, -0/+2Probably because anyone referring to themselves as an expert has forgotten the golden rule. No matter how much you know, you still have much to learn.
- Nathan07, on 10/12/2007, -0/+2This article isn't aimed at full application developers, but your average joe power computer user. It is easier now to bang out simple applications, the article isn't addressing writing an operating system or developing a huge application like a game or something else like Apache.
- JoJoDilio, on 10/12/2007, -0/+2I think you're point is that with bigger and faster computers, we won't necessarily be working faster, we'll just move on to bigger and faster things(programs).
- psychicfriend, on 10/12/2007, -0/+2ALL I KNOW IS... the difference between Visual Basic and perl:
Visual Basic allows programs to be written by people who should not write programs,
WHEREAS:
perl allows people to write programs that should not be written.
Similar distinctions for Ruby, Python, etc, are left as an exercise for the reader. - j4s0n, on 10/12/2007, -0/+2ahh, I hate it when someone said programming is easy. It might have been easier today using tools/ide/apis and the likes. But in some point you will still encounter some scenario/situation wherein your coding your FREAKIN HEAD out trying to solve something! This ain't no elementary math we're doin.
- Vouksh, on 10/12/2007, -0/+2I definately agree. It took me less than a day to learn advanced Visual Basic, but 3 months later I'm still trying to really learn how to USE it. I'm making a kill tracker for a game. It's easy to create a timer, loop through the console output and all that BS, but it's a little harder to make it work on several systems, no matter the mod, the OS (win98, 2000, XP, etc).
So yes, I could teach a monkey how to write code, but could he use that knowlege? I seriously doubt it. - OneAndOnlySnob, on 10/12/2007, -1/+3Sure, the tools have gotten way better, but you also gotta consider that we're doing much, much more complicated things and offering much more functionality in apps now.
- Feanor, on 10/12/2007, -0/+2Just because Joe can learn all the commands for a language in a few days, a week tops, doesn't mean that Joe can write complex algorithms needed to create a more complex program. Coding and Programming are very different. Joe can be a very good coder, but without algorithmic knowledge he cannot be a good programmer. It's like a secretary that can type at 300 wpm, but is actually illiterate and only types by letter recognition.
-
Show 51 - 100 of 105 discussions



What is Digg?