|
ConceptJunkie wrote:
Me? I'd rather get work done.
And then one day you get laid off from your job and find your skillset 3-5 years behind everyone elses.
It never ceases to amaze me how many "professional" programmers don't get the concept of keeping your skills up to date. So what if your current job doesn't need it? You don't want to be trying to upgrade your skillset when you need to find a job.
--
Where are we going? And why am I in this handbasket?
|
|
|
|
|
You have a very valid point, but tell my clients. Actually, I'd like to upgrade, and take advantage of some of the new functionality being offers but every client I've worked for uses Visual Studio 6 and does not want to change.
With respect to keeping skills up to date, there are two kinds of skills. First is the ability to think logically, plan, organize and make things happen. Second is the ability to know what dead chicken to wave around to get the latest Microsoft fad technology to do tricks. And yes, it's a fad. I'm not saying .NET and C#, etc, are not good tools, just that they ultimately don't have a significant benefits over older technologies coupled with good design and implementation. Lacking garbage collection never hurt me, and, no, I don't have problems with memory leaks, etc. The latest development paradigm (patterns, etc), are, in my experience, often simply formal names for ways to work I have figured out myself or have learned from others in the past. And some ideas (e.g., template metaprogramming) are just too evil to consider. They seem to exist solely so people can demonstrate how clever they are.
The first skill above will serve you indefinitely. The second will last a couple years at best. As someone with almost 20 years software development, having the first skill has never failed me, while not having the second is a temporary disadvantage at worst. While most employees these days don't seem to recognize the advantages of having a working brain, there are still plenty out there who do, usually among the startups, where I am most comfortable because the focus (again) is getting work done, not fueling the bureaucracy or stroking clueless upper management egos.
With respect to .NET, the only benefit that makes it worth using, in my opinion, is for integration of existing disparate systems. Beyond that, it seems to me it's just another bloated, labyrinthine Microsoft library that forces you to wrestle with it rather than get work done (embrace and extend has moved to C++). In non-trivial cases with MS development libraries (and understand, I'm talking about writing new software, not integrating or reusing existing stuff over with you do not have control), a combination of writing things yourself and taking advantage of the wealth of existing code from the OSS community will beat Microsoft for efficiency, flexibility and power every time.
Having said that, I enjoy using and developing for Windows, but in general, I find using MS libraries (DirectShow is my latest nightmare) to be a counterproductive and frustrating experience.
So don't worry about me. I successfully got a job programming in C without C experience in 1987 because I was able to demonstrate the ability to think logically and learn quickly. I was able to get a job in 1993 programming C++ with no prior experience for the same reason. Later I got a job using Visual C++ with no prior experience (I'd use Borland C++ for many years). In each case, my learning curve was sharp (the popular idiom is backwards), and I fit in easily.
Call me old-fashioned, maybe hopelessly so, but my priniciple that being reasonably well-rounded and informed, intelligent and logical are the best tools for any job. So does haing smart friends.
|
|
|
|
|
Ahh.. A control freak. I understand your position. If you didn't write it, it's not efficient enough or secure enough or just plain enough. That is a valid point in some ways, but you can't do that everywhere.
When you work in teams, you have to look out for the lowest common denominator. You can't write code that nobody else can maintain because they don't understand how it works. This usually means living within the frameworks of what the majority of the team knows. 10 years ago, using templates was impossible because nobody else understood them and they would just rewrite your wonderful code to something they could understand, and probably break everything in the process and then complain about how poor YOUR code is.
I understand exactly what you mean when you say that using your brain is more important than experience with a specific technology, but it's getting harder and harder to convince potential employers of that.
Further, there is a lot of value in knowing the "quirks" of given toolset. Learning to use the tool and having a lot of experience with using that tool are two very different things. As an example, I once walked into a shop that was having problems with a very strange assert showing up that they couldn't trace. I knew exactly what it was and fixed it within 30 seconds... something they had been trying to fix for 3 months. I know, because I ran into it several times before. In this case, it was using afxdump inside an MFC extension DLL (this was back in 16 bit MFC, that bug has been fixed for a long time).
There's value in both sides of the coin. Knowing older tools is great, but eventually the new tools become "the old tools" and suddenly you're faced with a knowledge and experience deficit that is often hard to make up for... no matter how smart you are.
That's why it's important to keep your skills current. Not so that you can pad your resume, but so that when you NEED those skills, you have them.
--
Where are we going? And why am I in this handbasket?
|
|
|
|
|
Yes, I would say I'm a control freak, having worked alone for a significant part of my career hasn't hurt that attitude. But rather than being hard to understand, I find my code much easier to understand, and far more consistent than anything Microsoft has ever and could ever come up with. When you have a thousand people working on something, the implementation is almost always a big inconsistent and confusing mess. Yes, if everyone speaks Pig Latin, they willl certainly understand Pig Latin better, but that doesn't make it a good means of communication. And yes, I'm the kind of guy who pisses off management by making snap judgements that are completely contrary to their estimation... and being right. That's why I'm happy I'm working for someone well-versed in software development who has a good grasp of what's possible and what's necessary and will listen to my opinions. If he disagrees with me, he's got a really good reason for it, and I can respect that... as opposed to other bosses who have literally said, "Yes, this is stupid, wasteful and prone to errors, but that's the way we do things. Period."
Furthermore, when someone comes to me with a bug that has to be fixed, I can because it's my code rather than having to work around the bugs in, say, MFC. I've wasted many hours trying to fix bugs in code I could not change (like a similar problem I had years ago with MFC... the data pointer for any mpty CString would point to a static location, and it would crash if you tried to access an empty string in a DLL where it wasn't created. This was stupid beyond belief, and you couldn't fix it without changing the code because the necessary functions weren't virtual. After experiencing this and many other problems you would never dream could exist, the group I was in decided to throw portability out the window in favor of getting things done. We fixed MFC. A short-sighted idea, certainly, but a great way to stop fighting the tools and get things done.
Also, with respect to templates, I shy away from them for the exact reason you state. STL is hideously unfriendly and unreadable in my experience. Furthermore, it throws OO completely over the side, although the tradeoff is the ever-important efficiency and even more important code-reuse. Things are a lot better now that templates are standardized, but I think templates are also abused a lot and I think they suffer from the "when you have a hammer, every problem looks like a nail" syndrome. Anyone who thinks template metaprogramming should be anything more than a parlor trick should have their heads examined.
The biggest flaw in C++ (a deeply flawed language despite the fact that I do love using it) is that people felt the need to create templates. I think they're a real kludge, but they do fill a huge gap in the language, increasing efficiency and code reuse, if at the expense of readability. Oh well, imperfect solutions in an imperfect world.
Anyhow, I think you raise some very cogent points. It's a fine line between doing what's comfortable, and effective, and avoiding passing fads and planning ahead for when things change.
Rick Gutleber, cynical old crank in training
|
|
|
|
|
Michael Dunn wrote:
I could swear that I've been writing fully-functional C++ code all day long... [hits Alt+Tab] Yep, there's VC6 right where I left it... Whew, good, it wasn't just a hallucination.
Someone has drunk too much of the MS Marketing Kool-Aid™
You get my five for the day!
|
|
|
|
|
depends on what you are doing.
If you are an Mini-ISV or something like this it is more importat to make good programs (or make your program better) than stick to the latest trends. (at least this is the philosophy of Joel Spolsky (sorry if i spelt his name wrong) www.joelonsoftware.com[^]
All the label says is that this stuff contains chemicals "... known to the State of California to cause cancer in rats and low-income test subjects." Roger Wright http://www.codeproject.com/lounge.asp?select=965687&exp=5&fr=1#xx965687xx
|
|
|
|
|
As an independant developer I have found that I can produce better code, faster using c# than C++.
My investment in VS2003 and C# has paid off .
Productivity and language improvements in .NET 2 and the new VS200x will make my life easier. (I hope!) I don't think my ROI on 200x will be as much as in the VS2003 case.
M Dunn is right , you can produce great s/w with VS6 , why wouldn't you be able to? Will the new safe libs for VC++ make his software better? Probably.
My software is used in an environment that I control and not in a large corprate roll-out so any new framework bugs etc are fairly easily 'compensated' for.
I must admit , I love change and the whole learning proccess. If MS had a fan club, I would be in it.
Arrgghhh $549 . I hereby retract all above comments.
.nuetter
|
|
|
|
|
Give an example of 'better code, faster' using c#.
|
|
|
|
|
I like to think of myself as an under funded developer. Not someone who is left behind. I have run a few of my WxWidgets projects through the First Beta of Visual C++ 2005, and liked the results. I may continue on down that road some day if I can find the funds.
|
|
|
|
|
The Express versions of VS will only be $49.
That's pretty affordable.
--
Where are we going? And why am I in this handbasket?
|
|
|
|
|
Thanks for the tip. The express version is more then enough for the projects that I will be using it for.
|
|
|
|
|
David Gallagher wrote:
Just put your money on the table and hold your breath.
I don't think so
Johan Rosengren
|
|
|
|
|
For now I will stick with VS.NET 2003 but when I consider it necessary I will upgrade to VS.NET 2005.
|
|
|
|
|
Being a AutoCAD/ObjectARX developer I am stuck with the horrible VS2002 version for at least another year.
Johannes
|
|
|
|
|
Actually, I was playing even with Beta 1, but to actually migrate the production code to VS 2005 I'll wait at least 3 months after the release. The things I am looking forward most are C++/CLI and new VSS. Anyway, I don't expect this to be a huge leap such as moving from VC++ 6 to VC++ 7.1
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
Some of us are too poor for £500-odd in one go
|
|
|
|
|
Yeah, but thats $500, which these days is probably about £100.
(I know, I'm just kidding).
|
|
|
|
|
Upgrading a compiler while a project is active or nearing completion is just plain dumb. A new compiler changes the resulting program completely, and you will invalidate all of your testing and possibly introduce new bugs - if you are lucky enough to get all your code to compile. The danger is even worse if you have any 3rd party or open-source components.
The last time we upgraded a compiler, it was before we started doing work on the next version of our stuff, and we kept around the old one for the "legacy" code. This upgrade, if we do it at all, will be no different. That could be any arbitrary amount of time after 2005 is released.
The generation of random numbers is too important to be left to chance.
|
|
|
|
|
Besides the cycle of our own procduct, we should make sure our developing partner are ready to upgrade to VS 2005, because we use some of 3rd-part tools and libraries.
I am flying
|
|
|
|
|
I am just interested to know why some people voted they were already using VS 2005, considering that its not legal to be running any production code on this. Are you using this purely for testing purposes?
|
|
|
|
|
Beta 2 has a Go-Live[^] license. I downloaded Beta 2 on Saturday night, making "Already using it" a valid choice (though it wasn't my choice).
Charlie
if(!curlies){ return; }
|
|
|
|
|
As a part of my internship I have to "experiment" with VS 2005. I have to learn as much as I can from it and advise about if the company should migrate or not. Back at home I'm already migrating my C++ code.
I also got the blogging virus..[^]
|
|
|
|
|
Apart from the fact that there's a go-live license, you don't have to be running production code on it. If you development cycle is longer than about 6-8 months, the product will probably be finished about the time yours is.
--
Where are we going? And why am I in this handbasket?
|
|
|
|
|
perhaps i am just feeling cynical today, but isn't this the same as voting "never"?
i would like to see a service pack for .NET 2003 so that i spend less time each day swearing at the IDE *sigh*
as for upgrading, work will either upgrade or they wont, and if they upgrade then i get upgraded. so i don't really have any say in the matter.
i expect to install beta 2 at home some time soon for my own purposes though.
zen is the art of being at one with the two'ness
|
|
|
|
|
Why do you feel cynical? You're perfect right! Working with VS2003 means having open VC6 in parallel (to work with resources) and a bunch of painting tools (if you've got to deal with bitmaps, pngs and alike).
The reason I use VC2003 is the sourcecode editor and the fact that MSDN wont integrate with VC6 anymore.
I think of evaluating VC2005, but if it doesn't fix the bugs in VC2003, I will stick with what I got.
|
|
|
|
|