Developers, developers, developers, developers?
on
Inside Visual Studio 2008
·
· Score: 2, Interesting
As long as I've known that MS makes an IDE, I've always wondered why they charge for (some versions) of it. The majority of apps compiled on it get compiled to MS Windows binaries. People will need to buy Windows to use these apps. That means more money for MS as more people make useful/necessary apps. Where does MS benefit by charging for the development tools? It seems to me that there would be much bigger benefit to giving away the tools for free. Perhaps I'm greatly underestimating the chunk of change MS makes by selling their development tools. Is that it? Otherwise, please explain it to me.
I don't know what you consider a very long time but at least for VS 2005 you're wrong. It highlights your errors after you try to run your code. That's in no way closer to "real time" error highlighting than compiling my code manually.
I feel that VS is great at doing very high level things. For example, designing a UI or mapping tables to objects, etc. But when it comes to the BASICS, VS pretty much sucks ass. If you compare it to even the shittiest java IDEs, it falls flat on its face in this department. For a list of what VS CAN'T do on its own (that a lot of java IDEs can), take a look at this: http://www.jetbrains.com/resharper/features/index.html (This is a feature list of a plugin for VS made by the same guys that make my Java IDE of choice. I am in no way affiliated with them, I just like their product a lot).
Personally, I care MUCH more about the basics than I do the high level stuff. If given the choice between the features in that link and a real slick UI WYSIWYG, I'd choose the former. I respect others who feel the opposite; I understand its just my opinion. But fact is, some of these IDE features have existed in other IDEs since 2001. Can we get a little embrace and extend here, Microsoft?
Real time error highlighting is the MOST important thing to me when it comes to an IDE. If I forget a semi-colon the IDE should tell me as soon as I go to the next line that I'm missing a semi-colon. It shouldn't wait to compile or run my code, it should tell me as soon as possible. The last version of VS didn't do this (without a plugin), does this version?
Java is also a lousy "beginners" language, because its reliance on standard libraries leads beginners to look for pre-packaged solutions rather than writing their own.
As someone who solves problems for a living (I'm a software engineer), I see a simple solution to this: Tell the students they can't use pre-packaged solutions for the assignment. Problem solved.
I totally agree with you. While I may put those self taught languages on my resume, I've learned little more than the syntax to them and made 1-3 mini-projects with them. Would you consider that good enough? I primarily work with Java and the only reason I know how to do things the Java way is because I've worked with it 8 hours a day for 3 years. Do you expect the job candidates to do the same thing with OCaml in their *free time*?
And let me just tack on another comment here: If you really think that a language that requires you to be more disciplined is a good thing, shouldn't you be programming in Assembly? Surely they need to be way more disciplined than C++ programmers.
Now, as for the 80% errors caused by pointers - it is perfectly possible to learn a coding discipline that avoids them. This should happen automatically with experience; after a while you learn to always initialize buffers - whether they are pointers, strings, int or other - when you define them.
Unless you're using some sort of library/toolkit/framework/IDE to prevents you from doing it, bullshit. What you're talking about is theory. The statistics of 70-80% is reality. And even if you're so disciplined that you can accomplish this yourself, all of your coworkers won't be able to (hey, that 70-80% has gotta come from somewhere). They're going to drag you down in more ways than they would if you were using a "pointer-less" language.
But guess what? If you use a "pointer-less" language, you don't have to worry about your coworkers as much. And you don't have to worry about it yourself! But guess what's the greatest benefit of all? Instead of spending most of your time thinking about pointers, you can use that time to solve the problems you were actually assigned.
Let me just summarize where I stand on this issue. It's important for CS grads to have experience programming directly with pointers, but it's important for a company to choose a language that doesn't deal with pointers WHEN FEASIBLE.
I hang out in #java every day and a huge chunk of the questions we answer are caused by newbies using IDEs. As for why they shouldn't use IDEs, I already answered that: The classpath is so confusing it's worth understanding early. People (myself included), struggle with it their whole Java career. Here's some reading material:
Because every day I work I am 8 hours more knowledgeable in my field than the day before.
I flatly do not believe that.
Unless you have no goal of actually producing something, you have spend some % of your time doing shit you have done before.
I apologize for only responding to one comment, but it's late and I don't have enough time. Just because I'm doing something I've done before doesn't mean I'm not learning. Not only am I making old concepts concrete, but I'm making new decisions based off of the results of the past. For example, I may discover that if I refactor a method one way instead of another, my code becomes easier to understand in the future.
programming in Java is like programming in C, but without the need to learn about pointers or good programming discipline.
It may not be necessary to learn about pointers, but avoiding good programming discipline? Give me a break. I've seen some nutty shit written in Java. It doesn't magically make your code pristine. I'm sure if you're a bad programmer, your code will look bad regardless of what language you use. And it works both ways: If you're a good programmer, your code will look good in any language. And BTW, since when is providing more ways for you to shoot yourself in the foot a good quality for a programming language?
Back to pointers. Code Complete will tell you that in languages that deal directly with pointers, 70-80% of bugs are caused by them. Now, while I totally agree that CS grads should be able to grok pointers, they should be avoided in production code if it's feasible. Disagree with me all you want, I'll choose 70-80% less bugs every time. Feel free to call me a lazy programmer. All the good ones take that as a compliment.
their professors do not even allow the use of an IDE when coding
That's a good thing. One of the most complicated (and shitty) concepts in the Java Language is the classpath. IDEs hide the details of it from you until you eventually have to deal with it. Then the student is totally fucked when their code won't compile/run and they can't understand why.
Yes, IDEs are great, but in Java, they shouldn't be used by beginners.
A CS grad should be able to apply everything from lambda functions, through database theory, Hearsay/blackboard pattern to predicate calculus, to aceing Excel but they don't because they can't.
That's so weird, cause when I took my interview at Google and Blizzard, they didn't give a shit if i knew about that. They must really be clueless.
I am a headhunter[...] I have zero interest in kids who have studied "easy" subjects.
You have zero interest in hiring kids that are in the most demand? Does your boss know you're turning them away? I think he'd be upset.
To be wise in computers...
Not to be an elitist, but you're a fucking headhunter. If you actually knew anything about what makes someone wise in computers, you'd be the first I've met. Every headhunter I've met thought SQL was a database and didn't know there was a difference between "C-pound" and C++.
You can't know unless you've been developing 8 hours every day after work. Wanna know why? Because every day I work I am 8 hours more knowledgeable in my field than the day before. I doubt you're keeping up with me.
I had this complaint about Oblivion when I played it the first time. The game is more unstructured than Morrowind (its prequel). Oblivion boasts having like 200+ caves to explore or something. But, the enemies and the items they drop totally depend on the level you're at. If you're level 1, they drop wooden arrows and cloth armor. If you're level 10, they drop steel arrows and mithril armor. So, when faced with the question, "Should I explore this cave or should I explore that cave?" you eventually realize it literally doesn't matter. At level X, every cave will have the same types of enemies and rewards.* It totally takes the fun out of exploring for the sake of exploring.
Don't get me wrong, I think Oblivion is a great game. The "solution" to this problem, I discovered, was to explore the world of Oblivion through its quests. If a quest told me to go to a cave, it was because there was actually something interesting to do in it that the quest triggered. But, paradoxically, that lead to a more structured game than Morrowind even though the intention was the opposite. In Oblivion, the routine became "Get the quest, explore the cave" over and over again. In Morrowind, while there was that, there was also "Explore the cave just for the fun of it".
*I am simplifying here. There are about 3 different kinds of caves. Type A will have monster/drop 1,2,3 at level 1, Type B will have monster/drop 3,4,5 at level 1, Type C will have monster/drop 5,6,7 at level 1, etc.
I just want to inform you that if you owned a PS3 and tried to play COD4 (Call of Duty 4: Modern Warfare) over the holiday, you would have experienced the same problems. While the Sony Network (or wtf it's called) was up, COD4 had a huge influx of people trying to play on their PS3 servers. As a result, most people couldn't play.
Now that I've said something on topic (at least related to your post) I want to do a little rant of my own. The way COD4 connects to games has a very annoying bug. If you connect to a game and you end up being the first person in the room, unless someone connects with you in the first second, you will be stranded in that room forever. The solution is to leave and try again.
Here's the typical way I join a COD4 multiplayer game as of now: Try to connect, wait 45 seconds, see that I joined a game by myself and no one else is joining, repeat 6-18 times until I join a game with people in it. There are instances where I literally spend more time trying to connect to a game than I do playing it. The biggest annoyance is the amount of attention this requires. You have to keep your eyes glued to the screen the whole time.
While that's an interesting post you made, it barely touched on the idea that music in the past is better. I personally suspect it wasn't. I like music from the 60-70s too. But when I listen to it on the radio, I'm listening to an aggregation of the best those decades had to offer. When you listen to modern music, you're hearing all the stuff that won't be remembered in the future. That's why most music of today sounds like crap. It hasn't stood the test of time, yet.
For years that fat fuck has willingly and gleefully shit all over my inbox, my servers, and the net in general
Am I the only one that thinks that still doesn't warrant getting "shivved" and "sodomized"? If you look at what you're saying in a rational way, all he really did was inconvenience you. I'd hate to accidentally step on your foot and physically harm you. I can't imagine the morbid things you'd wish upon me and my family.
Yes, he should be punished. Should he be mutilated and raped? No.
I've never met a heavy smoker that's smoked for more than 6 months that didn't wish they could quit. In fact, this observation is one of the main reasons I've never tried smoking. I think most heavy smokers would be all for a nicotine vaccine.
The problem isn't Disney, it's us. We let Disney and congressman X get away with this. John Q Public needs to put pressure on congressman X and make this clear to him: He's choosing between his career (which promises much more lobbyists and funding in the future) and a one time funding from Disney when he chooses his stance on copyright.
To reiterate, the problem is that your average citizen (myself included, unfortunately), doesn't care enough about these topics to actually contact my representative. That, and the fact that there are so many of these topics that I'd have to sacrifice some of my own funding to research them all.
As long as I've known that MS makes an IDE, I've always wondered why they charge for (some versions) of it. The majority of apps compiled on it get compiled to MS Windows binaries. People will need to buy Windows to use these apps. That means more money for MS as more people make useful/necessary apps. Where does MS benefit by charging for the development tools? It seems to me that there would be much bigger benefit to giving away the tools for free. Perhaps I'm greatly underestimating the chunk of change MS makes by selling their development tools. Is that it? Otherwise, please explain it to me.
I never used VS XML schema designer, but I really like this product: http://www.liquid-technologies.com/Download.aspx I don't think it's open source but at least it's free.
I don't know what you consider a very long time but at least for VS 2005 you're wrong. It highlights your errors after you try to run your code. That's in no way closer to "real time" error highlighting than compiling my code manually.
I feel that VS is great at doing very high level things. For example, designing a UI or mapping tables to objects, etc. But when it comes to the BASICS, VS pretty much sucks ass. If you compare it to even the shittiest java IDEs, it falls flat on its face in this department. For a list of what VS CAN'T do on its own (that a lot of java IDEs can), take a look at this: http://www.jetbrains.com/resharper/features/index.html (This is a feature list of a plugin for VS made by the same guys that make my Java IDE of choice. I am in no way affiliated with them, I just like their product a lot).
Personally, I care MUCH more about the basics than I do the high level stuff. If given the choice between the features in that link and a real slick UI WYSIWYG, I'd choose the former. I respect others who feel the opposite; I understand its just my opinion. But fact is, some of these IDE features have existed in other IDEs since 2001. Can we get a little embrace and extend here, Microsoft?
shoot, i meant to say "It shouldn't wait for me to compile or run my code"
Real time error highlighting is the MOST important thing to me when it comes to an IDE. If I forget a semi-colon the IDE should tell me as soon as I go to the next line that I'm missing a semi-colon. It shouldn't wait to compile or run my code, it should tell me as soon as possible. The last version of VS didn't do this (without a plugin), does this version?
I totally agree with you. While I may put those self taught languages on my resume, I've learned little more than the syntax to them and made 1-3 mini-projects with them. Would you consider that good enough? I primarily work with Java and the only reason I know how to do things the Java way is because I've worked with it 8 hours a day for 3 years. Do you expect the job candidates to do the same thing with OCaml in their *free time*?
And let me just tack on another comment here: If you really think that a language that requires you to be more disciplined is a good thing, shouldn't you be programming in Assembly? Surely they need to be way more disciplined than C++ programmers.
But guess what? If you use a "pointer-less" language, you don't have to worry about your coworkers as much. And you don't have to worry about it yourself! But guess what's the greatest benefit of all? Instead of spending most of your time thinking about pointers, you can use that time to solve the problems you were actually assigned.
Let me just summarize where I stand on this issue. It's important for CS grads to have experience programming directly with pointers, but it's important for a company to choose a language that doesn't deal with pointers WHEN FEASIBLE.
http://weblogs.java.net/blog/gsporar/archive/2007/02/tools_that_do_t.html http://weblogs.java.net/blog/editors/archives/2007/02/you_better_get.html
Back to pointers. Code Complete will tell you that in languages that deal directly with pointers, 70-80% of bugs are caused by them. Now, while I totally agree that CS grads should be able to grok pointers, they should be avoided in production code if it's feasible. Disagree with me all you want, I'll choose 70-80% less bugs every time. Feel free to call me a lazy programmer. All the good ones take that as a compliment.
Yes, IDEs are great, but in Java, they shouldn't be used by beginners.
You can't know unless you've been developing 8 hours every day after work. Wanna know why? Because every day I work I am 8 hours more knowledgeable in my field than the day before. I doubt you're keeping up with me.
Let me get this straight... Windows is so insecure a team of Mental Retards can hack it?
I had this complaint about Oblivion when I played it the first time. The game is more unstructured than Morrowind (its prequel). Oblivion boasts having like 200+ caves to explore or something. But, the enemies and the items they drop totally depend on the level you're at. If you're level 1, they drop wooden arrows and cloth armor. If you're level 10, they drop steel arrows and mithril armor. So, when faced with the question, "Should I explore this cave or should I explore that cave?" you eventually realize it literally doesn't matter. At level X, every cave will have the same types of enemies and rewards.* It totally takes the fun out of exploring for the sake of exploring.
Don't get me wrong, I think Oblivion is a great game. The "solution" to this problem, I discovered, was to explore the world of Oblivion through its quests. If a quest told me to go to a cave, it was because there was actually something interesting to do in it that the quest triggered. But, paradoxically, that lead to a more structured game than Morrowind even though the intention was the opposite. In Oblivion, the routine became "Get the quest, explore the cave" over and over again. In Morrowind, while there was that, there was also "Explore the cave just for the fun of it".
*I am simplifying here. There are about 3 different kinds of caves. Type A will have monster/drop 1,2,3 at level 1, Type B will have monster/drop 3,4,5 at level 1, Type C will have monster/drop 5,6,7 at level 1, etc.
I just want to inform you that if you owned a PS3 and tried to play COD4 (Call of Duty 4: Modern Warfare) over the holiday, you would have experienced the same problems. While the Sony Network (or wtf it's called) was up, COD4 had a huge influx of people trying to play on their PS3 servers. As a result, most people couldn't play.
Now that I've said something on topic (at least related to your post) I want to do a little rant of my own. The way COD4 connects to games has a very annoying bug. If you connect to a game and you end up being the first person in the room, unless someone connects with you in the first second, you will be stranded in that room forever. The solution is to leave and try again.
Here's the typical way I join a COD4 multiplayer game as of now: Try to connect, wait 45 seconds, see that I joined a game by myself and no one else is joining, repeat 6-18 times until I join a game with people in it. There are instances where I literally spend more time trying to connect to a game than I do playing it. The biggest annoyance is the amount of attention this requires. You have to keep your eyes glued to the screen the whole time.
While that's an interesting post you made, it barely touched on the idea that music in the past is better. I personally suspect it wasn't. I like music from the 60-70s too. But when I listen to it on the radio, I'm listening to an aggregation of the best those decades had to offer. When you listen to modern music, you're hearing all the stuff that won't be remembered in the future. That's why most music of today sounds like crap. It hasn't stood the test of time, yet.
Yes, he should be punished. Should he be mutilated and raped? No.
I've never met a heavy smoker that's smoked for more than 6 months that didn't wish they could quit. In fact, this observation is one of the main reasons I've never tried smoking. I think most heavy smokers would be all for a nicotine vaccine.
To reiterate, the problem is that your average citizen (myself included, unfortunately), doesn't care enough about these topics to actually contact my representative. That, and the fact that there are so many of these topics that I'd have to sacrifice some of my own funding to research them all.
Apparently my brain is exhaustively preparing me for the possibility that I'll have sex one day.