I have made minor web applications in the past and have always used php. However, I have recently started to get into django and also have been messing around with node js. I am thinking about making a larger scale web app for my friend that needs to be very secure and also fast. Was just wondering what many of the web developers here thought would be best for developing an open source web application.
Security and performance are quite complex topics so much so that if you have ask questions like what you have; you're not ready to be worrying about it.
There essentially isn't a 'best' language there may be a few features and paradigms that make a language stand out for specific tasks however. If I remember correctly our web team is using a combination of Django and Python for Ore (our module repo)
Well PHP tends to be one of the most common scripting languages that I know of for web applications, like forums and such. For Minecraft stuff, then Java tends to be more common than PHP by what I've seen.
If what your planning on doing has some sort of daemon aspect to it, then one of the other languages might be better, like Java, Python, or Perl. Outside of web stuff, I haven't seen PHP used for advanced stuff where it's designed to run as its own server(a daemon.), I've only seen more or less simple scripts with it.
One can use every language for webserver development, but if you go for secure use something all ready existing like joomla wordpress. The speed is always variable on the host mashine and the connection between client, webserver and databaseserver.
Anyway I programmed in both languages (Python and PHP) and i never noticed a speed difference, but i think php is easier for the web since more webhostings support it. And for the non-Web applications Python (or Java) it has allot more calcuation power and is cross-compatible.
In your case @Enter_ I would go with PHP.
@cartman2000 There are very complicated PHP scripts available on the NET (example is Facebook or any good CMS Site)
Often, PHP is "entiteled" as a simple language for simple, small projects. However, it've recently seen a statistic that about 70% of all websites use PHP, and as Facebook is written in PHP, it is powerful enough to host a website with your needs.
I would go with PHP as it's really easy to learn
I second that. Also, PHP is built for the web and already comes with a large amount of inbuilt tools and useful functions.
I'm kinda surprised that nobody mentione Ruby on Rails in here yet.
I thought about Ruby on Rails, but I've never used this myself, so I don't have any experiences with it.
I was going to go into ruby on rails but I have yet to actually hear from or see anyone who has used it or any similar examples of it used anywhere.
It's supposed to be great. I personally haven't ever gotten too deep into ruby on rails. All I know is that it looks very verbose and cryptic and is not something to start off with.
I would also agree, that PHP is one of the easier languages to learn for starting out with.
To be clear Facebook is not written in php. It is written in a Php variant using C++ as it's core, to go faster. Ruby on Rails is more for visual things. However PHP is more for a backend in my personal experience.
Depends what you're looking to do. I like Ruby on Rails for larger scale sites, that require large amounts of time to develop because Rails provides a lot of the basics for you, like forms, database integration, security, etc. PHP however, without a framework at least, is going to be very insecure, and you'll have to make sure that you work out security measures on your own, which can be quite a bit of work. I'm also a fan of NodeJS, which is what we built Crafatar on. It's fast, and based on a fairly easy language to learn. In my experience, it slows down the development process a little, but it might be worth it in the end.
Also, ignore the post above mine..."ruby on rails is more for visual things"...okay...
That's what I feel like. Which the OP was asking for our experiences. In my opinion (which I admit I haven't done much web development what it seems it's used for)
If you obviously have no experience, it would probably be best not to comment and cause confusion.
As far as I know, Facebook invented PHP-NG (PHP-NextGeneration) and/or HHVM (Hip Hop Virtual Machine). You are right, they have rewritten large parts of PHP using C++ and stuff, but PHP-NG will be part of the next major PHP release (v6 I think)
Well I can guarantee you FB probably will still have a different version of PHP specialized for them. And @Jake0oo0 I never said I didn't have any experience. I have backend experience (all be it perhaps not that much). I was giving my opinion that in my experience backend was easier over PHP because I could customize it however I wanted, while in RoR I felt it was more set up to help frontend development. A little experience != none, and just because my opinion is a little different from yours does not mean it should be silenced.
I would like to say thank you to everyone for your advice so far. I will be writing this one in php but will most likely make any future ones in node or RoR depending on what resources I can find for learning each of them.
PHP is easy to learn, however really hard to master. Reason is simple: there is a lot of freedom in this technology, which explains why beginners feel at ease with it, but also explains why PHP projects often goes messy.
As already said, there's no best web technology. There could be a best pick in your case depending on parameters like:
Which architecture will you be working with?
For example if you're going to interact with Minecraft/Sponge, a Java web server could be a nice choice.
Which technology has good docs/community? Or which would be easy to learn by fellow developers? PHP Frameworks (symfony, yii...), nodejs fullstack frameworks (meanjs, meteor, mojito)
What do you already know?
Capitalize as much as possible on what you already know, and like.
Will you need to work with mobile devices?
Web apps now are often meant to be used by mobile devices. Some frameworks may be more friendly to it
Do you want to be modern, cutting-edge?
As you can see possibilities really are numerous. In my case, I started long ago with pure PHP, then PHP frameworks. I got bored by it by seeing new technologies but I keep a special place for PHP because many servers with only FTP access are PHP-ready. Then I worked with heavy Java apps. With these, you should be able to do powerful and flexible things but with really heavy coding structure.
I would just not recommend learning a language + a framework. That would be too much for you and for possible collaborators. That said, up to you!
You are totally correct. One tip I can give you: try to build a MVC (model-view-controller) application and give your variables good names like b_somename for boolean variables, i_somename for integers etc. That will help (a bit) when you have tons of code.. I really need to have an eye to Java (Tomcat etc) as I am currently working with PHP at home/hobby and ASP.NET MVC at work.