views:

150

answers:

2

I want to build a search engine that is similar to Wolfram Alpha. I want to insert a query and receive a response from a dedicated database, or multiple databases for multiple responses. Up until this point I know HTML + CSS, but I am mostly focused on design. I want to expand my skill set and create a web application like this but on a much smaller scale. What language should I learn for this project? Any links, tips, and criticisms appreciated.

+5  A: 

As a deleted post here says, WA is by no means a simple search engine. Even a good simple search engine (read: google, et al) is by no means simple. Wolfram Alpha is fathoms more complex.

At the very least, you're going to need a proper programming language and you're going to need to know it. I would stay as far away from PHP as you can as it's only going to teach you bad programming habits.

Personally, I would have a look at a Python (a language) framework. Python is awesomely easy to understand for people who have done any programming before and I would expect that simplicity extends to those who haven't done any programming either. As for the framework Django is probably the best supported.

Or ruby on rails. Or even a Microsoft language on ASPNET.

The important thing to say is the web side of this project is far less important than the searching logic. You could easily do this from a command line instead of a web page. It's much easier to set up (as you don't have to worry about models, views, etc). When you've got that down, you can easily take that output and assemble it for website consumption.

Again, forget about the website stuff; learn how to program first.

If, and I suspect this is the truth, you're just looking for a good webdev project to step into, pick something simple. As I've said two times already, WA is far from a simple webdev problem in that it's only about 2% actual webdev.

Pick something dull. There's a reason people make blogs as their first applications: they're simple and they cover quite a lot of material.

My comment about Python and Django stand. You'll have much more fun and learn far fewer bad habits than you will with PHP.

Oli
PHP itself isn't going to teach you bad habits, however the lack of decent examples and the fact that there are a lot of amatures probably will. Having said that, I agree that PHP is a bad starting languge so +1 for Python (or ruby, although I have never used it it looks very nice)
Yacoby
I honestly think PHP damages new developers by not having a strong handle on even remotely modern techniques like OOP and MVC/MVT. I know PHP+<framework> can hack in MVC support but you end up with a real mess of files and by itself, PHP teaches a very linear way of thinking with little regard for code-reuse.
Oli
As a PHP programmer who is moving into C# and python, I agree entirely.PHP isn't bad in itself, but its very easy to be lazy and end up with spaghetti procedural code. A language / framework that enforces good practice may be beneficial here.Of course you could use a PHP MVC framework, there are lots of good matrue ones out there now.
Neil Aitken
I wouldn't describe adding a framework as being hacked in any more that ROR was hacked into Ruby. However, using a framework isn't quite as standard in PHP as it is in Ruby (Rails is so standard it gets a mention in almost every book on the subject). However I probably agree. Having spent 3 years messing around with every other language under the sun, my PHP (which was one of the first languages I learnt) has improved dramatically, which I doubt it would have done if I had stayed using PHP
Yacoby
I count PHP frameworks as a hack because you have to work right next to them. There's such little focus on packing PHP in any way apart from "download it into your working directory" that it makes me slightly sick to have to work with PHP espcially when I'm working on somebody elses code and they've hacked the framework even more to suit their own twisted coding ethos. Much worse than monkey-patching because it's a real PITA to see what they've done. That and 90+% of PHP tutorials start you writing wet (ie not-DRY), flabby, content-coupled, insecure, hard to read, probably uncommented code.
Oli
A: 

I'm with Oli here. If you want to make a Wolfram Alpha style system, go to school and get a compsci degree, even better if you study up to PhD level. Then partner up with similarly well educated experts from other fields such as mathematics and natural language processing.

Please do not misconstrue my response as being condescending, that is far from my intention, and the above is my honest advice if you want to make something similar to WA.

I would advise you to learn a programming language that encourages good practises. I picked up Ruby because of the Ruby on Rails framework. Beforehand, I was a PHP hacker making horrible procedural scripts with no object orientation, no separation of concerns, no knowledge of design patterns, no knowledge of TDD/BDD, etc. Ruby encourages best practises, but Rails practically enforces them.

Steve Graham
"If you want to make a Wolfram Alpha style system, go to school and get a compsci degree, even better if you study up to PhD level."If you get a PhD in CompSci, you can also teach math at a College or University Level, especially if your degree has an emphasis on programming.
Newb