Page 1 of 2 12 LastLast
Results 1 to 10 of 20

Thread: Web Development Technologies

  1. #1
    Join Date
    Dec 2008
    Location
    Canada
    Beans
    8
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Web Development Technologies

    I'm currently working for a very small company (6 people in total) and am having difficulty making a decision, and hoped the wonderful community here might have a few suggestions.

    This company, although very well versed in design, is unfortunately somewhat lacking in development. My previous job had been for a software company developing banking software with strong emphasis on performance, stability and security. We built our web-based products in C++/ISAPI (and I did some ASP.net and very little Java).

    So, the previous developer at my current company had chosen to use a PHP framework called Seagull. While Seagull eventually proves beneficial for creating websites quickly (I say eventually because the documentation is pretty much useless IMHO), there are definitely huge fallbacks in the areas of performance, security and stability (and other areas, like being able to find someone willing to work in Seagull, for instance.)

    In the end, I think our choice of framework can drastically improve my work, and the ultimate quality of our product. What I need is something that is open source, can scale nicely between a small project and a large one, is easy/nice to develop in and can serve both small websites and large ones without it being choked, and preferebly someone has developed a CMS for it (with, if possible, SEO-friendly URLs and the ability to create content based on 'content types', but perhaps not necessary.)

    I've looked at the following and will list what I liked/didn't like:

    CakePHP - Seems very well written and thought out... unfortunately doesn't seem to perform very well. Out of the 2 CMSs I've seen made for it, one wasn't complete, and the other seemed like overkill (although compared to Seagull, its heavenly.)

    After CakePHP I kind of gave up on PHP entirely... it seems most frameworks don't offer enough functionality if they're to perform well in PHP, or offer a lot of functionality but at a pretty big cost to performance.

    Next I checked out Django... from a lot of the benchmarks I've seen, this project vastly outperforms any PHP-based framework. There do appear to be CMSs built for it that I can take advantage of as well, perhaps someone knows a particularly good one?

    I toyed with the option of a compiled language such as J2EE... but for the complexity involved in getting a project running with one developer, its probably not worth it (although I do enjoy the more C-based syntax and strongly-typed nature I don't think I'd enjoy much else about it... I feel its overkill, but feel free to correct me.)

    Those are the three main ones I checked out... currently I'm leaning towards Django, but am open to any and all suggestions. Would also love to hear how others are doing things at their companies, what languages and CMSs, how you feel it performs, security whatever other thoughts you may have.

    Any and all suggestions welcomed and truly appreciated!

    cufflinks

  2. #2
    Join Date
    Jun 2006
    Location
    CT, USA
    Beans
    5,267
    Distro
    Ubuntu 6.10 Edgy

    Re: Web Development Technologies

    Django would be a very good choice, especially compared to PHP. It gently nudges you towards clean MVC design, and Python as language is clean, easy to learn and easy to maintain.

    Yes, Python has some performance penalty over statically compiled languages like C++ or Java, but you should be more concerned about developer's productivity (which is about 5 times more using flexible dynamic languages, in my experience).

    Another framework worth considering is Turbogears (which is now based on Pylons). It is more flexible than Django. Django success is due to it's approach "one size fits all", and fits about 90% of average needs in a neat way, but once you need more flexibility in templating engine or O/R mapper, Django (by early decision) does not provide you choice, but simplicity and consistency.

    My advice would be to go with Django as far as you can go, and be ready to switch to TG if Dj does not fit your app.

  3. #3
    Join Date
    Dec 2007
    Location
    UK
    Beans
    571
    Distro
    Ubuntu 7.10 Gutsy Gibbon

    Re: Web Development Technologies

    I use Joomla at work. While I havent got experience with any other CMS (apart from wordpress), I have found Joomla really impressive. It has SEO friendly URL switch in the backend. There are also loads of useful extensions around for it. Generally if there something that needs doing I look for a suitable component, and if one does not exists then I come up with a solution myself. Joomla kind of loosely follows the MVC design pattern and if used correctly the framework provides good security and sanitiation. If you have a go at using it then its work checking out JRequest for dealing with request vars. Once you have the template and components you need putting up a site is a very rapid process. Like I said I cant compare it to Django, but I do know quite a lot of people that use Joomla professionally and they all like it a lot. So IMO its worth checking out.

  4. #4
    Join Date
    Dec 2008
    Location
    Canada
    Beans
    8
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Re: Web Development Technologies

    Thanks pmasiar,

    I agree my approach should be rapid development... however my concern must also be quality and reliability. Occasionally we do get large projects... and even though the client doesn't realise it, much of the problems we're facing right now with such projects is the fact that we're using Seagull (it is MVC to some extent at least, the 'model' part leaves a lot to be desired) which unfortunately performs horribly under even the slightest amount of stress.

    Obviously I've known this for quite some time, but the problem is, all of our previous projects having been written in Seagull, I'd rather have something that we can rely on for quite some time before needing to switch again. If you suggest Turbogears, and think I might end up switching there, is there a reason I shouldn't start out there? Also are you using a particular CMS for it that you could recommend?

  5. #5
    Join Date
    Dec 2008
    Location
    Canada
    Beans
    8
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Re: Web Development Technologies

    Thanks for the response mike_g,

    My one concern with Joomla is its performance... while I imagine its one of the better PHP projects, I can't imagine any PHP-based framework (with all the functionality I'd like to have) performing all that well (correct me if I'm wrong, I'd love to hear otherwise... would be a much easier switch). The other definite benefit is its integrated CMS (as I recall anyhow), and definitely a rapid development environment.

    However, if it can't perform well enough for larger sites, that means we'd probably have to have two solutions, a 'smaller site' solution and a larger site solution, most likely written in another language... and I imagine would be an absolute headache to maintain these different codebases.

  6. #6
    Join Date
    Jul 2008
    Beans
    1,491

    Re: Web Development Technologies

    It may be just me, of course, but if 'performance' is what you want you should not even be in webprogramming. If you've got a crappy internet connection, the Internet Delay is going to dwarf all performance issues on your program's side, but I digress.

    Now to be of slightly more help: I think if you want *real* performance you'd have to end up writing things out yourself. And please note that language isn't quite the issue: how many perfectly nice PHP or Python scripts beat the gazillions of sluggish ASP.NET or JSP corporate crap that feels like you're wading through a couple buckets of lime? Of course it is undoubtedly an unfair comparison; but you should note that my earlier remark about the Internet Delay rings true -- it takes the performance hit from miliseconds to seconds or even minutes.

  7. #7
    Join Date
    Dec 2008
    Location
    Canada
    Beans
    8
    Distro
    Ubuntu 8.10 Intrepid Ibex

    Re: Web Development Technologies

    You're right in a sense, but performance issues in web are actually a lot more apparent than in desktop applications (IMHO). For instance, a badly written desktop application will only affect the one user, if the user notices it at all.

    For web-based apps, a badly performing web app will affect everyone accessing your site... while the connection may be sufficient to handle all of your users, the bottleneck could very well turn out to be badly written code (as I've unfortunately experienced first hand with some of the projects my company has been involved in.)

    You're also right in that if I want really good performance, there's no reason I can't get it with PHP or pretty much any server-side technology out there... (provided I use a very minimalist framework, or none at all), but then the development time increases significantly... and I don't see why I can't find a 'middle way', where performance is quite good, but I also get good basic functionality and a rapid development environment. The problem I've been encountering is a very wide range of clients, with very different goals... from very small projects to relatively large ones, and the problems associated with using a framework that doesn't perform very well at all.

  8. #8
    Join Date
    Jun 2006
    Location
    CT, USA
    Beans
    5,267
    Distro
    Ubuntu 6.10 Edgy

    Re: Web Development Technologies

    Quote Originally Posted by cufflinks View Post
    however my concern must also be quality and reliability.
    how so, if you use PHP? PHP is **notorious** for messy apps.

    > Occasionally we do get large projects...

    If YouTube can run on Python, any of your app should be able to run with Python too

    Also are you using a particular CMS for it that you could recommend?
    I don't do CMS, but trivial google search suggests http://django-cms.org/ "free, BSD-licensed content management system for Django."

    BSD, so you can make own private changes without sharing them back. Life cannot get any easier than that!

  9. #9
    Join Date
    Mar 2008
    Location
    Prescott, AZ
    Beans
    62
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: Web Development Technologies

    I would suggest you look at Ruby on Rails. With a small programming team it will give you a good chance of really getting a usable system. There are implementation approaches that handle thousands of connections using a cluster if needed.

    YMMV

  10. #10
    Join Date
    Jan 2006
    Beans
    Hidden!
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: Web Development Technologies

    Quote Originally Posted by pmasiar View Post
    ...
    If YouTube can run on Python, any of your app should be able to run with Python too
    ...
    take the above idea and do the following:
    s/Youtube/Wikipedia/g
    s/Python/PHP/g

    If Wikipedia can run on PHP, any of your app should be able to run with PHP too

    NOTE: Mediawiki (the wiki engine powering Wikipedia and other Wikimedia wiki sites is written in PHP). Wikimedia has a total of 11 projects using mediawiki as the engine.

    PS: I am not a PHP proponent.
    I am infallible, you should know that by now.
    "My favorite language is call STAR. It's extremely concise. It has exactly one verb '*', which does exactly what I want at the moment." --Larry Wall
    (02:15:31 PM) ***TimToady and snake oil go way back...
    42 lines of Perl - SHI - Home Site

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •