15 ms·
How Microsoft is changing the programming world
- hga 16y agoThrough "the impact it’s currently having on making functional programming, or at least some degree of it, more mainstream." Go, Microsoft! ^_^
- ryanelkins 16y agoBlah - this is just trying to hide an anti MS screed by wrapping it in an article about functional programming. You'll find good and bad developers that use any language. A few anecdotes about how well he knows Dick (this name choice backfires on the author more than once) isn't really going to persuade me that most MS devs are clueless. Functional programming is new to MOST devs regardless of their preferred platform I would imagine. MS may not be as innovating as it once was but at least it isn't stagnating.
- kenjackson 16y agoIt 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 your great contribution is a website where you criticize what other people don't know. And I think he doesn't understand the difference between language features making it to your production language and the feature existing elsewhere (especially if elsewhere is an obscure academic language). I can be sincerely interested about lazy evaluation showing up in language -- but that doesn't mean that I hadn't used it for the past 20 years in toy projects.
- rightonein 16y agoPwned!
- zmmz 16y agoNot 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), but nothing so drastic as to actually decrease "productivity". The point here is that the article has the wrong name, the title should be "How enterprise lives with the programming world".
- rbanffy 16y agoThe real question here is what kind of programmer wants to be limited to whatever "the enterprise" asks for.
- georgieporgie 16y agoProbably the one making consistent money off "the enterprise". Mind you, I don't even know what the enterprise is. All I know is that I've shipped a lot of software, and really enjoy using Visual Studio.
- Daishiman 16y agoUsually 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.
- cageface 16y agoPeople 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 are more suited than ever to FP and the backing of a big vendor with mature, sophisticated tools is exactly the kind of boost FP has been waiting for. This can only be a good thing in the long run for Haskell, Clojure, Scala, Erlang etc. I deplore a lot of Microsoft's business practices but the work they're doing in this area and in support of the Haskell team deserves kudos.
- pbz 16y agoIt'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.
- gruseom 16y agoYou're quite right, that was uncalled for and, well, a dick move. For some reason I didn't notice it this morning. On the other hand MS don't treat their own workaday programmers much better by calling them "Mort".
- rbanffy 16y agoI 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 programming is too little, too late. Plus, I have a personal feeling those gory details are there by design - Microsoft has every incentive to make it hard to port Microsoft code to any other platform and no incentive to play nice with code that will run elsewhere. I cannot imagine going back to a career limited to a fully-Microsoft stack. There is just too much missing.
- CoryMathews 16y agoYeah I miss the days of programming on linux, having my code run on one distro but not the next. I miss the days without visual studio when I actually had to look up the documentation for most every data type to see what functions I could use, and when I had to look up how I named my variables and functions in my own classes. It was wonderful. This whole auto complete functionality and when I press . is just to powerful. I also miss having to worry about garbage collection and debugging with printf statements. Not to mention the CLR taking care of buffer overflows and all sorts of other things. Microsoft just has made it to hard on their programmers. </sarcasm>
- rbanffy 16y agoHow long since the last time you actually did anything you imply you once did?
- georgieporgie 16y ago> 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 create sellable product. I don't sell makefiles.
- georgieporgie 16y agoThis article reeks of bitterness. I find it curious that he seems to knock 'Dick' for not being well-rounded enough for his tastes. 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. I'm all for picking up new languages (learning PHP changed some of my approaches to C++), but there's a lot to be said for sticking to your tools and learning them thoroughly. I can either be highly productive in C++ or flail around in a functional language/new platform. I'll stick with the productive one until someone wants to pay me to flail.
- cabalamat 16y ago> 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.
- georgieporgie 16y ago> 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 discounting others for not having the exact same set of experiences. I see this a lot among software people. Sure, broadening your horizons gives you new insights, but there is a lot to be said for mastery and focus. Additionally, why is it that there is an expectation in software that my job has to also be my hobby, or else I don't care and/or I'm no good? Do you think mechanical engineers working for an auto manufacturer are expected to be at home designing bicycles, lest they be thought of as not caring?
- cabalamat 16y ago
- nathanwdavis 16y agoThe 'Dick' he writes about didn't know functional programming concepts in early 2000s. If HN existed at that time, you probably could have said that about the HN readers. OOP was the big deal then and the majority of non-MS programmers didn't grasp functional style either. I sure didn't in 2001. The author is an idiot.
- seiji 16y agoYou're missing the age of Dick. If Dick is 18, sure, it's excusable. If Dick has been programming for 30 years, his lack of knowledge isn't so excusable (assuming one's goal is to amass 'knowledge'). So many Kids These Days feel the entirety of Computer Science and Programming has been developed since 2000. I'm pretty sure LISP and functional programming existed in literature, learning, and practice before early 2000s.
- kenjackson 16y agoUnless your an encyclopedia or going on Jeopardy! I don't think that amassing knowledge is a very interesting goal. To each their own, but I think creation is a lot better than amassing knowledge. And to be honest, there was little practice in Lisp before 2000... and frankly little after 2000.
- chc 16y agoCreation without understanding is shallow. You don't just learn the technique of playing piano and then crank out beautiful symphonies. You don't learn how to draw a blueprint and create world-class architecture. You don't memorize the times table and start doing advanced physics calculations. Knowledge of the history and state of the art is a huge component in creating great things. And the statement that there's "little practice" in Lisp is a statement about the current mindset of most programmers, not about the language itself. Whether it's useful is orthogonal to whether people use it.
- kenjackson 16y ago
- gruseom 16y agoWow, 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 don't bother learning.) Back when I was an MS programmer, the place to learn new things was MSDN Magazine. There is very little interest in looking outside the village gates; in fact it tags you as a little weird. This phenomenon is so well-established that I'm surprised anyone would deny it. I've commented about it on HN many times myself. The second and main point is that since this large programmer population receives its knowledge almost exclusively from MS, it's a really good thing that MS have started teaching functional programming. It's probably the best chance FP has ever had to break into the mainstream. Even if it takes over just a corner of the MS world, that corner is probably larger than the rest of FP put together. This is a really good thing, and it massively kicks the ass of the crap that MS used to feed their "Elvises" and probably still do. I'll add a third point. We know why this is happening. It's because a little less than 15 years ago, MS changed their direction, acquired some top-notch people (starting with Hejlsberg), and started moving in a direction more informed by CS and PL theory. This process is slow, but good. One can finally see it yield real fruit in the form of F# and the recent enhancements to C#. People like Meijer are having a very real influence. Come to think of it, that's probably why people like Meijer went to MS to begin with.
- deleted 16y ago[deleted]
- Aaronontheweb 16y agoHere's the deal - I don't like being generalized as some sort of mind-slave to Microsoft's brain trust just because I prefer Visual Studio and C# over Eclipse and Java. My choice of development platforms and tools doesn't mean that I'm inherently less curious about what else is available to me, and the author's generalization and yours would seem to indicate otherwise. What you're reading in the HN comments are the objections to this generalization. If I had written this article and wrote it about how PHP developers don't know anything about unit testing, agile, JIT compilation, pre-caching, and whatever, a different audience of HN readers would be tearing it up in the comments right now.
- ergo98 16y agoThis article is terribly bitter, with a contrived, unsupported sense of superiority. I'm a pretty well-rounded developer, but I know there are innumerable things that I don't know. I also know that I research enough that the things I'm not comfortable with aren't particularly important for me or my projects. I've never developed anything real in a functional language, for instance, aside from doing some tutorial tests and realizing that the friction (with coworkers trying to maintain, for instance) overwhelmingly demolished any potential advantage. I will say one thing though -- the most mediocre developers I've ever worked with tended to have the widest "range" of "skills". It's a way to compensate for never being able to provide solutions. Instead they always weaved, always sure that if you just embraced the latest thing and did things entirely differently it would be so much better (which they never actually do themselves because their role is more "OMG, you don't know about {X}? OMG!")
- cabalamat 16y agoThe other day I was browsing through computer books. One, on LINQ for VB, seemed very enthusiastic on this radical new technology Microsoft had brought out -- and the example they used to illustrate this was something Smalltalk had 30 years ago. Incidently, Smalltalk isn't normally considered a functional programming language (do doubt because object orientation overshadowed it) but with its closures (called blocks) and select:, collect:, reject:, inject: etc methods it seems (to me) as much so as Scheme.
- kenjackson 16y agoWhich book?
- cabalamat 16y agoThis one: http://www.amazon.com/Pro-LINQ-Language-Integrated-Query/dp/1430216441/ref=sr_1_1?ie=UTF8&s=books&qid=1277320215&sr=8-1 http://www.amazon.com/Pro-LINQ-Language-Integrated-Query/dp/... The example on page 3 was: Dim greetings() As String = {"hello world", "hello LINQ", "hello Apress"} Dim items = _ From s In greetings _ Where s.EndsWith("LINQ") _ Select s Which In Smalltalk would be: greetings := #('hello world', 'hello LINQ', 'hello Apress'). items := greetings select: [:s | s endsWith: 'LINQ']. Needless to say I was not completely bowled over by this stunning Microsoft innovation.
- kenjackson 16y agoI don't think this one line is exactly where all the innovation is. But it is representative of getting your toe in the water. But this is the typical argument I hear from people about anything. "Hey, that was a good movie"... "Dude that plot is basically a derivative of Hamlet with a twist of Revelation, chapter 3. Nothing really new there". Or the most standard, "Actually you can do that with Lisp." I'm sure you probably know that everything in that Linq query is pure syntatic sugar. Not runtime changes needed. But with all that said, I'm sure MS didn't do this to be "innovative". At least I hope not. I assume they did it to make the lives of developers easier. That's the real test, not if no other language ever implemented the feature.
- joeyh 16y agoWatch various SPJ lecture videos for a take from the inside. He'll sometimes talk about working with collegues at MS to add things from FP to these mainstream languages.
- backroomcoder 16y agoI 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.