6 ms·
Why are all the 'cool' jobs no longer using .NET?
- TheCoelacanth 13y agoI feel like this might have more to do with the poster living in DC. I'm in the DC area, and most of the job postings you see are for government contractors, which aren't exactly "cool". That's not to say that there aren't "cool" jobs here, but if you're looking at Dice or Monster, they aren't going to be the ones you see.
- stusmall 13y agoSeriously question and not trolling, but was there ever? Has there been a change in culture or has it always been this tragically uncool?
- kohanz 13y agoI spent too much time with .NET I don't want to learn ruby! It always pains me to hear such cries from someone who claims to be a software developer/engineer. I've used .NET (among several other) technologies for some years and had a few co-workers who would openly fret about Microsoft's direction and what horrible things they might have to endure if .NET went out of favor. Gosh, you mean you might actually have to learn a new technology? What a truly awful experience. I could never relate to that and I legitimately felt sorry for them. I hope to never become afraid or resistant to learning and am always ready to admit how little I really know. The language/framework is but a means to an end. Each with strengths and weaknesses, but all of them suitable for a wide variety of uses. If you feel that your knowledge as a software developer is so language specific that you fear having to move away from it, you're doing it wrong.
- computerslol 13y agoIt's less about learning a new language, and more about learning a new framework. As of .net 3.5, the .net framework contained 98 Assemblies, 309 namespaces, and 11,417 types. The framework is gigantic, and after you've spent long enough in .net, your domain specific knowledge of the framework itself is gigantic as well. As someone who has been building applications on .net since beta, I have no fear at all in learning a new language (bring it on!). I have a fear of losing over a decade of experience with the thousands of classes provided in the .net framework that I use, and rely on, on a daily basis. I know exactly what I'm looking for, how it works, and what the performance ramifications are of each component I choose to use. I know what needs to be replaced with something custom to scale. I know what's doing extra work I don't need. I know the ASP.net page and control life-cycle (intimately), how the view engine works (and how to add features to it), how to replace critical components for custom functionality and how to build custom controls. I know the WPF layout system. I know the quirks in windows forms and GDI+. I know programmatic drawing in both frameworks. I have done machine learning in .net. I have done massive file IO in .net. I know the .net multi-threading model. I know how to do code generation in .net. I know how to use raw sockets in .net. I know how to bend this massive framework to my will, and get all of the performance and power I want out of it. I have built reliable, predictable, massive scale applications in .net. Over my entire career I’ve invited product managers to give me their crazy ideas, and I have never had to push back. Having said that, I also don't want to learn Ruby. I don't think it's mature enough to get my attention. I don't see how it is in any way better (that's not to say that it isn't, I just don't see it). Is it easier to learn? Maybe, but I've already crossed that hurdle; just like OP on reddit has. Is it a faster platform to blast out a simple website? Likely not for me. Is it a better platform for building and scaling massive applications? I doubt it. Your language/framework defines the outer capabilities of your application, the performance of your application (read: scale), as well as what parts of your application can be reused from parts made available by others. They are things to be mastered. .Net takes a long time to master. The "jack of all trades master of none" attitude is what pains me. Show me that ruby is better for me in an area that .net is lacking and I'll learn it. Show me that it's better in all of the areas I care about and I'll master it. That will be a hard sell. .Net is a fantastic platform; well organized, discoverable, consistent in quality, exhaustive in scale, performant, and still growing. Will .net last forever? I don't know. Older Microsoft technologies are still around and .net is still in active development. I don't see Microsoft giving up the massive investment they have made in .net any time soon. Whether or not Microsoft stays relevant in web programming is up to them, and up to those of us using it. As to startups using .net, I've worked for two. One provided a product that allowed you to order print ads made for your franchise. It accepted photoshop PSD files from designers, took them apart and allowed the ordering party to swap layers and text to fit their business, all with a WYSIWYG live-previewing interface. I wrote the original system myself in 2004 and the company is still operating today. The second was an online ad distribution company. The system I helped build was capable of targeting, serving, and tracking over 500 million ads per second at peak (a major accomplishment in 2008). The company is still operating today. I was not told what the companies did until after the interviews and pay negotiation. There was no way to know before I accepted the jobs whether or not they were "cool" jobs. Before starting my own business I was invited to work on a high frequency trading system built in .net. I turned it down, but they are doing very well. I've worked more for large businesses and mega-corps who also wouldn't tell me the nature of the job they were hiring me for until I was hired. How do you know ahead of time if a .net job is cool when all you hear about it is “Senior .net developer needed”? Is there a lack of marketing from MS extolling the values and virtues of .net on the server (especially for start-ups)? Yes. But that's always the case with Microsoft. They are terrible at marketing. They will always be terrible at marketing. Should you be using .net at your start-up? That’s up to you. I’m using it for mine.
- kohanz 13y agoThanks for such a well thought-out response. To be clear, I'm most comfortable working in the .NET framework (~5 years experience), but while I can see where you're coming from, I still disagree with the overall perspective. The "jack of all trades master of none" To me, the trade in question is software development/engineering. If we are tradesmen, then .NET is one of the toolboxes available to us. Yes, it's a very advanced and developed toolkit, but I don't view it as an occupation. Now if you constrain yourself and simply call yourself a .NET developer and not a software developer, I suppose that would be an exception. Will .net last forever? I don't know. Older Microsoft technologies are still around and .net is still in active development. I don't see Microsoft giving up the massive investment they have made in .net any time soon. My experience is mostly on the desktop side (application dev for medical devices) and it has been the opposite. Look at technologies like WPF and Silverlight for example. I don't think you can honestly say that Microsoft developed these to maturity and didn't to some extent abandon them. Your language/framework defines the outer capabilities of your application, the performance of your application (read: scale), as well as what parts of your application can be reused from parts made available by others. They are things to be mastered. .Net takes a long time to master. The "jack of all trades master of none" attitude is what pains me. Show me that ruby is better for me in an area that .net is lacking and I'll learn it. Show me that it's better in all of the areas I care about and I'll master it. That will be a hard sell. .Net is a fantastic platform; well organized, discoverable, consistent in quality, exhaustive in scale, performant, and still growing. I think it's a bit contradictory to say that you need to master a language to understand it's capabilities, yet you won't explore other languages unless it's proven to you that they have capabilities that .NET lacks. That said, I think your viewpoint is mostly valid if you have full control over what technologies you work with (e.g. starting a startup, or only applying to .NET companies). However, that is true for very few developers and this is where the whole idea of fretting over the future of .NET comes from. In my field (medical imaging and devices), I have used plenty of .NET, but I could never rely on it entirely. The foremost medical image processing and visualization frameworks and libraries still reside in C++ and although there are .NET wrappers, they are almost always limited, several releases behind, and with a much smaller community (there are a few exceptions). To be clear, I love .NET and even moreso Visual Studio. However, if I'm asked to propose a technology for a product, I'm going to do my research and pick the one that I feel is best-suited for it and not let my .NET experience be a guiding force in that decision (unless this is an extremely time-sensitive project and I represent a significant amount of the developing team, then of course it needs to be considered).
- taternuts 13y agoYeah, it is a little strange to hear since it really isn't difficult to learn another language if you're already a seasoned developer. I've been learning different languages after work (I'm a C# dev) to become a better engineer, but I really doubt anyone I work with does this. To most people in a .NET shop, learning another language means learning how to hack out some bad javascript. I guess I am a weird case in that I learned how to program on .NET and continue to work with it, but I honestly am just not excited by the framework or language and get my kicks after work when I work with ruby/python/js. Since the .NET framework is so damned large, I almost feel as if I know more about the languages/frameworks I work with on the side since I'm actively interested in it and trying to learn more. With .NET, I only do that when I have to interview.
- drharris 13y agoI'm an unapologetic .NET lover, and the comments on the subreddit largely hold true. In the end, culture is the biggest differentiator. MS has excellent tooling and support, but nobody knows about it. They have Bizspark, which is one of the best startup-focused programs I've seen (literally tons of free stuff for your runway), but once again nobody knows about it. Azure is probably the most innovative, stable, clearly-priced cloud platform in the industry, but nobody knows about it. If you want to write Javascript/Node with full IDE support, Microsoft has you covered, but nobody knows about it. F# is probably the best FP language in existence, but nobody... well, the point is made. The only people that know about the new things MS comes out with are the few of us .NET developers also with a foothold in the Startup scene, and old enterprise companies who bought into the stack back in VB5/C++/MVC days. The other uphill battle is young people's view on technology. Most of them would rather platform-hop in the same way people change churches (and for much the same reasons). New = better, and Microsoft = old, so no need to even see what they have to offer. Young people with ample free time have always driven the software industry, and young people want to use things built by startuppy or nonsensical names. "Microsoft? They actually have software in the name? No thanks!" Finally, it's an issue of evangelism and online/community presence. Because enterprise is the bread and butter of MS, MS tends to target those kind of people more. It's not that they don't try to capture new minds, but when you attend an event where you're the lone startup guy among 50 enterprise people, how do you think presentations are going to be focused? When your community seems to be centralized on your corporate domain, are you really going to attract someone who isn't willing to type in "microsoft"? New platforms get popular not because they're actually better, but because they're cooler. Either cooler sounding, there's a new type of tutorial (to-dos and 5-minute-blogs are played out, people), or it's got a guy with weird hair promoting it, using Jobs-esque language like "beautiful" or "elegant". Of course it's elegant at version 0.9 before it really does anything. Look at Rails now that it actually does stuff. Anyway, mini-rant over. I think MS deserves more attention than they get, but ultimately they dig their own grave by not investing more in capturing that next generation.
- kfk 13y agoI upgraded to Office 2013 recently, on Windows 7. The all thing got super slow and I am still fighting the ribbon, plus this flaty thing on Windows 7 is just odd. Yes my computer is 3 years old, yes some linux distros are worst, but when somebody gets this kind of experience over and over, when he has a choice, he goes for something else. Sorry, maybe they have super cool products, but I won't touch them even with a stick (plus they have a cost, or not?).
- Zigurd 13y agoBack in the day, .NET was coherent, well-designed, well-implemented, and the tools performed well on PCs. This was circa 2001. NETCF was in beta, and you could literally drag-drop an object from the mobile endpoint to middleware to back-end. Visual debugging of on-device code, emulators, understandable errors and warnings... Brilliant! At that time, attempting to run Linux, Eclipse, Forte, Java, etc. was difficult, buggy, and slow - sometimes too slow to be usable. Until Sun sued it off the market, Visual J++ was the only usable interactive Java toolchain/runtime/base-classes with UI base classes that resulted in applications that looked and acted polished and clean. The big difference today is that you can take a laptop out of a box and within two hours have a Linux-based Android development toolchain up and running without any hitches, and have an even more coherent managed language runtime targeted by that toolchain running clean beautiful mobile touch apps. Open tools and OSs have been completely transformed. I don't really see the 13 years of comparable progress in VS and Windows.
- tluyben2 13y agoI didn't work with .NET around 2000 much; I had it installed on a Windows machine and played around with it, but not for anything serious as it usually just sucked quite a bit. Anyway; we ran everything open source besides some Windows machines for development at that time; our development server machines first were 15 very old IBM machines we picked up for a few 100 euros installed with Linux (no X) and after that 15 VMs running on VMware on one bigger machine. All ran smoothly and we actually hosted clients on those machines; everything written in 'enterprise Java'. One of those systems is still running actually, on the same old hardware without changes to the software. No problems with that 'Linux, Eclipse, Java, etc. was difficult, buggy, and slow' => it all worked fine and was fast enough to be productive, have happy clients and make tons of money. Quite different from any Windows experience I had around that same time and after that. This experience has not much to do with .NET per se; I really like C# and F# and sometimes wish I could use it all the time (not a big fan of Mono yet...). Maybe I'm just weird or set in my ways, but I don't really find the MS toolchain to be very productive. I'll retry it again when I get my hands on a Windows laptop (we're running only Linux and Mac OS X besides for WP8 dev and i'm not doing that at the moment).
- badman_ting 13y agoI like .NET pretty well, but I don't like working on Windows or being bound to it. (Maybe the Mono stuff has gotten better but when we used it at my company we had two problems: bugs in our code and bugs in the platform.) Also, after doing lots of things in JS and Python over the last couple years, going back to .NET just feels too "heavy" somehow. The changes in C# and .NET over the years have been very nice so it's hard to justify this feeling. One definite downside of the .NET ecosystem, I would say, is that they take forever to do completely sensible things that everyone else is doing. Things like MVC, package management, deployment tools. BTW, I have found that in interviews my extensive past .NET experience is viewed negatively. There are assumptions out there about .NET devs and in fact I would say there is some basis for those assumptions. At the same time, I was hoping that smart people would be able to see through that and acknowledge that not everyone who works with a technology is "like that", but alas. So it is a bit of a liability, unfortunately.
- kazagistar 13y ago> I share their passion about coding > I spent too much time with .NET I don't want to learn ruby! Um. That answers that.
- dragonwriter 13y agoI think the biggest problem .NET has in many areas that are considered "cool" is that Microsoft's license-oriented business model imposes lots of license-oriented friction around .NET that don't exist with open-source technologies. The actual dollar cost of licenses is important but there is also a cost in the friction that licensing (and the associated product segregation into packages designed around tiers based on how to sell licenses rather than pick-what-bits-you-need-for-what-you-are-doing-today) creates.
- bonemachine 13y agoNo longer? Were they ever?
- _random_ 13y agoIn game development .NET/Mono is becoming seriously cool now - look at Unity and MonoGame. It's hard to walk away from C# because it's one of the best languages combining most paradigms and both static and dynamic type systems. If you want to hack social start-ups using languages that don't do basic checks before run time in an editor without basic intellisense/autorefactoring then you are welcome to switch.