Go core devs on suicide watch

Blake Sanchez
Blake Sanchez

TL;DR: My GF wrote a coroutine library whose context switches are more than 20 times faster than Go's goroutine scheduler and basically Go is cringe tier.
My GF wrote a C++ coroutine library. When she benchmarked it on her Intel(R) Core(TM) i7-8700 CPU (3.20GHz) on 12 threads, she achieved a system-wide throughput of 166MHz (6ns) for coroutine context switches, while the equivalent Go code (also 12 threads, same amount of goroutines and iterations per goroutine) performed miserably at 7MHz (140ns). When compiled with gccgo -O3 it was even worse at 3.8MHz (263ns). This means her implementation of coroutines is more than 20 times faster. How can you fuck up the main feature of a language that bad, considering Google had a whole team of developers working on it, and she did this on her own?
Benchmark suite repo: github.com/sm2coin/libcr-test
Go benchmark code: excuse the shitty codepackage main;
import(
"fmt"
"runtime"
"time")

func loop(i int, finish chan int) {
for i > 0 {
runtime.Gosched();
i = i -1;
}
finish <- 1;
}

func main() {
fmt.Println(runtime.GOMAXPROCS(0));
iterations := 10000 * 20;
messages := make(chan int);
start := time.Now();
coroutines := 600;
for i := 0; i < coroutines; i++ {
go loop(iterations, messages);
}

for i := 0; i < coroutines; i++ {
<-messages;
}

duration := time.Since(start);
fmt.Print(duration.Seconds());
fmt.Println("s");
fmt.Print( float64(coroutines * iterations) / duration.Seconds() / 1000000);
fmt.Println("MHz");
fmt.Print(float64(duration.Nanoseconds()) / float64(coroutines * iterations));
fmt.Println("ns");
}

Rate her project.
Lel I'm tired and I bet I fucked up the OP ;^)

Attached: ClipboardImage.png (189.79 KB, 500x607)

Other urls found in this thread:

github.com/ksimka/go-is-not-good
github.com/valyala/fasthttp
techempower.com/benchmarks/#section=data-r17&hw=ph&test=query
pastebin.com/VnSA1DDA
research.swtch.com/generic
hackernoon.com/ten-years-in-nobody-has-come-up-with-a-use-case-for-blockchain-ee98c180100
paulspontifications.blogspot.com/2013/01/when-haskell-is-faster-than-c.html
github.com/janestreet/incremental
github.com/mirage/mirage
gitlab.com/tezos/tezos

Jack Sanchez
Jack Sanchez

Stupid nigger

Camden Wood
Camden Wood

t. Robert Griesemer, Rob Pike, and Ken Thompson

Attached: ClipboardImage.png (62.75 KB, 200x200)

Aiden Kelly
Aiden Kelly

I rate it tranny/cuckchan.

Cameron Green
Cameron Green

My GF doesn't know about the chans. And she's a real woman.

Sebastian Wood
Sebastian Wood

My GF
You wearing drag and a wig does not count as having a GF.

Joseph Gomez
Joseph Gomez

I've been had!
It was real in my mind, though.

Jackson Ramirez
Jackson Ramirez

your code sucks and you say that just so people would not say mean things to you

Joseph Martinez
Joseph Martinez

You almost tricked me into thinking you had a GF so now I am mad so I insult your code.
heh

Hunter Wood
Hunter Wood

The best part is it's probably not even faster because of anything she wrote, it's just faster because Go's snowflake-compiler can't optimise for its life.
also how 2 get smart gf, all my crushes end up being physics girls

Adrian Kelly
Adrian Kelly

[spoiler] traps :^) [/spoiler}

tl;dr?

Oliver Watson
Oliver Watson

My GF wrote a coroutine library whose context switches are more than 20 times faster than Go's
<LARPING:
<Telling Stories that Never Happened.
This week: Moar extravagances of accelerationism tbh, Feminism is finally proven correct, goy! White men BTFO!!!!!1111

Ian Hernandez
Ian Hernandez

ffs that whole GF thing was a fucking joke to serve as a pseudo deanonymisation because of self-doxxing post. I never even held hands before.
tl;dr?
I presented my coroutine lib which is verifiably 20+ times faster than goroutines.
Hurr OP is an SJW or something
As stated before, the whole GF thing was a joke.
It isn't faster
<After I linked the program you can use to verify it for yourself
k mate.

Jeremiah Perez
Jeremiah Perez

deanonymisation
I meant to write depersonalisation

Thomas Jenkins
Thomas Jenkins

ffs that whole GF thing was a fucking joke
I knew it. It's a pretty clean implementation. About the only evidence of potential chick-code I could detect was superfluous comments in the headers, e.g.
/** Initialises the scheduler. */
HybridScheduler();

I mean, c'mon...

Christian Ramirez
Christian Ramirez

I know it's retarded in some cases, but I document every entity for the Doxygen docs. This sometimes results in stating the obvious, but otherwise, it can quickly happen that my lazyness tales over and I document less and less.

Juan Bailey
Juan Bailey

/g/index.html

David Phillips
David Phillips

</g/
last time I checked, /g/ was full of faggots and had no quality threads. So this time I didn't even bother to check it out.

Jaxon Nguyen
Jaxon Nguyen

pic or fake

Oliver Watson
Oliver Watson

I don't think goroutines are coroutines.

Robert Davis
Robert Davis

My GF
tranny

Xavier Bennett
Xavier Bennett

Goroutines are coroutines: Routines that can be paused and resumed at will. Although Go doesn't have the yield and notify keywords, it does have runtime.Gosched(), and channels can be used to notify and await stuff. It's certainly not as powerful as coroutines in other languages, but I'd still classify it as a coroutine. And only having restricted instead of general capabilties, one would expect them to be noticeably faster than coroutines, but alas, Google writes bad code and fucked it up.
muh simplicity spiralling, no templates
fast parallelism for system programming
<inferior language in every aspect
jej
Read the thread before posting, otherwise, it makes you look retarded. I suggest you lurk for 2 gorillion more years before posting again. Also learn how to detect obvious irony.

Austin Collins
Austin Collins

btw, even in debug mode it's way faster, so even if the go compiler could optimise, it would still lose against my code. That's why Go is cringe tier.

John Walker
John Walker

No surprise. Go is fucking shit. The only "positive" things about Go are:
it's simple (actually just dumbed down so Google can hire retards and pay them next to nothing)
low GC pauses (also low throughoutput)
no Java-style Exceptions (Go still manages to be worse than Java though)
import github
goroutines (it's a shit meme though. The only upside is convenience.)

Jaxson Mitchell
Jaxson Mitchell

based
Go doesn't even has min/max functions for integers. What a a joke.

Easton Garcia
Easton Garcia

github.com/ksimka/go-is-not-good

after reading this I still don't understand why you think it's so apocalyptically bad, most flaws boil down to it's essential philosophy (dumbed down, goroutines, muh unix, muh 70s), or it being too young (muh generics, muh "slow", muh shitty compiler)

Landon Ward
Landon Ward

Go does nothing that other languages aren't doing better.
The only reason Go exists and is popular is Google.

Aiden Murphy
Aiden Murphy

gccgo
Get a real compiler.

Brayden Rodriguez
Brayden Rodriguez

Idk man, I think it's doing pretty good, plus, no other programming language is as easy to optimize for or even gets near to go's coroutines.

It could easily replace babby's first languages like python or ruby while letting some growing room and not being extraordinarily terrible like the aforementioned.

The google hate is unjustified, even if it weren't for google it would've existed, it just happens that they got Rob Pike and Ken Thompson as token employees

Attached: Screenshot-from-2019-06-21-11-15-53.png (41.57 KB, 1145x300)

Matthew Anderson
Matthew Anderson

no other programming language is as easy to optimize for or even gets near to go's coroutines.
Did you even read the OP?

Adam Gutierrez
Adam Gutierrez

yes, C++ isn't exactly a babby's first programming language

Nathan Allen
Nathan Allen

don't understand why you think it's so apocalyptically bad
most flaws boil down to it's essential philosophy
Yes, that's exactly what I hate about Go.
muh generics
They omitted them on purpose because muh simplicity spiralling, because first-time coder interns at google can't into meta programming. And now that even experts are using it, they suddenly want to add back generics or something similar to it. In the end, the community will make it a second C++, but with completely gay syntax and semantics and worse performance.
If you really want to make a good modern programming language, then just improve C++'s syntax to be PDA-parsable and remove some obscure legacy shit.
Muh beginner-unfriendly C++
My first programming language was C++. That was back in 2010. Before that I did a few hours of C64 basic, but that's hardly what I'd call real programming, it is so oversimplified that it hardly relates to modern programming.
Only pussies start out with a "beginner's language", which gives them only a superficial understanding of how computers work, and they stick to it for far too long because it's comfortable. Instead of needing 3x the time before being able to write a program, but gaining a deeper understanding, they just fuck around scratching on the surface for years. Those types (and SJWs (inb4 they are the same)) are exactly what is wrong with the programmer community, and probably the only reason languages such as python and Go are shilled everywhere.

Adrian Gray
Adrian Gray

Did you not read the OP properly? I said that gccgo was even worse than Google's compiler, which implies that I use both. Or are you hinting at a third go compiler that is superior?

Lucas Cox
Lucas Cox

based

Jaxson Miller
Jaxson Miller

1071765
for i > 0 {
i = i - 1
}
If the compiler isn't complete trash this will get optimized away.

Ethan Ramirez
Ethan Ramirez

1071765
Removes yield call
You fucking idiot. This is a scheduler benchmark.

Benjamin Bennett
Benjamin Bennett

1071765
0.10406108333333333ns
Are you retarded?

Adam Gomez
Adam Gomez

1071765
With this simple trick, this Zig Forums user sped up Go benchmarks by over 1000 times.
How? Just watch this video and
BASICALLY YOU'RE FUCKING ACCELLERATED

Jack Murphy
Jack Murphy

Samefag

Adrian Mitchell
Adrian Mitchell

triggered over being told

Bentley Powell
Bentley Powell

No. I am posting with 2 IDs in this thread as I used my phone and my work PC.
t. OP

Attached: ClipboardImage.png (8.45 KB, 310x124)

Jose Hernandez
Jose Hernandez

Fine, I'll only use c++ now, enjoy your segfaults

Hunter Rivera
Hunter Rivera

And to clarify, the only phone posts I made are

William Jackson
William Jackson

Use Rust

The last post is mine though.

Julian Perez
Julian Perez

No, I enjoy having a penis

Austin Thomas
Austin Thomas

I use C++
Enjoy your segfaults
Why would I have segfaults from you using C++?
Admits to being unable to write proper C++
Go back to your safe space language
Oops, well I thought that I could have written that, whatever. Point is, I did not samefag the way I was accused.

Jeremiah James
Jeremiah James

Ever used anything written in c++ by hobbyists? It's a hot mess
Examples:
telegram-desktop
transmission-remote-gtk
chrome/ium
kdenlive
veracrypt
owncloud desktop client

I'd rather have them written in safe space languages, simply because I agree with go's philosophy that programmers are stupid and shouldn't come near c++

Don't tell me about smart pointers, they're calculated in compile time and thus limited in effectiveness

Kevin Thomas
Kevin Thomas

I agree with go's philosophy that programmers are stupid and shouldn't come near c++
smart pointers are calculated in compile time
You're right, you shouldn't be using C++. But you shouldn't be programming computers at all. Even using your safe space language, you're just shitting up the code so your more competent colleagues will have to spend more time fixing your shit than the time they'd spend to write it from scratch. So just do the world a favour and become a trashman or something.

Dominic Gonzalez
Dominic Gonzalez

Sadly there's not enough c++ geniuses to fill up basic crap jobs like microservices engineering, which go covers well.

So I understand that your problem with go is that it isn't c++?

Noah Perry
Noah Perry

Rust

William Long
William Long

Ever compiled anything written in rust?

Coming back to this, context switches aren't a real world benchmark and no one will ever use your gfs library for anything

Jacob Richardson
Jacob Richardson

github.com/valyala/fasthttp

Proof that goroutines are fast in a real world environment

Cameron Gutierrez
Cameron Gutierrez

I was going to reply saying you are just 100% wrong about goroutines but then I noticed you were being ironic. haha good one faggot.

Jayden Bell
Jayden Bell

Sadly there's not enough c++ geniuses to fill up basic crap jobs like microservices engineering, which go covers well.
Most programs nowadays are made by the masses for the masses. To someone who is even a little bit of an idealist, any mainstream software is fucking cancer. You'd literally have to be some niggercattle to be content with mainstream software. When some autist voluntarily writes software that will last, without any deadlines and retarded tradeoffs (so basically, if he's not prohibited from "muh over-engineering" by the company), then once it is mature, that software makes it much easier to write more complex high-quality applications. Company code was never on the same level as autistic hobbyists' code.
So I understand that your problem with go is that it isn't c++?
Well, I also have problems with C++, but C++ is by far the best language I ever came across. But yeah, go is so much worse than C++ that there is no excuse for using it unironically.
context switches aren't a real world benchmark
So, if you have massive amounts of parallelism (say, 100k to 1M coroutines), which basically only occurs in high-performance applications, then it makes a huge difference whether you spend 1% of your time context-switching, or 20%.
your gf's library
read the thread before posting.
I bet it would be much better if they used C++ though. This is exactly the "good enough" mentality that I hate so fucking much.

Angel Davis
Angel Davis

Ever compiled anything written in rust?
Many times. It just werks.

techempower.com/benchmarks/#section=data-r17&hw=ph&test=query
Rust and Java are faster
lol

Christopher Scott
Christopher Scott

That's using a database, I'm talking about the library itself

Jacob Moore
Jacob Moore

You're talking about microbenchmarks that have no basis in reality.

Brody Thompson
Brody Thompson

Isn't this what the thread is about?

Parker Gutierrez
Parker Gutierrez

Yes. Although context switching is a serious concern once you go massive parallelism.

Ethan Walker
Ethan Walker

once you go that far wouldn't you be using c++ anyways

Jose Cook
Jose Cook

Well, that's what I was thinking, but then came all the Go fags saying "muh cheap parallelism" and triggered me into this rage.

Brody Ross
Brody Ross

It's cheap, but it's not that cheap, 1kb is reasonable af

Again, for doing fast crappy jobs it's perfectly fine, and it's probably worth the savings in development time. Good enough means not throwing money and time into a bottomless pit. It's better than python by a long shot, and python is the go to language for that kind of job, so be glad it exists and embrace it

Nolan Bell
Nolan Bell

And make no mistake, if someone writing a language designed to support cheap parallelism doesn't make it truly cheap, you know what levels of sloppiness to expect in all other parts of the language. Google doesn't give a fuck about the language, there are no ideals behind it. They just want something barely functional and simple enough to employ masses of cheap programmers for their world domination machinery.

Leo Ortiz
Leo Ortiz

It's very sloppy overall, especially the standard library, but it werks

Lincoln Allen
Lincoln Allen

My GF
Cool thread

Aaron Butler
Aaron Butler

implying someone of my abilities and disposition would ever desire to use a language that is only capable of doing a fast crappy job
implying I care about the costs of development
1kb is reasonable
In libcr, coroutines have an overhead of 56/48 bytes (depending on whether you use the compact instruction pointer mode). Although you have that overhead for every recursion, that would still beat goroutines until you have a nesting depth of around 20, which is pretty rare.
Considering that python already existed, I wonder why Google even made the language. Nvm, it's because they want to lock in everyone technologically. That's also why you have to hardcode the remote location of your dependencies into your source files, so that components become hard to exchange, and you can't just use forks by third parties without having to go over your whole codebase.
see . Read the thread before embarrassing yourself.

William Sanchez
William Sanchez

How can you fuck up the main feature of a language that bad, considering Google had a whole team of developers working on it, and she did this on her own?

I assume it's slow because it needs to have all the NSA Spyware shit in there.

Henry Powell
Henry Powell

I ran the Go code. Here is the output:

4
81.6272729s
1.4700968896389532MHz
680.2272741666667ns

Is this a joke??????????????

Adrian Bailey
Adrian Bailey

I wrote a Rust version:
#![feature(async_await, duration_float)]

extern crate futures;

use {
std::{
future::{Future},
pin::{Pin},
sync::mpsc::{self, Sender},
task::{Context, Poll},
time::{Instant}
},
futures::{
executor::{ThreadPool},
task::{SpawnExt}
}
};

struct Yield(bool);

impl Future for Yield {
type Output = ();

fn poll(mut self: Pin<&mut Self>, ctx: &mut Context) -> Poll<()> {
if !self.0 {
self.0 = true;
ctx.waker().wake_by_ref();
Poll::Pending
} else {
Poll::Ready(())
}
}
}

fn main() {
let mut executor = ThreadPool::new().unwrap();

let iterations = 10_000 * 20;
let (sender, receiver) = mpsc::channel();
let start = Instant::now();
let coroutines = 600;

for _ in 0..coroutines {
executor.spawn(l(iterations, sender.clone())).unwrap();
}

for _ in 0..coroutines {
receiver.recv().unwrap();
}

let duration = start.elapsed();
println!("{}s", duration.as_secs_f64());
println!("{}MHz", (coroutines * iterations) as f64 / duration.as_secs_f64() / 1_000_000.0);
println!("{}ns", duration.as_nanos() as f64 / (coroutines * iterations) as f64);
}

async fn l(mut i: u32, channel: Sender<u32>) {
while i != 0 {
Yield(false).await;
i -= 1;
}

channel.send(1).unwrap();
}

5.5505336s
21.619543029160297MHz
46.25444666666667ns

Luke Rodriguez
Luke Rodriguez

Is this a joke?
This is where diversity and anti-meritocracy and "good enough" leads you to. Dumb your software down so even retards can contribute, and then praise whatever the outcome is (regardless of quality), confirming your bias that diversity is a strength.
<With diversity, we could barely achieve a sloppy implementation useful only for quick dirty jobs
<This is good and only possible because we used so much diversity
Meanwhile, if you really try to do it right, you get something that's at least one order of magnitude more performant.
care to run libcr-test and list the results? (the multi-threaded HybridScheduler ones).
I'd really be interested in the comparison.

Brody White
Brody White

merely pretending
Should've gone all the way buddy, ffs don't drop the act that quickly when pressured faggot.

Christian Russell
Christian Russell

I wasn't even trying to convince anyone, it was actually supposed to be so badly crafted of a story that everyone would instantly see through it, but alas, Zig Forums has some newfriend troubles.

Michael Perez
Michael Perez

I switched computer so the results are a bit different.
Go:
4
21.136920666s
5.677269735559313MHz
176.14100555ns

Rust:
2.920603722s
41.08739542310286MHz
24.33836435ns

C++: pastebin.com/VnSA1DDA

Nolan Gutierrez
Nolan Gutierrez

Thanks, appreciate it.
Rust: 41MHz
C++: 77MHz
Heh. Another reason I won't ever use rust.

Attached: ClipboardImage.png (548.25 KB, 747x850)

Juan Barnes
Juan Barnes

My GF
stop lying or gtfo

Angel Rivera
Angel Rivera

btw, even in debug mode it's way faster, so even if the go compiler could optimise, it would still lose against my code.
I don't think you're aware of how bad Go's optimisation is.

Nolan Taylor
Nolan Taylor

most flaws boil down to it's essential philosophy
Yes, that's the problem. Essential philosophy permeates an entire language.

Luis Lewis
Luis Lewis

Stop being a fag and write D

Jaxon Baker
Jaxon Baker

I was making the case that even if I don't use C++ optimisations, my code still much faster than Go. So the hypothetical argument "you're comparing optimised code with unoptimised code" is irrelevant, as even if Go had optimisations, they would never be as fast as my optimised C++ code.

Dylan Collins
Dylan Collins

goroutines are still not coroutines you mong

Nathaniel Turner
Nathaniel Turner

Whatever it is, it is painfully slow.
pathetic

Nathaniel Taylor
Nathaniel Taylor

Bazinga

My C++ is 20x faster!
You're probably doing something completely different than the goroutine. Go pretty consistently benches around 2-5x a decent C/C++ solutions for similar algorithms.

muh generics
This one irks me. Everyone praises Rust for generics, which it monomorphizes. That means the compiler generates a type-specific variant of your function for every possible type the function could take (that the compiler detects). There are plenty of code generation tools in go that do the same thing, and it's a pretty uncomplicated tool to write oneself. But everybody flails their arms and acts outraged about it. I mean, typing
`go generate && go build` vs
`cargo build`
is treated like some real big fucking deal. They're doing the SAME thing, but because one is done by the compiler, it's enlightened, woke, based, and redpilled. Using a tool or writing your own for an infrequent problem just gets all these delicate programmers in a huff.

Meanwhile, rolling your own generics saves your compiler a lot of complexity, which, almost definitely improves build times. Paying your $150K/yr software "engineer" to read fucking xkcd and Reddit for 10-30 minutes EVERY time he compiles is a huge waste of money. You can hate Google for insulting your obvious brilliance with an unworthy compiler and language spec, but, from a business perspective, they made the right decision.

Cooper Cook
Cooper Cook

lol
This is peak UNIX braindamage.
Meanwhile, rolling your own generics saves your compiler a lot of complexity, which, almost definitely improves build times.
Holy shit you're retarded.

Colton Brooks
Colton Brooks

Agreed.
Also why should the compiler read the source code from multiple files scattered around in various directories? Just write a tool that does this and pipes it to the compiler.

Leo Rivera
Leo Rivera

Why stop there? Make every optimization pass and the code generators for different architectures seperate binaries.
Do one thing and do it well. Why isn't there a single compiler conforming to the UNIX philosophy?
Maybe we should change that. I'll get started on the logo.

Brayden Gray
Brayden Gray

use let let let let let let let let let

Nolan Baker
Nolan Baker

Don't forget the furry anime mascot!

Benjamin Wood
Benjamin Wood

Did you write a bunch of shit defending C++ With its header and make file bullshit with one breath and in the other make a reductio ad absurdum argument that the Go compiler doesn't for literally everything you want? Shit, dude, why doesn't your compiler write the program for you? Why doesn't it provision some cloud bullshit, containerize your "app" and deploy just by reading your thoughts? Real brain damage, there, fren.

Are we comparing benchmarks between futures (an event loop) and green threads? Is that what this whole thread is about? Holy shit, Mr. BS in Comp-sci, this is even bad by Zig Forums standards.

Leo Smith
Leo Smith

What the fuck is wrong with you? Read the post he was answering to, everything was satirical. The joke is that Go doesn't have generics, and you need an extra tool just to generate template code, which begs the question as to why it is not part of the language.
Are we comparing benchmarks between futures (an event loop) and green threads? Is that what this whole thread is about? Holy shit, Mr. BS in Comp-sci, this is even bad by Zig Forums standards.
He had to manually implement a yield function, if I observed this correctly. That's why he has to use futures. But the whole thread is about my C++ implementation being superior to Go and Go being cringe tier.

Xavier Murphy
Xavier Murphy

why is not part of the language
research.swtch.com/generic

David Scott
David Scott

SM² Storage Network is a decentralised, secure and trust-less file hosting platform with emphasis on minimal ecological footprint, and a part of the SM² Network.

Wew

Jack Morales
Jack Morales

The "why" was rhetorical, and more of an appeal to common sense.

Isaac Mitchell
Isaac Mitchell

I know it sounds like bullshit but it's actually well thought out. The only problem is that none of us have the spare time to finish the project. I think we have around 80% of the specification done, but there has been no progress in about a year.

Josiah Ross
Josiah Ross

Go is not intended to out-compete properly-written C/C++ on pure performance benchmarks. It's intended to be a useful general-purpose language with *reasonable* performance that automatically prevents bad programmers from making the sorts of dumb mistakes that have led to so many security issues due to poorly-written C/C++.

Benjamin Thompson
Benjamin Thompson

And yet it fails to implement even basic functionality

Adam Thomas
Adam Thomas

superfluous comments are bad
Stop drinking soy and get cargo cults you learnt about on reddit off your head.
It doesn't matter if it's superfluous, it will avoid trouble.

Attached: make-anon-less-of-a-faggot.jpg (233.98 KB, 1508x1000)

Leo Martinez
Leo Martinez

My blockchain vaporware isn't stupid at all!

Nobody has a profit model for any blockchain "technology" that doesn't involve swindling fools out of investment capital with a buzzword salad. More than a few software "engineers" are going to need to take up professional lawn care because the investment capital (and the Fed through QE) who prop up the entire industry aren't seeing companies with stable, sustainable profit models emerge from those dollars. If your return on investment completely depends on finding more, new investors, then you have a ponzi. About 50-75% of devs I know are in the ponzi-tech/vaporware-marketing-hype economy. These pajeets and hipsters are about one bad month in the stock market away from "do you want fries with that." The rest work for government contractors or are in-house development for companies that make actual products. Oddly enough, those are almost all stable, married, java developers.

Contrast that with you:
"Minimal ecological footprint" is actually one of your stated goals. Hey, here's a plan. Don't make any of this gay vaporware shit nobody asked for. You'll be amazed at how much electricity you saved. Carbon-fucking-neutral, baby!

What are the odds that OPs truly brilliant event-loop that... uhh... computes a benchmark, definitely has the same runtime characteristics and is a comparable implementation to goroutines. I'm sure the ability to detect race-conditions is built right in, too. Of course, OP is just much, much more brilliant than anybody at Google, so his machine instructions are just faster than dumb googler-written machine instructions. Computers, can sense the intelligence of their programmers and go fast or go slow accordingly.

Joshua Parker
Joshua Parker

It doesn't matter if it's superfluous, it will avoid trouble.
That doesn't follow. By virtue of being superfluous, it wastes space and increases cognitive load while not adding anything of value. So explain: how exactly do superfluous comments "avoid trouble"? I'm all ears.

Jeremiah Perez
Jeremiah Perez

Computers, can sense the intelligence of their programmers and go fast or go slow accordingly.
Meme responsibly user.

Attached: 261b855b66490c21d8e430bfaa9d673684351395ab09a13c61a0602849106919.jpg (314.54 KB, 786x800)

Kevin Sanchez
Kevin Sanchez

Did you write a bunch of shit defending C++
No. C++ is trash. Go is worse though.
Are we comparing benchmarks between futures (an event loop) and green threads?
Are you retarded? How do you think those futures get executed?
Protip: The first line in the main function. It's a fucking ThreadPool. There is no event loop. Only green threads.

Brody Rodriguez
Brody Rodriguez

No profit model
We planned to have a fee of about 1% on the storage market and another small fee on the block reward.

Dont make a blockchain for the environment
The problem is that all other blockchains out there are using enormous amounts of electricity.
Not a valid benchmark
The scheduling speed of goroutines is the limiting factor on how much parallelism can be achieved. It sets the upper bound. So, from that alone, I can support up to 20 times more parallel executions in the same time. This is basic logic and maths.
I am smarter than the Google team
Well evidence suggests it, unless you have a better explanation.
PCs can feel the intelligence of the programmer
Are you implying that I and the Go devs used the very same instructions for our implementation? I bet google can't/doesn't want into relaxed atomics, because they think they can't handle it.
Race condition detection
Huh. That's a compiler feature. Races are when you fuck up/don't use your atomics. I am not here to help a baby walk, I am here to make pod racers squeeze out every bit of performance out of their vehicles. The manly stuff, you know? Not your happy safe space idiocy. If you can't into atomics and get races, use mutexes. And if you can't even into mutexes, read a fucking book.

Ayden Morgan
Ayden Morgan

The problem is that all other blockchains out there are using enormous amounts of electricity.
We have a solution for this. It's called nuclear power.

Ryan Thompson
Ryan Thompson

It's exponentially growing.
Even nuclear power can't solve infinite exponential problems.

Adam Price
Adam Price

Nuclear power has no drawbacks so we can squander it xD
Nice opinion ;^)

Alexander Price
Alexander Price

infinitely
no

What drawbacks though?
inb4 nuclear waste
Just shoot it onto the sun.

Kevin Myers
Kevin Myers

The chain grows and grows and with each node it consumes more energy. It's bound to become infinite.

Parker Wood
Parker Wood

That's why blockchain is a meme.

Angel Parker
Angel Parker

It is bound to become large. But that is nowhere near infinite.

Logan Reed
Logan Reed

smart
physics
smart doesn't imply choice of programming as a hobby/profession.

Gavin Walker
Gavin Walker

The electric grid grows and grows and with each node it produces more energy. It's bound to become infinite.

Asher Fisher
Asher Fisher

No it's bound to come to a halt because there's limited space and material on earth.

Luis Sullivan
Luis Sullivan

I know, my point was that I'd like to appeal to smart chicks

Bentley Moore
Bentley Moore

No it's bound to come to a halt because there's limited space and material on earth.

Elijah Nelson
Elijah Nelson

implying blockchains will never get squashed
You can simply collapse all history that is older than some point in time, and then you make that state your new genesis block. Although this process needs cooperation of all miners.

Colton Walker
Colton Walker

implying electric grids will never get squashed
You can simply collapse all nuclear power plants that are older than some point in time, and then you make that state your new supet nuclear power plant. Although this process needs cooperation of all nuclear power plants.

Brody Cooper
Brody Cooper

touché

Joseph Watson
Joseph Watson

smart chick
dating some virginbearder from 8ch.net
choose one

Jayden Bailey
Jayden Bailey

It's more likely than you'd think

Lincoln Phillips
Lincoln Phillips

The better explanation is that you're making an apples to oranges comparison.

Post your shit to an issue on the Golang github. I'm sure you'll blow everyone's mind and Rob Pike will thank you for teaching him how to program. Or Publish your study to Medium.

Aiden Brooks
Aiden Brooks

kek

Daniel Young
Daniel Young

`go generate && go build` vs
`cargo build`

You mean `make` right?
Do you even program?

Lucas Watson
Lucas Watson

Attached: ClipboardImage.gif (38.95 KB, 399x369)

Parker Wright
Parker Wright

Making consistent spelling mistakes across the whole board makes it easier to fingerprint your posts and gain information about you. Plus if anyone wanted to correlate it with outside text they'd just have to run a spell checker over both texts, if anything (spelling mistakes are a very small part of stylometry). Stop this esoteric avatarfagging.

Luke Carter
Luke Carter

Is this a joke?
There is not a single spelling mistake in the post.
Also post a few examples of other posts from me.
Protip: You can't.

Aaron Adams
Aaron Adams

Ok, there is one. Unfortunately for you I don't usually make this mistake so you won't be able to "fingerprint" my posts.

Oliver Nelson
Oliver Nelson

"the chans"
Please kill yourself.

Charles Mitchell
Charles Mitchell

Profile matches.

James Butler
James Butler

hackernoon.com/ten-years-in-nobody-has-come-up-with-a-use-case-for-blockchain-ee98c180100

Everyone says the blockchain, the technology underpinning cryptocurrencies such as bitcoin, is going to change EVERYTHING. And yet, after years of tireless effort and billions of dollars invested, nobody has actually come up with a use for the blockchain—besides currency speculation and illegal transactions.

Each purported use case — from payments to legal documents, from escrow to voting systems—amounts to a set of contortions to add a distributed, encrypted, anonymous ledger where none was needed. What if there isn’t actually any use for a distributed ledger at all? What if, ten years after it was invented, the reason nobody has adopted a distributed ledger at scale is because nobody wants it?

Think about it.

Aiden Sanchez
Aiden Sanchez

Trust the government and banks, they surely won't fuck with your "money"
Don't develop platforms that are protected against tyranny
Right on spot

Alexander Flores
Alexander Flores

protected against tyranny
Meanwhile Libra.

Sebastian Bailey
Sebastian Bailey

kek. Libra is a fucking joke. All cryptocurrencies should be operated like bitcoin: No ICO, everyone can mine, etc. The only thing I do find tolerable and just is for the inventor/creator to collect a small fee, but never more than necessary.

Jack Barnes
Jack Barnes

LARPing

Cameron Reyes
Cameron Reyes

Blockchain can provide more assurance that a leger hasn't been altered after the fact. It does NOT guarantee that what is recorded in that ledger is in any way authentic or correct. Sort of like how BTC was buoyed up by billions in fake transactions. Government can do that too.

BTC doesn't protect you from anything. The exchanges aren't anonymous. If you want to make a discrete transaction, use cash. If you hate the fed, barter. Firearms are surprisingly good stores of value, for example.

Gavin Sullivan
Gavin Sullivan

If you want to make a discrete transaction, use cash
Cash is increasingly being killed off by corporations like Visa. Monero on the other hand is very anonymous.

Kayden Lee
Kayden Lee

Cryptocurrencies are the only way to have reasonable confidence that you won't get fucked over by some shady organisation when trying to make a digital transaction. Of course, they are not 100% secure either, but that's as good as you can have it, I guess.

Grayson Morales
Grayson Morales

OK, geniuses. If Go and C++ are trash, what's the best alternative that isnt a pajeet-tier language like Java or brainlet-tier language like Python/Ruby/JS?

I can only think of one: C.

Grayson Walker
Grayson Walker

C
Spotted the Cnile.
Btw you're post isn't zero terminated.

Cooper Long
Cooper Long

What's your suggestion?

Jonathan Miller
Jonathan Miller

Common Lisp.

Gabriel Fisher
Gabriel Fisher

It is, actually. JS and PHP all zero terminate their strings.

Anthony Cooper
Anthony Cooper

It's called D

Austin Gutierrez
Austin Gutierrez

Tcl + C, or Ada if you really need an Enterprise (tm) language.
dynamic typing and GC in a language supposed to replace C
No thanks. Using Scheme as a high level language is fine, though; just keep something that can work without a fuck huge runtime or compiler that can still be optimized nicely.
Call me when they make the GC optional, otherwise it's a Java competitor, not sepples.

Ian Walker
Ian Walker

I don't really understand coroutines, are they basically a way of simulating multiple threads/cpu cores on one single OS thread running on a single physical core at any given time?
Is the goal to essentially execute a little bit of one function then pause it and switch to executing a little bit of another and just switch back and forth a lot to simulate simulaneous execution?
Sorry for being brainlet

Julian Hernandez
Julian Hernandez

Zig is an improved C,
D is an improved C++

Luke Foster
Luke Foster

Rust

Kayden Mitchell
Kayden Mitchell

Rust is an improved C/C++

Samuel Myers
Samuel Myers

BASIC is an improved COBOL/VHDL

Zachary Lopez
Zachary Lopez

grouping C and C++ together like all clueless retards do
LARPer detected

Attached: kys.webm (927.81 KB, 512x512)

Dominic Sanchez
Dominic Sanchez

my GF wrote <nontrivial software>
Doubt.jpg

David Lee
David Lee

Why wouldn't I group them together?
C is nearly a subset of C++?
It seems more likely that you are a LARPer.

i read the thread before posting
doubt.jfif

Elijah Morris
Elijah Morris

nearly a subset
And nearly is nearly a subset of subset.

Parker Sullivan
Parker Sullivan

Go is just fine. It has a niche that it works well in. Problems where your interpreted languages have too much overhead or bad portability and where the time needed for a solution in C++ is not justified, Go can scratch that itch. Lately I've been using it for almost all the problems where I had been using Python except where I want a REPL to interactively explore data and experiment.

Zig
spam HN comments in every PL thread to get donations
rage-post butthurt to lobste.rs because V-lang got more donations

C is not going to be replaced until there is a competitor which has been used to write a viable kernel and OS. So far, many developers have tried in other languages and none have succeeded. No, Redox is not close.

Anthony Sanchez
Anthony Sanchez

V-lang is vaporware and Zig is already highly usable and generates code that sometimes outperforms C, while Rust has super ugly syntax, an annoying and slow compiler, and the generated code is usually 1.5-2x slower than C

C is not going to be replaced until there is a competitor which has been used to write a viable kernel and OS.

yeah you are 100% correct about this, and it will likely not happen for a long time if ever

John Parker
John Parker

super ugly syntax
spotted the LARPer
the generated code is usually 1.5-2x slower than C
citation needed

Jordan Baker
Jordan Baker

Ok I did some reading, I remember it used to be 1.5x-2x slower code, it seems to have improved significantly since then but Rust still trails C somewhat.

There are some sites with handpicked examples of Rust code outperforming C code but they used different data structure implementations so I wouldn't really count that.
And besides, compiler optimizations (and modern CPU behavior) are so complex and non-deterministic now that if you dig hard enough you can always find examples of some random language beating C code even if C is still the fastest thing out there 90% of the time

case in point: paulspontifications.blogspot.com/2013/01/when-haskell-is-faster-than-c.html

Jeremiah Edwards
Jeremiah Edwards

oops I was caught spreading FUD
btw Rust is slower than C
citation needed

Xavier Price
Xavier Price

V-lang is vaporware
How so? It has an active development, and a recent roadmap for the next version.

Brandon Robinson
Brandon Robinson

It's a scam.

William Wood
William Wood

Proof?

Hudson Edwards
Hudson Edwards

None of the claims are true. After getting called out for blatantly lying he changed his website and put a WIP icon after every claim.
This whole project's purpose is to get donations.
Volt is made by the same dev. Another scam.

Daniel Martinez
Daniel Martinez

This whole project's purpose is to get donations.

And how is that not true of Zig? Rust is actually better btw.

Sorry, chum, there is no One True lang.

C: embedded and OS

C++: realtime, libraries and games

Rust: realtime and libraries

Go: Utility, tools and networked applications that don't need interop with any other language

Erlang/Elixir: Distributed network applications

Python: Prototyping, data munging, one-offs

Java: You want to be employed

Ada/Spark: You want to be employed, but only by DoD contractors

Javascript: You want to be employed and not make enough to pay rent

CLisp/Racket/Guile: You want to be employed but only by MIT to teach coding and on the strict condition that you never have to write a useful program

OCAML/haskell/F#/Clojure: You don't want to be employed and you want to pretend to be smarter than everyone else.

Nim/Crystal/Pony/Elm/ReasonML: You don't want to be employed and you want to prove that you're dumber than everyone else.

Perl6: when you want to program only in special characters and emojis, and need your code to execute 100-1000x slower than C

Christian Johnson
Christian Johnson

Honestly, OCaml is itself is nice. My main concern is that there are no good resources on functional patterns that are used by practitioners. The language is easy to learn but it's very hard to figure out how the different pieces fit together to make prod-ready software and some of the more obscure aspects (e.g functors, monads, even ADTs to some extent) aren't super well documented (case in point: "Real World OCaml" has about half a page about functors - when they are heavily used in any large OCaml project).

It took a lot of handholding by senior OCaml programmers for me to be able to write large projects in it.

t. Jane Street fag

Jaxon Jenkins
Jaxon Jenkins

Do you have any tips about module functors or OCaml itself? I recently picked up the language due to wanting a functional language that I could run natively and compile down to javascript for doing research for implementing lag compensation with DCTP (more widely known as FRP).

Dylan Sanchez
Dylan Sanchez

And how is that not true of Zig?
Zig isn' a scam. It works and doesn't make outlandish claims.
Rust is actually better btw.
Agreed.
Go
It's useless.

Isaac Myers
Isaac Myers

Rust is a fucking shit dick cargo-cult language for wamman, fags, cucks, and trannies.

We didn't need yet another goddamn programming language.

Eli Bennett
Eli Bennett

Seething Cnile spotted

Elijah Ward
Elijah Ward

2019 will be the year of the Lisp Machine

Chase Adams
Chase Adams

lisp more like you talk with a lisp because big gay lmao

Asher Campbell
Asher Campbell

owned

Nathan Barnes
Nathan Barnes

Jane Street posts on 8/tech/

The reach of this website is truly alarming.

Isaiah Flores
Isaiah Flores

I can answer specific questions if you have any. There is an active IRC channel on Freenode (##ocaml).

Functors are powerful, it's hard to abuse them so go wild. The better practice is to go for a first working draft of the subset of code you are working with before bringing them in.

Generally speaking, to read code is one of the fastest way to make a lot of these idfeas and patterns "click". There are several high quality projects written in OCaml that use functors heavily. To name a few in no particular order: github.com/janestreet/incremental
github.com/mirage/mirage
gitlab.com/tezos/tezos

Evan Bailey
Evan Bailey

I have a lot of coworkers who are perfectly comfortable with board culture. They might find it childish (like most people do) but they know it exists and there is inevitably overlap. Keep in mind a lot of JS people used to hung out in rationalist or libertarian circles back in the days (lesswrong, SCC, etc.).

Carter Sanchez
Carter Sanchez

a lot
On second thoughts, scratch that. It's not a lot but definitely more than you would think.

Benjamin Gonzalez
Benjamin Gonzalez

OCaml
Haskell

Daniel Perez
Daniel Perez

I would think zero, so, yeah, color me surprised. Can you share any hot stock tips?

<Take OCaml
< Make imperative coding impossible and implement a bunch of kludgy workarounds to compensate.
< Substantially reduce performance
< Name your new not-OCaml language after a Jew. Name your build tool "cabal".
< Everybody thinks it's a brilliant innovation
That's Haskell in a nutshell.

Jayden Torres
Jayden Torres

Most overrated piece of crap I have ever seen. I dislike OCaml but it's obviously far superior for real software engineering. You can do your abstract algebra bullshit in it as well if you are that autistic