Has .NET destroyed the Programmer's spark?
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Id say its still the exact same , but instead of libs , you niche on a technique. some go for ORMapping , some go for SoA , some go for smart clients and so on. also even if its in the same framework many people seems to specialize in either asp.net or windows forms. and the bashing is still there , ormapper guys bash dataset guys. windows forms guys bash asp.net guys. //Roger
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
I believe so. I learned VB first, then went right into learning how to use Windows API's to do things the others in my class didn't know how to do. Then I went one step further and started learning C++. I love C++ because of its power and the ease of use when using MFC. Now a lot of my co-workers are learning and using .Net, and they're saying, "Did you know you can do this or that in .Net?", to which I generally reply, "You've always been able to do that in C++". Sometimes .Net makes me feel as though I've been cheated. I've taken all this time to learn C++, (and still feel like a novice), mainly because of the power you have over everything, only to find out that people would rather have everything taken care of for them. It's kinda like your school starting a contest to see who can build the best soapbox racer. They give you two months to put together one by hand - then a week before the competition, they start selling them at the school, saying you can just buy one instead of building your own. For all the slackers who sat around doing nothing for a month and a half have a racer better than yours and haven't really done anything. But I have to admit, when the wheels start falling off of their racers halfway through the race, or a steering wheel pops off, I say, "I knew it" in my head :). My articles www.stillwaterexpress.com BlackDice
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Well, the thing is, .NET still isn't all that ubiquitous yet. I think your statements will be true about 3-4 years after Longhorn comes out. As it stands, there are still a lot of things that are difficult to do with .NET that still require spelunking into the depths of the Win32 API and other weird subsystems... including distributing a program that doesn't require a 30 meg download... :-D But .NET opens up a new set of challenges... for instance, cross-platform .NET is still the Wild West of the programming world. And, of course, a great programmer will still write great .NET code whereas a crappy programmer will write crappy .NET code. So the playing field will have changed, but I don't see that the "hierarchy" has been flattened by any means. The generation of random numbers is too important to be left to chance.
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
What I believe .NET did (or was supposed to do, as some people believe) is to remove barriers to features. All you are talking about C++ (GDI, Windows messages, MFC, ATL, COM, WTL, SDK, DirectX) is that you spent a lot of time learning about your tools and your infrastructure, without spending so much time creating software that does something for the end user. Those challenges are/were technical challenges. A Win32 or WTL "Hello World" was cool because it was in Win32 or WTL, but if you showed this to some end-user they would say "that's stupid". The challenges I believe we're starting to face now are creativity challenges: assuming that there's no technical challenge in anything (that's not true yet, but it's becoming truer each day), what can I create that makes someone say "cool"? Did the technical challenge disappear? No, but I believe that it is changing from merely knowing a programming language, library or dialect to how to effectively program and structure your code. Design is becoming more and more important, as the tools make it easier to produce huge software solutions. I’m not the only one in CP with a VS.NET solution with nearly 250 projects. Actually, this was quite predictable to happen in consequence of: 1. Faster machines 2. Cheaper machines 3. Bigger machines (RAM, disk, etc) 4. Faster network bandwidth 5. A network that spans the globe with an impressive amount of free information (think again: when was the last time you bought a computer magazine and said “Wow! I need to learn how to do this!”) I see dead pixels Yes, even I am blogging now!
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
I do not believe that .net has destroyed programmer spark. What the niches are may be shifting but, to do the job well, you will still need your understanding and appreciation of the system you deal with. For myself I find that most 80+% still treat the world like they did in the mid 90's (or earlier for die hards.) So average people do not change as rapidly as CP's tallent pool may indicate. (If you know what I mean :) ) I do not mind getting old. It beats all the other options that can think of.
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Chris Maunder wrote: VB is no longer everyone's punching bag :-D I see dead pixels Yes, even I am blogging now!
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Chris you sound like a grandfather longing for the 'good ol' days'! ;) There are plenty of 'developers' sticking to VB6 and arguing that VB.NET is too hard. You haven't lost any damn punching bag! :laugh:
A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine. - Murphy's Law of Computing
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
The notion that programmers should be (a) tribal and (b) competitive is really rather bizarre, to say the least. I specialize in a number of areas, but that is due to lack of time to become expert in all of them. But "competitiveness" was never a concept I had. In any case, C# in particular is a MASSIVE set of libraries; becoming expert in all of them presents the same challenges as with any large technology. We will find niches to inhabit. I will no more be a universal expert in all of C# than I am a universal expert in all of Win32. Anyone who thinks they should be part of an "elite" should re-examine their life's goals. We become experts because of what we do, not because of of some bizarre fourth-order effect such as tribalness or competitiveness. Otherwise, we are back in the high-priest-of-the-computer cults of the 1960s
-
The notion that programmers should be (a) tribal and (b) competitive is really rather bizarre, to say the least. I specialize in a number of areas, but that is due to lack of time to become expert in all of them. But "competitiveness" was never a concept I had. In any case, C# in particular is a MASSIVE set of libraries; becoming expert in all of them presents the same challenges as with any large technology. We will find niches to inhabit. I will no more be a universal expert in all of C# than I am a universal expert in all of Win32. Anyone who thinks they should be part of an "elite" should re-examine their life's goals. We become experts because of what we do, not because of of some bizarre fourth-order effect such as tribalness or competitiveness. Otherwise, we are back in the high-priest-of-the-computer cults of the 1960s
I don't know about that. With me, (and probably some others) competitiveness helps me to become a better programmer. Sometimes I compete with people and they don't even know it. If you write a small app, and I can write an app that does the exact same thing with half the code, I've taught myself something, and hopefully I'll share it with you so that you may learn something too. Some people that I learned VB with would learn stuff and then act like they didn't want anyone else to know how to do what they did as if making someone else smarter would somehow make them dumber, or see it as an act of relinquishing some form of power they assumed they lorded over everyone else. But that's just stupid. Competitiveness helps us all. Building the better mousetrap eggs you on to build one better than mine, then Chris tries to build one better than yours. The end result is that if that knowledge is shared, we all benefit from it. People even compete with their own products. Otherwise, there would be no version 2.3, no enhancements and plug-ins. It's a constant effort to make any of your products better. I don't think we become experts because of what we do (although I'm not an expert at anything :) ). Wanting to make something better makes us experts. Unless you sit in a cubicle and do the bare minimum, copy and paste ALL your code and never have an idea that you think is cooler, better, or more efficient. My articles www.stillwaterexpress.com BlackDice
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
What's that quote? The one about the universe being suddenly replaced with something more confusing, should we ever manage to figure it out? Well, that's .NET. Suddenly, we're all on the same playing field again, and most of the work we put into building knowledge and especially toolkits prior to this now amounts to nothing. But it'll change. VB.NET is already changing in VS2k5, in a few versions we'll have everyone's favorite hand-holding programming environment back with a vengeance. Once Avalon gains some traction, we'll have that and the older custom stuff to choose between. And it's already become fairly easy to read past even FXCop-friendly code and see who's really writing with the future in mind, and who's just throwing stuff against the wall. In ten years, when UltraJava is the buzzword of the day, no-one will even remember the old fiefdoms, and we'll all be eyeing each other with suspicion again...
You must be careful in the forest Broken glass and rusty nails If you're to bring back something for us I have bullets for sale...
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
No - you have grown old and cynical ;P (Just as everyone thinks that the music they listened to when 18 was the best so everyone thinks the language/environment that they learnt first is the only real way to program...) '--8<------------------------ Ex Datis: Duncan Jones Merrion Computing Ltd
-
No - you have grown old and cynical ;P (Just as everyone thinks that the music they listened to when 18 was the best so everyone thinks the language/environment that they learnt first is the only real way to program...) '--8<------------------------ Ex Datis: Duncan Jones Merrion Computing Ltd
Merrion wrote: (Just as everyone thinks that the music they listened to when 18 was the best so everyone thinks the language/environment that they learnt first is the only real way to program...) Dern right! Just show me the app i can't write in GW BASIC in an afternoon...
You must be careful in the forest Broken glass and rusty nails If you're to bring back something for us I have bullets for sale...
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Chris Maunder wrote: Lost the concept of being an elite? It cannot be lost, this concept. It's just a matter of time before the "old guys" will migrate to the .NET world. Then the difference between survivors and developers will become visible again. Because there is someone to disturb the sleeping waters, already, i would rather tend to be optimistic :)
"though nothing will keep us together we can beat them for ever and ever" rechi
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
I should quickly point out that the "tribal, competitive nature" has always been so irrelevent to me I never thought about it until now. I'm really responding to the subject line. I've been programming for 25 years, professionally for 17. My first professional job was writing games in 6502 assembly for Apple IIs. 17 years later, I am an expert in Win32, MFC and C++. The last time I wrote code that truly engaged me was three years ago [it was the core routing engine for a VoIP network.] For three years before and after, I've been a mindless programmer, churning out code and fixing bugs. Last year, while the rest of my team spent six months doing "contextual inquiry" (and coming up with obvious results I could have told them had they but asked) I spent my time writing the core of our new product in .NET and C# (using the 2005 beta and VistaDB for those who care.) I hadn't had so much fun writing code since the mid-90s when I was mastering MFC. Then it came time to churn out another release on our mixed bag of C and C++ code and I returned to hating my job on a daily basis. So, for me, .NET has restored my spark and I continue with my drudgery since sooner or later, the .NET rewrite will be given the green light. (At this point, even rewriting in C++/MFC would restore much of my spark, but I hope it's .NET/C# since it was, and still is, fun.) Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Chris Maunder wrote: You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Actually, we do. We've had to dip into the Win32 API on many occassions for some GDI stuff, much of which is shoddily (new word?) documented, or not documented at all. .NET makes a lot of things easier, which is good, but doesn't give you full control like native code does (at least, not with the DNF library set we've had thus far). .NET is such a huge topic, that is encompasses so many things: sockets, remoting, xml, GUI Windows apps, Windows services, web-based apps, web services, and so on. It's will come to the point that when virtually all in the Windows dev world are using .NET, the specialties you speak of will become specialties in .NET. Even in its limited use today, I know that Heath Steward here on CP is an elite .NET P/Invoke expert. Or I might talk to Ingo Rammer if I've got a question on .NET remoting.
Tech, life, family, faith: Give me a visit. I'm currently blogging about: Horrific Minnesota Radio Judah Himango
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Chris Maunder wrote: VB is no longer everyone's punching bag Yes it is! and it will remain so forever. Y'hear? Joel Holdsworth Wanna give me a job this summer? Check out my online CV and project history[^] - now available in MSWord format![^]
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
To some extent I agree -- the challenges (certainly for me when I was picking up MFC/ATL) were a lot more to do with actually getting stuff done, picking up slightly weird nuances. Mind you, a lot of my learning was to do with programming as a whole, so the chances of me picking up C# any quicker when I was starting out was probably less. But I agree, part of the fun was very much actually seeing stuff come together, and understanding why. This (to some extent) is now no longer relevant, coherent libraries that work. Admittedly there's still things to watch out for, memory management is a whole different ball game, but to my mind it is essentially simpler rather than it just being quicker to get to the end product. However I still feel there's value in understanding what's going on under the hood - particularly when troubleshooting - despite the fact that you're not using it anywhere near as directly. I think where things have changed is its now application of techniques/technologies which sets people apart. Their knowledge of development patterns, good code writing practices (paragraphing, good commenting etc.), refactoring. Its no longer a question of tackling problems, but how effectively can you tackle the problem. Some of the biggest gains in terms of development that I personally have experienced (beyond my initial learning of libraries/languages) has been the adoption of practices like test-driven development, setting up continuous integration and getting custom reporting in. I don't agree that there's no longer a wide spectrum of abilities within the .NET space. Fair enough, it's unlikely to be _as_ wide as with C++, but that's essentially because the range of things on which you can vary in knowledge is smaller. There were just far more things (certainly from my exposure to C++) you could shoot yourself in the foot with. However, I'm yet to find a time when I personally don't read other things from other developers, and fail to learn something, and occasionally be blown away -- the various .NET blogs and articles I read are testament to the fact there are still extremely, extremely bright people in the .NET world and are as important as the hardcore C++-ers. Both of which appear to exist in very large numbers on this website :) -- Paul MS Messenger: paul -at- oobaloo-co-uk
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
I spent the past year playing around with .NET. I am not yet sold on .NET (or any runtime for that matter). I just dont think our C/C++ skills are obsolete. A vast majority of critical exciting applications will continue to be written in C++ without the runtime. .NET is not really new. We have had managed environments for 10 years now with the release of Java. Yet , Adobe Premeire is still written in C++; Flash is still an ActiveX control. If Microsoft forces us to code in VB.NET or C# to access Longhorn features (?) - then Linux will be take its place as the preferred platform for high performing desktop applications.
-
After chatting to a friend I got thinking: when I was learning C++ it was fun. I picked my niche (MFC) and style (GUI controls) and worked on learning everything there was to know about DCs, Windows messages and MFC internals. It was relatively simple to become an expert on a small corner of programming and feel you had that corner to yourself and your friends. You could then move on to ATL or COM, or go crazy with WTL, or dip down to SDK programming, or graphics and DirectX. Whatever. Each discipline had its own libraries, its own framework and its own techniques. Once you had mastered one you moved on to the next. The maverick WTL guys laughed at the MFC guys, who in turn fended off the ATL guys, and who all thought, in the end, the graphics programmers got the fun jobs. In a way it was almost tribal. But does .NET allow this to happen? The same class library is used by all. VB is no longer everyone's punching bag. You don't plunge into the Win32 SDK or use an undocumented system DLL to push the limits. Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? cheers, Chris Maunder
Chris Maunder wrote: Has .NET homogonised programming to the point where the tribal, competitive nature has been removed and the heirachy has been flattened? Is it simply a task that you share with others - many, many others - of such a wide spectrum of abilities (hard-core C++ guys down to Frontpage developers moving up) that a typical .NET programmer has lost the concept of an immediate peer group? Lost the concept of being an elite? Of having something to fight for? depends on your environment. No one has homogonized the 3D graphics systems, there are two SDK's still, one cross platform, one windows only (wow big surprise), and many higher level SDKs that use one, or either low-level graphics to assist the programmer. .Net is one portion of programming. I think you can focus on what you have done for you, or on what has yet to be done. Look ahead, look up, use the homogonized tools to make life faster for the repetative tasks, teach the computer to do something new and exciting and you will feel better. _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)