Hacker Newsnew | past | comments | ask | show | jobs | submit | arialeks's commentslogin

I am confident that most scientists would never want to work on any of the projects you've mentioned nor could China lure people in to work on such things.

Instead, just the fact that one day China might be the first destination for young talent instead of the US will be enough to give them the edge in their fight for superiority. Whatever the case humanity will see at least some benefit from these type of competitions.


You followed the news right ? They removed a gene from a baby not to cure him but just to experiment and see what's going to happen to him. This absolutely inhumane. This children had scientist messing with his DNA without his consent, just to see if they can create a new generation of more resistant humans. So scientists are perfectly fine with doing inhumane experiments it seems...


Can someone explain to me what a good use-case for Rust would be? I mean, why would I pick it over C#/Go/Python for web development? Does it only outperform them, or is it also a pleasant language to use?


I think the consensus among Rustaceans is that using Rust for web development today is an...aggressive choice. Especially with async/await not yet stabilized. I think most of the people doing it either have very specific requirements (wasm experiments maybe) or do it because it's fun to be on the ground floor of a new thing.

That said, I find Rust very pleasant to use. I don't have to make as many defensive copies of things or reach for as many immutable data structures, because I have much stronger guarantees around what code is allowed to mutate what data. I'm a fan of static typing, and I really like that enun matches will fail to compile by default if you haven't handled all the cases. There's a lot of explicitness like that, and I find explicitness pleasant. But of course different people feel differently about that, and there's also the widely acknowledged learning curve for lifetimes and borrowing.


Rust web dev-- aggressive? I struggle more with relational data modeling and refactoring my early design decisions than I struggle with Rust for web dev. I am not happy that the futures I painfully walked over hot coals to make work will be easily replaced by async/await but that's on me for not waiting until some undisclosed time in 2019 for async/await to release.

If anyone likes to compare apples with oranges and benchmarking web frameworks, actix-web framework (optimised for benchmarking, naturally) is leading in many categories: https://www.techempower.com/benchmarks/#section=data-r17&hw=...

With actix-web, you can run asyncio and sync code in the same server. It lets you take full advantage of Rust's concurrency.


> I am not happy that the futures I painfully walked over hot coals to make work will be easily replaced by async/await

Glad I'm not the only one who was struggling with gigantic and confusing error messages that were fixed by trial and error (usually adding a `.map_err(|_| ())`).


> With actix-web, you can run asyncio and sync code in the same server. It lets you take full advantage of Rust's concurrency.

Will actix-web become obsolete or be replaced when Rust releases async/await in 2019?


No; async/await produces Futures, which is what actix-web uses.

It will use a slightly older futures, but that's why there's a compatibility layer, and I'm sure they'll update fairly quickly after stabilization and so you could just use that version as well.


Rust shines where you need robust code, speed (including reliable multicore processing, low memory usage) and possibly low-level interaction with the OS or hardware.

For me the robustness is great. It's not just memory safety, but strong type system without nulls is superb for avoiding stupid bugs (no more "undefined is not a function").

If you're writing a small blog, you probably don't need any of this — you won't hit resource limits, and you'll manage to write 100 lines properly in any language.

But if you need to process gigabytes of data, Rust may be super helpful:

https://blog.sentry.io/2016/10/19/fixing-python-performance-...


If I were writing a small blog today, I would probably still go with Rust, just for the robustness. Catching bugs at compile time is so much nicer no matter how good your unit test coverage is (and especially when coverage is not great).

Performance is great, but the breadth of usage enabled by the small run-time (including no GC) makes it more exciting.


Rust is a general purpose programming language, and as such, has a wide array of use-cases. Current production uses of Rust include:

* Extending other languages, like Ruby, Python, and JavaScript, for various tasks. Usually when performance is paramount.

* Web services (though see below)

* Infrastructure, such as Amazon's announcement today: https://news.ycombinator.com/item?id=18539539 and quite a few other things, like Chef's Habitat product, Boyant's linkerd2, Dropbox's core infrastructure, or System76's hardware flashing tooling

* Cryptocurrency stuff of various kinds

* Databases, such as PingCap's TiDB

* Operating systems, like Google's Fuchsia (This one is arguably not "production", but they are one of the largest employers of Rust programmers, and keep hiring... so maybe consider this, maybe don't.)

* Version Control systems, like Facebook's Mononoke, or the internals of mercurial itself, as well as things like Pijul

* Cryptography, in some cases working alongside C to slowly port things over

* Video games, mostly indie stuff, though some AAA studios have started to use Rust for various things, and a new studio, Embark, is going all-in

We have a partial list of companies that describe their usage here: https://www.rust-lang.org/en-US/friends.html

This year, we identified four areas we really wanted to improve Rust on:

* Embedded development

* Network services

* WebAssembly

* CLI tools

These are other common areas we see people wanting to use Rust in the near future, or areas where we could significantly improve Rust for that given case.

EDIT: I forgot to answer your other question

> Does it only outperform them, or is it also a pleasant language to use?

Performance is a key thing we hear from people in web development, but increasingly, it's also memory usage, both in amount and stability. Less memory means less money spent on servers, and steady usage makes scaling calcuations easier. For example, crates.io is a rust-based web application, and it uses about 30MB memory resident at all times, last I checked. That's very little. More serious systems use more, but often significantly less than the JVM.


Such a great explanation. Really going to spend some time on rust this weekend.

I had no idea rust was that prevalent


Thanks! There’s so much that I didn’t even cover. It’s been a great year :)


Rust is a modern, memory safe systems language. The code you write compiles to native machine which executes in a predictable way every time you run it.

If you need to write firmware for, say, a satellite, C# and Python are out because they have an intermediate step between your deployable and the machine instructions you eventually execute. You have an external dependency which adds a level of unpredictability. All three of your example languages are out because they are garbage collected languages, which makes them inherently unpredictable at runtime. The last thing you want is an OOM in the middle of a rocket engine burn.

Go and C# are competing with Python, Java, Ruby, etc. All languages you would write a web application in, but not a satellite's firmware.

Rust is competing with C and C++.


1. You can get an OOM error (or a stack overflow) in most languages (including Rust).

2. Safety-critical hard realtime systems require far more determinism guarantees than a language/runtime alone can provide. For example, they require deterministic scheduling of threads (usually round robin with very strong prioritization guarantees and bounded task-switching latence), and so require a realtime OS. Also, safety-critical realtime systems have ways of guaranteeing bounded memory growth, for both the stack and the heap. These exist in specialized languages for realtime such as SPARK (an Ada variant) and SCADE.

3. Java is actually used in safety-critical hard realtime systems, including avionics, but in a special, hard realtime JVM that has different kinds of deterministic guarantees (when run on a realtime OS), including memory allocation, scheduling and hard deadlines for asynchronous events (see https://www.aicas.com/cms/en/rtsj). What's particularly cool about realtime Java is that it allows for a safe mix of realtime and non-realtime threads, as even in realtime systems, the actual realtime part is usually a small portion of the program.


Someone hasn't payed attention to the AOT compilers available for C# and Java, their widely deployment on embedded platforms, PTC, MicroEJ, Aicas, WebSphere Real Time, Android Things, wearOS, Ricoh, Cisco, Netduino, Meadow, IoT Core and many others.

Yes, maybe not on a satellite's firmware, but on a Gemalto firmware, certainly.

https://www.gemalto.com/m2m/solutions/modules-terminals/indu...

https://www.gemalto.com/m2m/solutions/modules-terminals/indu...

Just two examples from their portfolio.

Naturally it depends on how much memory is available and real time constraints.

However something like MicroEJ is already happy with an ESP32 variant, and I guess Rust could replace its C layer.


You should think of Rust as a better systems language, a better C. This was something that Go was pitched as but as a GC language it just doesn't fit a bunch of systems applications.

What I think is driving Rust and will continue to drive Rust is how it compares to C/C++ in certain key areas:

- Ownership is enforced at compile time. C++ obviously has smart pointers now (ie std::unique_ptr and std::shared_ptr) but these come with not insignificant runtime cost. What's more you end up passing around raw pointers anyway at least some of the time.

- C/C++ do suffer from and will continue to suffer from memory corruption, buffer overruns and undefined behaviour resulting from this. This has been and will continue to be the source of security vulnerabilities.

- Security is becoming so important and software so large and complex that the need for memory safety without sacrificing runtime speed will become increasingly important.

I honestly see a point where there'll be a need for a safe OS that is written in Rust or something like it.

One other thing about Web development: I think this is one area where Rust offers no real benefits (other than memory safety). Honestly I think the best model for serving HTTP requests is the cooperative multitasking model used by Hack (FB's PHP successor) where everything the request uses and does is created and torn down within the scope of a single request. This is a model that's far easier to reason about.

I came from years of doing Java where we had to deal with full GC pauses (something Go isn't immune to either).


You should think of Rust as a better systems language, a better C.

I think C++ is a more apt comparison. C is such a barebones language. Yes, it's very unsafe and Rust goes a long way to fix those issues, but Rust brings a lot of other features along with it which dial the language complexity up to 11.

I would like to see a simple language that fixes C's biggest problems. I think that would be really interesting to work with. Nobody seems to want to do it though, or if they have, they haven't been able to get any attention.


One of C's big problems is that it doesn't provide many efficient abstractions, and fixing that problem will lead you to something which is not like C for the same reasons Rust is not like C.


I agree that Rust is more like C++, especially since C++11, than it is like C. Rust has type deduction, closures, iterators, and Traits (which behave a lot like C++ class methods).

> I would like to see a simple language that fixes C's biggest problems. I think that would be really interesting to work with. Nobody seems to want to do it though, or if they have, they haven't been able to get any attention.

Honest question from an embedded C developer who's learning Rust, but still very beginner:

Wouldn't using a subset of Rust provide the same thing you're asking for?


> Nobody seems to want to do it though, or if they have, they haven't been able to get any attention.

Cyclone, Safe C, Checked C, static analyzers deliver with the compiler, ...

The problem is on the receiving end, some devs won't change no matter what.

So far Android and Solaris (SPARC) seem to be the only platforms with memory validation compilation turned on.


Have you seen Zig?


No. I'm checking it out now. Sounds pretty amazing!


I've used it for:

* Processing 300GB of zipped text/access logs (my first attempt was in python and was much slower)

* Writing a git hook / git repo processor (again, first attempt was in python doling out to the git process alot. It was nice to compile a single binary for the hook, instead of worrying about having the correct python version installed)

* I'm writing a web service in Rust right now. It's a little rough around the edges honestly, but once async/await lands, I think I'll be much happier. The type safe templating and endpoint definitions I'm using are very nice, but probably not unique to rust. The compiler is also slow.

So probably not the best bet for webdev yet, but useful in other contexts.


> once async/await lands, I think I'll be much happier

The current futures proposal is on track for stabilization[1]. You can use futures with async/await today in nightly, and what you use will probably be exactly what lands in stable soon.

The biggest missing piece is documentation, but thats starting to improve. My go-to for examples is the futures test suite[2]. And if you want more features, futures-preview 0.3alpha adds a bunch of useful future combinators[3]. futures-preview now just wraps nightly's std::future, which is very nice.

Except for the missing documentation, rust's futures are looking great. You can have a play today if you feel keen to jump in. But, as you said it will take some time for the web development ecosystem to mature around the futures API.

[1] https://github.com/rust-lang/rfcs/pull/2592

[2] https://github.com/rust-lang-nursery/futures-rs/blob/master/...

[3] https://crates.io/crates/futures-preview/0.3.0-alpha.10


It’s more like C than any of the high-level languages you mentioned, so yeah, it usually outperforms most of them. It’s basically “memory-safe C” with some modern constructs thrown in for good measure.

I personally wouldn’t build a website in Rust, but a webserver? Yeah, maybe.


Getting concurrency right is difficult, even in Go (I know, I have been there, it was a huge pain in the a$$). Rust guarantees via the borrow checker that the code is data race free. This alone is a huge advancement. I would argue that Rust contains as much boilerplate as Java, but Rust is as fast as C++ and safer than both.

-> You trade some code noise for safety and speed. Compared to C++ the code has even less noise.

Turning code into concurrent code is super easy in Rust. Just use the Rayon crate and change iter() functions into par_iter() and you are done (if the borrow checker doesn't complain).


If you want a really fast webserver. Tokio's[1] zero-cost abstractions are amazing. Further, the examples provided make futures/async/low-level socket work quite understandable.

[1] https://github.com/tokio-rs/tokio


Shameless plug: my friend and I are working on a UDP game networking library purely in Rust, built on Tokio: https://github.com/conwayste/netwayste

(at the moment, it's tightly coupled to our game, however)


>I mean, why would I pick it over C#/Go/Python for web development?

Who said it should be picked for web development?

It's however good for systems programming, libraries, embedded, data crunching, network systems, and so on...


Why is everyone so focused on pigeon holing languages like this? There was a time when I wrote web services in C, then C++, a little Perl, and mostly Java. Then we needed dynamic pages and turned to Javascript, and now that’s on the backend with node.

Personally I love Rust. I would choose to use it for web development top to bottom at this point, even with the current limitations of WASM (which is getting better) on the client side.

I’ve never used a language that can be brought to bear from the top of the stack to the bottom with the safety that Rust brings.

That’s of course me, and I wouldn’t force others to use it. I can finally use one language for everything, and that makes me happy. It’s entirely up to you to choose your language, and if you want to use a new one that has growing communities in each of these area, Rust is a great one to choose.


Because not every problem is a nail.


Right. I won’t use Rust to build hardware, only software.

I have many hammers, one for small nails, on for large nails, a rubber one for joining things, even large sledge hammers. Each has its job.

But if I could only have one, that was flexible enough to use across all situations where I need to hit things, that would be great.


Rust still has a lot to catch up on Qt, JavaFX, Android, Cocoa, Forms, WPF, UWP, Unreal, Unity, Hibernate, EF, code generation/reverse engineering from architecture modelling tools, ....

Personally, as polyglot developer, I rather use the best tool for each part of the stack.

Currently I see Rust better taylored for the low level layers that Windows, Android, macOS, iOS, MicroEJ still write in C or C++.

Do you also plan to replace SQL with Rust?


I see all of the gaps you mention as things that are being worked on activily. For some of the things you mention there are already decent Rust libraries: Hibernate => Deisel; Unity/Unreal => there are a bunch of things being worked on eg Piston and others (not yet fully featured of course); code generation => macros_rules! and proc macros, and custom derives can be extended to support this; javafx => yew?.

I’m not saying there are things available for all of these areas, nor am I saying that I think necessarily others should choose to rely on the language in some of these areas, unless you want to directly contribute to filling in those gaps (there are many people who are doing this). What I am saying, is that based on my experience with the language, especially in the context of Web Development, I would pick it for frontend and backend development at this point.

I agree that there are areas it really shines in right now, and if you’re working in those areas than I definitely push people in that direction. But yeah, for native GUI stuff, if you need to do more that toy stuff, it’s not ready yet.

> Do you also plan to replace SQL with Rust?

I’ve considered it! As a way of more replacing DB side procedures: https://github.com/clia/pgxr (an example of one option). What we can do with SQL is use code generators to type check the SQL at compile time.


>Who said it should be picked for web development?

These perhaps?:

https://github.com/SergioBenitez/Rocket

https://github.com/actix/actix-web

https://github.com/carllerche/tower-web

Not saying that is the primary use, but still a valid question as long as these libraries are being built/pushed.


Additionally, npm is a production user that runs at least one web service that we know of, for example.


A web service is not web development though. At least I didn't consider "web development" in the parent's sense with "running a backend REST service", but more like "running websites".


That might be fair, yeah. I've seen some sharply make this distinction, and others not care.

I think things are much more viable for "services" rather than "sites" right now. And the npm thing is a service.


The way I'd describe Rust is, it's what C++ would have been if it used ML as a source of inspiration rather than Simula, and didn't care about preserving syntactic compatibility.

To unpack, this means that it's still a language that is very "close to the metal" in terms of lack of overhead, and broadly follows the don't-pay-for-what-you-don't-use C++ maxim. But at the same time, it's a very high-level language with lambdas and ADTs and destructuring.


Yeah, however that is exactly why C compiler vendors did embrace C++, and it got a foothold in OS SDKs.

Had Bjarne not taken that decision and C++ would having drinks with Modula-2, Pascal, Oberon and others.

So it was both a bless and a curse.

Rust seems to be increasingly adopted in spite of being different, so lets see when it gets a nice OS SDK sweet spot.


Rust might be good for algorithmic trading, and is good for other real-time uses. It's good for building wasm modules. It's good for most any kind of performance sensitive or resource constrained application. If you need high throughput, low latency network services, it's good for that. CLI tools. You can build libraries to expose through C FFI, and even plug them into nodejs to do heavy lifting for existing js codebases. I think its good for anything c and c++ get used for and a lot more.

It's not that good for rapid prototyping, won't please many big enterprises who don't trust it and can't hire maintainers easily, and it can't do much on mobile phones. There are also some types of integration work where you'd be wasting your time with rust due to lack of domain specific crates.


I would not pick Rust over C#/Go/Python for web development.


Go? Here's Rust enum for working with JSON

enum Value { Null, Bool(bool), Number(Number), String(String), Array(Vec<Value>), Object(Map<String, Value>), }

How would this look in Go?


throwing annotations on structs and letting the library generate suitable serializers and deserializers works reasonably well in Go, as long as the JSON is not too unstructured. The same applies for Java and C# (here the JSON libs might be even better). And obviously for Rust too via serde.


Thats a fairly big restriction though and a sign of type system that is not flexible enough.


Maybe. However your representation isn't without drawbacks either: All fields are typed by strings, and are thereby not strongly typed. And each additional level (in an array or object) requires mandatory boxing and allocations. The codegen variants on pure structs don't have this drawbacks.

I would say your representation is favorable when someone wants to work with arbitrary JSON in a flexible fashion. However if schemas and code generators are available, I would prefer to use those.


Thing is in Rust you can do both


Not proficient in Go but I see an interface{} somewhere in the answer.


At which point type safety goes out the window


Try percy. It's still in alpha, but it awesome.


I think "web development" is too generic to say something like that.

I'd consider a small data processing service, maybe a service invoked from the web server you're already using in Ruby or whatever, is a perfectly pleasant place to use Rust, and often likely to be 1:1 identical to those other languages.


There's more to programming than web development.


I've been deploying Rust to AWS Lambdas for months for a side project. I chose rust because it's just my favorite language to work in - I'm very productive in it. I also really wanted predictable, solid performance, and Rust is a great fit for that.

I don't really like any of the 3 languages you mentioned though.


How are you wrapping your Rust code? Lambda doesn't support it yet, does it?


Many use the Go runtime, which doesn’t care what kind of binary you actually use. There’s tooling to support this too.


aaaaaaaaaaaaaand today they announced support!


If you had to pick a fourth language what would it be?


I honestly don't know. I primarily work in Python professionally. Java before that. I guess of that list C# seems the most tolerable but I have the least experience with it.


I'm a front-end developer, but I picked up Rust originally to do some audio processing in the browser/node - a thing that's still a little to heavy and time-critical for JavaScript.

Also the compiler is pleasant and gives you helpful advice on how to make your program compile.


It will outperform them (although not by much in the case of Go and C#), and it's also a pleasant language to use. It has a number of features like traits and enums which make it possible to expresa business logic in a way that can feel more natural than OOP classes.

It's also fantastic for reliability. In the same way that Java and C# represent a step up from python/php/js in compiler driven correctness, Rust represents another jump of similar magnitude.


Depending on what you're measuring, it can outperform Go and c# by an appreciable margin. I built http APIs in all three languages which depended on json parsing speed and PRNG speed and the Rust version was well ahead, but these were pretty naive implementations, no 3rd party PRNGs or anything.


In short: any place you would use C/C++, and lots of places where you wouldn't.


> Does it only outperform them, or is it also a pleasant language to use?

I think you'll find a wide range of responses to this question, as personal preferences tend to vary quite a bit. For my two cents, I really enjoy using Rust, and I find myself super productive in it compared to other languages. In broad terms, I find Cargo to be miles ahead of any other build tools/language-specific package managers in terms of ergonomics, and in broad terms, I find the language to be expressive enough to save me a lot of time in having to define things I would have to in other languages and the compiler powerful enough to ensure that I don't break things when doing so. Granted, it takes time to learn how to leverage the expressiveness, and I can understand that not everyone will value this as much as things like being able to ramp up new developers quickly. I'll give the caveat that I don't actually do much web development, so my comments about expressivity/ergonomics describe the language itself and not the web ecosystem.

tl;dr Pleasant is subjective, but yes, some people (like myself!) really enjoy using it


Last week I got scammed by some guy that came to my door asking for money so he can have a hand surgery, he showed me his hand which was severly disformed and I got sentimental and gave him some spara change (a few bucks), which considering I'm a student still hurts my tight budget a bit. Anyhow I felt good giving him the money, because I thought it might help him if even just a bit. Turns out he got arrested for being a scammer the next day, I recognized his face in the local news article. The takeaway lesson from that was that if I were ever in a position to help people out, I'd do so only through legal chanells and organizations that have proved themselves to actually give something meanigful for the people in need.


I have mixed feelings. A tragic injury used to solicit sympathy has been a staple of beggars for 1000 years (its in 1000 and 1 nights?) And what makes a beggar 'a scammer'? The injury is fake? Well, the need might have been genuine.

I don't know; helping is helping, whatever the path it took.


Sorry to hear that. Sadly, things like this can happen. It seems like a lot of that comes from adverse selection, though. By helping those that ask you for help, you become a target for fraud. Instead, I seek individuals out by looking at the "Seeking Work" section of Olx, so it'd be pretty difficult for a scammer to actually target me.


Is it disturbing from a US POV, or generally speaking? Because if I recall correctly, the US military spending has gone up significantly as well, also it's projected to rise even further in the future.

On a related note, could someone explain to me how Russia manages to stay a threat with a military budget that's about 6% of the US budget? Or does it only seem to be that smaller because their soldiers are payed less?


> On a related note, could someone explain to me how Russia manages to stay a threat with a military budget that's about 6% of the US budget?

Because Russia: (1) has ICBMs, which makes it a strategic global threat, even though they can't directly control territory that way, (2) because Russia has a large and capable conventional military than makes it a strong regional power threatening US interests and allies (it can't challenge the US on global force projection, which is the real driver of US military cost.)

> Or does it only seem to be that smaller because their soldiers are payed less?

Soldier and suppliers being paid less is a factor, too, but the big factor in the fundamental asymmetry between what is necessary to be a regional power and what is necessary to be able to respond to threats by regional powers everywhere in the world.


And Russia can apparently influence world opinions and politics to a major unknown degree. Cyber security tends to get the short end of the budget stick, but Russians seem to excel at it.


I read an article that says that Russia would be the country that benefits the most from US tariffs on import goods, because the EU must retaliate and therefore is much more likely to lift the sanctions of, of Russia.

Didn't want to believe it that the US government could be under Russian influence, but this move could very well prove that to some degree, or it just so happens that Trumps way of doing this aligns perfectly with their interest. On other note, people might just be reading into it too much, as it could all just be a move to, gain popularity in the US, thinking short term rather than long term.

EDIT: also recently watched a youtube video from a Google employee that says that the US government, just can't compete with big corporations for the talent pool, because government wages are limited, so yeah that certainly could be a issue for you guys.


"Because if I recall correctly, the US military spending has gone up significantly as well, also it's projected to rise even further in the future."

US military expenditures are also very disturbing.


The US defense expenditure as a percent of GDP has gone down as a long term trend.

https://goo.gl/images/sQPFFy


US military expenditures are also very disturbing.

Yes and no. Remember how much goes on white elephants like the F35 and the Zumwalt-class. Does China have programmes like that?


> On a related note, could someone explain to me how Russia manages to stay a threat with a military budget that's about 6% of the US budget?

Total speculation: the US may spend more on R&D to develop unproven ideas into functional systems (with a lot of failure and trial and error). Then Russia can follows those now-proven development paths without needing to spend nearly as much on dead ends or original research.

Kinda like this link that another user posted here: https://io9.gizmodo.com/this-experiment-proved-that-anyone-c...

AFAIK, there has always been a lot of Russian copying/mimicry of US technology, from the Tu-4 to the Buran, but little in the other direction.


It doesn't just disturb the US, but every country surrounding China that is dominated by the strongest power in the region. The weaker countries have no choice but to accept unfavorable trade deals, give up ocean territory away from what is the accepted as international convention, etc.

China is big. China being ran by a dictator becomes a big bully.


US is a big bully with its Monroe Doctrine, dictator or not. This is China's version.


Just because the US does it doesn't make it right, and it doesn't make it any less concerning for the other countries in the region. Moral relativism isn't a good defense.


It's a lot worse than that. The US has been a superpower for ~75 years. In that time, the US hasn't been annexing territory in Latin America (and yes, the US is guilty of repeatedly meddling in the affairs of nations in Latin America, and it deserves all the flack it gets for it).

The Monroe Doctrine for example has never included a drive to conquer Latin America and annex it. That doctrine is about driving out European colonialism. The territorial integrity of countries in Latin America has been well served by that shield. If you're Venezuela and your entire nation has collapsed (which it has), you don't have to fear someone conquering you due to extreme weakness and annexing you: the US would never allow that and everyone knows it. Historically, at nearly any other time or place, Venezuela would get invaded and conquered while they're so extraordinarily weak (they have the largest oil reserves on earth after all).

If the US were to behave like China is already (much less what might come next), the US would be threatening to annex Toronto and Vancouver, along with Baja Mexico and the entire Gulf of Mexico and Caribbean Sea.

We don't have to wait for bad behavior out of China. They just used their military to steal territory about four times the size of Texas from their neighbors.


Not the best examples. The US entertained annexing Canada and did annex large swathes of Mexico (not in the last 75 years, true, if you want to arbitrarily draw the line there). China has plenty of stable agreed borders with weak and troubled neighbors. You have your rose colored views but they are somewhat laughable.


> The US ... did annex large swathes of Mexico

Here's some context for that:

https://en.wikipedia.org/wiki/Texas_Revolution

https://en.wikipedia.org/wiki/Republic_of_Texas


> US is a big bully with its Monroe Doctrine, dictator or not. This is China's version.

https://en.wikipedia.org/wiki/Monroe_Doctrine

> The Monroe Doctrine was a United States policy of opposing European colonialism in the Americas beginning in 1823. It stated that further efforts by European nations to take control of any independent state in North or South America would be viewed as "the manifestation of an unfriendly disposition toward the United States." .... The Doctrine was issued on December 2, 1823 at a time when nearly all Latin American colonies of Spain and Portugal had achieved, or were at the point of gaining, independence from the Portuguese and Spanish Empires.

Doesn't sound very bully-like.


One of the proclaimed reasons for which Japan invaded Asia in the Second World War was to oppose European nations (Japan included Russia and the US in this) colonizing Asia. I am sure to Japan that didn't (and if you probe Japanese deeply, still doesn't) sound very bully-like. Yet, we know what happened.

Let's not beat around the bush. This is a rising country's way of saying, I pwn my backyard (so you can't pwn it) and I will use my might to defend it. Of course the one saying that doesn't sound like a bully to himself.


> One of the proclaimed reasons for which Japan invaded Asia in the Second World War was to oppose European nations

Boy, what a false equivalence.

More from Wikipedia:

> The reaction in Latin America to the Monroe Doctrine was generally favorable but in some occasions suspicious. John Crow, author of The Epic of Latin America, states, "Simón Bolívar himself, still in the midst of his last campaign against the Spaniards, Santander in Colombia, Rivadavia in Argentina, Victoria in Mexico—leaders of the emancipation movement everywhere—received Monroe's words with sincerest gratitude".

This is an important point. The Monroe Doctrine wasn't a pretext to invasion and domination, it was actually assistance against those things. The people protected by it welcomed it.

Fast forward to the present day: Vietnam just hosted a US aircraft carrier, in a very symbolic move. It's not looking for China's help to drive the US out. China is in fact upping the ante in territorial disputes with its neighbors. China looks like a lot more like Japan in the 1930s than the US in the 1830s.


> This is an important point. The Monroe Doctrine wasn't a pretext to invasion and domination, it was actually assistance against those things. The people protected by it welcomed it.

Nah, it was just empty posturing at the time.

Once the US had the capacity to put teeth into it (which wasn't for a long time), it became a pretext for invasion and domination, though.


Yes, and it is problematic when the US does it, and it will be problematic when China does it.

One country doing terrible things intervening in other countries is not an excuse for other countries to get involved and do the same thing.


I made no recommendation about doing what others do, just pointing out some facts, why did everyone trip out defensively? Maybe it's the guilty conscience speaking.

And it is guilty conscience because you know that those problematic actions netted the aggressor (the most successful ones at any rate) plenty of benefits that many people still enjoy to this day.

I don't think the world should go down this road, and there are such things as international norms. That's why when one country ignores them continually and also gains from doing so, it becomes very disadvantageous to refrain and tempting to emulate. In that regard it absolutely matters to talk about the fact that "the US did it" and still does in a another way. Same goes for China or Russia.


I mean, tell that to South Korea, Japan or Poland.


It's a concern because anything that challenges absolute dominance of the US-led order is considered destabilizing and threatening, but there is an asterisk, as in, "by whom"?

If you happen to benefit or be happy with the US-led order, say an ally or vassal (military, economic, or just ideological), then you will feel the same way, naturally. If you are not, you are not so concerned.


A couple of friends of mine worked as hardware engineers in Russian military (or, to be exact, some subsidiary). They later moved on to Intel and Nvidia, and overall you can consider them quite capable CPU engineers (I never got the hang of what exactly they were doing, and a lot of it was under NDA).

While working there, they got less than $10k annually. If they would be able to get H1B, it's my understanding they'd get at least $100k.

While a lot of folks move to commercial sector and other countries, there a lot of people staying there, despite low salaries. Doing essentially the same job that their counterparts in US are doing, quite often for 10 times less money.


Expenses are also lower, right? Basics like housing, food, utilities. Even in the west few actually need the bloated budgets they say they do. "Oh I can't live on 60K/year!". Give me a break.


Depends on the quality of life you're aiming at. Rent is certainly cheaper than in SF, NY and London, but isn't that far off from other american and european cities. Still, you can't compare even rents easily, because while european and american renters usually talk about one-bedroom apartments and sometimes don't even mention a common room, here apartments are measured in rooms (not bedrooms) and in my experience are usually smaller. Personally, I pay about $1k for one-room apartment, but it's 15 minutes walking distance from the office, in a very nice neighborhood, furniture and a view; typical rate would be $500 per month or so.


some hypotheses:

80/20 rule - 20% of the budget gets you 80% of the capability. ofc these are not accurate percentages

not to say this doesn't happen in Russia, but everyone talks about how much excessive waste there is in the US military

like you say, cost for soldiers will be much less there


US? It is far more disturbing to China's neighbors than to the US.


The majority of US military spending is on soldiers and things related to soldiers (VA care, housing, retirement, education, etc). Most people think the US is spending all of that money on hardware, when that's not the case.

Incomes and general costs related to soldiers in Russia are even lower proportionally compared to the ratio of the per capita output gap between the US and Russia. Russia doesn't take very good care of their soldiers in most regards. If you divert a higher share of your military spending to R&D and hardware, as opposed to soldiers, you could close the gap some (and the US wastes plenty of money on unnecessary things; so if Russia is more careful about that, and chooses to focus more on what they can really afford to make a dent in, they can further close the gap).


> On a related note, could someone explain to me how Russia manages to stay a threat with a military budget that's about 6% of the US budget?

It doesn't make sense to compare amounts directly - labour cost (and cost of life) in Russia is way cheaper.

And if we will compare %% of GDP - for the last decade Russia is spending same percentage (or even more) compared to US.


Which countries around the world are under the explicit and implicit protection of China's military?


Probably the whole nuclear aresnal thing.


>On a related note, could someone explain to me how Russia manages to stay a threat with a military budget that's about 6% of the US budget? Or does it only seem to be that smaller because their soldiers are payed less?

Never underestimate the sheer waste and incompetence that the US Government is capable of achieving. My general model is that we get about ten cents in value for every dollar spent. So, all Russia needs to do is break even, and they would achieve close to military might of the US.


So all Russia needs to do have all their spending deliver at 100% efficiency. That's not going to happen. Russia is a bureaucracy too...


I don't know what 100% efficiency means. You italicized it, so it must mean something to you. But I was talking about return on investment. The US loses 90% of the money it invests, whereas, for example, companies like Boeing make money with their investments. So, all Russia would need to do it not lose money they invest. That's not what 100% efficiency means to me, but it's a very achievable goal.


If given the choice people will usually pick the field they find interesting. If however you live in an impoverished country where getting a job in a STEM field could be the ticket out, you are way more likely to consider picking those fields. My (original) country is rather poor for example, but the education is free and a lot of people in college that were studying with me picked EE & CS just because it could give them a good paying job, they didn't care about the field nor did they in most cases enjoy it all that much, those who didn't change their mindset usually didn't graduate or it took them more because they were forcing themselves, anyhow in those living conditions the male to female ratio in STEM fields was always close to 1 : 1. But that might not be the case were OP lives, because in a rich country people get to choose with far less pressure and in the end it still holds true that most girls just don't find those fields to be interesting.


Pysho pass anyone?


That’s probably the closest to the article because the system justifies itself to be right. Other commenters have said that it’s a case of parallel reconstruction . (Which would rule out minority report).


I see this as good news, no country should rein supreme as that would most certainly allow it to misuse it's power, instead having two competitors guarantees, to some degree at least, that neither will abuse it's position.


In principle, yes. In reality, look at how they use their power. You don't see the US taking territory and resources at gunpoint from Mexico and Canada, like China in the South China Sea. You don't see parallels to the Taiwan situation. Let's not pretend that communist China acts with the same level of integrity in the world as the USA. Not the the US hasn't done many questionable things, but by and large the US has invaded countries and brought them democracy and freed their people from dictators. China would do the opposite if they could get away with it, look at Nepal, Hong Kong.

I spent 10 years in Panama, where although many people still resent the US invasion, chiefly over the loss of life - the country is unquestionably better off today for it.


Are you sure about that? I live in California, which was previously Mexican territory.

I also have friends from Texas, which was also Mexican territory.

Perhaps your point is that the US became less imperialistic since then, but that's easy to say once it's taken what it wants.

China sees Taiwan as an integral part of the "Greater China", a still unresolved problem from the past century's wars. It sees the South China sea as its own backyard. Can you imagine the US response if China were sailing military vessels provocatively close to the cost of continental US?

I'm not saying either is right. I'm pointing out that the US is not without its hypocrisies either, and that each country has its own flaws.


That was hundreds of years ago when the world was a very different place. In a post WWII, post UN world, the standards for behavior for nation states are very, very different.

The point I'm trying to make is the world has largely moved beyond that, but China still thinks it's ok to steal territory from it's neighbors.

If the situation were reversed and Chinese vessels were patrolling in international waters in the Caribbean to dissuade the US from taking territory from it's neighbors there, I'd be cheering them on.

That's not to say the USA doesn't do their fair share of despicable or hypocritical things, but by and large they have been a much better steward of power than China. I think the world will come to miss those days of American leadership in this century.


> Can you imagine the US response if China were sailing military vessels provocatively close to the cost of continental US?

Thankfully we don't have to imagine.

https://thediplomat.com/2014/07/china-is-spying-on-rimpac/

"“It has not entered the territorial seas of the U.S. and it is in accordance with international law regarding freedom of navigation,” Capt. James said in a statement released to the Wall Street Journal. He explained that the ship was in Hawaii’s exclusive economic zone (EEZ). The U.S. maintains that freedom of navigation for all international ships extend to countries’ EEZs, and it has long maintained ships inside China’s EEZ."


170 years ago. Hardly relevant now. At the time conquest was considered a legitimate way to acquire territory. That changed with the Kellogg-Briand Pact in 1928 and the UN Charter in 1945.


I'd say the treatment of Cuba has some parallels to the Taiwan situation.

And there have been many comments in recent months pointing out that China is actually acting with a lot more integrity on the international stage as the US with regards to, for example, the Paris Climate Treaty.

With regards to Panama: let's not forget that the US actively supported Noriega until they changed their mind.


Yes, all good points. Although I think (hope?) the policies of Trump are not representative of past or future US policy.

Nobody, group, or nation is all good or bad, it's always somewhere on a slider between the two. China does many admirable things that the US would do well to follow. But I think it's also clear that the US ranks better on that sliding scale.


As someone whose country was destroyed by the US and is still taking damage and being oppressed by them, I tend to disagree with your opinion, in fact both China and Russia have been way more helpful.


Could you elaborate more details on your country, what the US has done, and how China and Russia have been more helpful?


> You don't see the US taking territory and resources at gunpoint from Mexico...

Not in this century. It happened, though.

But I agree with your larger point. The US has not always been pure in how it used its power, but I don't trust China very far in terms of how it uses power. (Tibet, Vietnam, South China Sea, North Korea...)


>You don't see the US taking territory..at gunpoint from Mexico

>by and large the US has invaded countries and brought them democracy and freed their people from dictators

Hahaha. I mean really. It's amazing that educated people can be brainwashed to believe this absolute nonsense.

The first of those statements show, I don't know, breathtaking historical ignorance, or something, it's hard to explain otherwise. You don't see it because it already happened, long ago.

The second is the official line heard in the US mainstream media and White House press statements etc. I was brought up believing it too. But it's very far from reality. It's been more usual since the 1890s for democracy, self-determination, refusal to submit obediently to US bullying, standing up to the US, to be the very reasons for invasion. It's thoroughly depressing to learn the history. It's the opposite of what you're told. The US has installed dictators, often military types given a load of US weapons. The US prefers dictators—whatever makes for docile 'stability' and exploitation by US business, and democracy is unpredictable, uncontrollable. Then, disgustingly, the US media is filled with stories of how it was all to bring democracy to a land threatened by communists, terrorists, instability etc. And more bilge about doing God's sacred work on earth etc.

> the same level of integrity in the world as the USA

hehehe. Ah I don't know if it's much use my saying this stuff to people on here. The reality is soooo different from what people in the US are taught to believe. So different that you'll feel physically sick when it starts to dawn on you.


I'm not from the USA, nor am I ignorant of history. I used the present tense, because I'm talking of modern times. You cannot judge countries in the past by today's standards. Things were just different then.

You also should not say that the US prefers dictators, I don't think that's ever been true. But sometimes they see it as the lesser evil when the populace would go against US interests - which is certainly hypocritical.


OK, sorry if some of my assumptions were incorrect.

>sometimes they see it as the lesser evil when the populace would go against US interests

So here democracy is 'the greater evil'. Countries have their own interests, the US has just often tried to stomp out any chance of other countries achieving theirs. If anyone tries to do the to the US it's met with moral outrage. Same with 'free markets'. Endless preaching them, actually it's the last thing corporations want.


Yes. To be fair, sometimes those interventions have worked out for the better - look at the difference between North Korea and South Korea today. Of course the reasons for that intervention had little to do with the best interests of the Korean people and a lot more to do with preventing the USSR from spreading their influence - but even that seems to be a clear win in hindsight - those places where the USSR spread it's influence suffered in poverty, their populations denied basic human freedoms. Many of them still do.

So yeah, the US looked out for their own interests, and I don't suppose that should be a surprise to anyone, because that's what every nation state does. But by and large they made the world a better place for it - with a few glaring exceptions. I don't think the world would do as well under Chinese leadership - but I also do not think we will see that world in this century. China is not poised to overtake the USA as many seem to believe is inevitable - their near future is written in stone in the demographics of their country, and will more closely mirror the story of Japan. This seems likely to be a second US-led century.


To play devils advocate - its not at all clear that the south would be better off were there not massive embargos imposed upon the north. For decades after the split the North was the more prosperous country.


[flagged]


You're remarkably off base on just about everything.

I think the only thing you said which is correct is that Panamanians are thankful for the canal and to be independent of Columbia.


Flagged for gratuitous anti-semitism (to wit: neither the current, nor the former President are jewish)


I don't have any anti-semitic feelings towards the jews. The jews here make up ~10K of the 20K upper class and I live in Punta Pacifica which is a jewish area. I consider their influence to be instrumental for preventing many of the policies that have severely tarnished other Latin American countries.


Actually having two competitors is what causes the most bloodshed in the world. War by proxies erupt and they play chess with other people’s lives.


> having two competitors is what causes the most bloodshed in the world

If by "most bloodshed" you mean the population-adjusted (or unadjusted) incidence of violent mortality, bipolarity has its proponents [1][2]. Unipolarity has traditionally been seen as nice in the short-run but inherently unstable in the long [Cf 3].

One point on which there is agreement, however, is the violent instability of multipolar social systems.

[1] http://www.rochelleterman.com/ir/sites/default/files/waltz%2...

[2] https://samuelbhfauredotcom.files.wordpress.com/2015/10/s2-m...

[3] https://www.belfercenter.org/publication/stability-unipolar-...


Indeed. This is what is currently in progress at the Turkey-Syria border between the US and Russia.

Estimates place the casualties between 400k and over a million people [1].

[1] https://en.wikipedia.org/wiki/Casualties_of_the_Syrian_Civil...


Actually, most of my international relations professors tend to disagree. And there is a huge amount of literature that points out that bipolar system was probably much safer for international stability, than unipolar or multipolar for a long run.(nice summary[1])

The general idea is that unipolarity is anarchical and that it will always try to produce a competitor = lots of wars to come, while in bipolar system you always have 2 strong competitors and it is in theirs interest to stop any local conflict before the second superpower uses it in its advantage. Today it is a complete different story where everyone is figing for who know what reason and USA doesn't really care to stop anyone and it probably cannot do anything in most cases, because back in the days of the cold war there was fight for power and now we actually have luck of power in most conflicts. During cold war we had a clear understanding who is finghig and major hot spots were actually pretty localized (Korea, Vietnam, Afghanistan), but nowadays look at Syria/Yemen/Iraq/Libya/Egypt (I try to follow international relations daily, but have a hard time to truly understand who is fighting whom at this point)War on Terror, wtf is this, some USA global war? who are they fighting really? Afghanistan? Iraq? Enforcing national interests? Who knows. It actually looks like everyone have this war on terror nowadays and USA was just one of the first to face this lack of power all over the world. Actually I'm really hoping that USA is playing the role of Orwellian big brother with constant war, because the alternative is scary: USA is already not able to control the situation and it is going to get worse, much worse. The unipolar world brought us 3-4 more nuclear powers because no one is playing by the rulls anymore. There is no policemen to enforce those rules. We have North Korea escalation not because they are playing with nukes, but because if the USA allows them to keep the weapon, everyone else will go and create one. And then we will be truly fucked up.

- "The United States has been at war for thirteen of the twenty-two years since the end of the Cold War. Put another way, the first two decades of unipolarity, which make up less than 10 percent of U.S. history, account for more than 25 percent of the nation's total time at war." - "in 2014 these are the only 11 countries in the world that are actually free from conflict" [2]

And if you look at [3] you can see that starting from late 70-s - early 80-s (because that's the time SU started to loose power) we have a spike in number of local conflicts worldwide and there are lots of brutal massacres in 90-s+. Most of the conflicts are in ongoing status for 30-50+ years now and we can see the rapid increase in deaths [4].

I'm not saying that it is 100% correct, most of this is just a theory and everything can change in a matter of 1-5 years, but we still have to see the emergence of new rivals of the USA hegemony and the worst case scenario is the comeback to the multipolar world of 18-19 centuries, but with everyone having nukes and who knows what else.

[1] https://en.wikipedia.org/wiki/Polarity_(international_relati...

[2] http://www.independent.co.uk/news/world/politics/world-peace...

[3] https://en.wikipedia.org/wiki/List_of_wars_by_death_toll

[4] https://en.wikipedia.org/wiki/List_of_number_of_conflicts_pe...


The converse is that having one supreme superpower is better for world peace because there's nobody to compete with them militarily. Therefore there's only one power that can decide to take military action (the superpower). This is because the weak players won't start a war because they will get crushed.

However, if N > 1 powers are on equal footing where starting a war does NOT mean you get crushed, now there's N > 1 actors that can start a very large war. And that may have compounding effects where likelihood of war isn't just Percentage * N, but instead some exponent of N because the increased likelihood of war itself increases the likelihood of war.

One country misusing its power is probably less destructive to humanity than superpowers militarily fighting (i.e. number of deaths/problems caused by US wars since WW2 is substantially less than deaths during WW2).


As others have said, having a superpower keeps the peace. Multipolar worlds tend to be ridden with conflict.


Neither a unipolar world or a multipolar world is inherently more or less peaceful. Peace comes when you get used to living in a certain world and accept your position. Conflict happens in transitions to such acceptance.


When there is unipolarity, the superpower can enforce the status quo. Which produces certainty.

When a superpower exists, the order of power is clear. Thus a nation has little choice but to accept its position.

So according to your own definition wouldn't you agree that unipolarity produces peace?


Honestly I would be depressed it that was the field of my research.


Yeah that is a real concern, that is many people who don't even posses a deeper understanding of those topics will take on the job market, so having a "rare" skill can differentiate one in the job market.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: