Live data from Hacker News

How Microsoft is changing the programming world

programmingzen.com

51–60 of 79 posts

Re: How Microsoft is changing the programming world

#51
post #5

I am not sure I can agree with the article. By hiding so many aspects of what a program is made of, Microsoft did a disservice to C programmers. Visual Studio programmers that can write a makefile are not many and, by hiding the gory details inside an IDE, Microsoft created - and enjoyed - a good excuse for, if not creating gory details, at least allowing them to exist and thrive. The recent "embrace" of functional p…

> Visual Studio programmers that can write a makefile are not many I'm curious why you think it would be important or valuable for a VS developer to write makefiles. Your subsequent statements seem to indicate that you believe it allowed MS to put more project complexity, hidden by the IDE. I don't particularly see anything wrong with that, but maybe I'm misunderstanding you. My view on this is: I write code to creat…

I write C# code in Visual Studio every day at work, and I've got some thoughts.

Microsoft writes nice tools, and they all work well together. It's a truly integrated environment up and down the stack. And for the simple cases, it's great. I hit F5, and my app runs, right out of the box.

But I find the tools difficult to extend, when it comes to it. They are mostly black boxes. This means I'm dependent on MS to add features before I can use them easily. It's possible to write plugins for VS, etc., but I don't get the sense that most people do that. I know I don't. It seems difficult and time-consuming; I'd rather just live with less than ideal behavior.

But I've been trying to branch out into other stuff in the past year or so and dabble in different things (app engine, some rails, some C code). What I've noticed is that low level tools like make are cool for a few reasons.

First, regardless of its syntax, make is pretty damn simple for the simple cases. Even as a novice, its easy for me to tweak a makefile to suit my needs. I think this simplicity is valuable. By the same token, the generated code for rails is all pretty easy to follow and tinker with. That's not always the case when you pull back the curtain from Visual Studio.

Second, make (and others) are orthogonal to the other tools I'm working with. It doesn't matter what editor or framework or languages I'm using. It's pretty easy to whip up a makefile to compile or deploy a dev build or whatever. This is true because steps in a makefile are expressed in terms of terminal commands. Simple and powerful.

Third, make is ubiquitous. I think it's pretty cool that I can use the same makefile to deploy my app engine site from Ubuntu or OSX.

I guess what I'm trying to say is that MS's powerful tool set feels oddly constraining to me. I feel much more in control with a set of simple and independent tools, even though I'm much less experienced with them.

Just my two cents.

Re: How Microsoft is changing the programming world

#52
I think the accessibility of any language nowadays has the potential to create many more dicks than microsoft ever did. I also think Microsoft go to more effort to teach good programming practices than they are given credit for. I also don't subscribe to the view that I have to learn everything in order to pick up new tricks. I learn the languages, platform and tools which enable me to ship my chosen products in my chosen markets. I think too many assumptions are being made about microsoft programmers.

Re: How Microsoft is changing the programming world

#53
post #18
post #12

Earlier quoted context omitted.

Have you ever use Visual Studio or written a production app in C#? VS provides the ability to do all of those things. You can both extend the IDE and create DSLs. And .NET runs on a VM, so it's write-once, run-everywhere (unless you're trying to port to Mono/Linux, but that's not what .NET is designed for). It also has the absolute best debugging toolkit of any IDE, ever. Make files are for the people deep down in th…

I have used the Visual Studio family from 1997-ish to 2001 (VB, ASP/VBScript and C) and then, again in 2002 (C for WinCE) and 2004/2005 (this last time, with C# for IIS), so, I would say, I have used it quite enough. I have also used NetBeans since the time it was called Forté and Eclipse for Java/J2EE/J2ME. I find they are all at the same level in terms of debugging, with some advantage to the Sun complete toolset w…

> I find your willingness not to understand what you are doing quite amusing

Being condescending and rude isn't moving your point along any. In fact, I still don't know what you point is. You appear to think makefiles are inherently superior to VS solution/project files, but for no obvious reasons. The only reason you give seems to be that VS users don't understand their build system, whatever that means.

Re: How Microsoft is changing the programming world

#54

It is an arsurd article. I can point you to web devs on LAMP from the same era that were equally ignorant of other languages or paradigms. The real question for developers isn't, "what things, do I consider important, do you know?", but rather "what have you shipped?" If the only language you know is C++, but you're the lead dev for the Halo series, that gives me a lot more respect than if you know 20 languages and y…

People that read this as an anti-Microsoft article are totally missing the point. I've met plenty of these "Dicks" and they're not necessarily bad programmers, they just work entirely within the MS domain, which is easy to do because it's pretty comprehensive. Like the author, I commend Microsoft for using this influence to help bring functional techniques into the mainstream. The programming challenges we face today…

It's not what he's saying that gives it the anti-Microsoft flavor; it's calling every Microsoft programmer a Dick. Hiding behind this moniker that is obviously insulting -- and the author proves he knows this when he says "short for Richard, of course" -- all the while pretending it's innocent is what does it.

Re: How Microsoft is changing the programming world

#55
post #37
post #34

Earlier quoted context omitted.

I didn't mention Linux or LAMP. I said that the MS programming world is parochial. It's closed-in on itself and remarkably ignorant of the rest of the software universe. I worked in the MS space for years and observed it closely. There simply isn't any doubt about this, or at least wasn't at the time. Possibly things are changing as MS' power wanes; possibly the people who frequent HN are outliers; possibly some peop…

On the flipside of that is people using MySQL who have no idea what MSSQL can do (for example). The Linux world is no better or no worse in this respect.

No, it's much, much better. For one, there's no such thing as the Linux world. "The Linux world" is everything else in this context, which includes Java, Ruby, Python, Web, C, and dozens of different technologies. With the exception of the Java community, none of those communities come even close to being as insular. None. Every Ruby and Python dev I know has at least checked out Java and C# before going back to their primary language. Every Java developer has dozens (too many, perhaps) of choices for libraries, app servers, and even other language that run on the JVM. Even PHP developers have some notion of other tools used for web development (generally Flash and Flex). It's true that many of these communities might not have much exposure to deeper subjects of more dubious relevance, like CS theory and classic FP languages like Lisp, but they at least know and understand that there are other choices out there. Meanwhile, most MS-only devs don't even know about Apache, SVN, or even the notion of using a text editor as your primary development environment.

Re: How Microsoft is changing the programming world

#56
post #38
post #17

Earlier quoted context omitted.

Not to mention the fact that Microsoft is a customer oriented company, they are aware of what the enterprise is asking for. Somebody knowing 20 languages does not necessarily make a good employee. What the enterprise wants is exactly what VS has been giving them for the past years. Sure, as the enterprise is escaping IBM-isation of the workforce you can see a bit of a shift in perspective (evidenced by changes in VS)…

The real question here is what kind of programmer wants to be limited to whatever "the enterprise" asks for.

Usually the ones that complain that the job market is difficult in software. I don't know a single polyglot programmer who has experience in at least two platforms who's unemployed. I know loads of persons specializing in PHP or .NET who are.

Re: How Microsoft is changing the programming world

#57
post #16

Wow, I have to pipe up here. The commenters so far are completely missing the point of this article. The author is making two observations, both of which are quite correct in my experience. First, the mainstream MS developer universe -- the overwhelming majority of it -- is parochial. People learn new things when MS release some new technology and not before. (I'm talking about the smart ones here. The mediocre ones…

But why is being parochial in an MS world a bad thing? People are upset not because that point was made but how that point was made. I'm a MS developer and although I do know other languages I don't necessarily see it as a big advantage. It's basically a question of breadth vs depth. The truth is that the MS stack is deep enough that a developer can dive in and few will ever hit the bottom of that pool.

If I was looking for a job as a .NET dev, my depth in .NET is what is important, not how well I know N number of other languages. If I'm working in a .NET stack, my experience with Java, while not worthless, is not as useful ass more depth in .NET. An individual has a finite amount of resources to spend learning about other stuff. Yes, it would be awesome if I knew tons of other languages or how things work at ever lower levels of code. I just choose to spend those resources learning things that are more immediately useful to me.

The author just took a very derogatory approach to this point and I think it's understandable that it upset people.

Re: How Microsoft is changing the programming world

#58
post #40

Earlier quoted context omitted.

> If his company doesn't pay him to develop Linux products, why on earth would he learn about developing for Linux? Or other languages. Or tools. Because really good programmers love to learn new tricks. Because learning new tricks will make them good programmers. You admit learning about PHP made you a better C++ programmer. A couple years back, on a mailing list, a novice asked what she should learn during her vaca…

> Because really good programmers love to learn new tricks. Right. And because you don't know the particular tricks I learned, it indicates some sort of deficiency in your knowledge or character. Hmm... Nah. > You admit learning about PHP made you a better C++ > programmer. Uh. I learned PHP while coding for a company. No way I would be at home learning PHP for 'fun'. I would rather be out cycling, rock climbing, or…

> Right. And because you don't know the particular tricks I learned, it indicates some sort of deficiency in your knowledge or character. Hmm... Nah.

Aren't you exaggerating a bit? I never judged the value of a specific field of knowledge. If you want to master Z-80 assembly language, feel free to do so. I prefer the 6502.

> No way I would be at home learning PHP for 'fun'.

Are you sure this is the right career for you? Because if programming is no fun, you will treat your job as a burden. I enjoy weekends (walking, being with friends, reading, playing with my son) as much as I enjoy weekdays (solving mind-bending programming problems, preparing lectures - will do two a month from now).

> You're effectively talking about a student

Aren't we all students? I am re-learning Smalltalk and learning Lisp. My wife is going towards her MBA. I am learning to program micro-controllers in order to build hardware for a vintage 8-bit computer. Learning is good.

> That's an absurd conclusion.

Why would it be absurd to learn how to program for an OS lineage that goes back to the 70s, that has shown incredible adaptability, is used in all kinds of business, from the tiniest to the top Fortune 10, being deployed in all kinds of exciting applications, from the tiniest cellphones to the largest supercomputers?

Why would Dick prefer to miss such a party?

Re: How Microsoft is changing the programming world

#59

Earlier quoted context omitted.

> If his company doesn't pay him to develop Linux products, why on earth would he learn about developing for Linux? If programming is just a job, and you don't care about it when you leave the workplace, that's a reasonable attitude. If, OTOH, programming is something you care about and that actually interests you (which is true of nearly all good programmers), it's an attitude you won't have.

> If, OTOH, programming is something you care about and that > actually interests you (which is true of nearly all good > programmers), it's an attitude you won't have. Whoa! So what you're saying is that if I don't know the recent trends in functional languages, I don't care about programming? Seriously? Do you see the problem here? This guy is laying out arbitrary things which appear in his domain of knowledge, and…

> So what you're saying is that if I don't know the recent trends in functional languages, I don't care about programming?

No, I'm saying that if you're not interested in different programming paradigms, you're not interested in programming. You don't have to know about "recent trends" in functional programming (it's not actually that recent -- Lisp has been around forever, and the Haskell standard is over a decade old). But if you're not interested in functional programming at all, then no, you're not interested in programming.

> This guy is laying out arbitrary things which appear in his domain of knowledge, and discounting others for not having the exact same set of experiences.

But I'm not doing that. I'm saying that programmers ought to have some familiarity with some of the basics of the technology they work with. Knowing nothing about functional programming is like knowing nothing about HTML -- it is a big gap in one's knowledge.

> there is a lot to be said for mastery and focus.

I agree. Focus is good. But you can't have mastery without knowing the right programming techniques and paradigms -- these can change a 500 line program into a 100 line (and easier to understand) one, or a 5000 line program into a 500 line one.

> why is it that there is an expectation in software that my job has to also be my hobby

I have no such expectation. I neither know nor care what you do for a living or in your spare time. What I am saying is:

1. some skills take a lot of effort to master.

2. programming is one such skill

3. you're more likely to take the time and effort to learn a skill if you like doing it

4. therefore, programmers who program because they like doing it are going on average to be better at it than programmers who program because it's just a job

Re: How Microsoft is changing the programming world

#60
post #33

Earlier quoted context omitted.

So if I compiled my C# applications from the command line using a project file which I wrote from scratch in an XML editor, would that suddenly give me a better understanding of "how my code works?" Oh wait, no it wouldn't.

You are confusing cause with effect. If you did understand what is going on in your build process, you could write a makefile for it. Since you don't, you can't. It has absolutely nothing to do with command lines or XML editors (and, while we are at it, if your answer is using XML, you are asking the wrong question). And the C# build process is very simple. It should be easy to understand.

> If you did understand what is going on in your build process, you could write a makefile for it

Okay, your premise seems to be:

1) Understanding your build process means you can write a makefile for it.

This is only true if you know how to write a makefile. i.e. makefile syntax and the specifics of your toolchain.

2) Conversely, if you can't write a makefile, you don't understand your build process.

This is false, because I can't write a makefile since I don't know makefile syntax. I most assuredly do understand my build process, though.

Correct me if I've misunderstood you.

Post reply on HN