Web Hosting Talk







View Full Version : Should i learn c# or php


richways
05-14-2006, 10:57 AM
Hi

I have been doing websites for a few years now, and have a reasonable knowledge of ASP (but realistically about 3 out of 10). I understand the logic, the ability to do database driven sites, but feel, that all round I do not have strong enough skills and always seem to muddle through (either trial and error or reading posts on how to do things).

I wish to become more proficient at programming and I am not sure which path to choose whether it be c# or php. In terms of long term unless told otherwise I do not mind programming either web or desktop applications.

I am really stuck on which way to go and hoping I could pick up some advice please.

Thank You very much.

nnormal
05-14-2006, 12:45 PM
for database driven sites I would pick php. first of all because it is not dependant on running windows and IIS which is a fairly small % of servers and second because it is created specifically for what you want to do. the advantage of C# is that you can use it to do much more than write dynamic websites. You can use it for webservices, gui apps, console apps, directx apps(games), etc. (only on windows of course). I should also add that C# coders do seem to get higher salaries than php coders.

MrMan
05-14-2006, 01:18 PM
I'm not sure if a language would make you a proficient programmer, it's more of an understanding of programming concepts. I would say C# would be a better choce for you because you may in the future want to program web or desktop applications, which C# allows under the .NET framework. It also forces object-oriented programming, which PHP does not enforce. ASP.NET is different from ASP but you should be able to work with it.

Vdevelopers
05-14-2006, 02:50 PM
If you're a web developer, don't bother with C# unless you want to step into the application development (or, unless you plan to use it within ASP.NET).

Akash.Kava
05-14-2006, 04:09 PM
C# is very much advanced then ASP and it requires enough amount of pre-experieince in Object Oriented Programming. You can learn PHP very fast from ASP and its almost same.

ASP.NET has much advanced concept of Web Controls, and complex logic of how everything works. It is not impossible to learn though, but yes it will require long time in order to master everything. But yes, ASP.NET is picking up very fast, it also has huge scope and range of business in coming years.

Difficult to learn
Great Visually Editing Capability (Almost like Visual Basic, better then ASP)
Better Code Reusability
Code gets compiled and executes faster
Your can hide your source code as final execution is in binary format
ASP.NET is free too
Visual Web Developer Express Editor is free
Suitable only for windows environmentPHP is free, and its more like scripting. And not much visual tools as powerful as ASP.NET.

Free, runs only on linux servers, on windows not recommended
Easy to learn
Suitable for linux environment
Not much Visual Editing Capability
It runs on interpretator, not as fast as ASP.NET
Can not hide source code

jobinma
05-14-2006, 06:46 PM
By the way, you can *hide* the source code with php. There a some tools to do so. I don't know if there are some free tools but you definitely can hide your code...

Azavia
05-14-2006, 09:54 PM
I'd definitely go for C# under ASP.NET.

ASP.NET isn't that hard to learn; I was able to learn the basics within a few days; that goes for C# as well, though I already knew C++, and the data types, array syntax, etc, are pretty similar between the two languages.

C# has features that PHP programmers would never dream of. Not to mention it is fully object oriented, which I count as an advantage.

nnormal: Small percent of servers? Where exactly did you get that?

I think personally that ASP.NET is a lot more flexible and can be used for just about anything you want to do, whether it be web or computer applications, with no more difficulty between either, really.

Regarding source code being hidden, I think Akash.Kava is refering to the fact that you don't have to stick your source code on the server at all which might give some a better feeling of security. I know I always fully compile my source before uploading it using aspnet_compiler

Oh and yes, Visual Studio is the best editor you could ever dream of, and PHP, to my knowledge, has no such excellent editor. Really Visual Studio is amazing. :D

The only disadvantage I can think of for .NET is that hosting is often more expensive, but I find that a trifling disadvantage when compared to the advantages. Yes, it is a lot more difficult than PHP, but I think it forces you to be a better programmer, since you have to think in an object oriented frame.

P.S. Glad to see someone asking about C#; I've gotten to wondering whether anyone here uses .NET; most threads here are about PHP it seems.

mwatkins
05-14-2006, 09:55 PM
Neither.

Learn Python or Ruby instead. 100x more productivity than C and 30x more than PHP (imo). Ruby is pretty popular these days with many "ruby on rails" web hosters (such as Site5) popping out of the woodwork.

Myself I prefer Python but if I were starting out today I'd no doubt seriously consider Ruby.

Vdevelopers
05-14-2006, 10:01 PM
I've never been fond of Python and I've only heard a little about Ruby. Why is it that "Ruby on Rails" is cognitively bunched up with AJAX, "Web 2.0", etc? What exactly about Ruby makes it special?

mwatkins
05-14-2006, 10:43 PM
Either Python or Ruby are miles more productive languages than PHP. There's nothing particularly special about Ruby that sets it apart from Python, IMO, except that "Rails" has been very effectively promoted and has good momentum. There are many (literally dozens) of web frameworks in Python, and that, perhaps, is its marketing challenge - where in Ruby most of the action has centred around Rails.

Real object oriented dynamic languages let you get things done, faster. If a new developer were to pick either, and get good at one, that's a sure road to a solid future of billable hours.

The good news is there are more and more hosting options for both Python and Ruby - several years ago the pickings were slim.

Azavia
05-14-2006, 10:56 PM
I'd disagree. Firstly, though Python might be able to run on more hosts now, you really see very little of it, and still the options aren't as great as they really should be to justify learning it, IMO.

Secondly, I actually prefer strongly-typed object oriented programming languages, as it just keeps things more organized and easier to see what is going on. It takes a bit of getting used to if you're used to dynamic languages (I spent several years working primarily with PHP), but I think it's a necessary thing.

I've tried Python before and wasn't very impressed by it.

I'd say you'd be best off learning either Java or .NET, really. C# is very similar to Java so I think .NET is just an added benefit to programming in C#.

Burhan
05-15-2006, 01:23 AM
If you would like to develop desktop applications, then there is no question that C# wins there (between C# and PHP -- since PHP has almost no support for creating desktop applications).

The added benefit of learning C# would be that you would probably end up learning ASP.NET, which would allow you to create websites using the same knowledge that you learned trying to develop desktop applications.

Other pluses for C# include excellent development environment (Visual Studio) and almost universal applicability (runs on Windows, the most popular desktop operating system). If you want to get into a career developing websites, I would also suggest that you familiarize yourself with Microsoft's SharePoint server, as most "portal" type projects are developed on top of that.

I will leave the argument of what makes you productive to those with more time on their hands, and instead pull out the :popcorn:

mwatkins
05-15-2006, 08:59 AM
If you are sold on strongly typed languages, you aren't going to like any so-called 'scripting' language. I prefer the term dynamic languages, as these days there are few limits to what one can write with such languages. Eventually the differences in performance will wither away and all you'll be left with is the strongly typed vs duck typing debate, and that one the dynamic language crowd will win every time simply on the productivity argument.

Almost 25 years ago I started working with 'strongly typed' languages on IBM mainframes and early PC's, soon followed by various vaxen, unixes and then a long stretch on PC platforms. I still have a copy of Microsoft C 1.0 kicking around here somewhere. I sure don't miss 'strongly typed languages' when doing web work in Python.

Too often questions like this get answered at the wrong level of detail. In the first few answers we shouldn't be talking about whether a language is strongly typed or not but what types of applications the person is going to write and on what platforms. There's little point, for example, in spending a lot of time with C# and .NET if one intends to spend all their time writing apps on *nix, Mono aside.

Likewise if the prospective developer isn't in a formal training program, and needs to see concrete results quickly, said developer might be far better off learning about logic and algorithm design by taking on a language like Python or Ruby which will allow them to be productive and learn, rapidly. Those skills won't be wasted should they later decide to pick up C# or Java, or be forced by occupation to learn same. Object and application design are good things to learn; easier, IMO, with dynamic languages like Python or Ruby.

Since the original poster doesn't seem to have a clear path, I'd say the best advice that can be given is to identify what type of work the person plans on doing. If this is all hobby oriented, then try them all. If its a future career that is desired, do the same and see what turns your crank, and then take some starter night courses if available from a technical school get some structured learning and see if your interest moves to different areas.

I chose Python myself because it ran on tons of platforms, everything from mainframes to PC's and these days you can even find it running on some cell phones. While I mostly do web work in the language, I've also cooked up some cross platform desktop apps using Python and wxWidgets on Unix and Windows. That's a powerful combo - more productive than Visual Basic; runs on multiple platforms; and all the pieces are free.

While Python and dynamic languages won't be the right answer for every project, they certainly are good answers for far many problem domains than those who drop down to the strongly typed vs duck typing folks will generally care to admit.

nnormal
05-15-2006, 09:38 AM
Small percent of servers? Where exactly did you get that?

http://news.netcraft.com/archives/2005/01/01/january_2005_web_server_survey.html

in addition most of the "cutting your teeth" sites are linux or free bsd while sites running IIS tend to be larger corporate EE level sites.

[edit]

Im not saying anything bad against c# nor am I oblivious of phps shortcomings. I would love to see ruby offered on more shared hosts so I could use real oo and a solid mvc model like I do in my EE day job. but in the mean time I will use whats there and often times thats LAMP

gamma911
05-15-2006, 10:21 AM
What about Ruby on Rails whats the consensus here?

akubi
05-15-2006, 03:56 PM
it's way more common for hosting providers to offer php than some of the other solutions mentioned in this thread (like ruby on rails, python)...

php is worth learning

sasha
05-15-2006, 09:10 PM
C# is very much advanced then ASP and it requires enough amount of pre-experieince in Object Oriented Programming. You can learn PHP very fast from ASP and its almost same.

You know that you do not know PHP when your PHP is the same as visual basic script or JScript in ASP application.

My comments are in bold. Sorry, but it seems to me you do not have enough asp.net or php knowledge to give good advice in this area.

ASP.NET has much advanced concept of Web Controls, and complex logic of how everything works. It is not impossible to learn though, but yes it will require long time in order to master everything. But yes, ASP.NET is picking up very fast, it also has huge scope and range of business in coming years.

Difficult to learn
What is difficult, visual studio, or c# or asp.net concepts. I took a look as VS few weeks ago and it took me 2 days to install damn thing on windows XP and realize that all "master page" templating totally blows and to make nice and fast templating engine in C#. I hate all of the concept of web controls and reinventing forms. C# is very very nice language, but the way VS uses it by default just sucks. If you have common sense and decent understanding of programming for web, using Visual studio or working with C# is not all that difficult but it takes time to forget about all drag&drop stuff showing up on sidebar.

Great Visually Editing Capability (Almost like Visual Basic, better then ASP)
This is my biggest problem with VS. I think there should be a lock in that software that allows using any visual editing capabilities only after you type in 50k or so lines of code with no visual helpers
Better Code Reusability
Well written bash based application can be reused better then crappy done C# class
Code gets compiled and executes faster
Irrelevant. There are few compilers for PHP that can compile it.
Your can hide your source code as final execution is in binary format
See above point
ASP.NET is free too
Visual Web Developer Express Editor is free
Suitable only for windows environment
PHP is free, and its more like scripting. And not much visual tools as powerful as ASP.NET.
See my comment about visual tools. PHP CAN be structural script, but it does not have be. Developer has a choice. Sometimes it is nice to be flexible.

Free, runs only on linux servers, on windows not recommended
Easy to learn
"Hello world" is easy. To be able to code good takes time. About the same time as with any other programming language.
Suitable for linux environment
Not much Visual Editing Capability
It runs on interpretator, not as fast as ASP.NET
Already covered
Can not hide source code
Already covered


To OP. If, as you said, web programming is your primary objective, I suggest to start with PHP. PHP has no visual editor and it has no "ultimate" framework. That will force you to start at the very beginning. Make your own templating engine, database abstraction, input sanitization. You need to learn how to talk with server and how to handle outputting content to client. Once when you have all the basics and all non-basic stuff figured out and when you can code your PHP in object oriented manner, learning C# will be breeze.

JBelthoff
05-15-2006, 10:33 PM
Whats wrong with vb?

Burhan
05-16-2006, 02:13 AM
Nothing is wrong with VB, its just that the OP wanted to know specifically about C# or PHP.

Personally though, I just don't like VB. I don't like its syntax; that is a very personal opinion -- based on the VB code I have seen, and the VB programmers I have talked to.

For sasha:

I agree with you that Visual Studio is a pain to setup properly, but once you get used to its overly complex configuration options, it is the environment to develop .NET applications; you need to spend some time to learn the IDE. Personally, I gave up because it just got frustrating to me, I went back to the old Notepad + compile cycle.

I think 40% of the time spent on learning C# (or any other .NET language) is actually spent on learning how to use Visual Studio -- sad, but true. Just pick up any beginners C# .NET or Windows Forms programming book, and I can guarantee you that the first chapter (maybe 2) will be dedicated to getting to know Visual Studio.

As for your complaint that there should be a lock -- there is. Just don't use the visual form editor. Do it in "code view" (I forget what it is called exactly). That is the first thing that I setup, because I cannot stand the stupid visual editor.

Better code usability -- you can't compare a bash script to a C# class -- c'mon really. A crappy written bash script is about as useless as a wet sponge.

Easy to learn. This is the biggest misconception I think there is about any language. I think that people actually evaluate this on two things (two wrong things, imo):

1. How the syntax "reads". If its more verbose, people think it will be easier to learn. Nope. The syntax of a language doesn't have anything to do with how easy it is to pick up or learn. My personal example is that of COBOL. Perhaps the most verbose language I have ever coded in, but difficult to pick up.

2. Availability of tools. If it has a great IDE, it must be easy to learn. Again, false. You will spend most of your time learning the IDE, and not the language. For example, you will learn how to position the control correctly on the visual editor, how to change its properties in the property sheet -- but you might not know how to write the class that generates the control and places it on the top right of the canvas.

I think what makes a language easy or difficult to learn is how good you are in a "lower level" language. For example, if you are familiar with C and C++, then picking up PHP and Java will be easy because they have similar constructs. Similarly, if you are familiar with OOP practices, then it will be easy for you to pick up a purely OOP language (like Java, or Ruby) than if you have never been exposed to OOP.

tomh-
05-17-2006, 11:09 AM
I would take a serious look into java or if you want to just get the job done take a look at ruby on rails. Sun is most likely gonna release java open source soon so that will increase popularity a bit i guess. ruby on rails is by a long mile the most productive framework ive seen. Im not a fan of MS products (only the xbox :)), so personally i would go for an alternative.

speedbird
05-18-2006, 03:09 AM
I would take a serious look into java or if you want to just get the job done take a look at ruby on rails.

Or.. get the best of both words and learn python.. :)

Seriously, few people really understand the main advantages of using it: easy(ier) to learn, secure, multi-plattform and gets exactly the same job done with way too fewer lines of code than java..

I personally use a Web Plattform called Zope, it is based on python in fact, and it is best to learn zope if you already have a concept of Object Oriented principles, or with some experience in web-development environments.

As far as advice on what is best to learn web-wise, I can say look for any web development environment that separates your program logic (back-end) and your presentation (front-end), why tis this so important? - you can have a designer working on the eye candy of your site while you are working in the inner logic without stepping into each others toes, this is why I do not fancy PHP at all.

Python is a very valuable and good "glue" program for web development, but it really excels in the "inner" development of a web site (processing form submissions, connecting to databases, establish secure connections to payment gateways and such). You still need to master the basics of html, css, maybe javascript/DOM and other tools to actually build the website.

If you want to look at an example of a 100% python-coded program, running on a web environment, take a look at a message board system coded in python and running in zope that I have, it is open source/free so this is by no means a troll, just a (virtual) tangible app at zforum dot-org

Peace..


-- sb

nnormal
05-18-2006, 10:19 AM
As far as advice on what is best to learn web-wise, I can say look for any web development environment that separates your program logic (back-end) and your presentation (front-end), why tis this so important? - you can have a designer working on the eye candy of your site while you are working in the inner logic without stepping into each others toes, this is why I do not fancy PHP at all.


I havent had much trouble implementing an MVC model in my php sites. Of course there is nothing that forces you to do it that way but to me that can be a benifit. It makes for less head aches when you are just trying to get a quick and dirty page up which you know will have no shelf life.

mwatkins
05-18-2006, 11:25 AM
What about Ruby on Rails whats the consensus here?

If I wasn't already a Python fan and had a base of knowledge and code to lever off of, I certainly would be looking at Ruby / RoR.

But I must admit: I very much like "significant whitespace" which Python enforces, and the lack of block delimiters like: {} ; end if|fi etc in many languages. Significant whitespace turns a few people off when they first look at Python, but I doubt very much that anyone who decides to dig deeper into Python finds it a problem at all - its a gem of an idea - everyone's code looks the same, its very clean, very readable, much easier to maintain in general.

A general rule: If you like Perl you are likely to like Ruby. If you dislike Perl, you are likely to appreciate Python.

That said, Ruby on Rails has a lot of steam. If a new web developer came to me and asked "I have to do things quickly, am not going to write my own framework - which should I use: RoR or PHP" I'd say RoR every time.

More and more web hosters run RoR and provide services for running SCGI or FCGI (I prefer the former) for making RoR and Python apps hum. SCGI was written by a Python programmer, originally for the Python community, but isn't Python specific.

If you are really interested in the Ruby vs Python comparison, do some google searching. But once you are done that, stop by Ian Bicking's site and read this:

http://blog.ianbicking.org/ruby-python-power.html

Because I've noted many Ruby - Python comparisons are woefully outdated and full of inaccuracies.

I'd also install both, find some code tutorials, and play.

Dive into Python - an excellent book-tutorial, is available free, on-line:

http://diveintopython.org/

Ruby no doubt has the same somewhere.

With either choice you'll be set for years of productive development. Neither is going away. Google, Yahoo, NASA use Python extensively. Ruby is gaining steam rapidly. What you learn by using either of these will serve you well no matter where you go next.

z0s0
05-18-2006, 09:56 PM
Depends what you want to do. If you want a well paid job, go for C#.

If you want to build websites that can be hosted cheaply and make use of the huge amount of free PHP libraries available, go for PHP.

i.e. if you want to own revenue generating websites, and have very little starting capital, PHP will make the task easier for you.

mwatkins
05-19-2006, 10:00 AM
Python Jobs:
http://www.python.org/community/jobs/

That funky little company some have heard about, Google, uses a lot of Python, as does Yahoo.

My advice to aspiring programmers: learn both C++ or C#, _and_ Python (or Ruby). If you are in formal education program, your instructors will make the decision. If you are on your own, then having experience with both will be a significant positive when looking for work.

To get practical experience with a number of technologies, I recommend people land jobs with a consultancy rather than a development shop or end user client - you'll tend to be exposed to many different technologies and that too will have dividends in the years to come.

cord
05-26-2006, 05:23 PM
As to the original topic, I have tried both and in the context of most applications both can get the job done.

C# has syntax that is very similar to java/c++. It is also easily usable (read: no extra effort needed) as either your web programming tool or desktop applications which is an advantage. Often times you may want to write client side tools to compliment a website/webservice that you have programmed and pretty much all of the knowledge you gain via c#/asp.net carries over well for that purpose.

The .NET runtime including the asp.net stuff is actually very very powerful. I have had a few years of experience programming with it in some fashion or another and it is very feature complete.

I have also had quite a bit of exprience using php since 3.x and it is in fact the original platform I used for creating my websites. However at the time I started using it I disliked many "features" of the language but it was in my opinion better than straigh up asp at that time. With the release of ASP.NET however, I switched over.

And OT, I despise python with such a passion that it is hard for me to verbalize it :P

mwatkins
05-26-2006, 05:32 PM
That's ok, i despise the ASP platform and IIS with an equal passion ;-)

BeDaDJ
05-26-2006, 05:38 PM
PHP is a invaluable skill and is actually going to soon be leading in the industry for websites. So go PHP is my choice ;)

mwatkins
05-26-2006, 05:56 PM
Any programming skills are valuable; but I'd suggest that having 'commodity' skills is likely to earn you commodity dollars for your work.

Sure there are lots of PHP and ASP sites out there and a good programmer in either of those environments is going to find a lot of work. But you are going to find that more dynamic languages and environments like Python and Ruby are going to be where all the action is at going forward, and certainly where all the fun is at. The writing has been on the wall for a while now. Trust me. Or not.

There are many reasons for this but ultimately it comes down to productivity. Why would I want to develop web applications using a technology (PHP) that makes getting things done take longer?

Here's a real world example, on this WHT thread (http://www.webhostingtalk.com/showthread.php?t=512716).

Python: Two import statements and a single line of code to parse an email

PHP: 20 some odd lines of code, and still doesn't deliver even 1/10th the functionality of the python approach.

Note I'm comparing PHP and Python based on what is in the standard library.

Web frameworks like Rails (Ruby) or TurboGears (Python) or Django (Python) are attracting a lot of developer attention. Its an up and coming hosting market servicing solutions based on these products, as we've seen by the string of announcements from providers who are adopting Ruby as a new service offering.

Chosing a language is a very personal thing - I'm not trying to suggest that Python or Ruby are the only things worth considering, but I am suggesting that unless you've given them a fair shake, living in a PHP-only world may well be a career limiting move in the coming years.

cord
05-26-2006, 07:11 PM
Aside from the fact that you posted the caveat, I dont think its a great example. In reality, at this point you can get most things done pretty quickly in many languages. I dont have much experience with ruby but my experiences with python have been not so great. I had to learn it as part of a course that was called "programming tools" meant to get people familiar with the platform they would be using in computer science for the next few years and there are just alot of things that really bothered me.

For that same savings in lines of code that you demonstrated, I am sure you know that the python databse access/manipulation stuff leaves MUCH to be desired.

There are other things that php lacks compared to asp.net. Through and through unicode support for one. And obviously the virtual machine used for python isnt nearly as mature and performant as some of the others (I havent kept up completely over the last year or so but last I heard, support for multiple processors isnt that great).

As a result I find python to not be very suitable.

I dont have any numbers on hand but I am fairly certain that the php market share is very very large so it cannot be ignored. But I usually find myself in the position of the person recommending something or creating something from scratch therefore I get to chose the platform I like and I really find asp.net with c# to be my platform of choice.

mwatkins
05-26-2006, 08:38 PM
Actually the Python DB situation is just fine, as far as I'm concerned, particularly for web applications. I don't consider the advancements from MFC record sets to C# ADO objects all that revolutionary, and besides, dealing with tabular data is so 1990's!

Python developers (true for Ruby in most respects) can choose to interact with PostgreSQL or SQL Server or MySQL or Oracle or Informix or ... data using Python 'ADO style' access, or use one of several ORM's... or use a completely object oriented DB if I like.

Anyway, the point of my original post in this thread was to indicate that there is nothing wrong with learning the craft of programming using Python, or Ruby, instead of the more traditional C or C# approach. In the web app domain, a Python or Ruby programmer of equal skill to a C/C# programmer is going to be more productive, hands down, and has the upside of being able to run their applications on platforms ranging from Windows to mainframes and virtually every Unix and Unix workalike in the world. That's a compelling benefit which, the Mono effort aside, a MFC or C# / .NET developer would not be able to make.

An ex Microsoft Solutions Partner with no particular bone to grind... we made lots of $$ selling MS-based products.

jt2377
05-26-2006, 09:29 PM
I think 40% of the time spent on learning C# (or any other .NET language) is actually spent on learning how to use Visual Studio -- sad, but true. Just pick up any beginners C# .NET or Windows Forms programming book, and I can guarantee you that the first chapter (maybe 2) will be dedicated to getting to know Visual Studio.


O'reily book on C# or VB teach you how to code without any reference to Visual Studio. heck, some chapters even show you how to write in notepad and compile it.

why its sad to learn Visual Studio? do you learn to type without learning how the typewriter or wordprocess work? you know you can write an C#/VB.net application without ever using a Visual Studio, right?

jt2377
05-26-2006, 09:35 PM
PHP is a invaluable skill and is actually going to soon be leading in the industry for websites. So go PHP is my choice ;)

if you know how to drive, does it matter if the car is honda, ford, toyota, minivan or race car?

if you learn one lanauge, you can understand them all. why learning PHP is a invaluable skill? php didn't even support OOP until version 5. while C# from the get go is created with OOP in mind.

learn the concept of programing like OOP instead learning tool (programing lanague) is more valueable.

Retect
05-27-2006, 12:57 AM
I'd say learn PHP if you're into scripts and web development. Go with C# if you want to make software and what not.

Burhan
05-27-2006, 01:33 AM
why its sad to learn Visual Studio? do you learn to type without learning how the typewriter or wordprocess work? you know you can write an C#/VB.net application without ever using a Visual Studio, right?

Yes, I am well aware that you can write .NET applications without using VS, but my point (which you clearly missed) is that most people become too dependent on the IDE and just become "operators" and less "developers".

cord
05-27-2006, 01:59 AM
Yes, I am well aware that you can write .NET applications without using VS, but my point (which you clearly missed) is that most people become too dependent on the IDE and just become "operators" and less "developers".
I dont know, in that sense then you would probably want to discourage usage of things such as function libraries that implement what are considrered basic concepts in data structures.

I understand your point though, merely learning to drag and drop isnt enough, but any developer that creates something valuable (and I am sure you know its quite easy for a fellow developer to recognize good software vs. bad) uses visual studio as his tool.


Currently for most of my web projects I dont use visual studio since its a bit too heavy for the stuff I do. I use the web developer express tool which provides for a nice editor for html/xml/other code while giving you some skeleton files (such as web.config) and has code folding and the like.
It also provides you with a builtin locally acessible web server which eliminates the need for you to install/setup IIS on your development machine :P

I have yet to even see any decent comparative benchmarks between things other than asp.net/jsp/php. I cant even tell how python or ruby perform under load or what kind of resource usage each of their applications has.

Burhan
05-27-2006, 03:06 AM
I understand your point though, merely learning to drag and drop isnt enough, but any developer that creates something valuable (and I am sure you know its quite easy for a fellow developer to recognize good software vs. bad) uses visual studio as his tool.

Yeap, here is my point. If you already know how to write good code, then Visual Studio can only help you make your code even easier to write an maintain.

However, a lot of people are on the other side of the coin. They click, drag, and ctrl+f5 and think they are programmers. I call these people operators, because they know how to use the IDE, not program independently. I am willing to bet that if you somehow disabled 'design view' in VS, these operators would not know how to develop an application; where as the proper programmer would not have any problems.

mwatkins
05-27-2006, 10:20 AM
If I had to develop for Microsoft environments alone, particularly for IIS, I might well favour ASP.NET or .NET with some other application development framework for the web. Perhaps I would lean on C#, but I doubt it... I'm pretty sure I'd find a way to sneak IronPython in there. IronPython is a .NET implementation of regular Python - its developer was hired by Microsoft in 2004.

http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742

TomH1984
05-28-2006, 05:07 PM
Depends on what you want to build ... if you're into Windows development, learn C#; if you want to do web apps, learn PHP. As an alternative, you could just learn both! :-P

Good luck!

grabmail
06-04-2006, 01:35 PM
Yeap, here is my point. If you already know how to write good code, then Visual Studio can only help you make your code even easier to write an maintain.

However, a lot of people are on the other side of the coin. They click, drag, and ctrl+f5 and think they are programmers. I call these people operators, because they know how to use the IDE, not program independently. I am willing to bet that if you somehow disabled 'design view' in VS, these operators would not know how to develop an application; where as the proper programmer would not have any problems.

how true. I created a cool windows app with Visual Delphi without knowing any delphi code. And i did it all by drag and drop. drag and drop.

zogmo_dave
06-06-2006, 12:08 PM
A great language to learn at first in my opinion would be PHP in the webworld. C# is very versatile but is definately geared more towards object-orientation when it comes to programming. This will be much more advanced in that sense then php, especially if you are allready familiar with bash.

So simply put I would sya start out with PHP and set your goals eventually to the object oriented world.

What I am personally curious about is Ruby. That is a language I have heard about recently from colleagues who insist that its Object-Oriented properties such as Inheritance.

grabmail
06-06-2006, 12:50 PM
i've decided to learn python instead.

yeah. i know i know. NOT ANOTHER scripting lang.

I can't help it. I can't stand the verboseness of statically typed languages.

I actually wanted to learn ruby but too bad, there is little documentation and libraries for it compared to python.

mwatkins
06-06-2006, 01:28 PM
I can't imagine you'll be unhappy with the time you spend with Python, even if for some reason you decide to move on later.

You might consider checking out python web frameworks

django
turbogears
qp
and web.py for the ultra minimalist approach

django and turbogears are where much of the current python web developer action appears to be at. Fortunately, there are plenty of flavours to appeal to any taste. Unfortunately, there's lots of choice ;)

grabmail
06-06-2006, 02:35 PM
I can't imagine you'll be unhappy with the time you spend with Python, even if for some reason you decide to move on later.

You might consider checking out python web frameworks

django
turbogears
qp
and web.py for the ultra minimalist approach

django and turbogears are where much of the current python web developer action appears to be at. Fortunately, there are plenty of flavours to appeal to any taste. Unfortunately, there's lots of choice ;)

errr.... i'm not unhappy with python.
I'm unhappy with statically typed verbose languages like java.

darney
06-17-2006, 11:28 PM
You should choose the language that leads to the most economic rewards. Don't bother with which language is easier, faster, more productive. Although nice features, these technologies will not lead to the most economic rewards. Some of the most un-productive and bloated languages will likely be the language of choice for businesses. So, let's rephrase the question: What language will make me the most money?

richways
07-03-2006, 10:06 AM
Wow !!! So much information. A very big thank you to everyone so far. It has took me ages to read and digest all the replies.

So.. where from here... well now I have to consider C#, ASP.NET, PHP, Python, Ruby, etc.

I have installed all the relevant languages but overall, I suppose I want my roll to be biased towards the net rather than windows applications as I feel this is the way forward at this moment in time. In turn as has been stated I want to build up a good set of skills which can command me a decent salary both short and long term thus the reason for wanting to try and make the best possible choice with a programming language.

I suppose I now have to toy with C#, Python or Ruby. I would appreciate any further information / links on these languages.

Thank you very much.

jt2377
07-03-2006, 10:13 AM
You should choose the language that leads to the most economic rewards. Don't bother with which language is easier, faster, more productive. Although nice features, these technologies will not lead to the most economic rewards. Some of the most un-productive and bloated languages will likely be the language of choice for businesses. So, let's rephrase the question: What language will make me the most money?

right now it's either Java or .Net if you look over to any job search site, more job are posted for java or .Net than say php that give you an idea of what platform that most company want to develop in.

speedbird
07-03-2006, 02:48 PM
Java and .Net may be the "obvious" responses to "play it safe" as far as web development is concerned, but I personally encourage learning python as part of your overall curriculum, learn it and learn it well. Python "forces" you to write "correct code" and in most cases, code written among programmers are rather easy to understand, as far as jobs in the python world. just go to http://www.python.org/community/jobs/ and do a quick search for words such "pixar" or "google", you may find some surprises there, and this are hands-on jobs for hands-on programmers, I am really annoyed when I receive a resume (Curriculum Vitae) from someone that claims to know all variants of C, all variants of .Net, Java and two dozen more programming languages (100% knowledge, of course). If all this were true, my company would be hiring a 150-year old "guru". As a starting "web" language (dynamic scripting), I strongly suggest python, as it will not only open up the world of web programming but you may even code non-web applications with it as well.

--sb