tags:

views:

387

answers:

8

Preface: I'm not interested in starting a language war, just want a little feedback on which route I should take.

I have wanted to write a blog engine that I can constantly tweak and adjust for many years now. Something that can do all the major functions needed and once the framework is set up be able to add some of the nicer finer features. I would definitely be considered a beginning programmer, however I don't want that to influence this. I do have experience with small websites in PHP as well as ASP.NET/C#. (Nothing on the scale of what I would like to do). I'm looking to start something as a project that would not only help me to learn programming, but would help in accomplishing the goal of a blog engine.

My question is which language (and really total package) do you recommend? Which language would provide the best all around utility with things like an IDE, a framework (if you even recommend one, and if so which), a foundation to build on, and is easily doable with a tight budget (college student). Any feedback is really appreciated.

Thanks!

+1  A: 

I am a beginner programmer as well, and I found that PHP is a nice spot to start. It is an easy language to learn and it by starting with an easy language the fundamentals can be learned and applied when you have the time and resources to program in ASP.NET in my opinion.

CakePHP is a nice framework for PHP and I have just recently got into it. A nice Object Oriented style programming and it has some nice documentation as well.

Levi
A framework is definitely the way to go with these types of projects. Using a MVC patter does wonders for cutting down on spaghetti code.
ashchristopher
+3  A: 

I've started on my own blog project and I chose to go with ASP.NET (C#) 2008 and MVC. I posted links to the downloads and some blogs on how to get started with MVC.

Visual Web Developer (installs Sql Server Express 2005): http://www.microsoft.com/express/vwd/

Sql Server Management Studio Express: http://www.microsoft.com/downloads/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796&displaylang=en

ASP MVC Preview 5: http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775

MVC Articles on Scott Gu's blog: http://weblogs.asp.net/scottgu/archive/tags/MVC/default.aspx

MVC Articles on Asp.net: http://www.asp.net/mvc/

Jared
Ive been meaning to get into ASP.net MVC for a while now. Thanks for the roadmap :)
nlaq
The only thing wrong with this is that the documentation for preview 5 blows monkeys. Its a nightmare for a beginner. There's no code documentation, and most of the stuff out there on ScottGu's and Haaked's sites are completely gone in the current version. Its hard for an experienced dev....
Will
I agree that the learning curve is steep but coming from a webforms background I would have rather been thrown head first into MVC with no docs. It's such a cleaner way to develop web applications.
Jared
+2  A: 

PHP is probably your best bet for no reason other than it is a very popular scripting language. It also required minimal web server (Apache) configuration essentially giving you an drop and go way to run your software.

I am curious though why you are not looking at a pre-packaged blogging framework such as Wordpress. Probably a better idea idea to build off the backs of a huge development community instead of reinventing the wheel. Chances are you will not be able to create a better blogging engine than many of the open source packages that are available.

ashchristopher
I have been using WordPress and I there are a lot of great features, but I can't ever seem to get the right configurations of how I would like things to be. I considered working with plugins to solve this problem, but I thought learning from scratch and building from the ground up would work best.
Matt
The OP wants to build his own; and I believe it's not so much for the practicality but for the learning experience. Re-inventing the wheel is a good way to learn how things work - even if you end up just using a prepacked solution in a production environment.
nlaq
It's true that a beginner couldn't better Wordpress but that's no reason not to have a go. He'll learn a lot along the way. And you never know, he might invent a new and different kind of blog that will make us all go wow!
Adam Pierce
Couldn't have said it better Nelson...thanks!
Matt
+2  A: 

Here is a book that uses PHP and the Zend framework to create a fully featured blog engine:

http://www.amazon.com/Practical-Web-2-0-Applications-PHP/dp/1590599063

I highly recommend this book; as it really shows how to actually apply the Zend Framework and smarty templating engine to create a fully featured and extensible blog engine.

As far as the question: I would recommend PHP for the task.

And: it's all free :D

nlaq
This book looks like it may help quite a bit - at least with getting a general understanding of how they framework, template engine and all the other utilities interface with each other. Thanks for the tip!
Matt
A: 

CodeIgniter has a great tutorial on how to write a blog in 20 minutes. A PHP based framework. Very raw at the moment, there are contributions for items like user authentication and such, but generally expect to be writing everything from the ground up (which isn't that bad after all) The video tutorial is 20 minutes!

Ruby on Rails supposedly is excellent for blogs, and I believe boasts a 10 minute turnaround time.

I agree with ashchristopher, why not just grab the open source of WordPress and modify it to suit your needs, or at least look around to see if there are contributions to make it do what you want. WP is VERY skinnable too, supports all the RSS, SEO, Akismet, and everything else you could ever wish for.

Adam
Ack! Don't just modify the OS code... unless you want a maintenance nightmare on your hands. I would suggest going the plugin route, or doing all your development in the actual theme. When it comes down to it, WP is just a CMS. Get and set into a DB. You should be able to do all work in the theme.
ashchristopher
+2  A: 

I'm going to have to go with a .Net solution, mainly because you asked for the "total package" experience.

The express version of visual studio are free and it is a great IDE.

I'm not against PHP but its hard to find anything that's as integrated as Visual Studio.

Another option would be to use a open source blog engine like dasBlog and digging into the code. Reading other peoples code is a great way to learn.

TonyB
+3  A: 

Python as it is a language designed explicitly to be welcoming to newcomers and has a wide selection of web frameworks.

Aaron Maenpaa
And the Django examples include blog as a sample application to show how Django works.
S.Lott
+1  A: 

I would highly suggest PHP or Ruby on Rails if you were going to roll your own.

However, you mention in your question that your end goal is partly to learn. Perhaps you may be served by installing an existing blog engine built in one of your desired languages, and playing around with the code behind it.

This will quickly give you a good sense of the design philosophy and best practices that go with your chosen language.

If you go with PHP, I would highly recommend poking around in the Drupal codebase. While it is more complex that Wordpress, it is very readable, and the API allows you to extend it greatly while learning PHP in no time at all. Check it out - http://www.drupal.com

BrianV