I probably should have mentioned that I am a programmer, mostly Python, but have work experience in Java and am capable with JS/HTML/CSS (and have knowledge of or am somewhat capable in Scheme and C).
Problematic is the fact that I don't have a grasp on database software or security and I dislike the idea of using Django, partially because I don't want to think in Django. I'd almost like to write in Scheme, if Python didn't (a) come more naturally, having written much more code in it (b) seem to have more libraries etc... (c) I have formal education in Python, and I still don't have a solid grasp on where call/cc would be used in a program, which signals to me that I'm not ready to use Scheme.
I'm also decent with sysadmin tools, by no means an expert, but I can use bash and I can script a bit.
So yes and no?
I'm all for the agile approach. I'd like to open with a bang, though. I'm thinking a designer?
2. I suppose I do just need to step into the game. Now. The advice I hear but selectively ignore is "just do it."
Here's the thing with call/cc: it's a powerful but low-level operator. It can be used for example to implement throwing and catching exceptions, or generators like Python's yield. However, once you've implemented generators or exception handling, then you'd use "throw" and "catch" and "yield" directly instead of calling call/cc to do those things. So when you say "when would I use call/cc in a program", it would be for some situation that doesn't already have an implementation for it, which is probably pretty rare when most of the things that you'd use call/cc for are already implemented.
If you're interested in web programming with Scheme, I suggest taking a look at Arc (http://arclanguage.org/) which is (I find) a very pleasant language to program in and useful for basic web apps.
For the first iteration of your application, keep it as simple as you can. Don't use a complicated framework if you don't need to. Don't store your data in a database if you can simply store it in files. There's plenty of time later to say "ah, this piece needs to be faster" and move that bit into a database or whatever. By then you'll know what you actually need, instead of vaguely guessing and spending a lot of time to store all your data in a database in the hope that it will turn out to what you need.
While I suggest taking a look at Arc since it sounds like you'd be interested, I'm also guessing that Python is most likely going to be your best choice because it is a lot more mature, it does have a lot more libraries, and you already know it. But look for a way to do your project simply. Don't go off and use a complicated framework that has object-relational mapping and templates and junk if you don't need that stuff now.
I've checked out Arc before, and it looks pretty neat. Perhaps it could handle some of the "simpler" part of the application, and I let Python handle some of the more intense server-side implementation. Would that be unwise – combining two (similar) languages in one app?
Thanks for the advice! It sounds as though I need to just get a version 1 out there, ASAP.
A problem with my idea is that it requires some pretty intense sysadmin knowledge, and my big stumbling block is either learning more about all that, or bringing in a partner.
Another issue, perhaps you've got suggestions regarding it, is security. How do I go about handling that? Passwords, information, etc?
Find some simple Python libraries to use, and going all Python is probably best. Combining Arc and Python would be a fun project but would distract you from getting version 1 done :-)
System administration is tedious but not very hard to learn. An advantage of doing it yourself is that when you need to do some minor tweak you can just do it and not interrupt your flow, instead of emailing some guy who does it the next day but it isn't quite right so now you've been stuck for two days and then he's had some important emergency so he can't get back to you right now... For help with system administrations issues you can ask questions over at http://serverfault.com/ if you get stuck on something.
Security is figuring out that you don't want people to be able to do X, Y, and Z and then making sure that they can't do X, Y, and Z. The simpler your system is, the easier it is for you to check. Which is another reason to avoid complicated software that you don't need.
For passwords specifically, for version 1 just do something very simple. Use OpenID if it won't confuse your users and you won't have to store passwords at all, or just collect the usual username/password and stick it in a simple file on your server. Then as you get going you can come back and take another look, but don't get hung up on it for now.
I probably should have mentioned that I am a programmer, mostly Python, but have work experience in Java and am capable with JS/HTML/CSS (and have knowledge of or am somewhat capable in Scheme and C).
Problematic is the fact that I don't have a grasp on database software or security and I dislike the idea of using Django, partially because I don't want to think in Django. I'd almost like to write in Scheme, if Python didn't (a) come more naturally, having written much more code in it (b) seem to have more libraries etc... (c) I have formal education in Python, and I still don't have a solid grasp on where call/cc would be used in a program, which signals to me that I'm not ready to use Scheme.
I'm also decent with sysadmin tools, by no means an expert, but I can use bash and I can script a bit.
So yes and no?
I'm all for the agile approach. I'd like to open with a bang, though. I'm thinking a designer?
2. I suppose I do just need to step into the game. Now. The advice I hear but selectively ignore is "just do it."
1. ?
Thanks!