Live data from Hacker News

Exploring Rust (from C#)

nblumhardt.com

11–20 of 132 posts

Re: Exploring Rust (from C#)

#11

Hug of death. Cache https://webcache.googleusercontent.com/search?q=cache:EDeYMv...

This is offtopic but what should be size of the VM to handle HN's front page traffic. I know a lot of it depends upon whether the website is static or is backed by DB and on various different factors. But many a times some of my friends ask me questions like this.

To make it simple, lets take 2 very basic websites.

1. A ghost blog. (node.js) 2. A wordpress blog backed by a mysql db. (php)

Re: Exploring Rust (from C#)

#12

Hug of death. Cache https://webcache.googleusercontent.com/search?q=cache:EDeYMv...

Thank you - was a bit of an unexpected appearance here so getting onto the erm, technical issues, now...

A quick solution could be to host the page as a static page and have a nginx route serve that page.

Re: Exploring Rust (from C#)

#13
post #12

Earlier quoted context omitted.

Thank you - was a bit of an unexpected appearance here so getting onto the erm, technical issues, now...

A quick solution could be to host the page as a static page and have a nginx route serve that page.

Thanks - kicked off a resize, that may not have been the best idea. That'll teach me for hanging on to mainframe-era blogging technology :-)

Re: Exploring Rust (from C#)

#14
post #3

Could someone explain why Rust is so damn popular/controversial?

It is so popular because it elegantly solves a set of problems that plague systems-level programming (use-after-free, dangling pointers, data races).

It is so controversial because there are system programmers who have lived for so long with those problems that they now refuse their existence.

Re: Exploring Rust (from C#)

#15
post #12

Earlier quoted context omitted.

A quick solution could be to host the page as a static page and have a nginx route serve that page.

Thanks - kicked off a resize, that may not have been the best idea. That'll teach me for hanging on to mainframe-era blogging technology :-)

Mainframe-era blog tech, eh?

http://www.coboloncogs.org/INDEX.HTM

Re: Exploring Rust (from C#)

#16
post #11

Hug of death. Cache https://webcache.googleusercontent.com/search?q=cache:EDeYMv...

This is offtopic but what should be size of the VM to handle HN's front page traffic. I know a lot of it depends upon whether the website is static or is backed by DB and on various different factors. But many a times some of my friends ask me questions like this. To make it simple, lets take 2 very basic websites. 1. A ghost blog. (node.js) 2. A wordpress blog backed by a mysql db. (php)

I had a ghost blog on a micro instance of a german VPN, a machine with 256mb of ram and not too fast processing power. Both times I reached HN home page, in one case for some hours, it worked without issues and only a minor slowdown.

Re: Exploring Rust (from C#)

#17
The annotated version of C# included in the blog post reminds me of Spec# http://research.microsoft.com/en-us/projects/specsharp/

Spec# has annotations and methods for object ownership. You can see an example of it in the "The Spec# Programming System: An Overview" slideshow (slide 39 onwards).

Also:

> C# has two families of data structures that dermine allocation behaviour: structs and classes. If a type is a struct then values of that type will be allocated on the stack:

Here's a primer on how the Microsoft CLR handles it, because it's more subtle than what's stated above. The end effect is that value types behave like values, reference types behave like references. Where they're stored is a function of where they need to be stored, not their type.

https://blogs.msdn.microsoft.com/ericlippert/2010/09/30/the-...

Re: Exploring Rust (from C#)

#18
post #15

Earlier quoted context omitted.

Thanks - kicked off a resize, that may not have been the best idea. That'll teach me for hanging on to mainframe-era blogging technology :-)

Mainframe-era blog tech, eh? http://www.coboloncogs.org/INDEX.HTM

I needed that laugh!

And some good news, serving a static copy from the original domain/URL, so all might not be lost :-)

Re: Exploring Rust (from C#)

#19
post #14
post #3

Could someone explain why Rust is so damn popular/controversial?

It is so popular because it elegantly solves a set of problems that plague systems-level programming (use-after-free, dangling pointers, data races). It is so controversial because there are system programmers who have lived for so long with those problems that they now refuse their existence.

You're right on the pros but dead wrong (intentionally?) on the cons.

The real reasons it's controversial are: (1) it requires what some people consider excessive amount of annotations for borrowed types, resulting in visual noise, (2) it has an overly restrictive memory safety model (e.g. it prevents concurrent modification, even when provably safe), (3) it claims to be (memory) "safe", but requires (see 2) the use of "unsafe" features for the most basic tasks, such as implementing various collections.

There is other criticism (e.g. allowing overflows), but I think the above is the most controversial.

Re: Exploring Rust (from C#)

#20
post #3

Could someone explain why Rust is so damn popular/controversial?

I think a lot of people are looking for a replacement for C++ that isn't C#/Java. As in a language that is still low-level enough to offer stuff like pointers, but without the pitfalls and minefield which is C++ (a lot of which is due to historic reasons and backwards compatibility with C). Some newer languages that try to fill the niche are D, Nim, Rust and Go. Can't say much about Nim, it seems to be in the backgro…

> Some newer languages that try to fill the niche are D, Nim, Rust and Go. Can't say much about Nim, it seems to be in the background.

Nim is frustrating, because to my taste it gets so many things just right while getting one particular thing so spectacularly wrong that I can't bring myself even to try it.

The one thing is its rule for when two identifiers are the same. They are compared case-insensitively, ignoring any underscores and en-dashes in either name, except that the first character must match exactly.

Consequence #1: if you have, say, something called user_sort (perhaps it's a function that sorts users) and something called use_RSort (perhaps it selects which of two sorting algorithms to use somewhere) then they will be the same identifier, with results anywhere from compilation failure to silent malfunction you don't notice until a year later.

Consequence #2: if you want to search for an identifier using some obscure tool like, say, grep or Vim or Eclipse, you're out of luck. (You can make your own tool -- call it "nimgrep", perhaps -- and extensible things like Vim and Eclipse can be given the ability to search for Nim identifiers. But their built-in facilities, like what "*" does in Vim, will do the wrong thing if you are working on Nim code.)

Post reply on HN