views:

104

answers:

2

I've to start my master thesis project and I've to choose a technology to work with. I've used Rails and ASP MVC, in two projects, but never used Django, only some play with it. But I've some experience with python and really like the admin interface.

The objective of my master thesis is a creation of portal to a public hospital.

I have several years of experience with .NET and C#, but the other alternatives are appealing too.

In terms of philosophy, all three are open-source, and ASP MVC works in Mono.

What are your opinion?

UPDATE 1: By your opinion, I mean share your experiences(good and bad), advantages, disadvantages with this frameworks.

UPDATE 2: Btw the portal will be used by the patients or potential patients...

Thanks

+1  A: 

I think that is totally up to you. In this case, everyone else opinion seems useless.

According what you say, there is no technology limitation and you are totally free to chose anything you want. It's impossible to find an objective criteria.

It would depend if you're more interested on improving your ASP NET / C# skills and giving MVC a try or if you want to learn something totally new.

Any of those options is correct, it depends on your taste which one to pick.

Claudio Redi
+1  A: 

IMO the only reason to consider .net is if the hospital deploys on windows. Deploying anything else on windows is a pain, and deploying .net on any other platform is a pain. (IMO)

Beyond that, I think the best thing to do was get a rough idea of what you want the portal to do, then look at library support.

After that, its just really what language do you prefer.

UPDATE:

As for my experiences on each: I have 4 years of webforms experience, and played around with MVC. Pluses are that it is mind rendingly fast, and the deploy experience is pretty damn simple. Tooling is decent too, especially the SQL Server frontend, never seen another db tool as good. Down side is that it just doesn't do as much for you as django or rails, in fact, it doesn't really come close. Also, you are going to have to type 3-4x as much due to the language, although some people think the tools make up for the verbosity.

For rails, I have about 8 months professional experience with it. Plus side is there is a plugin for almost everything, and the framework is pretty packed with things that make your life easier. Personally, ruby is also my favorite imperative language, its the kind of thing where you achieve multiple levels of enlightenment as your knowledge of the platform deepens. Down side is that we are in the middle of a transitional period right now in both rails and ruby, so documentation, recommendations, and library support is probably going to be up in the air for the next 8 months or so.

Finally, I am really not an expert on python or django, but I have played around with both. The language is very similar to ruby (meant for productivity over perf, dynamic, very elegant design), but differs quite strongly in philosophy. Pythonistas believe there should be one (and only one) clear and concise way to do things. Rubyists (like perl monks) believe that there should be many nuanced ways of doing something, and that elegant code is like elegant language; expressiveness is paramount.

I would say rails has an edge over django at the moment, due to more eyeballs over a greater period of time. That wont last forever though, django is wildly popular and in a few years I am sure support for both frameworks will be roughly equal. It really comes down to a philosophy thing with these two platforms. If you look at a library that pushes the language in some strange directions that take awhile to grok, but once you do you realize is quite an elegant way to do things, chances are you are a ruby guy. If you look at something like that and say "Ok, so thats clever, but they really should have done it the way that everyone else does it, cause non standard use of syntax really sticks in my craw", chances are you are a python guy.

Matt Briggs
would love to know which of the three statements got the downvote.
Matt Briggs