

Ask HN: Web Language + Framework Most "Comfortable" for Desktop Coders? - ComputerGuru

Hi All,<p>First some background. I've been a developer for 11 years and have dabbled with pretty much everything, though my forte is system programming in C/C++ on Windows and *nix. For the past 5 years, I've been doing some light web programming on the side in the form of small- to mid-size projects in PHP, Perl, and ASP.NET.<p>I'm currently contemplating signing on as a cofounder for a foreign startup that I feel has a chance of really making it big, but I won't bore you with my justifications. Point is, I'm going to be the developer for this project (the other cofounders are a businessman and marketing guy).... and I need some help picking a platform.<p>I'm in love with C, C++, and C#. The former two for the control they give me and the latter for its clean abstractions and well-designed high-level interface. However, I can't find a web language/platform that fits with the software developer mentality.<p>JSP is a mess from a deployment/compatibility/maintenance perspective and totally out of the question. Most of my previous web projects have been in PHP and IMHO there's no way to maintain it past a certain point and the language itself is a nightmare, regardless of how you design the project. Besides these two, I'm open to pretty much any and all suggestions.<p>I've dabbled with both Python and Perl though I'd be lying to myself if I claim to be well-enough versed in either to come to a conclusion regarding their use. ASP.NET is just beautiful... except I feel it tries to apply the desktop programming paradigm too literally onto web development, and you end up with an awkward templating system with a slightly-perverted MVC model.<p>Basically, I want to code the system right and make it future-maintainable. From years of coding experience, I know it's not possible to make anything perfect, but you can at least make something comfortable to maintain and fun to write.. so long as you have the right tools in hand.<p>Can anyone recommend a Python, Perl, C#, or even C++ web development framework that works well for developers coming from the desktop (with our OOP obsession, pointer-fiddling, and OCD optimization compulsions)? I've downloaded a couple of the more popular frameworks, but if I want to do it right, it'll way too long to try them all out and do them justice without rushing to conclusions... and I'm hoping someone here has had a similar experience of coming to the web development scene from desktop programming and has some tips to offer.<p>Thanks!
======
russell
I make my living in the Java based web world and I would not recommend it
because it is not nearly so programmer productive as other frameworks like
Django. I would expect the same would also be true of C#. You really want
something that you can use to get a site out quickly and revise just as
quickly.

If you go at it from a desktop C# point of view, you are probably going to
make a number of fatal mistakes. I did some job hunting recently in CA and I
came away with the feeling that the companies developing in that environment
are really not doing anything interesting. think there is a mindset in that
world that will hold you back.

My best advice is to pick Django or Pylons or Rails and do a 2 week code
sprint to implement a prototype of your idea. I think that will answer a lot
of your questions.

------
jawngee
You're thinking about the problem wrong.

You want the best language/framework for the job. If you think this idea is
going to be "big", then you need to think about what tools are going to
support this "big" idea best, not what is going to make you more comfortable.
Satisfying your laziness(comfort) is not necessarily going to satisfy getting
the problem solved in the quickest and most scalable way possible (scalable in
terms of cost outlay as well as potential performance).

The fact that you think ASP.NET is beautiful is worrisome, I have to say. That
you think it is MVC in some way is troublesome as well.

~~~
ComputerGuru
The "beautiful" part of ASP.NET is the C# and the .NET framework itself...
what I meant to say is I love the language and abhor the webforms :)

I don't think it's lazy to look for the hammer that fits best in your hand....
after all, if the hammer is too big for you to carry or too small for you to
handle, it doesn't matter how well-fit for the job it is because to the holder
it's quite useless :)

------
jccovey
If you like the syntax of C# and you're familiar with the .NET framework, you
should try out ASP.NET MVC. The MVC variant is a separate project from
traditional ASP.NET "webforms" and doesn't come with the latter's baggage.

<http://www.asp.net/mvc/>

------
ismarc
Considering you're looking at potentially big, and have systems development
experience, I'd suggest taking a look at Catalyst (it's perl,
<http://www.catalystframework.org/>). The way it's designed, you can use any
templating system you want (template toolkit, mason, etc.) and any DB backend
you want. I've used it for some small projects and for some large projects,
all with moderate success. Probably the best fit about it is that it doesn't
force your app into being written a specific way. Once you have your
foundation down, it's lightning quick for prototyping as well (and turning
those prototypes into the fully functional, scalable system).

