"Best" web technology?



  • Hi. I don't want to start a flame war, but I would like to
    get people’s opinions on the best technology to use for developing a web
    application for my purposes. I have been reading the daily wtf for a while now
    and I figured that this might be a good place to get some opinions …



    I have a BS in CS and I am currently working for an IT consulting company, so I
    am not entirely new to programming. However, I don’t have as much experience in
    web programming as I would like in order to be able to make the decision as to
    which technology and/or platform would be best for the application I have in
    mind. I have a bit of experience with JSP and am currently working on a large
    project in ASP at work, and I have done a little bit of PHP (a few years ago).
    Bottom line is, I am not looking for a technology that will 'do the work' for
    me. I have a healthy disrespect for 'easy' programming, as I prefer to get down
    and dirty in the code myself. As a matter of fact, I hate it when a language or
    technology tries to make it 'easy' to program, as it often makes it a pain in
    the a** to do what I actually want to do.



    As far as my application goes, I don’t want to go into too much detail but I
    will be using a database backend (probably MySQL, though I am open to
    suggestions) with heavy server-side usage, reduced as much as possible by AJAX
    and any other client-side technologies I can use. Think of a MySpace-type of
    application, with dynamic user-defined content… I am pretty sure I want a
    compiled code-behind, not just inline code - I want my user interface separated
    from my business logic, and I don’t want statements like ‘if(whatever) print
    '<li>'.$something.'</li>'."\n"; in my code. Bottom line
    is, I want as much control over the application as I can while still
    maintaining separation between the html and the code, and without having to
    resort to writing everything in C heh. Any suggestions would be greatly
    appreciated.



    Thanks...



  • The best web technology available right now is .NET, hands down.



  • I'll throw my hat in for .net, too.  In my opinion you're missing out on a lot if you don't want to let the platform do the work for you.  It's more important that you know how to build an entire web project with Textpad and the command line tools than that you refuse to rely on the Visual Studio IDE at all.  You'll get the benefits of (excuse the cliche)rapid development, but you'll know how to fix it when it breaks.

    AJAX is one of those things you'll really, really want to let a framework handle for you.  I had to roll my own in ASP and Javascript, and sometimes I still wake up screaming.  I'll also second cw's remark on ASP.  We should get some sort of monument in a history of programming exhibit to commemorate our heroic efforts in the dark days of the web.

    As to your database backend, give SQL Express a look.  I can't personally testify for DB2 or Oracle Express, but I'd probably take a look at the "non-free" offerings, too.  Again seconding cw, free is what you make of it.

    Your preference for a compiled code-behind is easy to understand when you're contrasting it with inline code, but I'd probably open it up to say that you want clean development with all those nifty modern engineering concepts built-in.  I've been reading an Intro to Ruby on Rails article at the Reg, and I have to say I'm both impressed and depressed.  Impressed that it's so easy to start out with, and depressed that I had to slog through so much VBScript to do the same stuff less than 10 years ago.

    Oh yeah, and if I don't get another chance to say it, good luck with your project, whatever you end up using.  Unless it's ASP :P



  • @null said:

    Hi. I don't want to start a flame war, but I would like to
    get people’s opinions on the best technology to use for developing a web
    application for my purposes. I have been reading the daily wtf for a while now
    and I figured that this might be a good place to get some opinions …



    I have a BS in CS and I am currently working for an IT consulting company, so I
    am not entirely new to programming. However, I don’t have as much experience in
    web programming as I would like in order to be able to make the decision as to
    which technology and/or platform would be best for the application I have in
    mind. I have a bit of experience with JSP and am currently working on a large
    project in ASP at work, and I have done a little bit of PHP (a few years ago).
    Bottom line is, I am not looking for a technology that will 'do the work' for
    me. I have a healthy disrespect for 'easy' programming, as I prefer to get down
    and dirty in the code myself. As a matter of fact, I hate it when a language or
    technology tries to make it 'easy' to program, as it often makes it a pain in
    the a** to do what I actually want to do.



    As far as my application goes, I don’t want to go into too much detail but I
    will be using a database backend (probably MySQL, though I am open to
    suggestions) with heavy server-side usage, reduced as much as possible by AJAX
    and any other client-side technologies I can use. Think of a MySpace-type of
    application, with dynamic user-defined content… I am pretty sure I want a
    compiled code-behind, not just inline code - I want my user interface separated
    from my business logic, and I don’t want statements like ‘if(whatever) print
    '<li>'.$something.'</li>'."\n"; in my code. Bottom line
    is, I want as much control over the application as I can while still
    maintaining separation between the html and the code, and without having to
    resort to writing everything in C heh. Any suggestions would be greatly
    appreciated.



    Thanks...

    I'd suggest either Django (a Python framework with a strong emphasis on "business-type" websites that, among others, includes a life saver admin interface creation framework) or Ruby + Rails. If you know either Python or Ruby pick the framework that goes with it, if you want to forbid inline code go with Django (django's default templating language is designer-oriented, extremely simple and clear but with very low power while Ruby defaults to Erb, which is basically embedding full blown ruby code into your templates, which can lead to abuses).

    Both work greatly in an MVC/Code Behind environment, the languages and frameworks are clear and high quality, both are fairly flexible (Django more than Rails, if you don't like "the rails way" with RoR then you're fucked) and have very strong caching support. Django has a better base documentation (Rails nearly requires the Rails book) but less buzz and a somewhat less active community, Rails has had lots of improvements lately especially in the deployment and performances area (resp. with Capistrano and Mongrel), I think Django has a slightly better caching structure.

    Anyway, both frameworks are very good and -- more importantly -- fun to work with



  • I'll stay out of the discussion of front end and middle tier discussion other than to note that the technologies used for those architectures are in a state of flux. It's hard to tell what the "best" product is going to be in 5 years, and even the question of what will still be "popular" is hard to answer.

    On the back end, though, the choices are pretty clear, and are likely to be stable for years. Here's my take:

    • MySQL is actually a collection of products of various degrees of sophistication and cost. The product most people mean by "MySQL" is not a DBMS, but a file manager, and is not appropriate for a system as complex as MySpace. The Cadillac MySQL product, InnoDB, was robust enough to run Yahoo (while it was small), but was bought by Oracle Corp and is now proprietary.
    • PostgreSQL is the frontrunner in Open Source DBMSes. It has the most DBMS features of any free ones, and is modeled on Oracle, which gives you an upgrade path and a huge labor pool to draw on.
    • Some other free or Open Source DBMSes are interesting and may be attractive to niche markets. Firebird looks the most cool to me.
    • Oracle is where you'll end up if you want a largish (500+ tables/ 100m+ rows) database and do a competitive analysis based on total cost of ownership. Most developers will argue about that, but trust me :)
    To me, it is a clear choice: PostgreSQL for small databases, Oracle for large ones. There are factors that could swing my vote, but I've never encountered them. If I worked for Microsoft, that would be a mitigating factor.

    When you're pricing technology, don't forget to factor in labor. That is why, for example, the expensive DBMSes can be cheaper than the free ones. If the only Firebird DBAs cost $200/hour and have to be flown in from Silicon Valley, you probably wanted something else.



  • @CPound said:

    The best web technology available right now is .NET, hands down.

    I agree 100%. 

     I do everything in ASP.Net and SQL Server, and I haven't had any trouble with it.



  • <FONT face=Arial>I'll throw my vote in for ASP.NET as well.</FONT>

    <FONT face=Arial>My work deals with a mixture of JSP/ASP/ASP.NET, and I have done some PHP on my own.</FONT>

    <FONT face=Arial>ASP.NET provides good MVC seperation while still being easy.  And it doesn't isolate you form the code, either.</FONT>



  • @RyuO said:

    It's hard to tell what the "best" product is going to be in 5 years,

    More the 5 years later it still is hard too tell


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.