As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
WordPress, Joomla, and Drupal are all in PHP. These are also by far the most widely used CMSs out there. CMSs in other languages (Plon in Python, Hippo in Java, Radiant in Ruby) only have a small fraction of that popularity. This gap is not as dramatic when it comes to other tools of web development, like frameworks, where many popular powerful frameworks exist in those languages (Django, Rails, Play, Spring Roo..etc.). Is there a particular reason for this?
I would say, at least :
Many think PHP is easy and that anyone can hack some stuff in a PHP application -- which means many will use a PHP CMS thinking they'll be able to fix / adapt stuff if needed.
PHP is free (opened, and costs no money)
same for MySQL and Apache, which are generally used with it.
Those CMSes are free (opened, and cost no money)
They have a important communities
Which means its quite easy to get support
And there are lots of plugins available
There are lots of cheap hosting services that provide PHP
Far less provide JAVA / .NET / Ruby / Python
PHP is a robust language that is forgiving to newbies. In my opinion, a lot of people begin their programming journey through learning the basics in PHP. As PHP has grown, it has become a truly object oriented language that is more than capable of efficiently running CMS. Further, PHP's integration and long history with the most popular web server software in the world, Apache, ensures that the CMS can easily be installed with little work.
PHP's original implementation was released in 1995, the first of its kind. Development of frameworks takes a long time. If you start developing today, it will take you atleast 2 years to reach the level wordpress has reached today given that you "copy" wordpress. RoR was released in 2004 or 5. You can see the difference.
In essence, PHP has been around for a lot longer than a few of those languages (especially Ruby) and it's a vastly more common "base" install on low-end servers. As such, it's inevitably going to be targeted a lot more by people wanting to create such CMSes.
That said, without wishing to comment on the CMSes you list, popular does not necessarily equate to good.
I'm going to say that they're likely as popular as they are because they are written in PHP.
PHP has a very large install base, and is available on nearly every hosting platform, unlike Python & Ruby. The barrier to entry is low for someone setting up a website, when the hosting provider provides a script to install a PHP CMS in a couple of clicks.
As a CMS (or any package) becomes more popular, if it is open source as all those PHP CMS applications are, it will attract more developers which may result in more features and more popularity. Rinse, repeat. Case in point: Drupal.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
We have a website that originated in 2001, which started with some simple classic ASP scripts that enabled website viewers to dynamically configure products by following a step by step process of choosing product accessories, etc, using Access as the data source. The website expanded eventually to currently keep track of a simple, small encrypted member list with usernames and passwords to enable access to restricted areas of the website.
In the future, we're planning an expansion of the website and the backend will need an overhaul obviously to a more modern, scalable framework. The first inclination is to convert the classic ASP VBscript to VB.net. Another option would be to convert the backend functionality using PHP and MySQL.
Which would be easiest to convert to, simplest to maintain and scalable for a future expansion of functionalities?
It is a matter of preference and what the team is comfortable with. If you are better aligned towards ASP then stick to that and vice virsa. There is no 'right' answer or 'right' language for the job. They both do practically the same thing albeit in different ways.
There's lots of answers. If you already have developers, then a heavy influence would be what they are comfortable with.
If you don't already have a team, then there's lots of factors to consider. You need to learn the different languages, frameworks, platforms, & databases.
Languages. This is the set of core commands that the computer recognizes. Big ones are:
VBScript
VB.NET
C#
PHP
RUBY
Frameworks. Frameworks are large libraries that do a lot of the work for you. The core of the framework will still be one of the above languages, but there are also commands that call library routines. Big ones are:
ASP.NET & ASP.NET MVC (runs VB.NET, C#.NET, & other samller languages)
CAKE (runs PHP)
Ruby on Rails (runs Ruby)
Platforms. This is the type of server running your website. The two big ones are:
Windows (can run almost anything)
Apache (can not run MS products like ASP.NET)
Databases. Several good options here. Big ones are:
MS SQL Server (requires license to be purchased, and also requires
Windows)
MySQL (Free license)
MS Access (wouldn't recommend for anything but the smallest of
projects)
There are many, many more that could be listed. I tried to hit all the big ones.
Now, with all that being said, Ruby on Rails (RoR) is the most used for new development right now (according to Google trends). Lots of online libraries & help can be found.
PHP is huge, but is declining.
If you use ASP.NET, I would recommend using MS SQL Server as the a lot of the wizards fail when using MySQL.
If you use PHP, CAKE, or RoR, then MySQL would probably be more compatible with existing libraries.
Good luck with your upgrade.
IMHO PHP is equivalent to Classic ASP for many reasons, including that it is a scripting language. If you are going to move away from Classic ASP, rather than move horizontally, I would progress by choosing .Net or Ruby.
PHP is the easiest language for writing websites and it does not lack any needed features. Development is faster and cheaper with PHP. There are more PHP coders than .NET on account of the easy learning curve. Other languages may be "faster", but unless you have a very very large scale application this speed difference is irrelevant.
You will probably be making your site from the ground up and the difference in effort to "convert" your code won't matter.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We have developed a suite of applications using .NET MVC and are planning to migrate to an open-source platform (due to cost, maintenance, talent, exit strategy, etc.).
We are planning to build web applications (instead of web sites) using Twitter Bootstrap and KnockoutJS (possibly EmberJS but that has a higher learning hurdle). We'd like the following, what platform would you recommend?
API Driven
Ability to integrate with API's easily: Twitter, FaceBook, LinkedIn, etc.
Preferably to have ACL security included as part of framework
MVC framework
Be able to create tables as objects (similar to .NET MVC)
Wide industry adoption & support
Minimum learning curve (we are new to PHP in general)
Relatively easy to debug
We've looked into CakePHP, Zend Framework, NodeJS so far. Any suggestions among these or other suggestions?
Cheers,
Dean
Asp.net mvc 3 works pretty well on mono (and it's not about creating tables as objects, wtf?!) . If you refer to ORM or active record, any platform has them. The only cost with .net is windows hosting, everything else can be free. If you can run mono on a linux server, you solved the problem.
If your team has experience with asp.net why don't you continue leveraging it? Experienced developers are expensive and php is not like c#. Yes php is easy, it's also easy to write crappy code especially when you are not very used with the platform. Maybe php developers are cheaper than .net ones, but I think the value of a developer doesn't consist in what programming languages she knows.
At least personaly, I find it the most easy to develop with asp.net mvc as compared with php. VS is an must-have tool (and no PHP IDE matches it), C# has features php can only dream of and .net mvc is a very easy, elegant framework. For me, trying to do something serious in php is just pain. My productivity just drops with at least 50%, it's just wrestling with the mud. And I started with php, I've written my own mvc framwork in php (who hasn't...).
Plain and simple, if your team is .net based you'll have a lot of headaches when you'll move to php. And I have a feeling they won't be cheap.
You ought to consider a Ruby On Rails stack with Backbone.js+jQuery as your front end JS library.
I've been using KnockoutJS for awhile now, and while I really enjoy the MVVM pattern, it doesn't lend itself to larger front-end projects without the addition of several other JS libraries. I've yet to try Backbone.js, though, so feel free to go ahead with Knockout.
Next to Asp.net MVC 3, which is what my company uses, I'd say Rails has the widest support and fullest feature set.
Stay away from PHP if you can: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design
I've programmed for several years in PHP and it doesn't hold a candle to either Rails or Asp.net MVC.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
The very famous open source CMS and e-commerce applications, i.e. Wordpress, Joomla, Drupal, Prestashop, are all written in PHP.
But Ruby seems to be awesome (I don't know it that much).
Why is there no such project written in Ruby?
Or would there be one I do not know?
I would say that at least one good reason is that Ruby is not used that much.
As a consequence :
Not many people use Ruby
So not many entreprises will use Ruby for their commercial projects
So not many people will learn Ruby (either at work or at school)
So not many applications are developped in Ruby
So not many web-servers (I'm especially thinking about shared hosting) have Ruby installed
So not many developper will use Ruby -- they want their open-source applications to run everywhere,
and so on ;-)
Just heard of : http://www.locomotivecms.com/
I've not tested it yet but it looks interesting.
I'm actually a php developer, working lot with Joomla, but I'll soon begin learning Ruby (some features just look awesome!, Like redefining operators,...) and Ruby On Rails for personal interest.
CMS-es allow building sites, Frameworks allow building applications.
You don't build a game in Drupal. You won't even think about a large community in Joomla! No-one will even consider building a large communication-platform (chat) with Wordpress.
PHP comes from a differnet ERA. The web-era where we all build off-the-shelve sites. Where user-interaction just started becoming interesting. And where it was hard to get an affordable LAMP stack set up for your latest-greatest idea. I am talking before Y2000.
Now-a-days one can hardly build a website without Twitter connections, Facebook logins and complex backend communication with several services.
Back in the days, these kind of projects were almost always Java. They still are, to a degree. Governments, corporate portals, media: they all have complex, integrated web-environments. PHP will hardly be used for this.
While in theory something like that is possible with a CMS like Drupal, it is certainly not a cost-efficient project. A CMS was simply never meant for that.
A framework like Ruby on Rails allows you to build what your client wants, exactly: nothing more, nothing less. Which means that the end-result is not generic, but extremely opinionated. and as such, not releasable as a tool for the masses.
PHP is cheaper and easier to host on a shared-server - installing mod_php into Apache is easy, and it uses less RAM than Ruby. So more providers provide PHP-hosting, and more less-technical people use PHP software.
Ruby does have some good CMSes - e.g. Radiant or Refinery - and ecommerce solutions e.g. Spree.
CMSs are, at least originally were, end-user products. End user doesn't really care how awesome the language that the software was built on is. On the other hand, PHP has much bigger penetration with hosting sites and deployment of PHP applications mostly comes down to "unzip this to your host, go through the wizard and you're good to go". Ruby got standard way of deployment just recently. Knowing all that, developers were (and arguably still are) choosing PHP over other languages when starting to build mass-marketed products as CMSs are.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I have opened a large web project on elance for a social network. I got over 30 bids on my project and many of the providers recommended php even though they had .net knowledge. many have said that php with drupal has many advanteges over the .NET framework but did not say what they were. Its hard to believe that a scripting language has advantages over a compiled language. Am I missing something here.
PHP will run on essentially any server, for free. That's a fairly compelling feature for many folks.
There are lots of pros and cons of both, and it certainly doesn't boil down to scripting vs. compiled (incidentally, opcode caches like APC and things like Facebook's HipHop even the score on that point).
I'd say if someone's recommending PHP over ASP.NET, they code primarily in PHP. If they're recommending ASP.NET over PHP, they code primarily in ASP.NET. There's probably not much more to it than that in the responses you're getting.
Ugg, the weekly PHP vs ASP/.net argument. Let me frame it this way:
Both work. Well, actually.
Neither is really more "enterprise grade" than the other.
.Net developers (at least in my area) tend to make more. That being said, the Government "drank the microsoft Koolaid" and most jobs in my area are for government contractors. It may be different where you are.
PHP really doesn't have a great GUI yet. Not an issue to those of us who are command-line types, but it could be for you.
.net solutions tend to be relatively unified since Microsoft is driving the bus. There's about a million different ways to skin a cat in the PHP world because it is relatively fractured.
In my experience, PHP tends to be better documented with many more how-to's online. If you disagree, you might be a writer for Microsoft's tech net, which is written partially in some alien/geek mashup dialect of English.
MANY php how-tos and forums are frequented by non-native English speakers, and entire projects can be frustratingly impossible to understand because of the language barrier. It seems that Europe has picked up PHP at a higher rate than those of us in the States.
I was indirectly involved in a Microsoft Case Study that I think illustrates the difference. I worked at one Olympic non-profit on a php-based site. They opted to standardize on Microsoft and move to an entirely .net/sqlserver based. I moved over to another nearly identical non-profit (just a different sport) who was embarking on an in-house build of a PHP-based website with nearly identical functionality to the one I left.. The .net website, when completed, cost $1.5 million, involved 16 servers, and required 3 additional full-time staff hires to extend and maintain. The same level of service, programmed in-house by 3 guys on PHP in a shorter amount of time ran on 3 servers (two application, one MySQL DB) and cost about $25k when all was said and done. Microsoft published the .net solution as an official Microsoft Case Study success. You be the judge....when you compare the solutions, I'm not sure they're even. Both serve nearly identical traffic and process very similar amounts of money. I know where my time and money would go.
The most significant advantage of PHP might be that it is free and you can start developing it without having to install too many things. (Apache, PHP and an editor)
After working with the Prado framework for a while, I don't see any big differences with it anymore.
OF Course : Visual Studio makes developing and debugging ASP.NET apps a dream.
I tend to prefer c# development to php development, but both are perfectly valid choices.
One of the main advantages php has over asp.net is just the volume of ready made components, controls, libraries, and frameworks out there that are available for use.
It is entirely possible that your project could be assembled in php much faster than in asp.net if the right tools are available.
It doesn't really matter if you choose PHP or ASP.Net, both can deliver, both have a solid base, both are proven technologies. PHP is a mite cheaper, but ASP.Net is getting there.
Unless you're going to maintain the app for a long time ASP.Net's superior OOP capabilities aren't going to offer you much advantage. But if you've got a non-trival app then the multi-layered ASP.Net approach might be helpful.
Just get the coder you're most comfortable with.
I would choose ASP.NET mainly because of Visual Studios, makes programming a lot easier.
I would choose PHP mainly because of variety of frameworks, such as CodeIgniter.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 13 years ago.
I'd like to make a website, it's not a huge project, but I'm a bit out of the web design loop. The last time I made a website was probably around 2002. I figure the web frameworks and tools have come a ways since then. It's mostly the design aspect that I'd like it to make easier. I can do the backend language in any language.
My question is:
What are some tools or web frameworks that make the design aspect of making a website easier. It could be a framework in php/python/ruby.
As far as tools go, free/open source is preferred, but I wouldn't mind looking at good commercial alternatives.
You'll get many different subjective answers for your question, but as for me I would recommend django. It is flexible unlike CMS and the admin saves you alot of pain.
For PHP, I like the CMS Drupal and have found it to be very fast in getting a site up and running. Drupal also has a ton of modules to do almost anything you want. It is also very customizable (although that takes a little reading to figure out how to do it).
Ruby's de facto standard web framework is Ruby on Rails. It's a straight web framework, not a CMS like Drupal, but it doesn't take very much work to get a simple site up and running. It uses convention over configuration to be that simple, so you've got to learn the conventions to really understand what's going on.
I haven't used a Python web framework (except the one I wrote back in college), but I've heard good things about Django.
If you have experience with Java, there's a Groovy framework called Grails that is similar to Ruby on Rails, but runs on Java servers.
I once played around with CodeIgniter for a couple of weeks and found it pretty easy and fast to jump into.
Check out this list of PHP frameworks:
http://woork.blogspot.com/2008/11/20-great-php-framework-for-developers.html
Joomla is also said to be amazing, although that's more of a Content Management System than just a framework. But it makes the design of the site really simple.
It really depends on a couple things:
What are you familiar with? You indicated that you've done some web development in the past. What did you use? If you were using classic ASP, then learning ASP.NET should be less of a jump for you.
What are you trying to create? If all you need are static HTML files with a tiny bit of functionality, you could try learning PHP as it's pretty quick and easy to get going. If you need light database access, then maybe Ruby on Rails will be your cup of tea.
With that being said, I'd recommend the following in no particular order (just because I've tried them and they're all pretty decent):
Ruby on Rails
ASP.NET / ASP.NET MVC
PHP
django on Google App Engine gets you free(up to a point) and scalable hosting