Choosing one to use

I have been doing research on the programming languages PHP, Python and Java. I have also looked at different frameworks like Codeigniter, CakePHP, Django and etc. Choosing what to go with that will best suit my needs has become a nightmare of sorts. (Õ_Õ)’ I believe I am leaning more toward Python. The platform PyCharm based on the framework Django is what I will most likely use later on. I have mixed experience in web development already. Driving visitor traffic is yet another.

My personal purpose for learning a programming language is to expand my capabilities in order to create superb sites. It is not meant as a career, but to be used as a tool to promote and push it forward. As an example, people learn foreign languages for a variety of reasons. Not necessarily to become a linguist. These sites are not meant for personal use like family or e-commerce. I cannot afford to pay someone $5k+ to build what I would like to have. I know what some of you might say, “Why not use a content management system like that of Wordpress, Joomla, Drupal, ModX and etc.?” Simple answer: they sucked. It was restrictive. Most added extra complexity where it should not have been. It is fine for a basic website like a blog. Anything else you have to hack it to-death, add extensions… “Buy a template.” someone utters. So-called premium CMS specific templates are horrible to me as well. These are just my opinions of course. If you have other ideas, I am all ears?

Which language would you recommend? Why? Does it have a future? Is it well supported? Have other better ideas? Etc. Thank you gentlemen for your patience and time reading this thread! I look forward to hearing your honest answers. :slight_smile:

I decided to go with [B]Python[/B]. [url=http://php.net/][B]PHP[/B] is the elephant in the room. I have never been a real fan of it however. I know my questions above have been asked numerous times. Still was hoping for extra opinions before jumping in. :wink:

| _Platform__|__Framework_|
PyCharm [COLOR=“#FFFFFF”]_[/COLOR][SIZE=1]w/[/SIZE][COLOR=“#FFFFFF”]_[/COLOR] [url=https://www.djangoproject.com/]Django
PyDev [COLOR=“#FFFFFF”]_[/COLOR][SIZE=1]w/[/SIZE][COLOR=“#FFFFFF”]_[/COLOR] [url=https://www.djangoproject.com/]Django

There is no right or wrong here. Ultimately you should try them all and see which one fits best for you and your requirements. I’ve dabbled with a lot of different languages and frameworks over the years. I personally dislike php though they have a couple of very nice frameworks. I also felt uncomfortable in the Ruby/ROR ecosystem for reasons I couldn’t quite put my finger on. For now, I’ve settled on Python/Django (and I do a little .NET and Java when I need to). You wont find much chatter about Python or its frameworks on Sitepoint though.

For web application PHP wins. It is designed for web.

good topic lets hear more posts considering the topic to gain maximum benefits from all users

Actually I would pick python + one of its web frameworks or .NET over PHP any day of the week…

Additional Frameworks
Pylons [URL=“http://www.pylonsproject.org/projects/pyramid/about”][COLOR=#ff0000]Pyramid[/COLOR]
Zope [url=“http://bluebream.zope.org/screencasts.html”][COLOR=“#FF0000”]Bluedream[/COLOR]
Zope [url=http://grok.zope.org/][COLOR=“#FF0000”]Grok[/COLOR]
[COLOR=“#FF0000”]Web2Py[/COLOR]
Pocoo [URL=“http://www.pocoo.org/projects/flask/”][COLOR=#ff0000]Flask[/COLOR]
[COLOR=#ff0000]Bottlepy[/COLOR]
[COLOR=“#FF0000”]CherryPy[/COLOR]
[COLOR=“#FF0000”]Quixote[/COLOR]
[COLOR=“#FF0000”]TurboGears2[/COLOR]
○_Etc.

As Lee134 said, there is no right answer. It all depends on the project.

For example, my normal development environment is nginx/PHP/MySQL/Wordpress for server-side and HTML5/CSS/Javascript (usually with jQuery) for client-side.

However, I had a project recently where I thought node.js would perform a bit better (since the project was basically the definition of what node.js was meant to do).

Often times I’ll develop desktop software, where PHP doesn’t work, so I’ll use C# or Flex.

On rare occasion I may need to develop for something that doesn’t support C# or Flex (Flash), so I’ll use Java or C++.

It’s best to learn a variety of things and then deploy the one that suits the task at hand. Just picking your favorite and trying to force that to fit every project is asking for trouble.

Which language would you recommend? Why? Does it have a future? Is it well supported? Have other better ideas?

You picked a good language to use. It’s a fairly clean and straightforward language (not many “gotchas”), it has a thriving community, and while Django is the name you hear the most, there’s a really healthy group of all sorts of frameworks you can choose from. Python has a future, and it’s fairly well supported. It’s used for most of the applications running on the Gnome Desktop Environment, and has decent integration with google junk if you’re writing stuff that has to work with google apps.

If you have to work with existing Java code, you can stick with python as Jython. If you’re using .NET, you have IronPython. If you want to write for desktop, there’s PyJamas…

One thing to keep in mind, if you happen to be outside a framework and have run across mod_python… leave immediately : ) Apache never did so well with mod_python. In general, cheap crappy hosters tend to have PHP and getting something else on there has been more of a pain, but that’s only the sort of problem you get in the “pay peanuts get monkeys” area anyway. With modern frameworks like Django you get the WSGI stuff built-in. : )

If you’re on LinkedIn, there are some great Python Community groups for discussion and whatnot.

That means absolutely nothing in this context.

PHP is dying, and it’s been dying for a while now. With Python, ASP.NET and many other frameworks becoming stronger and stronger PHP dies a little every single day. Once people stop abusing WordPress into being a CMS PHP will suffer tremendously.

Once people stop abusing WordPress into being a CMS PHP will suffer tremendously.

Like thats going to happen any time soon (speaking as one of those people) - it works too well, too easily.

The biggest thing holding Python back on the web, IMO, is that some hosts don’t really support it - either they have a fairly old version installed, or don’t officially back it the way they do PHP. As an example, on bluehost you’re pretty much on your own w/ regards to python - they have an old version, but good luck getting any support for it. Almost everything in cPanel there is oriented around PHP - or RoR.

My host supports all major languages that including Python. It is pretty hard not to find someone who does not anymore unless they are a small company with few choices. PHP is not the tricked out guy in a suit who has it all made. It does have several issues too. Choosing a language should not be which one is the best. Any language is good at what it does. Pick the one that fits your needs then just go with it. 2.x (2.7.2) Py. is still heavily used. 3.x I guess you could say is similar to HTML5 where not everyone is using it just yet; besides the fact that HTML5 has not been completed. Change is inevitable. Let history be the judge there.

Use the best tool for the job which you’re comfortable with.

If you prefer Python over PHP, then go with Python. At the very least you’ll be comfortable with the language you’re working with.

A friend of mine recently tried to convince me that Erlang is the way forward for the web. I scoffed, until I saw what kind of performance they’re getting on a slightly older server with a bunch of Erlang-powered sites running on it. We’re talking orders of magnitude faster than any other language I’ve ever used (or heard about). I was very, very impressed (and envious: “my stuff doesn’t do that!”).

Remember, a couple of years ago everyone was talking about how Ruby (and especially Rails) was going to ‘kill’ PHP. Didn’t really happen, did it?

Yet I’m sticking with my PHP. It’s what I know, it’s what I’m comfortable with, it’s not going away soon (never mind what others might think, it’s still the most used server-side language on the web, and the language is evolving and maturing at an incredible rate) and there’s enough there for me to continue learning and improving my skills.

To sum up: choose what you feel comfortable with, not just the cool new kid on the block (just because it’s the new kid) or the established, venerable language that everyone else uses (just because everyone else uses it).

Edit>
Wow, I wrote a whole post without a single smiley! :slight_smile:

Python is far from being new. :wink: Figured I would mention that for those of you out there who do not know any better.

I know :slight_smile:

Nor was Ruby when it burst onto the scene a while back. It was first released back in 1995, around the same time as PHP.
But, you know what I meant ;D

@Immerse
I am giving Erlang a look now out of curiosity.

Be prepared, it’s a freaky language.

-module(listsort).
% Export 'by_length' with 1 parameter (don't care of the type and name)
-export([by_length/1]).
 
by_length(Lists) -> % Use 'qsort/2' and provides an anonymous function as a parameter
   qsort(Lists, fun(A,B) -> A < B end).
 
qsort([], _)-> []; % If list is empty, return an empty list (ignore the second parameter)
qsort([Pivot|Rest], Smaller) ->
    % Partition list with 'Smaller' elements in front of 'Pivot' and not-'Smaller' elements
    % after 'Pivot' and sort the sublists.
    qsort([X || X <- Rest, Smaller(X,Pivot)], Smaller)
    ++ [Pivot] ++  (&#9583;°&#9633;°&#65289;&#9583;&#65077; &#9531;&#9473;&#9531;
    qsort([Y || Y <- Rest, not(Smaller(Y, Pivot))], Smaller).

See, I understand nothing of what it says above. Apparently it’s a quicksort algo. I edited it a bit to make it more… fun.

2.x (2.7.2) Py. is still heavily used. 3.x I guess you could say is similar to HTML5 where not everyone is using it just yet;

Nothing wrong with Python 2x stuff, but some hosts have ancient 2.2 or older… that’s just nasty, and you’re missing out on functions there. 2.6, 2.7… should be just fine. And if the host is running 3x there’s a 2-to-3 program out there somewhere.

Re Erlang: zomg my husband has been playing around with it recently and it’s like, the f*ck, no variables!? and it’s not just a functional language, it’s ALL FUNCTIONS zomg so a for loop is like… zomg. A function. Heh and I thought the Haskell guys were freaky.
Erlang can also be very, very, very slooooww (apparently it’s fast so long as you know what its compiler likes). What’s fast about it is how it deals with concurrency, and that’s where people running lots of huge things on servers are looking at now.

My husband has been programming imperatively, OO, and functional (in non-functional languages) for over 15 years… and he said the other night while pouring over an Erlang how-to that it will take him a long time to learn to think in the functional way Erlang works. It’s just so different.

I tried - briefly - to learn Erlang. I failed miserably.

“Briefly” is likely the reason. If strange telephone nerds can learn it, you can too (have you seen the video with the three guys calling each other on their ancient 80’s phones going “Hello Joe.” “Hello Mike”. “Hello Mike.” “Hello Robert.” “Hello Joe, Hello Mike.” “Hello.”? It’s teh awesome)

edit lawlz

That’s right, now you too can own the movie that “Bjarne used whenever he wanted to get rid of unwanted guests at CS lab parties”!