Jump to content

From PHP >> C# or Python?


Recommended Posts

..and I'm looking at this from a freelance point of view, not which will get me a higher paying job. I started up a company a while ago, and while things are going well with PHP I'm hoping to expand my horizons.

 

I really really really want to dedicate time to Python but it seems there are far less projects out there as oppose to C#. I don't want to learn Python only to realize I can't ever use it.

 

Any advice?

Link to comment
Share on other sites

I think it depends what field your interested in. C# is popular in the enterprise because unfortunately, there are still allot of enterprises that rely on Windows, mostly because it's what there users use.

 

Are you interested in Linux? Python really is becoming the new Perl IMO. If you like working in a Linux environment, there are plenty of well paying jobs as a Perl or Python programmer. Python is an awesome tool, and one that I truly believe is going to be around for the long haul. it comes standard on most distros now because so many systems rely on it as a dependency.

 

Of course, if you don't mind working in Windows (I personally can't stand it) C# is probably your better option.

Link to comment
Share on other sites

I think it depends what field your interested in. C# is popular in the enterprise because unfortunately, there are still allot of enterprises that rely on Windows, mostly because it's what there users use.

 

...

 

Of course, if you don't mind working in Windows (I personally can't stand it) C# is probably your better option.

Do what I did: install Mono. It doesn't have 100% support but does get quite close. Like, I haven't missed out on anything I've needed yet.

Thanks to it I have entirely ditched PHP. That's right, I don't use it anymore. (Which might beg the question of what I'm doing on forums like this. Answer: while I like C# more, I still like PHP. And it's great for quick scripts on any platform.)

 

So unsurprisingly, my vote is for C#. PHP is predominantly a non-Windows language so adding another non-Windows language ~halves the job opportunities. Expand your horizons. Check out the grass on the other side of the fence.

Link to comment
Share on other sites

C# is a great language.  VB sucks, but C# is really, really nice.  And I agree with requinix - you already know a non-Microsoft language.  If you want to maximize your own profitability, you should have a Microsoft language in your toolbox.

 

So, get the C# 4.0 In a Nutshell book from O'Reilly Press, and download the free Visual Studio Express.  If you're looking to do web programming, look into ASP.NET MVC.  Version 3 was just released.  Much better than the old ASP.NET web forms way of doing things.

 

If you're interested in Python for the web, look into Django.

Link to comment
Share on other sites

Thanks for the advice!

 

I do love working with linux and I have almost no experience working with windows as a server (used windows OS for 15 years).

 

Think I'll dive into C# because you made a very good point, without a Microsoft language I am already restricting myself to linux based jobs.

 

Can anyone advise how I would setup a decent local development environment for ASP.NET and C#? I use wamp for linux and php which works perfectly.

 

Also, is there anything I should be careful of learning. Like C# 4.0? Is that like learning css 3 where it isn't widely used yet? Should I learn C# 3 first, then move up?

 

Appreciate any advice! Thanks.

Link to comment
Share on other sites

without a Microsoft language I am already restricting myself to linux based jobs.

 

Your choice, but I'd prefer it if I never had to work with Windows again.

 

I use wamp for linux and php which works perfectly.

 

That makes no sense. wamp is Windows, Apache, Mysql and PHP|Python|Perl

Link to comment
Share on other sites

without a Microsoft language I am already restricting myself to linux based jobs.

 

Your choice, but I'd prefer it if I never had to work with Windows again.

 

I use wamp for linux and php which works perfectly.

 

That makes no sense. wamp is Windows, Apache, Mysql and PHP|Python|Perl

 

Sorry, I have a linux installed via virtual box. Only use it for learning however.

 

To be honest, I would love nothing more than to fully dedicate my time to Python. It looks like a beautiful language and I am already very familiar with linux. Trouble is, speaking from a freelance perspective, I don't see many freelance gigs. They're are tons for php and asp.net.

 

Could you elaborate a tiny bit on your hissing at windows? From a web development point of view?

 

 

Link to comment
Share on other sites

It's just my opinion, and it really is as simple as I don't like it. It lacks the tools that I have grown to love, in my point of view it's just not dev freindly.

 

Everything in Linux is dev freindly. If theres something you don't like, you can fix it. It's allot more customizable. Hell, Iv'e been building my own distro for the last 2 years based on Linux From Scratch.

 

As far as web development goes. Again, I don't think windows provides the environment (and I am forced to work in IIS all day).

 

I understand completely about the job prospects however, and yeah, it's the same down here. There are heaps of .NET and PHP jobs. But there are also plenty of Python and Perl jobs. Your not going to need all the jobs available to actually find work. Freelancing, again, I just don't work for clients who are using Windows hosting. It's not worth my time. When I'm freelancing I at least want to enjoy what I'm doing.

Link to comment
Share on other sites

Thanks for the advice!

 

I do love working with linux and I have almost no experience working with windows as a server (used windows OS for 15 years).

 

Think I'll dive into C# because you made a very good point, without a Microsoft language I am already restricting myself to linux based jobs.

 

Can anyone advise how I would setup a decent local development environment for ASP.NET and C#? I use wamp for linux and php which works perfectly.

 

Also, is there anything I should be careful of learning. Like C# 4.0? Is that like learning css 3 where it isn't widely used yet? Should I learn C# 3 first, then move up?

 

Appreciate any advice! Thanks.

 

I'd just start out with C# 4.0.  The O'Reilly book I mentioned will say which features were added to the language in each version, so you'll already be set.  Most of what you'll encounter will likely be C# 3.0/4.0 stuff anyway, unless you need to do work on a legacy system.

 

For setting up your work environment, all you really need is Visual Studio Express.  It's an IDE/compiler with SQL Server 2008 Express built in, so you'll be good to go out of the box.  One caveat - SQL Express files are not compatible with the full-fledged SQL Server 2008/SQL Server 2008 R2 db servers.  So, you'll need to install the Express version on IIS when you deploy.

 

Also be aware that ASP.NET MVC and pure ASP.NET are two very different things.  You can mix and match, as MVC is built on top of regular ASP.NET, but it's a bit of a PITA to do so, and, really, not all that worth it aside from using something like a calendar control.

 

If you're curious about source control, you can get Subversion to work.  I use a combo of VisualSVN server (Google it, the server is free) and TortoiseSVN client (also free).

 

I agree with Thorpe about IIS.  7.0/7.5 is better than previous versions, but still pretty confusing and counter-intuitive.  Windows permissions suck, and there are a lot of hoops to jump through to get things like FTP to work.  MSDN is hit-or-miss with its documentation, too.  That's probably where the biggest stumbling block will be.

Link to comment
Share on other sites

It's just my opinion, and it really is as simple as I don't like it. It lacks the tools that I have grown to love, in my point of view it's just not dev freindly.

 

Everything in Linux is dev freindly. If theres something you don't like, you can fix it. It's allot more customizable. Hell, Iv'e been building my own distro for the last 2 years based on Linux From Scratch.

 

As far as web development goes. Again, I don't think windows provides the environment (and I am forced to work in IIS all day).

 

I understand completely about the job prospects however, and yeah, it's the same down here. There are heaps of .NET and PHP jobs. But there are also plenty of Python and Perl jobs. Your not going to need all the jobs available to actually find work. Freelancing, again, I just don't work for clients who are using Windows hosting. It's not worth my time. When I'm freelancing I at least want to enjoy what I'm doing.

 

Very good points thorpe, thanks! I think enjoyment, passion for what I'm doing, should come first. I can tell you after looking into IIS and windows as a server it doesn't look even close to 'friendly', or at least what I'm used to working with.

 

I'd just start out with C# 4.0.  The O'Reilly book I mentioned will say which features were added to the language in each version, so you'll already be set.  Most of what you'll encounter will likely be C# 3.0/4.0 stuff anyway, unless you need to do work on a legacy system.

 

For setting up your work environment, all you really need is Visual Studio Express.  It's an IDE/compiler with SQL Server 2008 Express built in, so you'll be good to go out of the box.  One caveat - SQL Express files are not compatible with the full-fledged SQL Server 2008/SQL Server 2008 R2 db servers.  So, you'll need to install the Express version on IIS when you deploy.

 

Also be aware that ASP.NET MVC and pure ASP.NET are two very different things.  You can mix and match, as MVC is built on top of regular ASP.NET, but it's a bit of a PITA to do so, and, really, not all that worth it aside from using something like a calendar control.

 

If you're curious about source control, you can get Subversion to work.  I use a combo of VisualSVN server (Google it, the server is free) and TortoiseSVN client (also free).

 

I agree with Thorpe about IIS.  7.0/7.5 is better than previous versions, but still pretty confusing and counter-intuitive.  Windows permissions suck, and there are a lot of hoops to jump through to get things like FTP to work.  MSDN is hit-or-miss with its documentation, too.  That's probably where the biggest stumbling block will be.

 

Thanks Nightslyr! Appreciate it.

 

Some really good advice there, I'm looking forward to digging my teeth into both C# and Python, but not so much the windows server environment :S

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.