3 ms·
I've found over the years that there's a fairly widespread prejudice among many enterprise developers in general and .NET developers in particular towards Pytho
by jammycakes 12y ago
I've found over the years that there's a fairly widespread prejudice among many enterprise developers in general and .NET developers in particular towards Python. Mention to a few random .NET developers that you're using it on a side project and perhaps about half of them will give you a look of puzzlement at best.
The main problem isn't anything to do with technical failings of the language, but a misconception that it's an obscure niche language that nobody uses outside of academia, with an ecosystem bordering on the nonexistent. People seem to think that if you start using Python you're going to end up with an incomprehensible codebase that's impossible to maintain because you can't hire developers who know it. They're generally quite surprised when I tell them how widely used it is and what all it gets used for.
- solve 12y agoRelative to the .NET stack, Python's toolchain has always been no-cost for anyone to use, and the language is so fun that there are many people who enjoy just coding in it for free. I can almost see these guys' angle, of why they might see this as a possible threat that could undermine their career. .NET coding pays well, and is usually semi-exclusive to those who previously had an employer pay for them to use the tools, even though that's not theoretically necessary.
- crdoconnor 12y agoOn the flip side of that, F# is the first language I've seen that has made me consider dropping python. It really is a work of art.
- Swinx43 12y agoI could not agree more. F# has made me feel exactly the same.
- robwilliams 12y agoConsidering it's replacing C++ as the starter language at many universities this may not be true for too much longer as younger developers get more exposure to Python.
- lucb1e 12y agoHooking onto that, is there any reason to use C++ as a programming language in non-technical university courses? Someone I know does a math and economy study and they use some programming to find optimal solutions for certain problems (e.g. traveling salesman). They are taught C++ with pointers and by-reference parameters and OOP and everything in a 7 week course. Why not Python with some functions? That perfectly suits their purposes and makes life a lot easier both for the teacher (less code to check; clearer code) and the student (easier to learn; less code to write).
- TillE 12y agoI'd probably go for C or C++ if you're teaching data structures. It can be helpful when pointers and memory layout are right there in front of you, and not obscured by the language. For other computer science topics, probably not.
- lucb1e 12y ago> I'd probably go for C or C++ if you're teaching data structures. Hmm perhaps if you are interested in the technical working of a data structure, but even if you use Python you'll have to mind your memory and CPU usage. They have to implement things like the traveling salesman problem and get the correct answer to a reasonable number of cities. Python is slower than machine code by definition, but not so much that it becomes much harder to do the same calculation. They have to think of speed regardless of the language, and doing that is much easier when you pass around lists instead of pointers to pointers of doubles (double * *, added spaces to avoid markdown).
- meddlepal 12y agoA .NET developer recently was telling me the .NET community tends to be very insular, a lot of interesting ideas are ignored unless Microsoft makes them first-class citizens of the ecosystem. That's unfortunate IMO.
- flatline 12y agoThis is always how it has been with Microsoft. They control the developer toolchain 100%. They have gone out of their way in years past to burn other development tools (they pretty much shut Delphi out of the market with a last-minute change in one of their specs, back in the day - was it COM?) The advantage of this is that you get some really nice APIs - the gulf between the .NET and Java core library architectures is huge - but the drawbacks are too many to name: forced obsolescence every few years, continual new experimental technologies forced on developers using the Embrace, Extend, Extinguish paradigm, and you really don't have the time or energy to try to work outside this model. You are either in the community or out of it. This is showing signs of change with the opening of the .NET toolchain, but I'll be curious to see if there is a point at which some of it actually starts to be community driven. Miguel de Icaza cannot shoulder the entire movement by himself;)
- WDCDev 12y agoThat depends on the type of developer you are speaking with. Most enterprise developers working for medium to large companies feel this way. Contractors are a different story. They embrace open source as much as the Java community. Disclaimer: .Net developer learning python/django for a rather large-scale cloud implementation.
- jammycakes 12y agoThat's the most common criticism of the Microsoft ecosystem by far. It's not just being insular, it's that huge swathes of the .NET community insist on being spoon-fed by Microsoft. The attitude is that if something isn't included out of the box with Visual Studio, you've no business whatsoever paying the slightest bit of attention to it. You see it in spades in the Silverlight community. They're all blaming Microsoft for the decline of Silverlight, even though it's largely due to factors outside Microsoft's control.