Go

Now that the dust has settled let's discuss Go.
What's your opinion of it?
Will it replace any other languages?
Will it see widespread use?
Are you a gopher yet?

Other urls found in this thread:

golang.org/pkg/math/#Min
golang.org/pkg/math/#Max
github.com/kubernetes/gengo
cockroachlabs.com/blog/rounding-implementations-in-go/
docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round(double)
docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
play.rust-lang.org/?gist=b80b27abdef7bee9b2e7f72985e14a40&mode=release
golang.org/pkg/crypto/
golang.org/pkg/net/http/
play.golang.org/p/i40wQWVC3JC
play.golang.org/p/HsUzdkOtSy3
youtube.com/watch?v=ENLWEfi0Tkg
hooktube.com/watch?v=ENLWEfi0Tkg
golang.org/pkg/math/#Abs
play.golang.org/p/mPl36YqRQgI
gopherproxy.meulie.net/sdf.org/0/users/kickmule/unix/unix_haters_ml_2.txt
play.golang.org/p/ftsthRx3mgQ
en.wikipedia.org/wiki/Ordinal_number
rust-lang.org/en-US/documentation.html
doc.rust-lang.org/std/cmp/trait.Ord.html
golang.web.fc2.com/
twitter.com/SFWRedditVideos

I have yet to write a meaningful program in any language, let alone your meme language. I can however do this:

#include int main(void) char OP[6]='faget'; printf("ur a %s", OP); return 0;}

this doesn't even compile you dumb nigger

then I'll just go
print("ur a faget")

You are still a nigger. Here try reading this book, it has plenty of examples.

Doesn't have generics because the creators don't want to add them... y-y-you don't NEEEEED them!

better Go than the rest of web dev languages

Enjoy your error checking :^)

...

enjoy your PHP spaghetti code, Rakeesh :^)

...

...

Garbage collection should only be in scripting languages. And scripting languages should only be used for scripting.

Gee I wonder who could be behind this post.

TBH Go is just a mini-version of what rust does better. Sure it might be easier to transition from java to Go for idiots. But just learn rust if you are going to learn a meme language.
Yes because jewgle will push it.
Maybe java for the pajeets, maybe.

hah

...

Every tool for it is halfassed and shitty. Still better than any other compiled langage besides Rust

Go is the first language I don't hate. To me every other language is overly complicated or bloated or some weird abstraction magic.

Pros:
- it is simple to master
- it has anti new feature mentality so you won't end up with fucked up lang spec like C++
- it provides just nice enough abstraction so it is no black magic fuckery behind the scenes
- its faster than most high level programming languages
- compiling and distribution is simple, because it by default creates static binary executable, so just werks
- it doesn't really have any community at all because it is boring language, but still lots of libraries are created
- doesn't shove OOP down your throat
- all the functional features are nicely integrated in the language design mentality and not just bloat only to produce less code like other languages

Cons:
- it is made by C people so it kinda comes with unixy mentality and some things you just gotta do the "worse is better" way, which I personaly like

I'm seriously considering learning it because kubernetes.

Don't have one.
It has been around for 8 years, was designed by two legends of computer science, and is backed by one of the wealthiest and most influential tech companies in the world. If it hasn't by now, it probably won't.
It has been around for 8 years, was designed by two legends of computer science, and is backed by one of the wealthiest and most influential tech companies in the world. If it hasn't by now, it probably won't.
No.

The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike>>851351

Name one contribution they made to computer science. What new ideas, algorithms, processes, methods, or techniques were they responsible for?

UTF-8, I don't think that makes them legends of computer science though...

Go is Java done well.
But moreso than C#.
Go is Python done well.
But moreso than Ruby (which tried to be Perl done well, so it's a bad example of better-Python in many ways.)
I wouldn't blow my brains out of if I were forced to work with it.
There's some cool stuff written in it, like InfluxDB.
I mostly see it as barely differentiable from the "hey check out my boring language" languages that came out before the wave of "hey check out this COOL RUBY SYNTAX for an actually good language that isn't mine *or* boring". That Rob Pike worked on it doesn't make it interesting. That Google finds it useful doesn't make it interesting.

Is this bait?

The UNIX we know today that influenced all other unix-like operating systems was one developed by Ken Thompson and Dennis Ritchie based on AT&T Unix. Today's OSes wouldn't be anything like they are today if not for their work. Ken also invented UTF-8. Not to mention that C wouldn't exists like it is if it wasn't for B (made by Ken).

Rob Pike is one of the main developers of Plan 9 which is very innovative OS.

pick one

t. shill

You completely missed the point.
In this context this means: the last iteration of UNIX which influenced other modern unix-line OSes. I did not mean we should use UNIX today.

...

You also completely missed the point.
UNIX is and always was shit. The only way it influenced modern OSs was by showing how not to do it.
Rob Pike currently does the same for programming languages with Go.


There is nothing Go does better than already existing languages. Prove me wrong.

So you are that pathetic LARPer that keep posting this forced contrarian bullshit. I rarely say this, but get a fucking life. Nobody gives a fuck about your special snowflake opinion that you must insert in EVERY single thread about these subjects.

Ackchyually this was my first post about UNIX.
Also, not an argument.

Go is the only programming language that does ALL that:

Name 1 programming language that does all this. You CAN'T. The point is not that Go is the best language, because spoiler, it isn't. No language is the best, it depends on what you want. And I and many others want these things more than new hipster functional feature #431 that will surely innovate programming.

You mean designed for retards?
Go has no abstractions. It doesn't even have min/max functions.
No
Ok. This is actually a positive.

Unironically Java. If generics are too hard for you, you can use Java 1.4.

What are you on? Anyway, both Go and Java are shit, but Go is miles ahead of the Java monstruosity; I can actually read it without getting a torticollis because of 400 char wide lines.

Learn to read faggot.
epic strawman. Java also has code formatting tools.

Simple doesn't necessary mean easy. Read on "worse is better", UNIX philosophy, KISS etc...
I would argue anyone who would want overengineered complex languages like C++ and Rust retarded, but hey that's just me.

golang.org/pkg/math/#Min
golang.org/pkg/math/#Max

It's like you can't read. Java needs JVM. Failed first thing I pointed out I want. And it is forced OOP garbage. Generics are also one of the worsts things about Java. Obviously generics are useful, but they are not necessary and Java version of generics is horrible.

It's like you can't or won't understand that people want different things as you.

>golang.org/pkg/math/#Min
>golang.org/pkg/math/#Max
Retard. Look at the function signatures of the math package. All of those are for floating point numbers.
Also why is there no round function? Does Go seriously have no round function for floating point numbers??

Protip: nobody cares.
Protip: You can deal with it way easier than with a lack of generics.
Ok. I also enjoy having to write my own type system that runs at runtime.
agreed
see
Where did I say that I cared about what language other people use?

>People actually using Go have to do this ugly hack: github.com/kubernetes/gengo
Thanks Rob Pike

Are you serious right now? Is this too hard for you? Are you trolling?

func min(a, b int) int { if a < b { return a } return b}

It is coming in next version of Go. So in few months. They refused to add it first because it is not hard to do it manually, but obviously it was stupid decision and they acknowledge it and now they are changing it.

You don't care. Other people care.

What a shit argument. It is a design flaw of the language. No generics is on purpose to try to keep the simplicity of the language. Show me generics in C? Yeah we can't live without them right? And you call other people retarded?

Obviously I agree with that, but the point is that it is a pointless nitpick. I bet you get all those sweet "original" opinions from /r/programming. Golang devs acknowledged that generics like system would be useful and they are thinking about it for Go2, but personally I would rather have no generics than bad generics.

And I don't care about what you want to use or feel like is shit. The whole point of Go is not that it has a shiny need innovative feature that no other language has. It is a combination of everything that Go does by default that makes is better language than dealing with anything else. I have been programming for 10 years and have been waiting for something like Go for a long time because EVERYTHING else fucking sucks FOR ME. You post in this thread your post: "lol go sucks because I don't like it and that makes it official and objective".

I am still waiting for you to point out 1 language that does everything I pointed out in . Because if you can't give 1 correct example then it means that Go is unique enough to fill the niche.

No. Are you trolling?
Alright. Write a correct implementation.
Typical Gotard excusing obvious shortcomings. I'm done arguing with someone who obviously has stockholm syndrome.
I am still waiting for you to point out one thing that Go does better than already existing languages.

...

All those spelling mistake. I need to go to sleep. Close minded people like you really fucking annoy me to no end.
I already did that! I keep telling you. It is the combination of Go features that makes it better programming workflow over other languages. I can output single static binary executable that gets compiled really fast while still having garbage collection and rich standard library. I don't have to eat shitty new features that some retarded committee pushed down my throat because some retarded hipsters shilled for them at conferences. How can you not understand that? Even if some language does 1 thing better and at the same time does 5 things worse that doesn't make it better imo. But that is subjective. It is like you can't understand people like different things. How can you just dismiss that and say it is shit language? It is shit for you personally, so what? I don't care about that, but then stop writing in every thread your retarded opinion like it is a fact. I really hate people like you. Can't have a honest discussion with dishonest person.

Agreed. I'm still waiting on your round function though.

Are you quite literally retarded?
Ah no wait, it's bait. Well done, you got me.

– Rob Pike

– Rob Pike

This is easiest workaround. The better and official implementation is added next month.

func Round(n float64) float64 { if n >= 0.5 { return math.Trunc(n + 0.5) } if n

I don't like to associate with certain categories.

I am going to sleep. It feels really pointless to argue with people that don't want to try to understand some merits of the language. It is not like I am saying it must be the only language and the best. It caters to a certain niche of problems and it solves it really nicely.

This is exactly why there should be a round function in the standard library. Ironically you BTFO'ed yourself with your claim "rich standard library".
Round(4.503599627370497e+15) = 4.503599627370498e+15
It should be 4.503599627370498e+15.

Read this:
Protip: Rob Pike is talking about retards like you.

Rob Pike may very well be the only one there with any sense, mostly because all the other people with any sense fucking LEFT. So it's just Rob, and Rob is smart so he knows if he shaves his head and wears pink and uses PC language he can avoid being castrated by the HR department. Maybe Rob is a cuck that just couldn't leave Google, or maybe he's a real patriot that still believes in Google after all these years. He knows he can't stop them hiring Pajeets and women, but he knows what he has to do to at least herd them into some semblance of productivity.

I copy-pasted wrong. I meant 4.503599627370497e+15.

More like, they don't know how to add them without making the language spec needlessly complicated, seeing as one of Go's main goals is to be very simple to learn and use, with minimal "magic".
There have been a ton of talks about getting it into 2.0 at least, with different proposals on syntax and shit.


You don't seem to know where you are; Holla Forums, like /g/ before it, is filled with snotty elitists that don't actually know how to program. Something being described as "easy" to learn, to them, is seen as "inferior".

Nice ad hominem, Gopher. Unfortunatley for you it is you Gophers that don't know how to program. See and cockroachlabs.com/blog/rounding-implementations-in-go/

Classy.

^ Braindead, doesn't see the obvious pattern of mega corporations pushing $LANGUAGE down everyone's throats. Sun with Java, Microsoft with C#, Google with Go, and so on. They do it so they can hire legions of pajeets, because it helps them fill their pockets, while paying less to programmers (that's us btw, you cuck), plus keeping programmers on a tight leash with lots of mandatory overtime and 24h on-call (H1B's can't do shit about it or they get fired and sent home). But wait, that's not all. The software gets shittier and more bloated, because idiots can't be arsed to learn fundamentals of programming so they end up making lots of bugs anyway. That's modern software development and now you see the future: more buggy Intel processors to barely make up for shit, inefficient code. As it turns out, Terry Davis is the sanest one of all.

ONLY reason that it still exist is because Google hype and paid shills, no other redeeming feature. It does everything badly.

Did you even read your link?
The round will be in standard library in 1 month. What is your point?

The solution that you were given works for simple inputs. Obviously if your input is 4.503599627370497e+15 then you must handle more edge cases.

What straw are you going to pull next?

Is this what peak simplicity looks like?

Btw did you even the javadoc?
docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round(double)
This is pretty retarded but hardly broken.

I don't hate the language. I'm ok with a GC language with the simplicity of C existing. It just doesn't appeal that much to me, and may be overused in some cases.
I can see it being used for glue code for example.

#include #include #include using namespace std;int main(){ string msg [20] = {"h", "g", "u", "t", "j", "i", "a", "e", "n", "l", "f", "q", "l", "p", "m", "y", "w", "z", "x", "o"}; int random; for (int I(2); I < 5; I++){ srand (I); random = rand() % 20; cout

how is that related to the post you quoted?

Go is great for developing microservices because of the concurrency features. Channels and goroutines are ace. I use it for game development, it's a powerful language with a simple syntax (so code is usually "correct"), and GC means I don't have to write a complex system that manually frees random garbage.

...

:=

...

Try again.

Then I can only assume your name is Pajeet, sorry pal.

Just go back licking google balls, golang faggot. Don't forget to bring your latte.

See? You're clearly a larper. First, you don't make any argument at all ( '> :=' is barely a statement, and that's only by contextual implication), Then you make an assumption about my character because I didn't learn Java at Kharagpur Institute of Technology

I(2) should be calling the copy constructor of int to initialize I, it's probably allowed for primitives.
You forgot

This.

#include #include #include int main() { std::string a{"abcdefghijklmnopqrstuvwxyz"}; std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution uniform_dist(0, a.size()); for (size_t i = 0; i < 5; ++i) { std::cout

Sure.

It's a nice batteries-included language. The standard library is complete enough to complete nearly any task with a trivial amount of glue code.

I hope it will replace Perl, Python, Ruby, Java, C#, and similar languages that are easy to prototype in.

There are already many users and companies that utilize it. Go isn't perfect but it's certainly a more sane language than most.

I've only written small programs in Go but the experience wasn't painful whatsoever. I would write long-running server applications in Go but leave systems applications to C/C++.

Typical go user, even talks like a corporate marketing drone.

What else are you supposed to call a language with a large standard library to differentiate it from one with the bare minimum?

Bloated.

...

I cringed while writing that buzzword but it was a relevant way to explain it. Calling it bloat isn't accurate as it doesn't need to be included by default.

The biggest reason I don't use "Go for everything" like shills exclaim they do is that the binaries are over 1mb because the complete runtime is packaged with your application. Garbage collection, debugging, etc is all bundled in. THIS is what I would call bloat.

I have never in seen anyone who would advocate using "Go for everything". It is common sense to use the "best" (often subjective) tool for the job. Me personally I would never write GUI applications in Go.

Don't reply to him. This person enjoys being contrarian because he finds it funny to annoy other people, clearly indicated by his try-hard behavior in this thread. Don't feed the trolls.

I ended up trying to use it for a project at work. I actually found myself enjoying it a lot and got really into it. My other teammates seemed to be having more fun too (one was an old Unix C dev and the other a middle aged Windows dev so I thought it was interesting the enjoyment factor was crossing generational and platform boundaries). Actual development time seemed to be going really quick too, though I guess everything's easier when you're having fun.

Unfortunately, when we were nearly done with the project and gave a demo, we got told to throw it away and redo it because it "wasn't in Java" (this was never stated as an upfront requirement, political enterprise BS). I fucking hate my job now.

no min/max functions for integers. no round function for floats. no insert function for dynamic arrays.
wtf?

For all of you in the "round" discussion, please take a look at this some point in your lifetime.

docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

Yeah that is why there should be a round function in the standard library instead of going full "muh simplicity" and requiring retarded Gophers to implement incorrect rounding functions over and over again.

No, I'm serious, it really sounds like marketing speak. Also it's bogus because how the fuck do they know what libraries I'm gonna need? Does it handle graphics and sound like SDL, as well as sprites and playfield functions like say Amiga or TempleOS? I'm betting this batteries stuff is hand-waving where they pretend everyone is making web apps and other boring shit.

>"Go is shit language because I don't agree with and every one who uses it is retarded because I said so. retard retard retard lol lol lol"
And when people try to explain to you why they like it and don't agree with your childish complaints, you just keep spamming the same shit, like you want to get a medal in debate. Nobody cares about your random petty complains and when they try to have a proper discussion, you shit this thread with the pointless comments. 25% of all comments in this thread are yours. Completely ruined the thread that could be a good discussion. I don't want an echo chamber but still discussing anything with you is pointless. I feel bad for you man, not trying to be mean. I need to fuck off of chans, I am too old for this shit.

The point was for it to seed with the latest value. I'm sure there are better ways to do this, but this is semantics.

Where?

Do you seriously not get this joke, or am I misreading your sarcasm?

Honestly did this one for the giggles.

I forgot one tab you turbo autist.

I like to space for the if, for, else, and while keywords. Personally it makes it more readable in my probably wrong opinion.

Not an argument. What would you recommend then?

Yeah I'm so childish because I'm not constantly sucking down corporate propaganda about what language is cool in $CURRENT_YEAR and what kind of applications have merit. Batteries aren't included, because it's not a fucking flashlight or other such device. It's a shitty analogy that useful idiots repeat and they don't even get paid for it by the company. I'd be laughing if it wasn't so sad. All these fucking new-fangled corporate-backed language shills are full retards, period.

Yeah I'm so childish because I'm not constantly sucking down corporate propaganda about what language is cool in $CURRENT_YEAR and what kind of applications have merit. Batteries aren't included, because it's not a fucking flashlight or other such device. It's a shitty analogy that useful idiots repeat and they don't even get paid for it by the company. I'd be laughing if it wasn't so sad. All these fucking new-fangled corporate-backed language shills are full retards, period.

Also look at this shit:
What the fuck is the point of this mentality, where you always want to fucking replace shit with more lame shit just so it can be different? You're fucking retarded! Fucking nigger!

>
Ok. Butthurt Gotard detected.
Agreed

If you took 5 minutes to read a little bit about the language you'd know "batteries included" refers to things that are commonly needed but you'd typically need to introduce another dependency for, like crypto or a web server. I'm not saying it covers every possible use case (I think there is a certain amount of built in support in the standard library for SQL databases, but you need a library for talking to MongoDB, for example) but it's pretty good. I would never tell anyone the language is great for everything and can replace every other language, that's just stupid, but there are some cases where it's a really good fit. Shockingly, some choices in life come down to picking the right tool for the job and/or personal preference.

Go has web server and crypto built into the language?

no thx bye

Where are the generics eggman??
You said there would be generics!

who are you quoting?

no built into the standard library, that's what "batteries included" means.

everyone who encourages those practices and Go itself

So the language is bloated as fuck. Now I'm not programming anything to do with the web, but this gay meme language has all this useless web crap built into it.

Are you actually thinking before you post? If a feature is in the standard library but you don't use it, then it won't affect the size of your program. If you don't use web related parts of the standard library, you will not be affected by their existence.

I rewrote it in Rust: play.rust-lang.org/?gist=b80b27abdef7bee9b2e7f72985e14a40&mode=release use std::ops::{self, Add, Mul, Rem};macro_rules! range { (min: $ty:ty, $uty:ident) => { !0 ^ ((!0 as $uty) >> 1) as $ty }; (max: $ty:ty, $uty:ident) => { !range!(min: $ty, $uty) }; ($ty:ty, $uty:ident) => { impl From for Range { fn from(r: ops::Range) -> Self { range!($ty, $uty, r.start, r.end) } } impl From for Range { fn from(r: ops::RangeFrom) -> Self { range!($ty, $uty, r.start, range!(max: $ty, $uty)) } } impl From for Range { fn from(r: ops::RangeTo) -> Self { range!($ty, $uty, range!(min: $ty, $uty), r.end) } } impl From for Range { fn from(_: ops::RangeFull) -> Self { range!($ty, $uty, range!(min: $ty, $uty), range!(max: $ty, $uty)) } } }; ($ty:ty, $uty:ident, $low:expr, $high:expr) => {{ let range = ($high as $uty).wrapping_sub($low as $uty); Range { start: $low, range: range as $ty, accept: ($uty::max_value() - $uty::max_value() % range) as $ty } }};}range!(i8, u8);range!(i16, u16);range!(i32, u32);range!(i64, u64);range!(u8, u8);range!(u16, u16);range!(u32, u32);range!(u64, u64);struct Range { start: T, range: T, accept: T,}trait Rng { const MULTIPLIER: Num; const INCREMENT: Num; fn state(&self) -> Num; fn state_mut(&mut self) -> &mut Num; fn gen(&mut self) -> Num { let old_state = self.state(); *self.state_mut() = old_state * Self::MULTIPLIER + Self::INCREMENT; old_state } fn gen_range(&mut self, range: R) -> Num where R: Into, { let range = range.into(); loop { let tmp = self.gen(); if tmp < range.accept { return range.start + tmp % range.range; } } }}fn main() { const MSG: &[u8; 20] = b"hgutjiaenlfqlpmywzxo"; struct Tmp(u64); impl Rng for Tmp { const MULTIPLIER: u64 = 6364136223846793005; const INCREMENT: u64 = 1; fn state(&self) -> u64 { self.0 } fn state_mut(&mut self) -> &mut u64 { &mut self.0 } } for i in 2..5 { print!( "{}", MSG[Tmp(i).gen_range(0..MSG.len() as u64) as usize] as char ); } println!();}

They're called slices. Look them up.

Why are you correcting me whem I'm right?
But alright I will appease your autism: Do "slices" have an insert function?

golang.org/pkg/crypto/
golang.org/pkg/net/http/

I actually think the web server is pretty nice, but there are some nice middlewares and libraries that save you time with dynamic routing and other day-to-day things. I prefer Julien Schmidt's httprouter because it's just enough for the stuff I typically want to do, but Chi is really nice from what I've read.

func insert(s []int, i int, x int) []int{ s = append(s, 0) copy(s[i+1:], s[i:]) s[i] = x return s}

Could probably be done with methods but I'm not that great a programmer.

fucking KEK

So this isn't in the standard library? You actually have to write an insert function yourself?

I just noticed that this works only for ints. So everytime i want to insert sonething into a slice i have to copy and paste this shit because lol no generics?

Didn't check tbh


Interfaces could probably do it

You can append to an array or slice (there's an append function), but I assumed you meant insert to some index i

Hello runtime type exceptions

Crypto is the easiest shit to make a library for. You just copy the RFC that says

Running srand() in a loop isn't "semantics". It's defective. Use your PRNG properly.
You didn't "forget one tab", you indented the entire loop for no reason.
If else while are not functions. Their parens aren't what I was referring to. Fucking hell you can't even see the problems when they're pointed out to you.

It's SJW-Google controlled so, no thank you. I will not waste my time.

...

Agreed. What I don't understand is that Gophers defend these poor decisions.

Please see a doctor, you are actually retarded.

i-it's just a joke mom
wow don't be so autistic as to say what I did was bad
who would shit in bed accidentally? you're dumb for not getting it
captcha: QntHrd

>>>/g/

Is it supposed to print "utj"? The C++ one prints fag

implement main0() = println!("ur a ", OP) where { val OP = "faget"}let () = let op = "faget" in Printf.printf "ur a %s\n" op:- module main.:- interface.:- import_module io.:- pred main(io::di, io::uo) is det.:- implementation.:- import_module list, string.main(!IO) :- format("ur a %s\n", [s(OP)], !IO), OP = "faget".Go was a mistake.

Calling it code feels like an overstatement

Does go has an abs function for integers?
The answer is of course no.

Who needs a whole function?
play.golang.org/p/i40wQWVC3JC

play.golang.org/p/HsUzdkOtSy3
epic

Damn. And here I thought I was being clever.

No. Go is the anti clever language.

Damn. If you only knew the real story behind this man's work history.

Patrician.

ok

Terrible quality? I thought it was one of the best. Please elaborate.

youtube.com/watch?v=ENLWEfi0Tkg
Well, I had never before heard this man talk. It is definitely a disguise. He is a wise man pretending to wear a millennial facade, and you can tell he doesn't even give a damn that it shows it's a facade.

On a related note, I think Upspin sounds like a good idea. What do you think?

Direct linking to youtube should be a bannable offense.

hooktube.com/watch?v=ENLWEfi0Tkg

Well terrible is kind of a big overstatement. The quality is good enough for most purposes as long as you seed it right.
The biggest problems of Mersenne Twister are that it has a massive state size (2.5 KiB) and is slow.
For most use cases even a LCG beats the fuck out of Mersenne Twister.

care you elaborate?

Sorry.


Actually, I can't. But you can start at Volta Laboratory and Bureau and how it ties to the creation of Plan 9 (emphasis on Nine) and the people behind all that.
I do believe Rob Pike is a big picture guy. One of those that help shape the world. What I'm not so sure of yet is whether this is so in a good or a bad way.

The problem with Upspin is the orwellian centralized key server. There's no security there. Who cares if everything is end-to-end encrypted when all the keys are stored in the same place for Google and the government to peruse at their leisure? It's prototyped on email, but email doesn't need some centralized single server fuckery to work. Why stop at letting users host their own storage servers? Let me host my own key servers too, have many key servers, fuck his "I don't want to split (((the community)))" nonsense.

Yeah, the centralization bit isn't good. But a system like this with a decentralized mesh of key servers would be nice, though.
In the end it doesn't matter, because Normal McNormie is going to use Facebook Cloud(tm) or some such.

So? That's fine. Let him use what he wants. Who the fuck said we have to cater to him? Linux tried to cater to normalfags for decades and it turned into a fucking disaster.

We don't have to cater to him, but systems like the one we're discussing have the potential to make technology work in favor of mankind instead of working for the matrix.
Regardless of whether you consider this is something desirable, my point was that people's intellectual laziness and lack of self-respect is ultimately what fucks this world up.

Literally the reason why we can't have nice things.

*working for the botnet

The Linux kernel never tried to appeal to end users. It is made for servers and embedded.

We are also too poor, hardware has incredibly high fixed costs which makes projects like TALOS almost die and the low variable costs make the oligopolies unassailable. The rich are not going to finance libre hardware for obvious reasons and the commoners have not been robbed of all their money yet and some (very few) might support us. The armboard scammers like rpi etc. do well enogh.

...

is not part of the kernel?

golang.org/pkg/math/#Abs

gopher confirmed pajeet

func insert (arr []interface{}, i int, x interface{}) []interface{} { arr = append(arr, 0) copy(arr[i+1:], arr[i:]) arr[i] = x return arr}
This works with literally anything. `interface{}` is Go's `void *`.

To be fair they do have int8, int16, and int32 types too.

float64(int_value)

"Fuck compile-time errors, run-time errors are good enough for me"
t. rob pike

At this point even Typescript looks better than Go.

Except that doesn't even compile, because []interface{} is not equivalent to any arbitrary slice.
play.golang.org/p/mPl36YqRQgI

What the fuck is this shit? That's rust levels of garbage syntax

t := []int{1, 2, 3, 4}s := make([]interface{}, len(t))for i, v := range t { s[i] = v}


No it isn't, stop tryharding. It's an array of interfaces.

Unix is the Go of operating systems.

gopherproxy.meulie.net/sdf.org/0/users/kickmule/unix/unix_haters_ml_2.txt

I don't know if Minow is committing the hagiolatry oneassociates with the typical weenix unie, but I really feelthat any further mention of the reputed tear-inspiringbeauty, simplicity, symmetry, economy, etc of "V7" (orwhatever) Unix should be cause for immediate and permanentexpulsion from present company. I've seen quite a number of allusions to some downwardfall of unix even in this forum. Let's get this straightonce an for all: Unix was flawed from conception. Itsentire New-Jerseyist philosophy is flawed. In fact, itsentire "philosophy" is a Source of Evil in the Modern World. THERE WAS AND IS NO FALLING-OFF FROM A WORLD OFUNDIVIDED LIGHT. THERE WAS NO GREAT PURE, PRIMORDIAL,PRELAPSARIAN UNIX. The Unix you see, with which youstruggle, which you curse, is not a diseased and reducedremnant, but is itself the agent of disease and reduction. How can one lose sight of that?


I don't regard it a "real" UNIX, then again I wouldn't buy a"real" UNIX, 1970s software technology is not something Iwould want to buy today.Getting caught up in the "pure" UNIX war will lead you torestrict yourself to "pure" SVR4 implementations, in themainstream camp *only* SUN have gone for this. That in myview does not make it much of a "standard".If a vendor decides to do something about the crassinadequacies of UNIX we should give them three cheers, notstart a flame war about how the DIRECTORY command *must*forever and ever be called ls because that is what the greattin pot Gods who wrote UNIX thought was a nice, clear namefor it.The most threatening thing I see in computing today is the"we have found the answer, all heretics will perish"attitude. I have an awful lot of experience in computing, Ihave used six or seven operating systems and I have evenwritten one. UNIX in my view is an abomination, it hasserious difficulties, these could have been fixed quiteeasily, but I now realize nobody ever will.At the moment I use a VMS box, I do so because I find that Ido not spend my time having to think in the "UNIX" mentalitythat centers around kludges. I do not have to tolerate ahelp system that begins its insults of the user by beinginvoked with "man".Apollo in my view were the only UNIX vendor to realize thatthey had to put work into the basic operating system. Theyhad ACLs, shared libraries and many other essential featuresfive years ago.What I find disgusting about UNIX is that it has *never*grown any operating system extensions of its own, all thecreative work is derived from VMS, Multics and theoperating systems it killed.

Can you fuck off spamming your stupid niche contrarian anti-UNIX bullshit in every thread? Nothing before or since has surpassed it, except maybe P9. But that fucked up by being barely-usable.

What if Go was made by Joe Schmoe or Pajeet? What if UNIX didn't have the AT&T name on it?

You have Stockholm syndrome because of marketing bullshit started by AT&T in the 80s. Nothing much has changed from 1992 to 2018. They're still blaming the user, still making crappy programs and telling you it's "simpler", still telling us that bugs and flaws are actually the "real operating system" way to do things.

Nothing has surpassed it in its ability to suck, to waste time, to be barely-usable, to be unfixable, to turn people into corporate shills for AT&T software, to create Stockholm syndrome among users.

If there's one thing which truly pisses me off, it is theattempt to pretend that there is anything vaguely "academic"about this stuff. I mean, can you think of anything closerto hell on earth than a "conference" full of unix geekspresenting their oh-so-rigourous "papers" on, say, "SMURFY:An automatic cron-driven fsck-daemon"?I don't see how being "professional" can help anything;anybody with a vaguely professional (ie non-twinkie-addled)attitude to producing robust software knows the emperor hasno clothes. The problem is a generation of swine -- bothprogrammers and marketeers -- whose comparative view of unixcomes from the vale of MS-DOS and who are particularlysusceptible to the superficial dogma of the unix cult.(They actually rather remind me of typical hyper-reactionarySoviet emigres.)These people are seemingly -incapable- of even believingthat not only is better possible, but that better could haveonce existed in the world before driven out by worse. Well,perhaps they acknowledge that there might be room for someincidental clean-ups, but nothing that the boys at Bell Labsor Sun aren't about to deal with using C++ or Plan-9, or,alternately, that the sacred Founding Fathers hadn'texpressed more perfectly in the original V7 writ (if only wepaid more heed to the true, original strains of the unixcreed!)

My perspective on this matter, and my "reading" of thematerial which is the subject of this list, is that the twoare inseparable. The "fundamental design flaw" of unix isan -attitude-, and attitude that says that 70% is goodenough, that robustness is no virtue, that millions of usersand programmers should be hostage to the convenience orlaziness of a cadre of "systems programmers", that one'stime should be valued at nothing and that one's knowledgeshould be regarded as provisional at best and expendable ata moment's notice.My view is that flaming about some cretin using afixed-sized buffer in some program like "uniq" says just asmuch about unix as pointing out that this operating systemof the future has a process scheduler out of the dark agesor a least-common-denominator filesystem (or IPCs or systemcalls or anything else, it -doesn't matter-!)The incidental -is- fundamental in dissecting unix, much asit is in any close (say, literary or historical) reading.Patterns of improbity and venality and outright failure arerevealed to us through any examination of the minutiae ofany implementation, especially when we remember that onecornerstone of unix pietism is that any task is really nomore than the sum of its individual parts. (Puny tools forpuny users.) And speaking of revealing patterns of abuse throughobservation of detail, has anybody considered that unixgeeks might be Adult Children or Survivors or be permanentlyIn Recovery? Perhaps they were sodomised by an awk at ayoung age, leading to a parodoxical attachment to the agentof their humiliation? If we could persuade them them tospend all their time attending pop-psych workshops in thewoods ("Fire in the John"), beating drums and invoking theshade of Dennis Ritchie, we could keep them away from theirkeyboards...

I'd much rather be running something like CP/M or even a straight-up Forth REPL, but frankly Unix is the least worst thing today that actually has the necessary drivers for ACPI, USB, and such unfortunate complexities. At least it doesn't force you to use the desktop shits constantly, so you can boot into a simple text or framebuffer console. Otherwise, TempleOS is the only decent modern thing.

Have a look at AROS.

Always the same retarded shit.

It's worse than bad, it's a disease.

Yesterday Rob Pike from Bell Labs gave a talk on the latestand greatest successor to unix, called Plan 9. Basically hedescribed ITS's mechanism for using file channels to controlresources as if it were the greatest new idea since thewheel.There may have been more; I took off after he credited Unixwith the invention of the hierarchial file system!

Amazing, wasn't it? They've even reinvented the JOB device.In another couple of years I expect they will discover theneed for PCLSRing (there were already hints of this in histalk yesterday).I suppose we could try explaining this to them now, butthey'll only look at us cross-eyed and sputter somethingabout how complex and inelegant that would be. And thenwe'd really lose it when they come back and tell us how theyinvented this really simple and elegant new thing...

Last night I dreamed that the Real World had adopted the"Unix Philosophy."I went to a fast-food place for lunch. When I arrived, Ifound that the menu had been taken down, and all theemployees were standing in a line behind the counter waitingfor my orders. Each of them was smaller than I remembered,there were more of them than I'd ever seen before, and theyhad very strange names on their nametags.I tried to give my order to the first employee, but he justsaid something about a "syntax error." I tried anotheremployee with no more luck. He just said "Eh?" no matterwhat I told him. I had similar experiences with severalother employees. (One employee named "ed" didn't even say"Eh?," he just looked at me quizzically.) Disgusted, Isought out the manager (at least it said "man" on hisnametag) and asked him for help. He told me that he didn'tknow anything about "help," and to try somebody else with astrange name for more information.The fellow with the strange name didn't know anything about"help" either, but when I told him I just wanted to order hedirected me to a girl named "oe," who handled order entry.(He also told me about several other employees I couldn'tcare less about, but at least I got the information Ineeded.)I went to "oe" and when I got to the front of the queue shejust smiled at me. I smiled back. She just smiled somemore. Eventually I realized that I shouldn't expect aprompt. I asked for a hamburger. She didn't respond, butsince she didn't say "Eh?" I knew I'd done something right.We smiled at each other for a little while longer, then Itold her I was finished with my order. She directed me tothe cashier, where I paid and received my order.The hamburger was fine, but it was completely bare... noteven a bun. I went back to "oe" to complain, but she justsaid "Eh?" a lot. I went to the manager and asked him about"oe." The manager explained to me that "oe" had thousandsof options, but if I wanted any of them I'd have to know inadvance what they were and exactly how to ask for them.He also told me about "vi," who would write down my orderand let me correct it before I was done, and how to hand thewritten order to "oe". "vi" had a nasty habit of writingdown my corrections unless I told her that I was about tomake a correction, but it was still easier than dealingdirectly with "oe."By this time I was really hungry, but I didn't have enoughmoney to order again, so I figured out how to redirectsomebody else's order to my plate. Security was pretty laxat that place.As I was walking out the door, I was snagged in a giant Net.I screamed and woke up.

They just need to try *real* communism, eh, user? They'll get it right next time, I'm sure.

Is this a blog by someone who's never used a computer? They can't read any kind of manual that may come with their OS, so they type "help help help" and random commands until something happens?

I suppose all commands should provide all tangentially relevant output for any kind of arbitrary input.

Also, ITS' implementation of PCLSRing sounds like utter shit

You forgot the software curse of backward compatibility. And you still don't have any argument against the philosophy itself.

Honestly, most of POSIX and SUS would be fixed if they standardized the tool interface. For example, choose a field separator (\t), a record separator (\n) and don't allow these in any tool output, filename, etc...
You can now do robust shell scripting without all those GNU extensions that allow \0 as a delimiter. There's a lot to improve in stuff like sh and awk, too; on the spot, most of what rc did, but while having fucking elses, and for awk, cut-like field references. There's too much to list, but we really need a POSIX2.

epic: play.golang.org/p/ftsthRx3mgQ package mainimport ( "fmt")func main() { var i = int64(1

AT&T didn't care about backward compatibility. They replaced the existing RFCs and standards with UNIX bugs.

The philosophy leads to bad programming. It leads to bugs. It leads to duplicate code. It leads to "extending" broken code instead of rewriting from scratch. How many ad hoc text processing "tools" does UNIX need? sed, awk, cut, paste, grep, cat, tac, nl, split, sort, tsort, head, tail, and all the others?

ASCII already has standard control characters for separating records and fields, FS, GS, RS, and US. AT&T did not care about the proper use of the ASCII standard. They probably use tabs and newlines because they're intended for human output and UNIX glorifies "munging" human readable text instead of calling APIs to get information.

Add a useful shell that can do the work of awk better and throw the "tools" in the garbage. POSIX "Shell & Utilities" are now one program, besides compiler software. The "System Interfaces" need a lot of work too. I'd start by getting rid of anything that depends on null-terminated strings.

You speak of 'Un*x' as if was some complete and well formedentity, particularly when it comes to networking (which wasonly glommed on in recent history).I just loved that what AT*T sold as the "Basic NetworkingUtilities" package was UUCP! Basic Networking, yeah right.For g*ds sake, RFC1 is dated 1969, before Un*x was evenstarting taking up disk space.

Please see RFC1288 (one of my favourites of a recent slewwhich redefine protocols to agree with unix implementationbugs.)

So, why are normal maps generic but sync.Map isn't???

Normal maps are a type you define, like map[string]float64, so that keys are strings and values are float64. (Why you would do that is beyond me.
sync.Map is (basically) a map[interface{}]unsafe.Pointer with a hidden mutex (for thread safety), which basically means the keys are generic, and the values are pointers, so it's sorta generic, but means you have to type type assertion shit, because Go doesn't actually have generics.

Except it doesn't since the philosophy is literally "do on thing and do it well". Meaning no duplication and no tinkering to add "missing features". You can say that UNIX itself was a poor implementation of the "UNIX philosophy", though.

interface{} isn't generic though

someone needs to make a meme of this fuckin gopher carrying around a bag of garbage so all the people who spend all their time sucking googles dick can remember they are garbage and so are their programs because this fuckin rodent likes collecting the garbage data of garbage programmers.
your language is bad and you should feel bad
seriously go program in python or javascript
if you had half a brain youd take the time to learn rust

Agreed. Sick burn btw.

Bullshit. G*d Pike himself duplicates because it makes things significantly simpler. Just look at this: func MaxInt8(a, b int8) int8 { if a > b { return a } return b}func MaxInt16(a, b int16) int16 { if a > b { return a } return b}func MaxInt32(a, b int32) int32 { if a > b { return a } return b}func MaxInt64(a, b int64) int64 { if a > b { return a } return b}
Really easy and simple isn't it? You just have to write a Max$TYPE function for every $TYPE you want to use it for. Or just write out the if a > b part. It's not like Googlers can mistype something.

Compare it to this: fn max(a: T, b: T) -> T { if a > b { a } else { b }}
What the fuck is Ord supposed to be? Why doesn't it say return when it returns something? Why is the syntax so ugly? Why can you export the function if max is not capitalized? Even worse, what's this T? It comes out of nowhere. Nobody is going to understand that.

It's "everything is raw byte files", "software tools", and other bullshit. The opposite of UNIX philosophy is "do one thing and do it well", which is called orthogonality and modularity. There is a lot of duplication and overlap and the "tools" are ad hoc and aren't organized in meaningful ways.

There is no duplication between sed, awk, cut, paste, grep, cat, tac, nl, split, sort, tsort, head, tail, and all these other "tools"? None of them have added more features since the first version?

If it doesn't describe UNIX, it shouldn't be called the "UNIX philosophy" at all. What AT&T shill invented "UNIX™ philosophy" to replace English adjectives that don't even describe UNIX?

Well, I fritter away some more idle minutes running anotherten or so iterations of running my shell script, adding andremoving switches, carefully checking that no commands arealiased, that my search path is correct, that I'm actuallyrunning grep on the correct files and that I am reallyinvoking grep without the "-h Do not display filenames"switch. I check the non-setting of "-h" many times, sincehaving it set would produce exactly the sort of lossage Iwas experiencing.Finally, about to tear my hair out, I happen to type "c-L"in the Emacs buffer in which the grep options are displayed.This recentres the window such that three additional linesappear at the top of the buffer's window. I read---------------------------------------------------------------------- want the filename to appear, use /dev/null as a second file in the list.----------------------------------------------------------------------ARRGGGGGGGGGGGHHHHHHHH.I scroll back and read the whole screen:---------------------------------------------------------------------- When any of the grep utilities is applied to more than one input file, the name of the file is displayed preceding each line which matches the pattern. The filename is not displayed when processing a single file, so if you actually want the filename to appear, use /dev/null as a second file in the list.OPTIONS -b Precede each line by the block number on which it was found. This is sometimes useful in locating disk block numbers by context. -c Display a count of matching lines rather than displaying the lines which match. -h Do not display filenames.----------------------------------------------------------------------The iron spike of enlightenment finally punches through intomy cerebellum "... ... ... so... so... so... youmean... there's ANOTHER reason why Emacs always appends/dev/null to its m-x grep command-line! ... Well f__k meharder again and again! ... errgghhhh... FEELINGS arecascading over me!!!"Incidentally (or not -- YOU be the judge!) this is EXACTLYthe kind of bullshite which makes the "ls" command lose sobadly (and which, incidentally, contributes to every unixFTP server flagrantly violating the FTP spec): the defaultfilename argument for "ls" (the current directory) istotally different from specifying "ls * .*" (which one mightthink would be the same thing) because bloody cretinous "ls"descends into subdirectories which are specified on thecommand-line, even those without a trailing "/" (even ifunix had some command-line convention to discriminatebetween "the directory" and "the files of the directory",which it doesn't) and even those which are a result of awild-card expansion (even if unix commands knew anythingabout wild-cards, which they don't.)(I won't even start to rant on the matter of needing ".*" inaddition to "*" to get all of the files in a directory. Iwon't. I won't. I won't.)

not going in order here because logic

T is a generic type it could have been called anything just like a variable or function

en.wikipedia.org/wiki/Ordinal_number
it means that your generic type T has some method that can be used to order unique values which is required to determine what less than and greater than mean to the compiler

you can use a return statement and capitalize whatever you want, the real question is, why should we be following arbitrary rules that dont affect the compiled code?

RTFM is the only cure for derp
rust-lang.org/en-US/documentation.html

the thing about learning to use a real systems programming language is you have to know how the system actually works, if you dont want to go that, youre a garbage programmer and should be using a garbage collected language anyway because youre garbage mentality could never produce good code.

do*
your*
rustc would have caught these errors
rust > english

kys

Are you trolling or are you actually serious?
Every serious language is documented: doc.rust-lang.org/std/cmp/trait.Ord.html
It says so right in the function signature
How Can Mirrors Be Real If Our Eyes Aren't Real?

Nigger it's obvious I was making fun of Go fanboys. Didn't you notice the 'G*d Pike'?

Well retarded Gophers unironically think that. So it wasn't as obvious as you think.

bump

I HATE satori, the maintainer of go.uuid. What a CUNT. I'm sold on using any sort of retarded vendoring because of people like him. The guy's package is OLD, has 1,717 stars and has 200 forks on Github AND THE GUY BREAKS THE API, APPARENTLY WITHOUT ANY NOTICE.

wtf I love c++ now

Does Go not have semver?

Go has 'import github repository'. Proper dependency management with version pinning is bloat according to Rob Pike. There are third party tools for that though.

I am errect. On-topic, can you not build a static dependency on your end to then reference anytime you need build your Go implementation? I'm reading the docs and it looks like you can. It's not downloadable from Go's package manager, but then, why would you distribute a go program that relies on other go packages?

Jesus christ you're at their fucking mercy then. Can you at least specify a git branch or tag on the import? At least the more sane repos have versioned and tagged releases you can hit with #1.2.3 and shit.

No, it can only pull master. You need third party shit for that. I don't know how well the external package managers work because I don't use shit languages.

...

Now that the dust has settled let's discuss Go.
golang.web.fc2.com/
What's your opinion of it?
golang.web.fc2.com/
Will it replace any other languages?
golang.web.fc2.com/
Will it see widespread use?
golang.web.fc2.com/
Are you a gopher yet?
golang.web.fc2.com/

muh semver


you don't have to use their import github bullshit. not sure if gophers do in practice, but it would be a moronic idea since the server can just give you whatever code it wants

Really, faggot? What's your fucking problem with semver?

my problem is
and not semver itself

You don't have a problem with semver, you only have a problem with people mentioning semver? What the fuck is your problem?

Go is the ease of Python applied to C# and Java.

Python having no brackets is a selling point, but that leads to "un-golf-ability"
The Syntax is middle of the road between Java and C#

Why would anybody ever use Go? It's own creator admits that it's literally been purpose built for drooling retards, niggers, and pajeets who can't deal with real programming languages.
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

I would rather the retards use Go than python or the Node javascript shit they would be using otherwise.

Node is literally too complex for them to understand. They can't wrap their heads around asynchronous code.

Unnecessary complexity to do trivial things. I don't want anyone anywhere near node.

Not when you're doing anything related to the internet, since it's ALL asynchronous.

think again

The mascot is so fugly I refuse to touch Go.

it's pretty damned ugly, but have you considered pic related?

Have you seen their other one?

his wife draws these abortions

I assume she has some unresolved issues

FYI this is not needed. At work, I simply commit all 3rd party dependencies to our repo (under a separate GOPATH though). This way our build server can grab all the required code to build with one git fetch.

Umaru is fucking disgusting, I hope Onii-san marries Ebina and they move into country, leaving Umaru living alone, unable to take care of herself, lying in a puddle of her own piss and shit, leading to her dropping out of school, selling her consoles just to survive and ultimately her own body as well.

...

Umaru is genuinely a terrible person and the only place I want to see her is over my knee for a spanking.

same. and no clothes except that hamster whatever thing