

Ask HN: I've Got a Project, You Tell Me The Language - physcab

So this summer I want to begin development work on a new web project, but I am having trouble deciding on a language to implement my ideas.  Maybe it doesn't matter, I don't know. I thought I'd tell you what I want to do, what I'm good at, and YOU tell me how my time will be best spent.<p>Project Idea:  Create a web-based recruiting tool for our graduate department to keep track of interested/prospective students.<p>What I'm really good at:  Matlab!
What I'm ok at: PHP, C#/.Net (And I love visual web developer!)
What I'm not good at, but interested in learning: Python<p>I currently have shared hosting (LAMP), but I wouldn't be opposed to buying another plan for C#/.Net if that would be the best way.<p>Any ideas?
======
andrew_k
Try Django. Documentation on their site should be enough for you to get going.
Also there a plenty of reusable django applications available on the internet,
like djago-registration, django-comment-utils, which will allow you to create
a website with a lot of bells and whistles in a day or so.

~~~
physcab
Thanks for the tip. As per my comment below, is there an IDE similar to Visual
Web Developer? This is what I'm most comfortable with and enjoy using.

~~~
iuguy
Try <http://www.wingware.com/doc/howtos/django>

~~~
physcab
Awesome. I can't wait to try this out!

~~~
endtime
If you're used to Matlab, C#, and PHP...you are going to like Python. It's a
real breath of fresh air.

Django is a pretty robust framework too. Like Python, it (for the most part)
just makes things easy.

------
plinkplonk
It depends on how much you want to learn a new language. If you just want to
get the job done, use what you know already. If you want the to leverage the
project to learn new things, pick a new language (or a new OS, or editor or
version control system).

~~~
sgrove
This is really the crux of the argument: What do you want to have when you
finish?

If you just want the completed application ASAP? Go with what you know, and
don't waste time on learning anything new.

Want a completed and familiarity with a new language + framework, at the cost
of delayed launch? Go with the new language.

The application you've described is simple enough to be done with any
framework + language fairly quickly, so no worries there. Just weigh your
motivations and get to work!

On a side note: I'd go for rails (ruby), then django (python), then symfony
(PHP) by personal choice. The generators for all of these languages will save
quite some time, likely.

~~~
physcab
I love learning new languages. I'm trying to pick up (on average) one per a
year. The problem is that I become knowledgeable about a bunch of languages
but not really an expert in any of them! Granted, I know there are some
underlying similarities between all languages.

I want to get the job done quickly, but I'm not opposed to spending a number
of months working on it. I just want the application to run really well and be
easy to maintain and grow.

I just keep vacillating between that crux that you mentioned. I kinda wish
there was an easy way to create a web application with Matlab, since its easy
and powerful (and I know it pretty well). But I also keep getting pulled back
into the "well, maybe I should pick up a more 'popular' language because
that's what seems most web apps are constructed with these days"

~~~
brentr
I have also become familiar with several languages (C, C++, C#, Java, PHP,
Python, and Ruby), but when I wanted to start a big project, I realized that I
only knew the basics of the language (i.e., synatx). I had no real exposure to
the vast libraries available. Once I realized this, and that was only within
the past month, I decided to focus just on C and C++. This decision was driven
by the fact that I am starting an MSFE program this fall and all I have read
about quant work says that I should be well versed in C++. The reason I have
also chosen C is because the project I am spending this summer working on is
building the statistics and probability portion of a quantitative finance
library. I am using two libraries as a reference (Quantlib and GSL) and one is
written in C++ and the other in C. Like it has been said, I think it might be
a good idea to focus on what you already know and work on improving the skills
in that language.

------
mahmud
PHP. You don't even need to know it to whip out something in php. The
application domain is pretty much all that PHP is good at, boring websites,
and since it's an intranet application you don't have to sweat the security.
It shouldn't take more than a week to do, leaving you plenty of time left in
the summer to learn a real language, like Python. And finally, should you ever
get bored with it, you can always find someone to finish it.

When in doubt and apathetic, copy and paste php code.

~~~
physcab
I want to love PHP. I really do. It seems like everyone and their mom uses it,
and thats why I tried to pick it up before. The problem for me has been an
easy way of coding it.

I mentioned Visual Web Developer in my OP. I'm not lying. I absolutely love
the intelli-sense, the tab-finish, the debugging, the easy UI.

Is there something I could use that does the same thing with PHP?

------
helium
Maybe you could try IronPython. You can use it with the ASP.net MVC framework.
Then later on if you decide to rather go with Django you already know Python.

------
csomar
if you happen to choose the Microsoft way, you'll have Visual Web Developer
(and it's very Advanced) and ASP.net MVC (powerful for AJAX Application). Also
you can integrate with it, Microsoft Expression to design your site when
working with VWD!! You'll have also MS SQL Server which is very powerful and
customizable. (and a big set of tools you can use).

Drawbacks: The tools are very expensive (VWD pro to Expression to SQL will
cost), the Windows hosting is also very expensive. If you have sufficient
money then it's the best choice, look at the performance of stackoverflow.com

another drawback is there's a little "veryyy little" Open Source code (try
codeplex.com) but still enough to make your own

~~~
physcab
Yes, your right. I've got enough experience with C#/.Net to really really
appreciate VWD. But alas, cost.

Also, porting Matlab scripts to .Net works quite well.

If I can find something like VWD but for something like PHP instead, then I'd
be sold.

~~~
csomar
VWD and SQL (Express) are free, you can start with them, I'm starting with
them. Go step by step (slowly), also there's a lot of work for asp.net
developers (.net in general) the market is very demanding

~~~
psyklic
You can do a lot more than "start" with them -- they are full-featured
products and (at least for Visual Studio) there are no restrictions on use for
commercial products.

EDIT: Perhaps the largest cost would be once your product is finished. Your
university (or host) would have to purchase Microsoft products for the web
server.

~~~
csomar
I think this will change, some hosting are making plans (pay as you go) that
can scale if needed and pay only what you use. The future is more promising, I
even quit PHP and starting to learn ASP.net MVC. Microsoft has done well by
making the new asp.net MVC respects the standards

------
brendano
python is better for future work with matlab-related stuff like data
preprocessing; or its matlab competitor library (scipy).

------
sker
I'm gonna recommend .NET here, mainly because that's what I use and like, but
my top reason would be flexibility.

You don't have to use only one language, use many. If you already know C# you
can start with that. If you get tired of it you can pick up F# to write
algorithms and calculations. Want to learn Python? Get IronPython and use it
to write Unit Tests or a rich interface with Silverlight. You name it,
everything under the same platform.

If there isn't a requirement that prevents you from using .NET, I don't see a
reason not to use it.

~~~
physcab
There's not, aside from the general misgiving I have about the black-box
nature of .Net stuff. Sometimes I feel like I'm not really hacking. :)

------
scumola
Stick with LAMP - PHP, Mysql, Linux - you've got the tools. Don't fall for the
Ruby/Erlang/Lisp croud. Don't struggle with the language. Get it done and
worry about the details, not the language.

------
mlLK
You mean like this? <http://corsair.cs.iupui.edu:20181/prospect.php>

I wrote this last semester, nothing fancy, but it does what the assignment
required, which is very similar to what I think you're trying to do.

------
scorpioxy
What I think would help is picking a web framework. That would pretty much
guide you towards a language and eliminate a choice.

Look around at the popular available frameworks and choose the one that
appeals most to you.

------
utsmokingaces
If you already know PHP then go with Codeigniter MVC framework. It runs fast,
very straightfoward, and the documentation is superb.

------
butterfi
check out <http://drupal.org>

~~~
physcab
Thanks for the tip. I've tried Drupal before with another site. It's pretty
slick, but it has a ton of stuff under-the-hood which I don't think I would
need. As a result, my site ran ridiculously slow.

------
minalecs
what every language you can be most productive in to get it done. If it time
frame doesn't matter, any language that interests you.

------
gaius
Haskell. Why not go the whole hog?

------
vivekamn
RUBY/RAILS. As productive as Django. More books, good community and so on.

