PostgreSQL vs. MS SQL Server - <AUTHOR> http://www.pg-versus-ms.com/ <comment><USER3> Previous discussions: [https://news.ycombinator.com/item?id=8615320](https://news.ycombinator.com/item?id=8615320)

</comment><comment><USER4> The last time this article came up the consensus was that the author was pretty biased towards Postgres and had little to no experience with actual MS SQL Server use.

Also, the lack of author identity was frowned upon.

Lastly, the conjecture and attitude towards Microsoft lacks some substance.

Conclusion: The author is free to write whatever he likes, but take this resource with a pinch of salt.

I use both Postgres and MS SQL Server professionally and whilst philosophically I prefer Postgres, for practical reasons I truly prefer MS SQL Server, if only because of its excellent development tools.

<comment><USER5> > _The last time this article came up the consensus was that the author was > pretty biased towards Postgres and had little to no experience with actual > MS SQL Server use. Also, the lack of author identity was frowned upon. > Lastly, the conjecture and attitude towards Microsoft lacks some substance._

So there was not any substancial critique and responce to the specific points he makes?

<comment><USER6> There was ample breakdown of the article and lots of credible resources pointing towards places he was wrong.

</comment></comment></comment><comment><USER7> I've been SQL Server user for many years. And for last two years I started also using PostgreSQL. Today I use both of them in my project, and as a developer/dba I see pros and cons:

MS SQL: \- The tools included like Management Studio are just great. This is totally next level to the Postgres tools. \- Using multiple CPU cores for a single query is really helpfull in my scenario. \- Easy continous backup to the cloud. \- Included Integration Services, Analysis services are also easy and enugh for my usage.

Postgres: \- Is running on linux, to it's cheaper. Even when we use SQL Server as Bizspark (for free now), the Azure Windows VM for it costs us much more, than VM with Linux. And of course when we want to cluster our DB, Postgres is even cheaper. \- Great JSON support. There are parts of our project where it's helpfull. \- Better configurability, like WAL, checkpoints etc. We have much better write performance on postgres than in sql server (probably just our case).

The other things really do not much difference. Both DB's can be extended, and extensions may be written in many languages. Both achieve great overall performance, both have strong community and a lot of documentation.

<comment><USER8> The write performance comes down to lack of clustered indexes on PostgreSQL.

So yeah, it'll have better INSERT performance, but the queries will be slower. There's really no way around that. A large data set on disk that's out of order will always be slower than the one that's in-order.

IMO MSSQL makes the right call for the vast majority of use-cases.

PostgreSQL has -no- materialized views (I stand corrected! Introduced in v9.3). No view update support. No partitioned view support. No sane backup/restore process. It's a great database if your primary concern is licensing cost. But if your primary concern is operational cost and even just multi-gigabyte data sets it's really frustratingly rudimentary compared to what MSSQL delivered over a decade ago.

But that's just me. It's free. And I'm thankful for that. I just find it really frustrating that PostgreSQL supports querying on JSON, but doesn't support backing up and restoring the database in binary format.

<comment><USER9> > No view update support

9.3

> No partitioned view support

Inheritance (ish)

> No sane backup/restore process

wat

> doesn't support backing up and restoring the database in binary format

[http://www.postgresql.org/docs/9.4/static/app- pgbasebackup.h...](http://www.postgresql.org/docs/9.4/static/app- pgbasebackup.html) is half of what you want, but I expect you're wanting something I don't expect.

<comment><USER8> I want to be able to say: BACKUP clientdb_a, get a clientdb_a.bak file, and be able to restore it without statement generation.

Which seems like a reasonable baseline expectation if you were to ask a lay- person what they'd imagine a database backup to be. pgbasebackup can't do that without some serious constraints (like, you only have a single database in your PGDATA).

</comment></comment></comment></comment><comment><USER10> If I was going to pick a relational database system, I'm not sure these would be the criteria I'd use:

CSV support - if you do that much CSV extract/transform/load (or indeed, any kind of ETL work), use an ETL tool. SQL Server comes with SQL Server Integration Services for that kind of thing.

Ergonomics of dropping and creating tables and stored procedures - <USER2> author's example is probably the toughest way I can think of to drop a table. It's easier to check sys.all_objects (which will catch anything - functions, views, procs, etc).

Operating system choice - well, in 2015, if you're going to mention that, you should be thinking cloud services anyway. They're both available in the cloud - and at which point, who cares what OS it runs on?

Goes on and on. I'm a SQL Server guy, and if I was going to make a list of how to choose a relational database platform, here's what I'd probably list:

* Up-front cost (license, maintenance)

* Ease of finding staff, and their costs

* Ease of finding tooling, and its cost

* Ease of finding scalable patterns (proven ways to grow it)

I don't think either platform is a loser on those counts - it's hard to go wrong with either one.

<comment><USER11> I mean you have a point on the OS, being in the cloud is a definite bonus. However caring what OS it's running on comes down to something he was brief about in his article. For me, I can manage an Linux server no issue with just a bash prompt, I can't honestly say the same about a Windows Server. Other people might argue Apache and running that on a Windows server is kind of pointless? I don't know, just spit-balling that one.

Obviously Windows would be IIS, which means overall the OS choice is a nice one. The fact that you can choose which one to host with, which means you get something comfortable.

<comment><USER10> > For me, I can manage an Linux server no issue with just a bash prompt, I > can't honestly say the same about a Windows Server.

Have you seen Windows Core and PowerShell? An increasing number of admins are doing just that - it's how we work at Stack Overflow, for example.

<comment><USER12> Oh, do you work for SO Brent?

<comment><USER10> > Oh, do you work for SO Brent?

I just do SQL Server consulting for 'em from time to time. They're ridiculously sharp guys, so they don't need me much anymore.

</comment></comment></comment></comment></comment><comment><USER13> _The whole thing took about a minute to write and a second to run. It confirmed that some of his folders had a problem and told him which ones they were. How would you do this in Windows?_

I'm so tired of this. Just because you don't already know Powershell and are too lazy to learn doesn't mean it doesn't exist. A know-nothing Windows user might as well say, "If I want to select and move arbitrary files on Windows, I can point and control-click in seconds. How would you do that in the Linux CLI?" In both instances, it comes across as ignorant to anyone who actually knows the ecosystem being derided.

<comment><USER14> I work in the Windows sphere at work and I really like Powershell. It has a ton of great features out of the box (especially for parallelism) as well as solid bread and butter operations. Although it's a bit verbose and not as mature as Bash it's essential to know for any Windows developer.

</comment></comment><comment><USER15> > In MS SQL Server, a CREATE PROCEDURE statement cannot appear halfway through > a batch of SQL statements. There's no good reason for this, it's just an > arbitrary limitation. It means that extra manual steps are often required to > execute a large batch of SQL. Manual steps increase risk and reduce > efficiency.

It's been a while, but I am pretty sure all you have to do is put GO before/after the CREATE PROCEDURE. I'm absolutely positive there's some way around it, because I've run many, many such scripts on SQL Server without manual intervention.

EDIT: Yes, I just fired up a VM and ran this and got the expected results with no errors.

CREATE DATABASE HackerNews;

CREATE TABLE dbo.Test (id int IDENTITY(1, 1), name varchar(20));

GO

INSERT INTO dbo.Test (name) VALUES ('Amezarak');

GO

CREATE PROCEDURE dbo.sp_QueryTest AS SELECT * FROM dbo.Test;

GO

EXEC dbo.sp_QueryTest

In my personal opinion, MSSQL (including the tooling around it) is awesome and possibly one of Microsoft's best products. I actually regret not getting to use it anymore since a) my current job doesn't use it and b) I'm not shelling out for a license for my side projects. Postgres is definitely my next pick, though, and both are miles ahead of MySQL. I understand that MySQL is "good enough" for most people, but it's always painful going back to it and inevitably remembering almost all my favorite features don't exist. I'm stuck with it on a side project and it's frustrating.

<comment><USER16> The GO statement is an artifact of SQL Server Management Studio. It's not an actual T-SQL construct. So if you are executing scripts in an automated way (like a continuous deployment scenario), you have to have some way to manually split up the batches.

<comment><USER15> GO is also recognized by sqlcmd, so you're (potentially) still good with automation. I did actually run the above script in SSMS, but I ran most of the ones at my old job automated.

<comment><USER12> You wouldn't perchance know a good online resource for recommendations on automating SQL Server deployments would you? Yes, you can google and piece things together, but I've yet to find a well written fairly comprehensive resource. (As the author notes, one would think perhaps MS would provide such documentation, but afaik they don't.)

<comment><USER16> It's all on MSDN, somewhere. TFA was incorrect that there isn't documentation available on SQL Server and T-SQL, but it's incredibly well documented, it's just MSDN's typical terrible discoverability.

</comment></comment></comment></comment></comment><comment><USER17> This website is great. However, this doesn't actually touch on the real issue.

I work at a MSSQL shop, and all of us know and are convinced that PG is better. Most of us use PG for our side projects and some of the dev's don't even use windows that much, with some custom MSSQL plugins we've built for linux. However, the problem still exists, of how do you port a ton of Databases over to Postgres? We're a multi-tenancy shop, so close to zero downtime is very important, and it would get really complicated if we ran multiple production versions of our app, one with a PG adapter and one with a MSSQL adapter.

A cursory Google search will show that you aren't going to get a ton of help converting them[0][1], not to mention the overhead of switching 20 developers from MSSQL to PG overnight.

This website is however excellent at convincing people to use PG over MSSQL. Perhaps, given the direction that Microsoft is going, they'll open source MSSQL overnight and it will become something competitively similar to PG in the long run.

[0] [http://www.convert-in.com/mss2pgs.htm](http://www.convert- in.com/mss2pgs.htm)

[1] [https://wiki.postgresql.org/wiki/Microsoft_SQL_Server_to_Pos...](https://wiki.postgresql.org/wiki/Microsoft_SQL_Server_to_PostgreSQL_Migration_by_Ian_Harding)

<comment><USER8> PostgreSQL doesn't have clustered indexes, materialized views, partitioned views, or a sane backup/restore procedure.

If you're _already_ a licensed MSSQL customer, I'm not sure what advantages PostgreSQL could really have compared to it's slower performance and much higher operational costs.

<comment><USER18> Postgres absolutely has materialized views (I don't know what makes a backup / restore procedure "sane", but having had to do it for both SQL Server and Postgres I would definitely call Postgres's "saner").

<comment><USER8> re: Materialized Views: I stand corrected! Thanks. (CREATE MATERIALIZED VIEW was introduced in v9.3)

The backup/restore procedure in PostgreSQL (last I looked, latest I've used is 9.2) is just statement generation. It's not a binary backup. So it's bound by INSERT performance.

Which is rage inducing when you have even just tens of millions of rows.

MSSQL'97 could do a backup/restore in a small fraction of the time. And if you just wanted to move data from Server A to Server B? You could link servers and just SELECT INTO.

<comment><USER19> No clustered index? What about CLUSTER?

[http://www.postgresql.org/docs/9.4/static/sql- cluster.html](http://www.postgresql.org/docs/9.4/static/sql-cluster.html)

CLUSTER instructs PostgreSQL to cluster the table specified by table_name based on the index specified by index_name. The index must already have been defined on table_name.

When a table is clustered, it is physically reordered based on the index information. Clustering is a one-time operation: when the table is subsequently updated, the changes are not clustered. That is, no attempt is made to store new or updated rows according to their index order. (If one wishes, one can periodically recluster by issuing the command again. Also, setting the table's FILLFACTOR storage parameter to less than 100% can aid in preserving cluster ordering during updates, since updated rows are kept on the same page if enough space is available there.)

When a table is clustered, PostgreSQL remembers which index it was clustered by. The form CLUSTER table_name reclusters the table using the same index as before. You can also use the CLUSTER or SET WITHOUT CLUSTER forms of ALTER TABLE to set the index to be used for future cluster operations, or to clear any previous setting.

<comment><USER8> Yes you can manually re-order a table, with locking, but that's really not the same thing as enforcing in on INSERT/UPDATE.

<comment><USER18> Clustered index is something it would be nice for Postgres to have, but it would be a _lot_ of work to implement and it's certainly not always a performance win. Looking up by that index is very fast, but looking up by a secondary index may have to traverse a second btree (it cannot point directly at data on disk because its location is tied to the clustered index). And of course there's quite a bit of overhead for transactions and modification operations.

In practice, you can recover many of the advantages of clustered indexes in PostgreSQL (along with the disadvantages) with a covering index eligible for [https://wiki.postgresql.org/wiki/Index- only_scans](https://wiki.postgresql.org/wiki/Index-only_scans).

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Can someone explain this one to me?

PostgreSQL supports the RETURNING clause, allowing UPDATE, INSERT and DELETE statements to return values from affected rows. This is elegant and useful. MS SQL Server has the OUTPUT clause, which requires a separate table variable definition to function. This is clunky and inconvenient and forces a programmer to create and maintain unnecessary boilerplate code.

So I have the equivalent of the following in one of my projects:

        UPDATE sometable SET someField = @parameter
        OUTPUT Inserted.field1, Inserted.field2
        WHERE ...

Now, either I don't get the limitation the author describes or SQL Server can do that - returning information from the affected results. Works with DELETE as well. We can argue that 'inserted' is a crappy name here, but..

<comment><USER21> As a long-time SQL Server (and C#/.Net) developer, I can say that while SQL Server is a great database engine, TSQL is perhaps the worst language ever invented.

Between the overloading of "WITH" to seemingly every new feature they add, to the way semicolon terminators are only sometimes required (so I just automatically start all CTE declarations as ";WITH" to be sure it works), to the ways they break encapsulation by incorrectly scoping cursor names and limiting INSERT...EXEC so that it can't be nested, programming it at an advanced level is an acquired taste at best.

<comment><USER20> But that's not the point of this subthread. I wouldn't consider myself as a fan of SQL Server (or TSQL for that matter). I am not defending it.

1) I asked about a specific thing in the article. I think the author is wrong.

2) If 1 holds true I think that the article might be questionable - at least I don't trust the rest now. I am no expert on All Things SQL Server and if I spot a flawed point as a random dev in something that was supposedly written by someone working with databases for a decade [1], maybe people that actually know a lot more spot .. more flaws.

1: I'm a dev for longer than that and certainly know my way around sql and databases, but focus matters. The author claims "I know a fair bit about these things" and considers databases his main area of expertise it seems.

</comment></comment></comment><comment><USER22> As somebody working on postgres, I don't find the comparison to be done in a particularly fair, or helpful, way. MSSQL is a pretty good database and deserves to be fairly evaluated.

Don't get me wrong, I have 'political' problems with MSSQL, but those shouldn't be disguised as technical ones.

</comment><comment><USER16> I get the feeling this guy hasn't had to deal with CSV in-the-wild. RFC4180 is a false prophet. I've never had a client give me CSV data that was actual, good CSV, thus I've always had to write a custom parser. Every. Single. Time.

Well, not anymore. Now I just refuse to do shit. "We can't change it" turns into "we contacted the original developer and made him fix his broken shit" when I turn into a complete pain in the ass.

</comment><comment><USER23> Postgres is better than SQL Server because with Postgres I always have the "awesome edition" : [http://blog.codinghorror.com/oh-you-wanted-awesome- edition/](http://blog.codinghorror.com/oh-you-wanted-awesome-edition/)

And I don't need a certification to understand the crazy MS licensing (I discovered recently that yes there is a MS certification program for their licenses as it's so byzantine).

<comment><USER24> I remember Jeff Atwood talking about this in a Stackoverflow podcast. With Postgres or other free software, you not only don't have to lay out cash, you also don't have to spend time trying to understand arcane licensing rules. (And worrying that you might have violated one of them.) Whether the time (and time is money) saved balances out the cost of the software when the commercial product offers better functionality will vary with the situation.

For what it's worth, Atwood chose Postgres for his Discourse product. The FAQ says the product is "Uncompromisingly open source." And "There is only one version of Discourse--the awesome version. There's no super secret special paid commercial version with better or more complete features."

</comment></comment><comment><USER16> >> PostgreSQL supports DROP SCHEMA CASCADE, which drops a schema and all the database objects inside it. This is very, very important for a robust analytics delivery methodology, where tear-down-and-rebuild is the underlying principle of repeatable, auditable, collaborative analytics work.

Actually, if you drop the constraints first, you don't have to worry about the table-drop order. I do that on both Postgres and SQL Server, because I use a tool that generates the specific scripts for me.

I don't think manually writing DDL scripts is any way to manage an RDBMS in the modern era, especially if you care about "repeatability and auditability" like he claims.

Queries, yes, but schema constructs, no. SQL is just a terrible language for it. I'm not saying you have to use a full ORM, but every SQL engine I've ever encountered will let you do a lot of nutty things and won't complain about it, or won't complain until you actually try to query it.

</comment><comment><USER25> When developing on a Microsoft stack with Visual Studio, I have always found SQL Server to be the most painless DB system. You can't beat the Visual Studio integration and tools. Also, their SQL Server drivers for .NET do a bunch of transparent optimizations like automatic connection pooling behind the scenes so you don't have to worry about this kind of thing.

OTOH, when not on a Microsoft stack, it has been a constant source of hard to track down problems and bugs. I remember trying to use Microsoft's JDBC driver a few years ago in a Java web app and running into all kinds of nasty and unbelievable bugs in the actual driver they shipped.

</comment><comment><USER26> Sigh. It's about as profound as writing an article on whether Linux vs Windows -- which one is a better OS? I skimmed the article for some reason and it is full of questionable statements. One thing that jumped out at me is the part about using multiple cores to run a query. We are in 2015 ladies and gentlemen. A RDBMS must be able to parallelize queries. Argument about never being CPU bound is laughable. I am, as we speak, running a performance test on a 36 core box and I already know the result: I NEED MORE CORES. Analytics is moving into SSD world, where data processing will be CPU bound once again.

</comment><comment><USER27> It took a while, but he got there (emphasis mine):

>This is an advantage for MS SQL Server whenever you're running a query which is CPU-bound and not IO-bound. In real-life data analytics this happens approximately once every three blue moons. On those very rare, very specific occasions when CPU power is truly the bottleneck, you almost certainly should be using something other than an RDBMS. _RDBMSes are not for number crunching._

As a data analyst, the tools to be comparing shouldn't be RDBMSs.

>As I said in the banner and the intro, I am comparing these databases from the point of view of a data analyst, because I'm a data analyst and I use them for data analysis. I know about SSRS, SSAS, in-memory column stores and so on, but I haven't mentioned them because I don't use them (or equivalent features). Yes, this means this is not a comprehensive comparison of the two databases, and I never said it would be. It also means that if you care mostly about OLTP or data warehousing, you might not find this document very helpful.

As for this part, data warehousing, OLAP services, and reporting services (lower case on purpose here) are a very large sub-domain within data analytics. I am not saying that these are everything in analytics, but especially from an enterprise standpoint, these make up the bulk of it. From a tooling and full-stack standpoint, Microsoft is quite strong in this segment.

</comment><comment><USER28> HA and clustering. MSSQL makes this dead easy. Point and click (and it'll display the script for you to learn/reuse) and you're done. Async, sync, HA (with automatic fail over), mirroring, several types of replication - and it just works and is easy. If PG ever ships with an out-of-the-box shared nothing system, yee haw! Maybe they could package up DRDB and heartbeat into one easy script and monitoring system or something.

I hate how MSSQL has gone back on their word to let customers benefit from CPU enhancements. They mocked Oracle for charging by type and core... And now they do the same.

Also, multiple result sets was a sorely missed feature when porting stuff to PG. But record types made up for it.

Of course now, the dominating factor for a lot of people is "Will a hosting provider (Azure, AWS, Google) just run this for me, automatically giving me perfect backups and restore and HA?" SQL Azure, as I understand, not only does backups, but allows you to restore to arbitrary points in time. Sure it's just keeping txlogs, but that sounds hot when sold like that. For many cases, I can see ditching the privacy issues of "cloud" to get those features with zero capex or management overhead.

<comment><USER29> > SQL Azure, as I understand, not only does backups, but allows you to restore > to arbitrary points in time.

It does, but they take about hour to hour. Restore takes about that much time. Changing performance level of DB takes similar time.

I'm not sure hot quick Amazon or Google is, but I know lot of ops guys who are sorely disappointed by Azure slowness.

<comment><USER28> True. Azure is slow slow slow. Even their new portal is just laggy (JS/layout overload). But the service, yikes! Create a new VM, wait minutes. Then find out it failed. Or try to add a port mapping, and wait a minute, unable to do another operation cause one is in progress. It's infuriating. And the VMs take forever to start. And the SSD options are late, under performing and downright janky (they actually tell you to do RAID on the SSDs, since they cannot figure out how to scale storage for you.)

I tried Google Compute Engine on a whim and I'm totally in love (despite a deep distrust of Google). Everything is _fast_. VMs load in seconds. And it's simple - no inane UI, no crazy leftover bits from being a PaaS. No idiotic design for SSD. And as a kicker, it's half the price for compute. Oh, and SSH client right there in the portal? It's such a small thing but really made me happy.

It's just that Google doesn't do startup outreach and give us cash and court us. Unless you're in an "established" incubator or yc or something. Whereas MS is super friendly and does everything they can.

</comment></comment></comment><comment><USER30> > Commercial products have support from people who support it because they are > paid to. They do the minimum amount necessary to satisfy the terms of the > SLA.

This is pretty ridiculous and quite a bit insulting to the many people who do work for vendors. I work in a team that has a number of engineers supplied by vendors and they are generally fantastic. Highly qualified, more than happy to assist with tasks that aren't to do with their product and they really care about the overall project outcomes.

Open source has forced vendors to make sure that every project that uses their products are a success.

> On the other hand, commercial software is often designed by committee, > written in cube farms and developed without proper guidance or inspiration

Again more nonsense. Not every open source project is some beacon of perfection and neither is every commercial product some poorly designed piece of junk. Anyone that believes otherwise is just being disingenuous.

Someone really needs to explain to me why PostgreSQL users in particular seem to always want to bash the competition in order to justify their technology choice. It's been going on for years against MySQL/Oracle first, then MongoDB/NoSQL and now SQL Server. It's odd.

<comment><USER31> So Oracle backport fixes now do they I remember having trouble getting my Oracle based system through y2k back in 98/99

<comment><USER30> Not sure what you're point is.

(a) Not all vendors are the same, (b) Not all situations are the same, (c) Open source isn't exactly world renowned for porting back fixes to older releases.

Making broad generalisations is never helpful.

<comment><USER31> I used to work for a MAJOR MAJOR Oracle customer and they would not back port y2k fixes to relatively recent oracle products ie the version before.

This caused a lot of BT employes a lot of pain you had to get a very senior manager to sign off on missing your y2k deadline which was the year before y2k - and you probably got dinged on your apr for it

</comment></comment></comment></comment><comment><USER32> One of the major attractions of MS SQL Server 2014 is memory optimized tables (Hekaton engine) which removes locks completely from the database through snapshot versioning of rows. Does postgresql has anything similar to that?

</comment><comment><USER33> This is the second time this site has appeared on HN, and both times I've mis- read the title as "PostgreSQL vs MySQL", which I think would be a much more interesting comparison. If you're already working in an MS shop, then MS SQL will work best with what you have. If you're working in an open source environment, then you'll be better off taking advantage of what Postgres or MySQL have to offer. Postgres and MySQL are so different in terms of their features that comparing them would make an interesting article.

</comment><comment><USER34> > I replied "well there are 1.5 billion Muslims and 1.2 billion Catholics. > They can't all be right". Ergo, a billion people most certainly can be > wrong. (In this particular case, 2.7 billion people are wrong.)

Very smug and condescending statement. Feels like an insecurity on the author's part.

</comment><comment><USER35> After seeing the title I assumed the verdict would be that MS SQL is way better. If I wrote a comparison that's how the result would end up. I've used MS SQL from 1998 and PostgreSQL from 2001 and have found MS SQL much easier to use. Different strokes for different folks I guess.

<comment><USER36> I use MSSQL on a current project and really don't like it's query optimizer. It relies too much on statistics which means that slightly complex queries get random behavior really quickly, especially in the beginning as the database if growing.

IMO, completely unsuitable for web apps where DBA is not sitting around 24/7.

Is PostgreSQL better at this?

<comment><USER37> How would you suggest optimizing queries except on stats? Do you find instances where the stats are incorrect? If you're trying to do small things in a big table, have you used indexing to help target the small sets/fields you're looking at?

</comment></comment></comment><comment><USER38> Does anybody use PG/PLSQL? I wonder how it compares in practice with Oracle PLSQL.

<comment><USER31> Its quiet close I recall being impressed that i could reuse some Oracle Pl/SQL on Postgress

<comment><USER39> If you know PL/SQL, all you need is an example of the boilerplate that goes at the top and bottom of a PL/pgSQL procedure and you are good to go.

</comment></comment></comment><comment><USER40> I was expecting something more convincing like benchmarks, PostgreSQL has a lot of nice features and that's is a good thing for development, but just for development.

<comment><USER26> Ah, but you can't publish benchmarks about any of the RDBMSs for adults (Microsoft and I think Oracle too) as per their license agreement. So never expect these types of articles to have any substance.

<comment><USER41> I was looking for some earlier today, as I often do when one of these discussions comes up, and when I didn't find any, I suspected that might be the case. It's a shame, as it's another case where a company works to restrict user information, which makes the market less efficient.

<comment><USER26> So I guess this is when libertarian says: if only there was no state to help stupid corporations enforce these ridiculous restrictions on their customers!

</comment></comment></comment></comment><comment><USER42> I am inclined to think that you should use an RDBMS for doing what it does best - things like storing and retrieving data efficiently, facilitating the integrity of data while serving multiple users, and enforcing relational constraints. If you're serious about doing analytics and you try to do it in the db you are going to quickly find yourself hampered by the expressive limitations of SQL.

I think it's better to skip that and interface with the database using something more powerful - let the database handle getting the data that you want the best way possible, then process it using something better suited to the job.

</comment><comment><USER43> I expect better from the front page of HN. I like PostgreSQL and MSSQL Server and to a much lesser degree mySql and Oracle. But in my experience I use the tool that exists and makes sense for the project. Since most of my work is enterprise its MSSQL or Oracle. For personal projects I used PostgreSQL and got on quite well. None of the tools prevented me from getting the data I needed. There may be scaling issues or use cases that can favor either platform. If so, pick the tool for the job, move on. If you feel compelled to do so, you should document your use case to help others out.

<comment><USER44> It's very click-baity, but to provide some anecdotal evidence I've never had corrupted data/tables in Postgres, but dealt with it very regularly in MySQL under almost identical environments.

MySQL doesn't do a great job of protecting your data compared to Postgres, MSSQL, Oracle, etc.

<comment><USER44> Go ahead, kill -9 your production MySQL servers. I dare you.

I can do that to Postgres all day and the on-disk data integrity is preserved.

<comment><USER41> It makes little sense to put it like that, since for MySQL it greatly depends on the storage engine used. I've found InnoDB to be quite robust, but I'm not sure how it compares to what Postgres uses.

</comment></comment></comment></comment><comment><USER45> let me first state i'm a huge postgres fan, i implement whenever i have the option. it's a great database and i'm a firm believer in open source.. however if a company is willing to shell out the coin to run MSSQL, i'm not complaining. MSSQL is very robust, very fast, and very easy to administer. i hate giving MS their props but they did a good job with it..

</comment><comment><USER46> PostgreSQL has bad C# drivers, other than that I would choose it over MSSQL.

</comment><comment><USER47> Huh... a person who compares databases with regards to analytics and doesn't mention OLAP. Doesn't mention ETL. Doesn't mention reporting. What kind of comparison is that? I often read reviews of databases which dismiss MSSQL completely. And that's fine when it is about building applications. HOWEVER, MSSQL comes with very featurefull ETL tools, very featurefull MOLAP and HOLAP and very featurell reporting suite. It also comes with some data mining algorithms for which I am not qualified to talk, but I've heard the functionality is pretty nice for a starting point. It also comes with an IDE for the people who do those things and a DBA tool for people who administer the databases.

Out of those things, postgres has a DBA tool out of the box. Yeah... nice comparison.

I find it particularly funny that he cites Dunning-Kruger. DK effect is not meant for others. It is meant for self-evaluation.</comment>


Ask HN: What do you use for story tracking? - <AUTHOR> <comment><AUTHOR> TFS/Visual Studio Online/Visual Studio Team Services

</comment><comment><AUTHOR> Pivotal Tracker

</comment><comment><AUTHOR> Feature Map

</comment><comment><AUTHOR> Yodiz

</comment><comment><AUTHOR> Mingle

</comment><comment><AUTHOR> Taiga

</comment><comment><AUTHOR> Planbox

</comment><comment><AUTHOR> Trello

</comment><comment><AUTHOR> Rally</comment>


Hypercard – Way Too Early - <AUTHOR> http://avc.com/a_vc/2014/02/hypercard-way-too-early.html <comment><USER2> I think this blog post is overly caught up on the word "card" – HyperCard "cards" weren't particularly like the cards inside android or twitter or facebook. Indeed, if HyperCard cards were like anything, it's web pages, except designed for the limitations of the hardware of the time and targeting only one hardware platform (standard display, etc.) and running on a single non-networked computer.

Also, why "way too early"? Too early for what?

The most important feature of HyperCard, in my opinion, was that it gave end- users powerful general-purpose tools for programming and solving their own problems, in a way that was easy to get started with. Instead of being locked into someone's existing program designed with an idealized customer's needs, any HyperCard user could create or customize a HyperCard stack to suit their own preferences.

Unfortunately, tools requiring customer learning and mastery are very difficult to design and implement, and even more difficult to demo and sell. And so our software is designed in a very narrow and limiting fashion. The "cards" in android and facebook and twitter &c. are doing nothing to combat this, and to compare them favorably to HyperCard is in my opinion to completely (and tragically) miss the point of HyperCard.

I don't see any particular signs of this trend toward closed systems reversing; indeed, as more people come online, and giant corporations spend billions of dollars hiring all the smartest people to work on developing software that gives them (the corporations) as much control as possible over uses of computer hardware/software, the popular machines and software systems are only getting more closed and locked down. The web itself is an open and flexible platform, but increasingly people are spending their time in a few centralized and controlled parts of it.

<comment><USER3> I thought the same when I read the article -- they missed the point of the programmability, and some of the downfall of hypercard (it was an unholy mess to sort out a badly written stack.) Sometimes I wonder if the spiritual successor of hypercard was in fact Visual Basic.

<comment><USER4> I believe it was indeed VB.

Remember that HyperCard was introduced in 1987 or so, the GUI/WIMP era was just getting started. The learning curve of writing a Macintosh application was incredibly steep - nearly impossible IMO - but here was a way to make a simple point-and-click app that actually _did_ something (write to a file, do some calculations, show information, even talk out the serial port, etc) with a minimal amount of lifting. My first paid piece of software was a point-of- sale application written in HyperCard. And it worked just fine.

VB was pretty much the equivalent for Windows, once it came along.

<comment><USER5> Has their been a successor to VB?

The web is close in some respects (HTML is easy) and not in others (servers and single-page apps are not).

I suppose, in another respect, Excel is a successor for many, though it isn't a good solution for making apps of any sort.

Surprisingly, the closest I've seen has been Microsoft's Project Siena[1]. I've not used it extensively, but my 5 or 10 minute made it look like it had the dirt-simple-to-get-started appeal of HyperCard and VB.

Anyone know of other "spiritual successors" out there?

[1] [http://apps.microsoft.com/windows/en-us/app/microsoft- projec...](http://apps.microsoft.com/windows/en-us/app/microsoft-project- siena/5ae47651-e8f3-4e41-aab7-e19ab1b80180)

<comment><USER6> As a non-programmer, I've been looking for a VB successor for a long time.

<comment><USER5> Not sure if either of these are useful to you, but there are some interesting projects in LiveCode[1] and in Alpha Anywhere[2]. I've not used either.

I'm hoping Mozilla's AppMaker[3] comes to something, but I haven't been able to actually make it work yet.

I can't say that I find any of these really (yet) hitting the sweet spot that HyperCard did, but that may be my own ignorance. :-D

[1] [http://livecode.com/](http://livecode.com/)

[2] [http://alphasoftware.com/](http://alphasoftware.com/)

[3] [https://appmaker.mozillalabs.com/](https://appmaker.mozillalabs.com/)

</comment></comment></comment></comment></comment></comment><comment><USER7> If HyperCard had had a good network API, things would have been a lot different. The thing that steamrollered HyperCard was Visual BASIC, which could talk to all kinds of system services, and once it had COM support, could talk to just about anything on the planet. Also, everyone understood BASIC, and HyperTalk, though interesting and easy to use, was very closed and pretty much a toy.

Apple's networking APIs weren't very well designed. In fact, you couldn't even get to AppleShare volumes; there wasn't an official API to mount 'em. So I wrote one, and I was still getting occasional email about the Mount XCMD a decade later. Apple just didn't have much vision or follow-through back in the late 80s and early 90s.

<comment><USER8> > The thing that steamrollered HyperCard was Visual BASIC

True from a market standpoint, I recall one of the Mac magazines had an article about jerry-rigging a database front-end in HyperCard, and it was clear it was no VB.

However, more similar in spirit to HyperCard was Lotus Notes, with its networked hypertext document databases where data storage was largely abstracted away. That was a proprietary web before there was the web. (However with an awful UI and ugly templates.)

<comment><USER9> Lotus Notes was an awful way to do anything. It allowed people with little to no programming skill to destroy the IT capabilities of small business and non- profits. If that had been backed by anyone except Lotus it would have died on the drawing board (as it should have).

<comment><USER8> That was the entire appeal of Notes/Hypercard, people could throw together a small database application and it wasn't any more difficult than creating a spreadsheet. (The big difference was that Notes apps were automatically network client-server.) I think it's rather cynical and elitist to say that something which empowered users "destroyed IT capabilities", and it's not like many of those small orgs really had IT capabilities.

But like HC, the Notes designer software was turned into an added-cost product, and after that both Notes and HC became the domain of 'IT experts' that knew how to work around the limitations of a rinky-dink platform.

This was all long ago, for most people now Notes is just a terrible email application.

<comment><USER9> Notes was always a terrible email application :)

You are right about the level of IT capability of most small shops, maybe I "crippled" would have been better than "destroyed".

But elitist?

Have you ever considered working on your home furnace? There are people who can do these things. The ones who THINK they can do it are Darwin Award winners.

The downside of an amateur rolling their own solution in Notes was not life threatening but it certainly wasn't smart.

Notes gave people who had no idea what they were doing the confidence to build solutions that were fine for personal use but completely unsustainable at even small office scale.

The "experts" who adopted HC and Notes were the ones who did the real damage though. These folks (and I knew a few) were just a step above the guy in the office who refilled the toner in the photocopier. They created half-working systems and then moved on. They didn't have to live with the technical debt they left in their wake.

They set unrealistic expectations for what good IT solutions should cost and left guys like me trying to clean up their mess for years.

<comment><USER8> Sorry, I wrote a fairly long reply and HN told me my link had expired and the text was lost. Perhaps too long then :)

In any case, Notes ended up sucking, anyone who saw what happened can toast to that.

<comment><USER10> > Sorry, I wrote a fairly long reply and HN told me my link had expired and > the text was lost.

Some suggestions. First, if you've typed longer than a minute, make a backup copy of your reply, even go so far as to compose it in a separate text editor, then paste the result into HN. Second, if you encounter the dreaded "link expired" message, select all (Ctrl+A) then copy (Ctrl+C) the content of the entry window, then press browser refresh, then paste (Ctrl+V) the text you just copied. Then click "Reply."

<comment><USER8> Hypothetically, if you stumbled upon some folks arguing about Lotus Notes R3, wouldn't you assume they knew the standard windows shortcuts?

(Trick question, R3 only had ctrl-insert etc OS/2 shortcuts!)

In any case I apologize my paste-buffer foibles denied you my three paragraphs of immense wisdom regarding the good & bad of an obsolete end-user friendly distributed database system that went out of style a couple decades ago.

<comment><USER10> > Hypothetically, if you stumbled upon some folks arguing about Lotus Notes > R3, wouldn't you assume they knew the standard windows shortcuts?

Lowest common denominator, as they say. When I encounter someone who loses his content on the HN interface, I make some simplifying assumptions. :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I've thought a lot about HyperCard.

In 1994, when I was in fifth grade, I used HyperCard to make a demo of a program that would allow you to fax a grocery order to a store using a modem after you checked off the items you wanted to buy. Then the store would deliver your order to you. I didn't actually know how to make use of hardware devices like modems, but it was possible to make the user interface work reasonably well on a Macintosh LC II. I was of course bummed that there was no color. (HyperCard was black and white only unless you used proprietary extensions, which could sometimes make things run very slowly.)

The author of this post seems to think that HyperCard was "before its time," but it wasn't. It defined its time, and ours. It was a huge part of what made the Mac so appealing to so many people--the ability to sculpt new technology in a custom manner. There was no comparably easy-to-use tool on the PC--Visual Basic didn't come close--and there never would be. The result was that all kinds of Mac owners developed their own stacks that solved exactly whatever problem they thought needed solving; PC owners had to hope that a software company would make something for them.

What's sad is that now our computers are so much faster than the LC II I used in fifth grade, but even if they're a hundred times faster, they're certainly not a hundred times easier to develop for. Most fifth graders, even smart ones, probably couldn't write an app in Objective-C that does today the same things a HyperCard stack did in 1994. HTML5 is the next best option, but it's still not as easy.

I worked on a prototype of a modern-era web-based HyperCard with a friend, but we stopped working on it because there was no VC interest and it wasn't clear if there would be a good business model. It's a shame, because HyperCard is one of the things that most excited me about computers when I was a kid. I still miss it.

<comment><USER5> Do you think the world has changed such that a modern HyperCard is just not something people would use? Or has the massive influx of "there's an app for that" papered-over the hole in the market?

<comment><USER11> I think it might be used, but I wonder if anyone would pay.

If Apple were run with a different mindset, they might turn XCode into HyperCard again. If Google were run with a different mindset and Android were something other than Java, you might see them build their own HyperCard-style development environment instead of relying on the abomination that is Eclipse.

</comment></comment></comment><comment><USER12> There is nothing new about the card metaphor in mobile.

The very earliest mobile web app standard, HDML (later WML), used a deck-of- cards metaphor. This was around the mid-90s.

"The fundamental building block of HDML content is the card. The user agent displays and allows the user to interact with cards of information. Logically, a user navigates through a series of HDML cards, reviews the contents of each, enters requested information, makes choices, and moves on to another or returns to a previously visited card." \- HDML spec [1]

I'm not sure what Fred Wilson is getting at with "cards" today (he seems to be lamenting restricted APIs more than anything with the UI paradigm?). But in the HDML era they served a specific purpose: decks could be downloaded over high-latency networks in one shot and navigated offline, instead of waiting for each "page" to load.

[1] [http://en.wikipedia.org/wiki/Handheld_Device_Markup_Language](http://en.wikipedia.org/wiki/Handheld_Device_Markup_Language)

<comment><USER13> Yep, I wrote a few apps in WML. Here's someone back in 2000, (fourteen years ago now... wow) making the connection between WML and HyperCard:

[http://www.wirelessdevnet.com/columns/mar2000/mobdev05.html](http://www.wirelessdevnet.com/columns/mar2000/mobdev05.html)

</comment></comment><comment><USER14> Watching this demo of what Hypercard could do in 1987, it seems like there are a lot of things that would be great if they were translated into a modern context right now.

[http://www.youtube.com/watch?v=EMFscTOazS0](http://www.youtube.com/watch?v=EMFscTOazS0)

<comment><USER15> Which things? Does [http://runrev.com/](http://runrev.com/) do them? (I believe it is suppose to be a modern Hypercard.)

</comment></comment><comment><USER16> I think what HyperCard got right was easy structured form based editing. You could insert fields into cards and use those as a template. When inputting a field you actually edited a property of an object directly. I can't remember if fields allowed rich text editing nor programmatic access to it, so replacing Word was probably not possible. Creating complex forms and interfaces for data was certainly easier than with web browser. You could start your own solution by simply copying a suitable card. One knowledgeable user could create a powerful app tailored to company's needs and others could build on that.

In the browser the presentation, runtime and persistence layers (otherwise known as DOM, JavaScript and the web/LocalStorage) are completely separate. So, you need loads of code to bootstrap your particular version of editable web that HyperCard gave you for free, without any save buttons, serialization protocols or web server and database installs. This seems so basic thing, yet it's so hard to get there in the modern browser. Forms have in their own, peculiar data structure completely unusable for all but simple cases without a clever encoding system and JS data binding. Rich text editing is so unreliable across implementations that you need to get a library like CodeMirror to turn textarea into transformation pipeline simulating the process of input. Saddest part is that the priorities of developers are elsewhere, in building the browser into best consuming platform and a fastest tool to send little snippets of text to social network silos.

One of these days I might turn LigthTable into the past version of HyperCard, with the future build in. Since it comes with a browser, server and the JVM there should be more than enough code to replicate functionality of few megabytes of 68000 assembler ;)

</comment><comment><USER17> HyperCard lives on in LiveCode - with card metaphor, HyperTalk and all. Plus color, images (with alpha channels), regex, (limited) sockets, resolution independence, XML-parsing, IDE for Mac/Win/Nix, compiles to OSX, Win, Nix, iOS, Android. And it is OpenSource, thanks to Kickstarter (Store deployment requires commercial closed source license though). [http://livecode.com/](http://livecode.com/)

<comment><USER18> It isn't open source if it discriminates based on endeavour.

[http://opensource.org/osd-annotated](http://opensource.org/osd-annotated)

<comment><USER17> It is a dual license model. They offer a commercial license for those developers, who want to distribute their products as closed source (as it seems, exactly this is required by the Apple store).

</comment></comment></comment><comment><USER19> I had really hard time understanding AVC's point so I searched for hypercard screenshots and found this screen tour: [http://www.loper- os.org/?p=568](http://www.loper-os.org/?p=568)

It is an IDE to build small visual Mac apps. A card is basically an app.

<comment><USER17> The card in HyperCard was not an app, but rather served multiple purposes: First, it was a container for widgets, or, in other words, a canvas for the user interface. If the user interface would not fit in the fixed size screen of the card (it was 640x480px in the beginning and became resizable later on), it could be organized into multiple cards, each containing parts of the ui and with some navigation ui elements to browse between the cards. Second, the card could serve as a database record. In that case the card would contain editable widgets to make a form (for example for addresses), then the card was declared to be a template (in HyperCard notation a "background") and then as many cards were created from that background as database records were required. In that case field-widgets served as database columns, cards as records and backgrounds as tables. Third, the card (and its template-variant, the background) could contain code. Events (like a mousedown etc) were sent by the engine first to the respective widget on the card, then, when not handled, to the card itself, then to its template, then to the stack. The HyperCard stack was the app, and a stack was a collection of cards and cards served as user interface canvas, and, very much depending on the application logic, additionally as code or data containers.

<comment><USER20> > it was 640x480px in the beginning

Less than that. Must have been 512x342; as I remember using it on 9" Mac Plus and Classic BW screens?

<comment><USER17> You are right! To quote the HyperTalk 2.0 reference by Dan Winkler and Scot Kamins: "Locations 0,0 through 511,341 are within a standard card's area and are therefore visible on all Macintosh displays. Points outside those boundaries might or might not be visible, depending upon the size of the display you're using." Page 872 defines the Standard card pixel size as 512 horizontal, 342 vertical. HyperCard 2.0 allowed already to make custom sizes for stacks and my screen at that time was 640x480.

</comment></comment></comment></comment><comment><USER21> Seems like the author never actually used HyperCard, and is just another trend watcher.

<comment><USER22> From tfa: "I built a few Hypercard based applications in the late 80s and early 90s as I was winding up my programming "career"."

That doesn't mean the author built something like Myst, though.

</comment></comment><comment><USER23> I spend a lot of time creating hypercard (and supercard) applications 20 years ago, before moving on to web development. HyperCard could not adapt to different screen sizes, and html+css+js is just way more advanced. But the idea of having a development platform that everybody can learn in a few minutes is very good, and could be used inside web sites today.

</comment><comment><USER24> The whole history is explained nicely by Jakob Nielsen: [http://www.nngroup.com/articles/hypertext- history/](http://www.nngroup.com/articles/hypertext-history/)

Meanwhile, before Hypercard, there is a notable product: Guide by OWL in Scotland, who were approached by Tim Berners-Lee as his desired candidate for the world wide web. Matsushita had then in an 80s Japanese shopping frenzy bought up OWL (lawyers on the same trip to Scotland went on to buy a couple of distilleries and golf courses in the same week). Japanese management of OWL then turned down Berners-Lee.

</comment><comment><USER9> This is becoming a common (but idiotic) meme... "Anything that had die hard fans, that didn't succeed - Way Too Early"

Maybe it was just bad technology or a bad implementation.

If it was really that good (it wasn't) then it would have survived. The fact that nothing of any consequence works this way today is telling.

You could only go so far with HyperCard before running into limitations and that's deadly.

It was easy for beginners but offered no advantage to experts. Once you graduated beyond HyperCard you could never go back.

Market death.

</comment><comment><USER25> Hypercard was my first real programming exposure. Going back and looking at my stacks (which I found many years after forgetting about them) was a humbling lesson in "holy crap, I can't believe I was that terrible at programming." But it definitely did get me interested, and it was really freaking powerful for something we treated like a toy.

</comment><comment><USER26> I think the important difference between Hypercard and the web is the all-in- one approach to Hypercard. You ship a stack and it works. Single environment and not a huge number of different technologies.

I don't think VB killed Hypercard. Apple never got color, networking, etc. working and put no effort into it. Hypercard would have died with or without VB.

</comment><comment><USER27> Speaking of Android, there's a neat hacker dude at GOOG that has an unreleased Android-based visual environment based on Squeak complete with animated 3D and 2D examples. It's pretty neat that basically anything in it can be changed, and other bits of code can be imported from the web. Would be a fun environment to build a game in.

</comment><comment><USER28> Like several other commenters, Hypercard was my first programming-like experience. I don't think I made anything more complex than a series of pages linked together with buttons. It was a great learning tool, easier than HTML where you still have to worry about embedded images and it's difficult to vertically center something.

</comment><comment><USER29> Ugh... I worked with a guy who kept complaining that the web of today is "just Hypercard."

I did a lot of stuff with Hypercard back in the day and it's such a ridiculous statement that I ended up writing the guy off completely. He was real big on generated code and full of BS in general.

</comment><comment><USER30> Nowhere does it even define a 'card'.

A design style? Individual screens rather than a scrolling document?

</comment><comment><USER31> Loved it, Hypercard was my first programming experience :)

</comment><comment><USER32> Hypercard was never too early. I remember some 'dot com' guys building a 'business management suite' in hypercard, maid fortune which evaporated after two years. Hypercard was a mere joke, like applescript.</comment>


Floating in the Air: The World That Made Dostoyevsky's Crime and Punishment - <AUTHOR> https://www.thenation.com/article/the-world-of-crime-and-punishment/ <comment><USER2> A few years ago I re-read Crime and Punishment, 30 years after trying to get through it in high school. I was blown away by how deeply it affected me this time around. It's not so much a crime story as much as a "why is there crime?" story - or even a "what forces in my mind and in everyone else's minds are really shaping my moral actions?" story. (I just searched the internet for that last quote and apparently I need to read more Kant). I had some Russian friends where I was working at the time and asked them about Crime and Punishment and they all just frowned and nodded for a minute before one of them said "yes... very dark..."

For any of you here who may have read it too young I highly recommend going back and reading it again

<comment><USER3> His "House of the Dead" was amazing too. It was not unlike watching "Lock Up" but from mid 1800s Russia.

</comment></comment><comment><USER4> One of the things that struck me upon rereading Crime and Punishement recently was how forcefully and persuasively Dostoyevsky argues for both sides of issues. Whereas with lesser authors one can easily tell which side of an issue they are on, with Dostoyevsky it's not so easy (though you can infer from the mere fact that Dostoyevsky chose to write about them at all that he cares deeply about them).

The most unsympathetic of his characters are also portrayed quite sympathetically and compassionately. The reader really understands how they can do the reprehensible things they do, can understand what brought them to this end, and even sympathize with them. They are the polar opposites of the flat, two dimensional cardboard cutouts that pass for characters in most other books.

<comment><USER5> I also coincidentally re-read Crime and Punishment a few months ago and was also struck at how differently I saw it today than as a college student.

I would be interested to understand how you came to the conclusion that he argued for both sides? I saw a scathing repudiation of the socialist utopians of the era (and 'rational' ideologues of all sorts). He 'argued' their sides too, but with the goal of making them appear ridiculous. By the time Raskolnikov's fictional essay about the "extraordinary" comes up, i think it's pretty clear what Dostoyevsky is trying to say. Though that's just my interpretation.

<comment><USER6> The fascinating thing about Dostoevsky is that he seems to argue the points he doesn't believe in better. I walked away from Demons and Brothers Karamazov thinking that the points for atheism were more firmly established than the religious worldview he himself espoused.

Yes, the nihilism points were argued to be a point of comparison against, but his aim was didactic in the political realm. He explores this further and more completely in Demons.

<comment><USER5> Interesting, so you would tend to agree with the parent comment, especially if you hadn't known anything about the author beforehand? It's a great illustration of the range of interpretations possible of any artistic work.

I've also read that Demons expands upon many of the ideas in C&P though I had a bit more trouble getting into it. After hearing about these newer translations though I might have to give one a try.

<comment><USER6> I do, although [spoiler alert] Raskolnivok's ultimate spiritual transformation and acceptance of Christianity as his morality, without a rational argument behind it, gives away the author's prejudice. I see Dostoevsky's characters as analogous to set theories without the axiom of choice: self-consistent yet incomplete. I even felt empathy for the characters I didn't like because they still felt human to me.

The most unrealistic thing about his writings is that normal conversations don't have alternating monologues which each go on for pages. Clearly he's effectively writing inline dueling essays.

Demons is a little more work to get into, as it takes longer to get going than C&P, but the payoff is well worth the setup.

<comment><USER4> _" The most unrealistic thing about his writings is that normal conversations don't have alternating monologues which each go on for pages."_

Unfortunately, there are way too many people in real life who do talk in monologues and rarely let others get a word in edgewise -- especially if they're drunk, but sometimes even when they're perfectly sober.

At least Dostoyevsky's characters have something interesting to say.

</comment></comment></comment></comment></comment></comment><comment><USER6> Crime and Punishment is a stunningly powerful novel.

For anyone who enjoys it or Notes From Underground, I highly recommend Demons, which extrapolates the ideas from both previously mentioned to societal scale.

I think it's his best by far.

A note on translations: I've read at least two translations for each book of his I've read. I generally prefer the Pevear/Volokhonsky translations, but there are times when the Garnett translations capture the spirit a little better. Both options are excellent, but read the Pevear/Volokhonsky if you have to pick one. Reading multiple translations can ultimately help provide a fuller experience.

</comment><comment><USER7> I find Dostoyevsky to be incredibly approachable to the modern reader. There's a wry sense of humor in his work (and other contemporary Russian authors) that feels closer to Seinfeld than say Shakespear. It's very dark but the themes and internal dialog of the characters are shockingly fresh. The Brothers K is also an excellent read.

</comment><comment><USER8> If anyone hasn't read Crime & Punishment and wants to, I produced a nice public domain edition of the Constance Garnett translation for Standard Ebooks. I was particularly pleased with finding the cover art, which is a self-portrait by Edvard Munch.

[https://standardebooks.org/ebooks/fyodor-dostoevsky/crime- an...](https://standardebooks.org/ebooks/fyodor-dostoevsky/crime-and- punishment/constance-garnett)

<comment><USER9> The first version I read was the Constance Garnett version, but re-reading I read the Pevear and Volokhonsky translation and I'd recommend that version. (Although that one is not public domain yet of course).

</comment></comment><comment><USER10> Ah Raskolnikov - I had a literary crush on him as an 18 year old girl. Dostoyevsky helped clarify my late-teenage ideas, along with other authors of his ilk, that morality is a construct created by humans and is not a fixed set of laws based on natural order to be blindly followed. Like his fictional love-interest, I was disappointed in Raskolnikov's carrying-through with the crime, but pleased with how the book elaborated and continued on important human themes of self-discovery (not to add any spoilers for those yet to enjoy this wonderful novel). I think this book is best for young people who are forming their ideas, but if you read it as a fully-formed adult you'll certainly still enjoy the prose.

<comment><USER11> Would there have been a novel to write if Raskolnikov didn't carry through with the crime?

<comment><USER10> It's the critical part of the novel, that he does! That was understood, but it's like watching a movie yelling at the screen, don't go in there!

</comment></comment></comment><comment><USER12> > Some would argue that, with the election of Donald Trump, the American > public made the most self-destructive and irrational decision in our > nation's history.

 _Some_ would argue that those people are blistering idiots with a complete lack of knowledge about their nation's history.

<comment><USER13> Some would - but not you, as you give no argument, or point to any. Gainsaying is not a contribution.

<comment><USER12> Manifest Destiny. Smallpox Blankets. Trail of Tears. Slavery. Going to war to defend slavery. Hiroshima and Nagasaki. Vietnam. Iraq. Iraq again. The prison system. Prohibition. Segregation. War on Drugs.

I'm not even an American.

Trump is _embarassing_. America has done a _lot_ worse than embarassing.

<comment><USER13> There's good evidence the British used smallpox (shards of cloth carefully sealed, not whole blankets) vs natives in N.A. Less evidence of U.S. (or Trump) involvement I believe.

I'm not a Trump guy, I just like evidence more than assertion.

</comment></comment></comment></comment><comment><USER14> Jordan Peterson says this book is a masterpiece of psychology and modern philosophy. Maybe it's time to pick it up

<comment><USER15> It is pretty good at describing psychology of nearly sociopathic random murderer. It is not really about general psychology of majority of people who don't kill without reason.</comment></comment>


The Future Is Worker-Owned - <AUTHOR> https://medium.com/team-human/the-future-is-worker-owned-f6a31f26052f <comment><USER2> Who owns, how much?

How are decisions are made?

How will the workers dispose of ownership, when they want to leave?

What if the worker wants to will their ownership to their children?</comment>


Homemade Spacecraft - <AUTHOR> http://www.vimeo.com/15091562

<comment><USER2> That is the most fun link I've seen all day!</comment>