7 ms·
I'm a .NET developer by trade with some very brief experience writing Java applications in Linux. My only real experiences with Linux is from my degree as since
by EnderMB 14y ago
I'm a .NET developer by trade with some very brief experience writing Java applications in Linux. My only real experiences with Linux is from my degree as since then I've been dedicated to .NET.
Something I've wanted to do for a very long time is pick up Linux and to be able to use it as well as your typical developer that uses Linux from day-to-day. For this reason, I've decided to pick up Python and use it on my new Ubuntu desktop (dual-boot on top of Windows 7) along with the online version of Learn Python the hard way.
So far, it's been a real struggle to get things working the way I'd like. Writing Python on Windows 7 has been a surprisingly painless experience so far, but getting something like Django set up took me hours. Perhaps I just suck with Linux, who knows?
Outside of the pain of setting things up things just seem to work well and I'm glad that I decided to take the plunge in Linux over Windows. Python might not ever pay the bills, but I can apply myself in a different way and perhaps make myself employable in the future outside of .NET or Java. I love "The Unix Way" of doing things and hopefully it'll eventually click.
- orangethirty 14y agoI went through the same thing. My experience showed that the difficulty rose from the two very different work flows. Windows is mosly a point and click deal. Even the .NET IDE of choice (VS) is less about coding and more about hitting the space bar. I'm not critizing it, because it is very good and helps save time. Though it did make me lazier, which I thought would be impossible. On the other hand, Linux/python/any language really, is a bit more raw. You have to do a lot of things yourself. There is little hand holding (though it has been improved over the last years). It pushed me to really dig into the OS and learn how it works, instead of just sitting there clicking. It has also helped as an engineer, because I know write code that is more modular, instead of platform specific. And by modular I dont mean OOP abstractions, but it the end product being able to be used by different OS versions. I suggest you just jump right into it. Being well versed in Linux doesn't mean you will not hit walls. You will. I guarantee it. It just means you will understand why did you hit the wall and how to jump over it. I suggest you create a VM with Ubuntu running on it and just install stuff without a fear of breaking it. One of the most fun (and frustrating) experiences I had was with learning how to use chmod. I once changed almost every file on the OS to file settings 777 (writeable, readable by anyone). Just keep hacking at it. It has taken me at least 6 years to reach this point.
- takluyver 14y agoPoint-and-click vs. the command line isn't just about hand holding. Setting things up with the command line might seem less convenient, but it's very easy to make a script when you want to automate that setup routine. I'm a little surprised that the grandparent post had trouble setting up Django, though. Once you've installed the python-django package, you should be able to follow the Django tutorial straight away.
- freehunter 14y agoSetting things up with the command line might seem less convenient, but it's very easy to make a script when you want to automate that setup routine. This comes off to me as a major disconnect. It almost looks like you're saying making a script to automate a setup is as easy as a point-and-click interface. I would say setting up the script is less convenient, in that you need to learn basic shell scripting first. Point and click requires you to learn basically nothing. Using a CLI rather than a mouse requires worlds more brain power and is worlds less intuitive when you're coming from a Windows world.
- klez 14y agoOk, now repeat your setup procedure on 50 machines. Writing scripts is a medium-long term investment. You're right that for one off tasks it's quicker to point and click, but once you need to repeat that task, scripts are faster.
- takluyver 14y agoI agree that it's much less intuitive, but it's worth explaining why we put up with that. It's not just because Linux isn't as polished as Windows - shell scripts are a feature. A case in point: I was setting up automated tests on a Windows machine today, and I had to install pywin32 automatically in a virtualenv. Both the download page and the installer are built for a human to click through, and are problematic to do from a script.
- webreac 14y agoWhen you want to document a process, it is easier to copy paste a couple of commands than to take a dozen of screendumps with check boxes.
- chimeracoder 14y ago> but getting something like Django set up took me hours. Perhaps I just suck with Linux, who knows? That's a Django thing; I remember its setup/configuration to be a bit wonky compared to most Python packages. Just learn how to use virtualenv + pip, and that's most of the setup you should need for Python development on Ubuntu. The added plus about using virtualenv from the start (I don't think it was around when I was learning Python) is that you get a very clear understanding of what the project structure and dependencies are... it took me a while to figure that out when I first started. Also: > Perhaps I just suck with Linux, who knows? Nah, that's just the process of migrating for the first time from a completely different OS. You'll get the hang of it the more you use it.
- Ingaz 14y agoVery strange. It completely contradicts with my experience. Almost everything that easy to do in Linux is someway distorted or missing completely in Windows. Basic things: apache, nginx, supervisord - underpowered or completely missing. Ipython is my favorite shell in Windows, but in Linux it works better (just because console is better in Linux). Have you tried to run Django under IIS? I assure you - it's pain.