[ / / / / / / / / / / / / / ] [ dir / asmr / ausneets / dir / leftpol / polmeta / qpol / yg / zoo ][Options][ watchlist ]

/tech/ - Technology

You can now write text to your AI-generated image at https://aiproto.com It is currently free to use for Proto members.
Name
Email
Subject
Comment *
File
Select/drop/paste files here
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Expand all images

File (hide): ae898a03ceabeb5⋯.png (150.35 KB, 680x680, 1:1, goto trash.png) (h) (u)

[–]

 No.851351>>851375 >>851473 >>851475 >>854513 [Watch Thread][Show All Posts]

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?

 No.851355>>851356 >>851608 >>851655 >>852394

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


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


 No.851356>>851357

>>851355

this doesn't even compile you dumb nigger


 No.851357>>851359

>>851356

then I'll just go

print("ur a faget")


 No.851359

>>851357

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


 No.851362>>851364 >>851603

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


 No.851364>>851365

>>851362

better Go than the rest of web dev languages


 No.851365>>851367 >>851369

>>851364

Enjoy your error checking :^)


 No.851367

>>851365

>having errors in the first place


 No.851369>>851370

>>851365

enjoy your PHP spaghetti code, Rakeesh :^)


 No.851370>>851372

>>851369

>replying to yourself


 No.851372>>851375

File (hide): 2584be7b34b1fe6⋯.png (232.52 KB, 610x238, 305:119, 14516036200.png) (h) (u)


 No.851374

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


 No.851375>>851377

>>851372

Gee I wonder who could be behind this post.

>>851351 (OP)

>What's your opinion of it?

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.

>Will it see widespread use?

Yes because jewgle will push it.

>Will it replace any other languages?

Maybe java for the pajeets, maybe.


 No.851377>>851378

>>851375

>learn a beta meme language instead of a meme language that can actually be used

hah


 No.851378

>>851377

>using any meme languages to begin with


 No.851401

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


 No.851422>>851543

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


 No.851463

I'm seriously considering learning it because kubernetes.


 No.851473>>851479

>>851351 (OP)

>What's your opinion of it?

Don't have one.

>Will it replace any other languages?

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.

>Will it see widespread use?

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.

>Are you a gopher yet?

No.


 No.851475

>>851351 (OP)

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


 No.851479>>851487 >>851517

>>851473

>was designed by two legends of computer science

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


 No.851487

>>851479

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


 No.851490>>863201

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.


 No.851517>>851541 >>853517

>>851479

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.


 No.851541>>851544

>>851517

>UNIX

>today

pick one


 No.851543>>851545

>>851422

t. shill


 No.851544>>851546

>>851541

You completely missed the point.

>The UNIX we know today

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.


 No.851545>>851546

>>851543

>thread about Go

>no positive opinions allowed, we can only bash it


 No.851546>>851547 >>851550 >>851566

>>851544

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.

>>851545

>positive opinions

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


 No.851547>>851548

File (hide): 6916bd5f211a0e1⋯.png (Spoiler Image, 124.22 KB, 680x680, 1:1, le-unix-is-shit-i-am-very-….png) (h) (u)

>>851546

>UNIX is and always was shit

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.


 No.851548

>>851547

Ackchyually this was my first post about UNIX.

Also, not an argument.


 No.851550>>851557 >>851571 >>851572 >>851578 >>863201

>>851546

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

Go is the only programming language that does ALL that:

>compile to binary executable by DEFAULT, no need to install dependencies and interpreter/bytecode vm

>easy compile for different platforms (only 1 flag needed)

>garbage collector

>rich standard library

>fast compilation

>simple pretty much feature complete language that doesn't indefinitely grows more bloat (C++, Java, C#...)

>simple in design, easy to master (unlike Rust)

>simple abstractions, no need to fuck around with behind the scene magic language does for you (like Python) or need to be overly careful (like with C)

>C style syntax (so no Python, Ruby shit)

>no OOP

>predefined code style, meaning everybody writes the same code style

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.


 No.851557>>851560 >>851563

>>851550

>simple in design

You mean designed for retards?

>simple abstractions

Go has no abstractions. It doesn't even have min/max functions.

>C style syntax

No

>no OOP

Ok. This is actually a positive.

>Name 1 programming language that does all this.

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


 No.851560>>851562

>>851557

>java

>no OOP

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.


 No.851562

>>851560

>>no OOP

>Ok. This is actually a positive.

Learn to read faggot.

>400 char wide lines

epic strawman. Java also has code formatting tools.


 No.851563>>851566

>>851557

>You mean designed for retards?

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.

https://golang.org/pkg/math/#Min

https://golang.org/pkg/math/#Max

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

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.


 No.851566>>851571

>>851563

>https://golang.org/pkg/math/#Min

>https://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??

>Java needs JVM

Protip: nobody cares.

>forced OOP garbage

Protip: You can deal with it way easier than with a lack of generics.

>Generics are also one of the worsts things about Java. Obviously generics are useful, but they are not necessary

Ok. I also enjoy having to write my own type system that runs at runtime.

>Java version of generics is horrible.

agreed

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

see >>851546

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

Where did I say that I cared about what language other people use?


 No.851570

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

Thanks Rob Pike


 No.851571>>851572 >>851574

>>851566

>All of those are for floating point numbers.

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
}

>Also why is there no round function?

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.

>Protip: nobody cares.

You don't care. Other people care.

>Protip: You can deal with it way easier than with a lack of generics.

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?

>I also enjoy having to write my own type system that runs at runtime.

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.

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

>Where did I say that I cared about what language other people use?

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 >>851550. Because if you can't give 1 correct example then it means that Go is unique enough to fill the niche.


 No.851572>>851574

>>851571

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

No. Are you trolling?

>because it is not hard to do it manually

Alright. Write a correct implementation.

>muh simplicity

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 1 language that does everything I pointed out in >>851550.

I am still waiting for you to point out one thing that Go does better than already existing languages.


 No.851573

File (hide): 1876f68ac79993b⋯.webm (1.39 MB, 1280x720, 16:9, Terry_where_it_all_went_w….webm) (h) (u) [play once] [loop]

>no functional-paradigm support


 No.851574>>851575

>>851571

All those spelling mistake. I need to go to sleep. Close minded people like you really fucking annoy me to no end. >>851572

>I am still waiting for you to point out one thing that Go does better than already existing languages.

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.


 No.851575>>851582

>>851574

>Can't have a honest discussion with dishonest person.

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


 No.851578>>851582

File (hide): 113ef1294af9d58⋯.jpg (34.9 KB, 503x595, 503:595, 124579312649.jpg) (h) (u)

>>851550

Are you quite literally retarded?

Ah no wait, it's bait. Well done, you got me.


 No.851579>>851582 >>851588 >>851589

File (hide): 6d7e69212c08680⋯.jpeg (108.57 KB, 500x335, 100:67, rob-pike.jpeg) (h) (u)

>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

>It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical.

-- Rob Pike


 No.851582>>851583 >>851585 >>851588 >>851603 >>852018

>>851575

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 <= -0.5 {
return math.Trunc(n - 0.5)
}
if math.IsNaN(n) {
return math.NaN()
}
return 0
}

>>851578

I am not retarded and why bait? I am 100% serious. What language does all of that out of the box?

>>851579

I don't understand why this keep getting posted. Rob is simply shilling Go because the simplicity of the language is a plus not a minus. Is like you are implying it is gimped down like VB6 or shit like that.

Essentially what he is saying is that Go code is easy to learn and understand even if you haven't programmed in it before for long period of time, unlike other languages like C++ and Rust...


 No.851583

File (hide): e25ebc11d2fe00e⋯.webm (366.75 KB, 640x360, 16:9, e25ebc11d2fe00e805715e8ad….webm) (h) (u) [play once] [loop]

>>851582

>Go code is easy to learn and understand even if you haven't programmed in it before

I don't like to associate with certain categories.


 No.851585

>>851582

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.


 No.851588>>851590 >>851607 >>851614

>>851582

>posts incorrect round function

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: >>851579

Protip: Rob Pike is talking about retards like you.


 No.851589>>852471 >>852500

>>851579

>we're hiring people based on their skin color and gender

>but it turns out the colors and genders we hire aren't very good at programming for some reason

>in order to get literally fucking anything done around here, we have to make them use a language that's dead simple

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.


 No.851590

>>851588

>It should be 4.503599627370498e+15.

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


 No.851603>>851607

>>851362

>the creators don't want to add them...

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.

>>851582

>I don't understand why this keep getting posted

You don't seem to know where you are; /tech/, 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".


 No.851607>>851614

>>851603

>You don't seem to know where you are; /tech/, 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 >>851588 and https://www.cockroachlabs.com/blog/rounding-implementations-in-go/


 No.851608

>>851355

>muh C is best and only!

>doesn't know how to write C

Classy.


 No.851609>>851776

^ 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.


 No.851611

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


 No.851614>>851616 >>851619

>>851607

Did you even read your link?

>Finally, correctly rounding floating point numbers is ridiculously hard. It is no surprise that Java was broken for 6 major versions (15 years since the release of the Java 1.0 until Java 7)

The round will be in standard library in 1 month. What is your point?

>>851588

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?


 No.851616

>>851614

>The round will be in standard library in 1 month. What is your point?

>in 1 month

>Go is 8 years old

>What is your point?

>The solution that you were given works for simple inputs.

Is this what peak simplicity looks like?


 No.851619

>>851614

Btw did you even the javadoc?

https://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#round%28double%29

>Returns the closest long to the argument. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type long. In other words, the result is equal to the value of the expression: (long)Math.floor(a + 0.5d)

This is pretty retarded but hardly broken.


 No.851638

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.


 No.851655>>851702 >>851728 >>851785 >>852246

>>851355


#include <iostream>
#include <string>
#include <stdlib.h>
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 << msg[random];
}
cout << endl;
return(420);
}


 No.851702

>>851655

how is that related to the post you quoted?


 No.851727

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.


 No.851728>>851750 >>852073 >>852182

>>851655

>using C++ ever

>running srand in a loop

>function calls inconsistently hugging their ()

>repeating the size of the array

>returning a value >127 from main()

>making an array of one-letter strings instead of using a single string

>inconsistent indentation

>capital I

>dunno what I(2) means but

>using C++ ever


 No.851730>>851731

File (hide): e55f16fbf2ee867⋯.jpg (50.42 KB, 499x498, 499:498, ewww.jpg) (h) (u)

:=


 No.851731>>851733

>>851730

>t. Retard who's never written a line of code in his life and acts like a tryhard over syntactic choices


 No.851733>>851734

>>851731

>developer for 5 years, technical teamlead for 2

>but.. never written a line of code..

Try again.


 No.851734>>851735

>>851733

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


 No.851735>>851736

>>851734

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


 No.851736

>>851735

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


 No.851750

>>851728

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

You forgot

>Initializing a variable for no reason


 No.851776


 No.851785>>852477 >>861589

>>851655


#include <iostream>
#include <random>
#include <string>

int main() {
std::string a{"abcdefghijklmnopqrstuvwxyz"};
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<uint32_t> uniform_dist(0, a.size());
for (size_t i = 0; i < 5; ++i) {
std::cout << a[uniform_dist(gen)];
}
std::cout << "\n";
}


 No.851788>>851790 >>852011 >>852320

> Now that the dust has settled let's discuss Go.

Sure.

> What's your opinion of it?

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.

> Will it replace any other languages?

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

> Will it see widespread use?

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

> Are you a gopher yet?

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++.


 No.851790>>851796 >>851818 >>851827

>>851788

> batteries-included language

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


 No.851796>>851809

>>851790

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


 No.851809>>851812

>>851796

Bloated.


 No.851812

File (hide): fc4a1763f5b1e64⋯.webm (Spoiler Image, 619.49 KB, 640x656, 40:41, 328621007e35ec7410cf4c533….webm) (h) (u) [play once] [loop]


 No.851818>>851823 >>851827

>>851790

>> batteries-included language

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

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.


 No.851823

>>851818

>Go for everything

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.


 No.851827>>852040

>>851818

Don't reply to him. This person >>851790 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.


 No.851906

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.852011>>852250

>>851788

>batteries-included

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

wtf?


 No.852018>>852020

>>851582

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

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


 No.852020>>852063 >>852326

>>852018

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.852040>>852063

>>851827

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.


 No.852063>>852092 >>852097 >>852105

>>852020

>>852040

>"Go is shit language because I don't agree with <insert_random_nickpick> 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.


 No.852073>>852317

>>851728

>running srand in a loop

>dunno what I(2) means but

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.

>repeating the size of the array

Where?

>returning a value >127 from main()

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

>making an array of one-letter strings instead of using a single string

Honestly did this one for the giggles.

>inconsistent indentation

I forgot one tab you turbo autist.

>function calls inconsistently hugging their ()

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

>capital I

>using C++ ever

Not an argument. What would you recommend then?


 No.852092>>852113

>>852063

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.


 No.852097>>852113

>>852063

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:

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

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!


 No.852105

>>852063

><insert_random_nickpick>

>childish complaints

Ok. Butthurt Gotard detected.

>discussing anything with you is pointless

Agreed


 No.852113>>852122

>>852092

>>852097

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.


 No.852122>>852273

>>852113

Go has web server and crypto built into the language?


 No.852167>>852205

>>meme languages with built in functions encouraging the worst practices of programming resulting in bloated garbage that requires gigabytes of memory and other ridiculous requirements

>>impossible to maintain spaghetti that you have to pay people to look at

no thx bye


 No.852182

Where are the generics eggman??

You said there would be generics!

>>851728

>some guy writes a silly nonsense joke program

<WHAT IS THIS? THIS IS NOT UP TO MY CODING STANDARDS

autism


 No.852205>>852221

>>852167

who are you quoting?


 No.852208>>852230

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


 No.852221

>>852205

everyone who encourages those practices and Go itself


 No.852230>>852234

>>852208

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.


 No.852234

>>852230

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.


 No.852246>>852392

File (hide): cca5f684c508e59⋯.jpg (97.47 KB, 1280x720, 16:9, steve klabnik b.jpg) (h) (u)

>>851655

I rewrote it in Rust: https://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<ops::Range<$ty>> for Range<$ty> {
fn from(r: ops::Range<$ty>) -> Self {
range!($ty, $uty, r.start, r.end)
}
}

impl From<ops::RangeFrom<$ty>> for Range<$ty> {
fn from(r: ops::RangeFrom<$ty>) -> Self {
range!($ty, $uty, r.start, range!(max: $ty, $uty))
}
}

impl From<ops::RangeTo<$ty>> for Range<$ty> {
fn from(r: ops::RangeTo<$ty>) -> Self {
range!($ty, $uty, range!(min: $ty, $uty), r.end)
}
}

impl From<ops::RangeFull> for Range<$ty> {
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<T> {
start: T,
range: T,
accept: T,
}

trait Rng<Num: Add<Num, Output = Num> + Copy + Mul<Num, Output = Num> + Ord + Rem<Num, Output = Num>>
{
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<R>(&mut self, range: R) -> Num
where
R: Into<Range<Num>>,
{
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<u64> 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!();
}


 No.852250>>852257

>>852011

>no insert function for dynamic arrays

They're called slices. Look them up.


 No.852257>>852276

>>852250

Why are you correcting me whem I'm right?

But alright I will appease your autism: Do "slices" have an insert function?


 No.852273>>852277

>>852122

https://golang.org/pkg/crypto/

https://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.


 No.852276>>852280 >>852281

>>852257


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.


 No.852277>>852303

>>852273

>gophers who can't even write a correct round function are doing crypto

fucking KEK


 No.852280>>852284 >>852286

>>852276

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


 No.852281>>852284

>>852276

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?


 No.852284>>852302

>>852280

Didn't check tbh

>>852281

Interfaces could probably do it


 No.852286

>>852280

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


 No.852302>>852619

>>852284

>Interfaces could probably do it

Hello runtime type exceptions


 No.852303

>>852277

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

>MD5 must use this algorithm to be called MD5


 No.852317>>852321 >>852342

>>852073

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.


 No.852320

>>851788

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


 No.852321

>>852317

>see some obvious joke code

>REEEEEEEEE YOU ARE DOING IT WRONG


 No.852326

>>852020

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


 No.852342

>>852317

>missing this obvious of a joke

Please see a doctor, you are actually retarded.


 No.852381>>852384

>shit in own bed

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


 No.852384


 No.852392

>>852246

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


 No.852394>>852395

>>851355

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.


 No.852395

>>852394

>random useless code snippets

Calling it code feels like an overstatement


 No.852418>>852426 >>852605

Does go has an abs function for integers?

The answer is of course no.


 No.852426>>852427


 No.852427>>852428


 No.852428>>852429

>>852427

Damn. And here I thought I was being clever.


 No.852429

>>852428

>being clever in go

No. Go is the anti clever language.


 No.852471>>852513

>>851589

>maybe he's a real patriot

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


 No.852477>>852482

>>851785

>std::mt19937

Patrician.


 No.852482>>852484

>>852477

>slow, bloated and terrible quality

ok


 No.852484>>852509

>>852482

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


 No.852500>>852507

>>851589

https://www.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?


 No.852507>>852514 >>852518

>>852500

Direct linking to youtube should be a bannable offense.

https://hooktube.com/watch?v=ENLWEfi0Tkg


 No.852509

>>852484

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.


 No.852513>>852514

>>852471

care you elaborate?


 No.852514

>>852507

Sorry.

>>852513

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.


 No.852518>>852540

>>852507

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.


 No.852540>>852541

>>852518

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.


 No.852541>>852545 >>852563

File (hide): e718bd460813cbc⋯.png (193.72 KB, 444x475, 444:475, 1437514606503.png) (h) (u)

>>852540

>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.


 No.852545>>852546 >>852564

>>852541

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.


 No.852546

>>852545

*working for the botnet


 No.852563>>852582

>>852541

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


 No.852564

>>852545

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.


 No.852582>>852583

>>852563

>systemd


 No.852583

>>852582

is not part of the kernel?


 No.852605>>852612


 No.852612>>852620 >>852623

>>852605

>integer

>float64

gopher confirmed pajeet


 No.852619>>852657 >>852707

>>852302

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 *`.


 No.852620

>>852612

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


 No.852623>>853867

>>852612

float64(int_value)


 No.852657>>852663

>>852619

>tfw your language is so shit you have to resort to unconstrained type erasure to make up for the lack of generics

>tfw you pray no one will accidentally pass an x or an arr with the wrong type

"Fuck compile-time errors, run-time errors are good enough for me"

t. rob pike


 No.852663

>>852657

At this point even Typescript looks better than Go.


 No.852707>>852729 >>852774

>>852619

Except that doesn't even compile, because []interface{} is not equivalent to any arbitrary slice.

https://play.golang.org/p/mPl36YqRQgI


 No.852729>>852774

>>852707

>[]interface{}

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


 No.852774

>>852707


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

>>852729

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


 No.853517>>853524 >>854538

>>851517

Unix is the Go of operating systems.

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

   I don't know if Minow is committing the hagiolatry one
associates with the typical weenix unie, but I really feel
that any further mention of the reputed tear-inspiring
beauty, simplicity, symmetry, economy, etc of "V7" (or
whatever) Unix should be cause for immediate and permanent
expulsion from present company.

I've seen quite a number of allusions to some downward
fall of unix even in this forum. Let's get this straight
once an for all: Unix was flawed from conception. Its
entire New-Jerseyist philosophy is flawed. In fact, its
entire "philosophy" is a Source of Evil in the Modern World.

THERE WAS AND IS NO FALLING-OFF FROM A WORLD OF
UNDIVIDED LIGHT. THERE WAS NO GREAT PURE, PRIMORDIAL,
PRELAPSARIAN UNIX. The Unix you see, with which you
struggle, which you curse, is not a diseased and reduced
remnant, 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 I
would want to buy today.

Getting caught up in the "pure" UNIX war will lead you to
restrict yourself to "pure" SVR4 implementations, in the
mainstream camp *only* SUN have gone for this. That in my
view does not make it much of a "standard".

If a vendor decides to do something about the crass
inadequacies of UNIX we should give them three cheers, not
start a flame war about how the DIRECTORY command *must*
forever and ever be called ls because that is what the great
tin pot Gods who wrote UNIX thought was a nice, clear name
for 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, I
have used six or seven operating systems and I have even
written one. UNIX in my view is an abomination, it has
serious difficulties, these could have been fixed quite
easily, but I now realize nobody ever will.

At the moment I use a VMS box, I do so because I find that I
do not spend my time having to think in the "UNIX" mentality
that centers around kludges. I do not have to tolerate a
help system that begins its insults of the user by being
invoked with "man".


Apollo in my view were the only UNIX vendor to realize that
they had to put work into the basic operating system. They
had ACLs, shared libraries and many other essential features
five years ago.


What I find disgusting about UNIX is that it has *never*
grown any operating system extensions of its own, all the
creative work is derived from VMS, Multics and the
operating systems it killed.


 No.853524>>853537

>>853517

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.


 No.853537>>853635

>>853524

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

>stupid niche contrarian anti-UNIX bullshit

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 before or since has surpassed it, except maybe P9. But that fucked up by being barely-usable.

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 the
attempt to pretend that there is anything vaguely "academic"
about this stuff. I mean, can you think of anything closer
to hell on earth than a "conference" full of unix geeks
presenting 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 has
no clothes. The problem is a generation of swine -- both
programmers and marketeers -- whose comparative view of unix
comes from the vale of MS-DOS and who are particularly
susceptible to the superficial dogma of the unix cult.
(They actually rather remind me of typical hyper-reactionary
Soviet emigres.)

These people are seemingly -incapable- of even believing
that not only is better possible, but that better could have
once existed in the world before driven out by worse. Well,
perhaps they acknowledge that there might be room for some
incidental clean-ups, but nothing that the boys at Bell Labs
or Sun aren't about to deal with using C++ or Plan-9, or,
alternately, that the sacred Founding Fathers hadn't
expressed more perfectly in the original V7 writ (if only we
paid more heed to the true, original strains of the unix
creed!)

My perspective on this matter, and my "reading" of the
material which is the subject of this list, is that the two
are inseparable. The "fundamental design flaw" of unix is
an -attitude-, and attitude that says that 70% is good
enough, that robustness is no virtue, that millions of users
and programmers should be hostage to the convenience or
laziness of a cadre of "systems programmers", that one's
time should be valued at nothing and that one's knowledge
should be regarded as provisional at best and expendable at
a moment's notice.

My view is that flaming about some cretin using a
fixed-sized buffer in some program like "uniq" says just as
much about unix as pointing out that this operating system
of the future has a process scheduler out of the dark ages
or a least-common-denominator filesystem (or IPCs or system
calls or anything else, it -doesn't matter-!)


The incidental -is- fundamental in dissecting unix, much as
it is in any close (say, literary or historical) reading.
Patterns of improbity and venality and outright failure are
revealed to us through any examination of the minutiae of
any implementation, especially when we remember that one
cornerstone of unix pietism is that any task is really no
more than the sum of its individual parts. (Puny tools for
puny users.)




And speaking of revealing patterns of abuse through
observation of detail, has anybody considered that unix
geeks might be Adult Children or Survivors or be permanently
In Recovery? Perhaps they were sodomised by an awk at a
young age, leading to a parodoxical attachment to the agent
of their humiliation? If we could persuade them them to
spend all their time attending pop-psych workshops in the
woods ("Fire in the John"), beating drums and invoking the
shade of Dennis Ritchie, we could keep them away from their
keyboards...


 No.853626>>853634

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.


 No.853634

>>853626

Have a look at AROS.


 No.853635>>853648 >>853673

>>853537

>the UNIX philosophy is bad

>I'll criticize the implementation(s) to prove it

Always the same retarded shit.


 No.853648>>853688 >>853690 >>853860

>>853635

>all known implementation(s) are bad

>the UNIX philosophy is not bad

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

Yesterday Rob Pike from Bell Labs gave a talk on the latest
and greatest successor to unix, called Plan 9. Basically he
described ITS's mechanism for using file channels to control
resources as if it were the greatest new idea since the
wheel.

There may have been more; I took off after he credited Unix
with 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 the
need for PCLSRing (there were already hints of this in his
talk yesterday).

I suppose we could try explaining this to them now, but
they'll only look at us cross-eyed and sputter something
about how complex and inelegant that would be. And then
we'd really lose it when they come back and tell us how they
invented 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, I
found that the menu had been taken down, and all the
employees were standing in a line behind the counter waiting
for my orders. Each of them was smaller than I remembered,
there were more of them than I'd ever seen before, and they
had very strange names on their nametags.

I tried to give my order to the first employee, but he just
said something about a "syntax error." I tried another
employee with no more luck. He just said "Eh?" no matter
what I told him. I had similar experiences with several
other employees. (One employee named "ed" didn't even say
"Eh?," he just looked at me quizzically.) Disgusted, I
sought out the manager (at least it said "man" on his
nametag) and asked him for help. He told me that he didn't
know anything about "help," and to try somebody else with a
strange 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 he
directed me to a girl named "oe," who handled order entry.
(He also told me about several other employees I couldn't
care less about, but at least I got the information I
needed.)

I went to "oe" and when I got to the front of the queue she
just smiled at me. I smiled back. She just smiled some
more. Eventually I realized that I shouldn't expect a
prompt. I asked for a hamburger. She didn't respond, but
since she didn't say "Eh?" I knew I'd done something right.
We smiled at each other for a little while longer, then I
told her I was finished with my order. She directed me to
the cashier, where I paid and received my order.

The hamburger was fine, but it was completely bare... not
even a bun. I went back to "oe" to complain, but she just
said "Eh?" a lot. I went to the manager and asked him about
"oe." The manager explained to me that "oe" had thousands
of options, but if I wanted any of them I'd have to know in
advance what they were and exactly how to ask for them.

He also told me about "vi," who would write down my order
and let me correct it before I was done, and how to hand the
written order to "oe". "vi" had a nasty habit of writing
down my corrections unless I told her that I was about to
make a correction, but it was still easier than dealing
directly with "oe."

By this time I was really hungry, but I didn't have enough
money to order again, so I figured out how to redirect
somebody else's order to my plate. Security was pretty lax
at that place.

As I was walking out the door, I was snagged in a giant Net.
I screamed and woke up.


 No.853673>>853860

>>853635

>communism is bad

>I'll criticize the implementation(s) to prove it

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


 No.853688

>>853648

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.


 No.853690

>>853648

Also, ITS' implementation of PCLSRing sounds like utter shit


 No.853860>>854236

>>853648

>>853673

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.


 No.853867

>>852623

>float64(int_value)

epic: https://play.golang.org/p/ftsthRx3mgQ

package main

import (
"fmt"
)

func main() {
var i = int64(1<<53 + 1)
fmt.Println(i)
fmt.Println(int64(float64(i)))
}

<9007199254740993

<9007199254740992


 No.854236>>854504

>>853860

>You forgot the software curse of backward compatibility.

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

>And you still don't have any argument against the philosophy itself.

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?

>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...

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.

>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.

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 formed
entity, particularly when it comes to networking (which was
only glommed on in recent history).

I just loved that what AT*T sold as the "Basic Networking
Utilities" package was UUCP! Basic Networking, yeah right.
For g*ds sake, RFC1 is dated 1969, before Un*x was even
starting taking up disk space.

Please see RFC1288 (one of my favourites of a recent slew
which redefine protocols to agree with unix implementation
bugs.)


 No.854261>>854478

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


 No.854478>>854510

>>854261

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.


 No.854504>>854516 >>854517

>>854236

>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.

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.


 No.854510

>>854478

interface{} isn't generic though


 No.854513>>854514

>>851351 (OP)

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


 No.854514

>>854513

Agreed. Sick burn btw.


 No.854516>>854532 >>854539

>>854504

>no duplication

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<T: Ord>(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.


 No.854517

>>854504

>Except it doesn't since the philosophy is literally "do on thing and do it well".

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.

>Meaning no duplication and no tinkering to add "missing features".

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?

>You can say that UNIX itself was a poor implementation of the "UNIX philosophy", though.

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 another
ten or so iterations of running my shell script, adding and
removing switches, carefully checking that no commands are
aliased, that my search path is correct, that I'm actually
running grep on the correct files and that I am really
invoking grep without the "-h Do not display filenames"
switch. I check the non-setting of "-h" many times, since
having it set would produce exactly the sort of lossage I
was 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 lines
appear 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 into
my cerebellum "... ... ... so... so... so... you
mean... there's ANOTHER reason why Emacs always appends
/dev/null to its m-x grep command-line! ... Well f__k me
harder again and again! ... errgghhhh... FEELINGS are
cascading over me!!!"

Incidentally (or not -- YOU be the judge!) this is EXACTLY
the kind of bullshite which makes the "ls" command lose so
badly (and which, incidentally, contributes to every unix
FTP server flagrantly violating the FTP spec): the default
filename argument for "ls" (the current directory) is
totally different from specifying "ls * .*" (which one might
think would be the same thing) because bloody cretinous "ls"
descends into subdirectories which are specified on the
command-line, even those without a trailing "/" (even if
unix had some command-line convention to discriminate
between "the directory" and "the files of the directory",
which it doesn't) and even those which are a result of a
wild-card expansion (even if unix commands knew anything
about wild-cards, which they don't.)

(I won't even start to rant on the matter of needing ".*" in
addition to "*" to get all of the files in a directory. I
won't. I won't. I won't.)


 No.854532>>854536

>>854516

not going in order here because logic

>Even worse, what's this T?

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

>What the fuck is Ord supposed to be?

https://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

>Why doesn't it say return when it returns something? Why can you export the function if max is not capitalized?

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?

>It comes out of nowhere. Nobody is going to understand that. Why is the syntax so ugly?

RTFM is the only cure for derp

https://www.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.


 No.854536

>>854532

do*

your*

rustc would have caught these errors

rust > english


 No.854538


 No.854539>>854548

>>854516

>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.

Are you trolling or are you actually serious?

>What the fuck is Ord supposed to be?

Every serious language is documented: https://doc.rust-lang.org/std/cmp/trait.Ord.html

>Why doesn't it say return when it returns something?

It says so right in the function signature

>Why can you export the function if max is not capitalized?

How Can Mirrors Be Real If Our Eyes Aren't Real?

<I eschew embedded capital letters in names; to my prose-oriented eyes, they are too awkward to read comfortably. They jangle like bad typography.

- Rob Pike (http://doc.cat-v.org/bell_labs/pikestyle)

>Even worse, what's this T? It comes out of nowhere.

That is a generic type and it is defined in the function signature. https://en.wikipedia.org/wiki/Generic_programming

>Nobody is going to understand that.

Gophers aren't able to understand that. If you want to see something hard o understand look at some Haskell, some C++ template shit or this: https://bitbucket.org/iopq/fizzbuzz-in-rust/src/d4638b2ba3f09efe053ee0c4251036607847987c/src/lib.rs?at=master&fileviewer=file-view-default


 No.854548>>854550

>>854539

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


 No.854550

>>854548

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


 No.860671

bump


 No.861297>>861595 >>861740 >>866783

File (hide): be6ebac11af3c99⋯.jpg (18.83 KB, 426x378, 71:63, flat,800x800,075,f.u2.jpg) (h) (u)

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.


 No.861589

>>851785

wtf I love c++ now


 No.861595>>861707 >>862373

>>861297

Does Go not have semver?


 No.861707>>861740 >>861990 >>862373 >>866783

>>861595

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.


 No.861740

>>861297

>>861707

>seeing all of those communists get flummoxed

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?


 No.861990>>862336 >>862373

>>861707

>Go has 'import github repository'.

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.862336

>>861990

>Can you at least specify a git branch or tag on the import?

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.


 No.862367

>no generics


 No.862370

Now that the dust has settled let's discuss Go.

http://golang.web.fc2.com/

What's your opinion of it?

http://golang.web.fc2.com/

Will it replace any other languages?

http://golang.web.fc2.com/

Will it see widespread use?

http://golang.web.fc2.com/

Are you a gopher yet?

http://golang.web.fc2.com/


 No.862373>>862404

>>861595

muh semver

>>861707

>>861990

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


 No.862404>>862419

>>862373

>muh semver

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


 No.862419>>862439

>>862404

my problem is

>muh semver

and not semver itself


 No.862439

>>862419

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


 No.863201

>>851490

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

>>851550

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#


 No.864744>>864749

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, theyre not researchers. Theyre typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. Theyre 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.


 No.864749>>864756

>>864744

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


 No.864756>>864778

>>864749

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


 No.864778>>864796

>>864756

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


 No.864796>>864840

>>864778

>unnecessary

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


 No.864840

>>864796

>Callbacks are the only way to do asynchronous programming

think again


 No.866754>>866766

The mascot is so fugly I refuse to touch Go.


 No.866766>>866770 >>866791 >>867440

File (hide): fb266f722297df8⋯.png (89.64 KB, 321x326, 321:326, umaru golang.png) (h) (u)

>>866754

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


 No.866770>>866781

File (hide): d155e97d52511e6⋯.jpg (41.25 KB, 360x436, 90:109, augie.jpg) (h) (u)

>>866766

Have you seen their other one?


 No.866781

>>866770

his wife draws these abortions

I assume she has some unresolved issues


 No.866783>>866837

>>861297

>>861707

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.


 No.866791

>>866766

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.


 No.866837

>>866783

>Go package management is "just commit all dependencies"


 No.867440>>867805

>>866766

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


 No.867805

File (hide): b1d5e39e2b1f26e⋯.jpg (Spoiler Image, 4.64 MB, 2480x3507, 2480:3507, 57cd14882098c52fff19426cff….jpg) (h) (u)

>>867440

same. and no clothes except that hamster whatever thing




[Return][Go to top][Catalog][Screencap][Nerve Center][Cancer][Update] ( Scroll to new posts) ( Auto) 5
212 replies | 20 images | Page ???
[Post a Reply]
[ / / / / / / / / / / / / / ] [ dir / asmr / ausneets / dir / leftpol / polmeta / qpol / yg / zoo ][ watchlist ]