
Looking to choose a language & framework-- - aresnick

======
willarson
Well, that list of ideas is pretty surreal. Saying that, I have personally
really liked Django. The biggest thing going for it is the ease with which you
can get started and make something fairly impressive (I find RoR, in
comparison, more intimidating and more magical). Also, the source is very
readable (always a plus when you start pushing the limits of your framework).

Something like dynamically generating content on a per user basis is a breeze
with Django, they have fantastic user and session support straight out of the
box. The public site design would also be doable, but probably a lot of work
to keep it from being a security disaster.

Your AI and Spiders could be separate Python processes, so that would be
doable. The Online CAD/drawing stuff I don't have anything on, but you could
probably integrate a flash or ajax library to do it without too much trouble.
Also Django scales easily with great built in caching support.

Feel free to email me any questions.

Also, all the things you want _can_ be done in any framework, its just that
it'll be far more painful in some than others. I'd focus on looking at
frameworks with preexisting libraries or modules you can use to create your
functionality instead of having to build it all from scratch.

~~~
aresnick
"is pretty surreal. . ." --tell me about it =) Frankly, I think it's too many
features. We've a prioritized development schedule based on user input, and I
expect that we'll find that the site becomes what we want/need at around
1/3-1/2 of these features.

That's good to hear, about Django, given the prominence of user/session
support in our plans. Public site design is frankly a secondary concern: I
think a template system will be more than enough. But, I figured I'd throw it
out there.

We've already rolled a simple CAD/drawing app via the element, and I expect
that to be more than sufficient.

Thanks a bunch for your input! I'll be sure to be in contact as we proceed.

------
aresnick
So I'm developing a web application involving "socially" networking elements
created by users. But, I'm a novice [when it comes to web programming].

I'm getting to the point where I'd like to choose a language/framework. I'm OK
(in fact, I prefer) trying options out and switching flexibly before settling
down on a choice, but I thought I might get some feedback from some people who
know what they're talking about.

Some goals (both long- and short-term) central to my plans that I think might
influence my choice include: -Lots of user/database interface and editing via
gorgeous graph/node visualization -Easy web site template authoring (read:
visual/drag & drop elements, no/minimal coding required of user) -Integration
of version control (of web pages) -Fairly sophisticated AI performed on the
backend for resource matching and knowledge representation -Enabling for
public editing of HTML and site design -Online CAD/drawing tool (probably via
) -Acute, application-level awareness of user profile/information in what/how
pages and information is displayed as users browse (read: dynamically generate
and display content per user) -Web spidering/pulling and reusing content from
the web

After shopping around, I've been primarily considering Python (Pylons; Django)
and WebObjects/Project Wonder.

Thoughts? Recommendations? Are these goals _actually_ constraints on what
language/framework I choose? What are the more generic features of the
language/framework that I should paying attention to, given my goals?

------
tx
I'm currently with RoR and while I _love_ Ruby language I feel that RoR, while
being super-productive for basic things, forces me to dig deep into its own
(not very readable) source code to figure out non-trivial things that are not
mentioned anywhere in the documentation.

And looking at Rails code, I find that often DHH overuses Ruby dynamism
without practical benefits. Look at Rails::Initializer class and how it starts
the application and handles configuration: lots of dynamism and supposed
flexibility, but yet there is no simple way to access the active instance of
Configuration object from arbitrary place in your Rails application, which is
(to me) seems like a first thing anyone would expect from configuration.

Another example is suppressing previously rendered output (in ActionView).
"Official" documentation does not mention those methods, I found them (yet
again) by drilling through Rails code.

Finally, I am not impressed with Rails session support. With a framework so
powerful and "magical" I still need to _manually_ deal with cookies and
session data, because there is very weak control over session expiration
mechanism in Rails.

Having said all that, I still enjoy developing with RoR w-w-a-a-a-ay more than
Microsoft's "WinForms on the web" approach in .NET, and Ruby is really fun.

~~~
felipe
Jboss Seam introduced a very interesting concept to deal with sessions called
"conversations": <http://www.jboss.com/products/seam>

Like sessions, conversation objects live across page requests, but die after a
given action or event. A Conversation is a mid-ground between a session (long-
lived) and a page request (short-lived).

Seam also offers good support for dealing with the session scope: All you need
to do is to basically say "hold this object in the session scope" and Seam
manages it for you. No cookies or manual session handling (unless you want to)

------
ragav
I'm a web novice too so take my advice as such .. My requirements are similar
to yours, backend ANN's and frontend graph visualization.

I'd go with whatever you currently feel most comfortable with. Getting the
first version out there in the fastest way possible will give you a chance to
judge feasibility and traction.

The minor differences between current popular languages and frameworks will
the least of the problems in getting the app up and running (and honestly
inspite of all the wars they don't matter all that much)

As for me I'm using ROR/C++/Javascript.

