5 ms·
You say that like it's a failure on the devs' part, but that's kind of like blaming regular users for not switching to Linux because they don't like editing net
by mnutt 15y ago
You say that like it's a failure on the devs' part, but that's kind of like blaming regular users for not switching to Linux because they don't like editing network configuration files.* It's masking the problem that there are real developer-friendliness issues with the existing databases. And taunting users will not get them to switch back.
* but then Linux distros get network autoconfiguration and suddenly it's obvious that it was the right solution all along.
- ehthere 15y agoEvery major RDBMS has both command-line and GUI interfaces to create and change schemas. What exactly is missing in the dev-friendlyness department?
- LeafStorm 15y agoThe effort required to get something like Postgres running in the first place. With Redis and CouchDB, it's juts `sudo pacman -S redis|couchdb`, maybe edit the config file, `sudo rc.d start redis|couchdb`. With Postgres you have to create databases, users, etc. etc. While all this stuff is critical in production, it's really not something that you should have to do to just code some stuff.
- nakkiel 15y agoWell, this is completely bogus. Setting up a new user on PostgreSQL takes me roughly 30 seconds. Now if you use the stock system-db user mapping for dev environment, it's something you do only when you install your system. Mine has been installed for 3 years now.
- mnutt 15y agoThe parent is referring to a new user trying to set up postgres. And in the above Linux networking example, this response is analogous to the person who says "But I wrote my own scripts to fix my ethernet configuration, I don't see what the big deal is!" Edit: That came off a bit harsh. I just don't think the fact that it's not a hassle for us means it's not a hassle for other people. And I don't think that mongo's easy configuration means that it should be used over postgres in all cases, just that postgres should take notice that people like mongo's easy configuration and step up their game in that department.
- einhverfr 15y agoyum install postgresql-server service postgresql initdb service postgresql start sudo -u postgres psql ..... postgres=#..... If all you are doing is writing code, that's sufficient on an rpm based platform. On Debian, use apt-get instead. On Windows use the 1 click installer. PostgreSQL comes with a default user and a default database, so the criticism on this thread is a bit..... incorrect. Now it is true you have to set up a system user if you are compiling PostgreSQL from source. However, that's really optional in most cases unless the code you are writing is, well, a patch to PostgreSQL.......
- nakkiel 15y agoExactly what I meant. In debian, there is no "initdb" step and the daemon is started when it's installed. Anyway, people who call themselves ops or devs ought to be able to do that sort of 3 lines operations. As I said before, it happens once in your product's dev/op lifetime.
- nakkiel 15y agoIt didn't came harsh. I use no script whatsoever and the complication . For a dev environment, I go like this: $ sudo su - postgres $ createuser -s nakkiel And again, no further operation is required until you install a new OS on your machine. I really think we're missing the point anyway. The complicated things, and Mongo's advantage, only really come later when it's time to create a database and tables and columns and indexes..
- jeffdavis 15y agoDo you have any specific suggestions? Postgres installs with a default superuser ("postgres" on ubuntu) and a default database (also "postgres"), so that's not the real problem. Installing software via a package system is trivial and required for any system, so that can't be the issue. The package distribution invariably chooses a default location for your data and initializes it, so that requires no additional effort at all. You have to start and stop the service, but the package distribution should make that trivial, as well ("service postgresql start|stop" on ubuntu). And again, I don't see any difference here. So the only possible area I see for problems is connecting your first time. This is somewhat of an issue for any network service, because you need to prevent anyone with your IP from connecting as superuser. The way ubuntu solves this is by allowing local connections to postgres if the system username matches the database username. So, you have to "su" to the user "postgres", and then do "psql postgres". Now you're in as superuser. The default "postgres" superuser doesn't have a password (default passwords are bad) and only users with a password can connect over the network. But, you can add a password (which then allows that user to connect over a network), or create new users. If the new username matches a system username, that user can connect locally. If you gave the new user a password, they can connect over a network. Do you see any fat in the above process that can be streamlined without some horrible side-effect (like allowing anyone with your IP to connect as superuser)? I'm serious here -- if you do see room for improvement, I really, really, really, want to hear what the sticking point is so that it can be fixed.
- absconditus 15y agoThis is exactly why I do not believe that what we do is engineering. Engineers do not refuse to use proven techniques and technologies because they are "too hard" and instead use easier methods that have serious shortcomings.
- nakkiel 15y agoHow about the freedom/need to experiment? If MongoDB is popular, it's because it has some compelling features/arguments (I'm not sure of which ones exactly). But classical RDBMS seem to be trying to close the gap.
- Detrus 15y agoIf you're taking your time to design some important large scale system, using proven technologies is easier overall with higher up front costs. Prototypes are another story. You'd optimize against mental overhead.