| This 52 message thread spans 2 pages: 52 (  2 ) > > || |
|What programming language would you learn and why?|
If you could start fresh...
I think in 90% of the cases PHP would be best. The only cases where PHP would not be the first choice would be when you have constraints ..
1) You have only VB talent - go for ASP
2) You know Perl like the back of your hand - go Perl
3) You need to integrate your web app with some Java app - go JSP
4) You need to inflate the bill ;) - go Coldfusion
Ducks for cover.
.. but here is one link I would like to post .. its about why YAHOO chose php for some of its stuff over rest of the technologies
They seem to have considered all the factors very thoroughly.
I am not sure if this link is fairly general to be considered admissible here.. moderators please correct that if needed.
I am now at a level where I feel pretty "Daddy Mac" with HTML and SQL.
So obviously I want to broaden my horizons and get into a programming language. The question being which one. ColdFusion appeals to me most because it's simple, etc.. but everyone seems to be advising me to learn asp.net, because that’s where the future is and the money.
Any Suggestions? - Preferably nothing that’s going to require going back to school :)
Perl would be my choice - not only because it's the only one I sort of know.
I started on it about 5 years ago, and for some reason, it keeps coming back to haunt me that I didn't learn it in my free time at school (they didn't teach it at the university I went to).
It's fairly 'easy' (just mho) regex's are nice, it's free, runs on Apache, IIS, etc. and fine tuning it can yeild incredible results. Plus, theres a lot of code example out there.
Course, I've also heard many, many people recommending PHP for much the same reasons - the main one being that it's fast and easy. Portable, as well, cause you can run it the same on Windows and *Nix.
In this game, there's no end to learning. We have to keep up with what's current. In the past 10 years I've learned 6 programming languages depending upon what needed to be learned. And all but 2 have been dropped because I nolonger need them.
That being said, one that I'd like to learn is C++ for the simple reason that it would allow me to write code that could be compiled within a Linux kernal. Why do this? Because it's super efficient and extremely fast. It's the best way to make a super fast and super powerful website.
If I didn't have access to the kernal then I would focus on PHP - which I have and achieved modest success with though there's so much more to learn!
I guess it depends on the direction you are headed. If you want to build small to medium sized websites then anything like PHP, ASP, Coldfusion would be ok. However, if you aim for large web applications in the corporate world then Python, Perl, Java or even C++ might be a good idea.
I would look at perl and PHP because they are free and can reduce costs considerably.
If you are going to learn just one language, I'd also go with perl. It is the most universally accessible. That's if you want to make a living on the web.
If you want to make a living as a programmer you probably would be most employable with C++. It looks like there is an over abundance of Java programmers.
I have been teaching myself plain old C over the last year. Not because I want to make a living as a programmer, but because I just want to learn it. Going more off topic, C seems to be the steel of the programming world, many of the other languages are built out of strait C.
You may also want to consider PHP (lots of web applications out there) or Python (easy to read and write).
Thanks for the advice, I was primarily looking for a language I could use to build medium sized sites that wasn't going to require taking any time "out" to learn which I think perl, c and c++ will do. (I am seriously restricted with free time at the moment). Therefore php looks the best bet.
Just out of interest, apart from being free, why would any of you recommend php over coldfusion. ---I know the two are nothing on the above mentioned but I think the other recommendations are out of my league slightly at the moment---.
I think that there are many reasons to select PHP over coldfusion.
PHP is more portable, and there is probably more code written in PHP. Plus more people know PHP. Which is important to me, because I know when I get in over my head, there will be more support. Also, when I get so far over my head that I have to hire help, PHP help is cheaper and easier to find than Coldfusion help.
|However, if you aim for large web applications in the corporate world then Python, Perl, Java or even C++ might be a good idea. |
I'd have to agree except for the part about Perl. I've worked for a number of Fortune 500 (some two in the Fortune 10), and none of them are using Perl. C++ and Java/JSP is where big business is -- at least on the web.
IMHO, I would lump Perl in with the smaller web applications category.
Also, when I get so far over my head that I have to hire help, PHP help is cheaper and easier to find than Coldfusion help.
Which might be a good reason to learn ColdFusion, if you're thinking career-wise. ;)
I'd learn Perl though. It would make my life much easier if, when looking for a free/cheap script for a website, I could take a "close but not quite" script and rework it for my needs...
Right now, the best I can do is find "works right but doesn't look exactly like I want" and customize the HTML output.
If you are an independent webmaster who want to get things done with the lease frustration and the least amount of money Perl would be the way to go, then Php.
Stay away from Cold Fusion, it is ssslllooowww, and expensive. Also, there are very few free cold fusion applications when compared to perl and php.
Perl is the top dog when it comes to free ready made software, there are literally tens of thousands of free perl scripts for the plucking + perl runs easily on unix and ms.
If I had it to do all over again, and maybe I will do it anyway, I would learn PhP and Apache administration. I like writing in ASP, but I'm nervous about the MS IIS platform. I was thinking of buying an Apple XServe, which runs Free BSD and I would have had to purchase another program to run ASP over that OS. Much simpler to just do it in PhP from the beginning.
|Just out of interest, apart from being free, why would any of you recommend php over coldfusion. |
Because "PHP is Cold Fusion on steroids" to quote an acquaintance and because of the tremendous support the PHP community offers. Take this Board for example. Do a search for Cold Fusion and then do a search for PHP.
Another thought. When I visited Macromedia's Exchange section, I found the free CF code to be mediocre. The free applications that I found when I was using CF were few and far between and then there were few people out there that had ever worked with them that I could turn to when I had a question.
There are more PHP apps freely available and more people willing to help support PHP. Plus, the free PHP applications I've played with were far more robust than their counterparts in CF. I was, to put it mildly, quite impressed when I discovered PHP and haven't looked back since.
Not that there aren't advanced topics out there, but basic Apache administration is actually pretty easy, and the configuration documentation on the Apache web site has always been, in my experience, easy to use. I've configured a lot of different Unix daemons, and generally find tweaking my Apache confiuration to be much quicker and easier than with other daemons.
If you're used to point-and-click graphical configuration a la Windows, it will take some getting used to, but it's worth it. There are graphical configuration tools for Apache, but my experience is that they are either too simplistic for my purposes or brittle in that if you once edit a config file by hand, the graphical config program won't be able to touch it anymore. (Or worse yet, *shouldn't* touch it, but won't tell you that.) They might have gotten better since then, as in the last few years I've had a strong preference for changing configs by editing text files anyway. I suspect that once you get used to the model, you'll likely develop the same preference.
One more thing to consider - if you know C, then learning PHP will be easy, becasue it has a lot of things taken from C (simplified of course, but similar).
|Stay away from Cold Fusion, it is ssslllooowww, and expensive. |
I just wanted to state, that ColdFusion is not slow at all. It is actually very powerful and stable. You would be surprised at the amount of large corporations, running business-critical websites using, ColdFusion. Perform a "coldfusion vs. asp" search on the internet and read some of the articles, written by programmers who are proficient at both.
Also, in my experience CF is actually slower on a Unix/Solaris/Sparc setup rather than an MS OS. Dont ask me why. Maybe this is why you state CF is slow.
The truth is, Web-Scripting languages are all fast, and speed is not much of a concern here.
Just for fun, my personal journey through the world of computer programming:
--In order of year learned.
Anyone else care to share?
Lisp, C, Oberon, Python - and stuck with Python ever since (ignoring a variety of shell scripts and other minor languages).
Back to the topic: I'd recommend Python as a first language any time to anyone. If you want to learn the concepts behind software development without having to fight your tools, then there's simply no other choice. You may have heard me repeat that a few times already.
On the other hand, I'm really glad that I have worked with some less common languages myself in my previous lifes. Lisp taught me to think in dynamic data structures and elegant functional design. C gave me the power to squeeze the last CPU cycle out of the machine (still does, when writing Python extensions). Oberon introduced me to object orientation. And, finally, Python combined most of that so painlessly that I could hardly believe it at first.
Ok, enough advocacy for today... ;)
Paully, I think you'd agree that HTML isn't really a programming language.:o
And - I don't mean to single you out but - your argument that a lot of large corporations use CF doesn't mean it's good. Heck, I can name several large corporations that still have DOS workstations! :)
I will admit that I've seen some very complex websites built with CF and yes, it is a stable language - but I haven't seen a CF website yet that impressed me with its speed - by my yardstick. But my world has a limited point of view and I'll be the first to admit it! :)
BTW - I'd love to see an apples to apples comparison of a CF site against a PHP website - if you or anyone else might know of one.
subway, I was asked this same question by my 16 year old son. He'd asked the question of his schoolteachers or friends or someone, and was asking me about Java (not JS). Not that I have anything against Java, but I think that for the FIRST language, I would like to get down to the basics. That's gonna be C.
Your question is different. You're looking for a scripting language to use for websites, not to develop apps in general.
|One more thing to consider - if you know C, then learning PHP will be easy, becasue it has a lot of things taken from C (simplified of course, but similar). |
And I couldn't agree more. If you can teach yourself C, you'll never have any problems learning ANY OTHER language. It's small (meant to be that way), easily expandible (another design idea), structured, supported, widespread, fast, etc.
I only bring this up as a suggestion to people looking at the title of the page. What you're looking for is a scripting lang for the web: if that's all you want, the PHP or Perl are gonna both be great. OTOH, if you want to be able to learn them all, AND if you have the time, C is a really good choice - it will be an investment.
Personally I write my apps in C++ now, and for CGI, I use Perl. Perl was simple, and I think PHP would be also considering my background in C.
Bottom line: Ability to program in C makes all the others look easy. You're 95% there among all the other choices you want to make.
I agree, HTML is not a programming language. :)
After long thoughts of a website that would be ok to post, I finally got one -- Macromedia.com [macromedia.com]
Click on some links, and notice the cfm extensions. Not too slow :) I think the Macromedia site is pretty impressive.
The thing is, when I check my sites written in ASP or CF, they all render virtually instantaneously on the server.
I cant imagine the type of looping and array loading, you are performing on webpages, to actually see a noticable performance hit.
My first language was Basic. But I didn't learn anything from it! Well, I learned the power of GOTO. It is amazing how learning a language like Basic really teaches you nothing more then If, Else, and Goto logic. I found my next language a monster to tackle. C++
My first serious language was C++. I learned everything there is no know about programming from C++. It has almost every concept a programming language would have. But I learned Regex in Perl and true OOP in Smalltalk.
I think I have a good programming background and for my money. If you asked me what programming language you should learn for the web. I would double down on PHP in a second. PHP is straight forward in that it let's you program without worrying about types, conversions, and lots of extra silly stuff. Stuff that you do need to worry about if you are programming an OS or something serious. But for a web page bring out the srcipting langauges! PHP runs incredible fast and it runs on all platforms. You can get PHP to do just about anything now days as well. Plus I love that fact that transitioning from HTML to PHP and then back to HTML is so smooth and seamless. PHP has Classes, XML support, and Regex. The ability to talk with databases is seemless as well. PHP is really really well designed to take care of bussiness when it comes to websites.
Thanks for all the input. I have taken the plunge and got my PHP & MySQL book through yesterday, as a beginner interested in strictly web development at this stage I think it's the right way forward. (I don't have a spare $1000 lying about at the moment for CF.
With above references mentioning PHP as a simplified version of C and built on Perl, then its also appealing in that respect. So I take it that nobody here is recommending ASP. Very strange.! :)
Paully -- Macromedia use it because they OWN Cold Fusion. It would be quite embarrassing for them to have, say, the CF product page in PHP, wouldn't it? :)
Two more arguments in favor of PHP compared to CF and ASP are:
It's free, therefore offered by MUCH more web hosts and easy to install locally for testing, and the PHP online manual at php.net is the best documentation I've ever seen.
Compared to Perl: PHP is made explicitly for the WWW with many useful web functions (nl2br, urlencode, and so on) and it gives helpful error messages when you make mistakes (not just "Internal Server Error").
Good luck learning it, subway!
|Macromedia use it because they OWN Cold Fusion. |
Thats calls for a, duh! Macromedia was an example of an impressive CF site. I think we all already agree that some major corps use CF...
|Two more arguments in favor of PHP compared to CF and ASP are: It's free |
ASP also is free, comes built in with IIS server, which is available in different flavors, for all Windows Platform's.
|Compared to Perl: PHP is made explicitly for the WWW with many useful web functions (nl2br, urlencode, and so on)" and it gives helpful error messages when you make mistakes (not just "Internal Server Error"). |
ASP, CGI/PERL & CF were all developed for the net and all have useful Web functions. Also, all have verbose error handling, for administrators who are supposed to receive the verbose error report, others get any sort of error message you want to give them.
All that being said, I am not advocating one vs another. I could care less which one I have to use. Most my clients already have some sort of code, so I am forced to learn whatever language, technique, style they are using.
When I first started with CF, I also made fun of it, hated using it, said it was for dummies, etc. But once I really started using it, I realized it can do everything any other language can do, structures, arrays, loops, DB functions. Memory management, variables, etc. I realized that I was wrong in my initial assumptions, and need to stop doing that, because those thoughts and ideas are based on fear and laziness.
Again, just my $.02
|Compared to Perl: PHP [...] gives helpful error messages when you make mistakes (not just "Internal Server Error"). |
What about use CGI::Carp qw(fatalsToBrowser);?
|CGI/PERL [...] were all developed for the net |
For Perl´s history see the chapter 8.7 History Made Practical [home.student.uu.se] in the camel book.
|ASP also is free, comes built in with IIS server, which is available in different flavors, for all Windows Platform's |
Not only is that not Free, I'd have to spend money to get it, so it's not even free. Maybe ((world + dog) - dingman) has already bought it, but that's different.
| This 52 message thread spans 2 pages: 52 (  2 ) > > |