Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

:eyepop: gadzooks!

Adbot
ADBOT LOVES YOU

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


Finster Dexter posted:

One day, someone at MS started making GBS threads their pants because they noticed that text editors like Atom, Sublime, etc. were gaining popularity on Windows and weren't the exclusive territory of Mac/Linux devs anymore. So, they built their own extensible text editor (basically a copy of Sublime in MANY ways). Thus, VS code is born. It's for people that don't want to fire up a whole freaking IDE just to edit some lovely nodejs script.

wtf

this is not a field i expected them to embrace and extend

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


what's next, a vi fork for their windows bash thing?

Soricidus
Oct 21, 2010
freedom-hating statist shill

Doc Hawkins posted:

what's next, a vi fork for their windows bash thing?

please don't bash windows, you'll trigger shaggar

Blinkz0rz
May 27, 2001

MY CONTEMPT FOR MY OWN EMPLOYEES IS ONLY MATCHED BY MY LOVE FOR TOM BRADY'S SWEATY MAGA BALLS
vs code also has intellisense and debugging for c# and it's really good

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

comedyblissoption posted:

just a reminder that this was rob pike's response to being asked why go collections dont have map or filter

https://groups.google.com/forum/#!topic/golang-nuts/RKymTuSCHS0

i want to punch almost every person who replied to that thread

quote:

Newbies should learn the language they're trying to learn.

quote:

the modern programmer's mentality appears to be that the best program
is the one not written.
(YES! YES YOU loving CODE MONKEY! YES IT IS!)

quote:

Functional programming languages have features which make sense for how the user is expected to program in them:

Loops don't exist (most func languages make it hard to have/use variables which would be needed to exit loops properly)
Functions can be expressed very simply because they are often expected to be a single expression (eg: lambdas)

In go, we have loops, functions can span multiple line's / pages, and have a syntax that allow that body of code of that size to be legible. Adding these functions saves little to no typing on the user's part, and adds functionality which already exists, for a problem which has already been solved.

for ... range, allows you to succinctly express an iteration over the elements of a slice, map, or channel. Functional languages don't have loop control structures, so I don't see how it's "semi-functional".

quote:

Yet another bikeshed colour discussion. And of course, Go's Godwin, the generics, are added to the topic.

Why do people think they have the miracle solution for non-existing hypothetical problems? I don't get it. Go != C++ != any other (functional) language

Can we please move on?

quote:

I was replying specifically to the comment I quoted: "Applying a
function to elements of a slice is a basic task that shouldn't be
reimplemented over and over again for every type." That is the
argument for generics. I don't think we can take that argument and
make it an argument for map and filter. If we do, we really are on a
slippery slope, one that ends with us adding every function that can
be described as a "basic task" to the language. The argument for
adding map and filter to the language has to be better than that.

distortion park
Apr 25, 2011


NihilCredo posted:

i want to punch almost every person who replied to that thread

(YES! YES YOU loving CODE MONKEY! YES IT IS!)

That's insanely dumb.

distortion park
Apr 25, 2011


How does go deal with collections if it doesn't have generics?

Soricidus
Oct 21, 2010
freedom-hating statist shill

pointsofdata posted:

How does go deal with collections if it doesn't have generics?

poorly

gonadic io
Feb 16, 2011

>>=

NihilCredo posted:

quote:

I was replying specifically to the comment I quoted: "Applying a
function to elements of a slice is a basic task that shouldn't be
reimplemented over and over again for every type." That is the
argument for generics. I don't think we can take that argument and
make it an argument for map and filter. If we do, we really are on a
slippery slope, one that ends with us adding every function that can
be described as a "basic task" to the language. The argument for
adding map and filter to the language has to be better than that.

let's not add this good thing, because it's a slippery slope that might lead to adding other good things

gonadic io
Feb 16, 2011

>>=

explicit loops and casting.

it's like early java in that respect lol

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


I think generics might be one of the features which are blocked because they might add 3% to tha big g's build times. So, a bad reason, but a real one, as opposed to the ignorant busywork-is-good arguments deployed against map and filter.

Valeyard
Mar 30, 2012


Grimey Drawer
found this old scsreenshot and thouhght of this thread

oh no blimp issue
Feb 23, 2011

that's a lot of weed

Valeyard
Mar 30, 2012


Grimey Drawer
Hashkell can provide you with infinite weed

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
vs code is good
go is okay. not every language needs every feature. its a fantastic language to write cross-platform cli tools in for instance. its bad for complex applications. i still don't understand how k8s functions as well as it does.

comedyblissoption
Mar 15, 2006

gonadic io posted:

it's like early java in that respect lol
golang is basically a bikeshedded early java without the OOP kool-aid and a tiny bit more type inference

comedyblissoption
Mar 15, 2006

the special snowflake viewpoint that every language has its purpose and good points and since they are turing complete and not actively malicious against the user like malbolge is poisonous and results in poo poo like nodejs being used for general purpose applications

i grant that you can absolutely do useful and productive things with these languages like golang, but some people dont like spending their lives being a literal human compiler for an inferior language

you can't just ignore these terrible langs getting traction as evident by cases like MononcQc. I think you have to criticize them relentlessly.

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

comedyblissoption posted:

the special snowflake viewpoint that every language has its purpose and good points and since they are turing complete and not actively malicious against the user like malbolge is poisonous and results in poo poo like nodejs being used for general purpose applications

i grant that you can absolutely do useful and productive things with these languages like golang, but some people dont like spending their lives being a literal human compiler for an inferior language

you can't just ignore these terrible langs getting traction as evident by cases like MononcQc. I think you have to criticize them relentlessly.

there's some top tier irony to complaining about the 'all langs are beautiful' viewpoint when mononc is complaining about erlang being legacied in favor of golang lmao

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
i mean i like the dude and he's probably 20x the computertoucher that i am but

we ain't talking about people throwing away java in favor of go here

hifi
Jul 25, 2012

rob pike, wearing his pink shirt and weirdo glasses: good news everybody, i've got a new langauge that is fantastic at writing cross-platform cli tools

perl users, sarcastically: great
python users, sarcastically: great
etc

comedyblissoption
Mar 15, 2006

a good dynamically typed language is probably better than a bad statically typed language

i dont know erlang so idk where on the spectrum it lies but MononcQc certainly thinks erlang was superior for the problem domain

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

hifi posted:

rob pike, wearing his pink shirt and weirdo glasses: good news everybody, i've got a new langauge that is fantastic at writing cross-platform cli tools

perl users, sarcastically: great
python users, sarcastically: great
etc

neither of those languages are good for that hth

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
if you're in a cross-platform environment and your first step is 'install python/ruby/perl/whatever' then you have already failed

Jerry Bindle
May 16, 2003

uncurable mlady posted:

if you're in a cross-platform environment and your first step is 'install python/ruby/perl/whatever' then you have already failed

whats the right answer? i want to say java but i think that might be Controversial and i'm not even sure i would agree w/r/t certain aspects

comedyblissoption
Mar 15, 2006

java/jvm lang/C#/F# is fine if you don't care about start-up time of the CLI program (assuming the .net cross platform poo poo isn't pixie dust)

otherwise the only other langs that are statically typed I can think of w/o significant start-up time are probably like some cross-platform ML, haskell, C++, rust

any of these langs are gonna be better than golang

Soricidus
Oct 21, 2010
freedom-hating statist shill

uncurable mlady posted:

if you're in a cross-platform environment and your first step is 'install python/ruby/perl/whatever' then you have already failed

well yes, because it means you've chosen the weird handful of platforms that don't always have perl and python installed as a matter of course

and how does 'install a go compiler' improve on this, anyway? unless you're starting by building binaries of your code for every target platform, which is way more complicated than just installing interpreter binaries that someone else has already built and packaged.

comedyblissoption
Mar 15, 2006

when I criticize go, this is the type of nauseating stuff I am criticizing

reversing an array in golang is apparently an ordeal because go is adamantly against extraordinarily useful features

http://stackoverflow.com/questions/19239449/how-do-i-reverse-an-array-in-go

criticism of golang about how you have to reverse:
https://news.ycombinator.com/item?id=11860024
further down on a golanger's justification of you should handroll reverse every time it's not a big deal:
https://news.ycombinator.com/item?id=11860079

having a reasonably usable sort (idk how reasonable it actually is) took a major golang language update. and this genericity introduced for sort only is special cased on sort afaik.

I don't understand how golangers can get away with saying the language is for those who want to be productive or that it makes people productive

Mao Zedong Thot
Oct 16, 2008


uncurable mlady posted:

vs code is good
go is okay. not every language needs every feature. its a fantastic language to write cross-platform cli tools in for instance. its bad for complex applications. i still don't understand how k8s functions as well as it does.

go makes writing solid code easy, it's very pragmatic and boring, which is why it's actually good.

hifi posted:

rob pike, wearing his pink shirt and weirdo glasses: good news everybody, i've got a new langauge that is fantastic at writing cross-platform cli tools

perl users, sarcastically: great
python users, sarcastically: great
etc

lol, i take it you haven't spent much time with perl or python

Mao Zedong Thot
Oct 16, 2008


Soricidus posted:

unless you're starting by building binaries of your code for every target platform, which is way more complicated than just installing interpreter binaries that someone else has already built and packaged.

are you literally retarded? crosscompiling is not "way more complicated than just installing interpreter binaries" (and the part you didn't say: then managing all the godawful pip or gem or cpan or what the gently caress ever thigns your piece of poo poo software needs to run and just completely loving fails at setting up all the time)

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

Soricidus posted:

well yes, because it means you've chosen the weird handful of platforms that don't always have perl and python installed as a matter of course

and how does 'install a go compiler' improve on this, anyway? unless you're starting by building binaries of your code for every target platform, which is way more complicated than just installing interpreter binaries that someone else has already built and packaged.

cross-compilation with golang is literally a one-liner. it spits out static binaries.

and i work at a place that's mostly windows - if i want to write tools that everyone can use, i don't have a lot of options.

golang is literally the most boring poo poo to write in the world in a lot of ways, but i feel like most of the people who knock it have never tried it.

hifi
Jul 25, 2012

i used it and got mad when i had to use the json library

comedyblissoption
Mar 15, 2006

the label boring is fine as long as this term is not misleadingly conflated with productivity or readability of the code

jony neuemonic
Nov 13, 2009

yeah i have my beefs with go's design but isn't the deployment story like, one of the killer features?

comedyblissoption
Mar 15, 2006

the go ecosystem and tooling has some decent ideas that are propagating elsewhere

that doesn't mean that this tooling or ideas outweighs go's downsides or that golang somehow has exclusivity over it

Soricidus
Oct 21, 2010
freedom-hating statist shill

VOTE YES ON 69 posted:

are you literally retarded? crosscompiling is not "way more complicated than just installing interpreter binaries" (and the part you didn't say: then managing all the godawful pip or gem or cpan or what the gently caress ever thigns your piece of poo poo software needs to run and just completely loving fails at setting up all the time)

cross compilation is an extra step that is unnecessary with the alternatives. and I've never had any difficulty with dependencies, so i could just as easily ask whether it is you that is retarded, if I was feeling like being inexplicably hostile in the terrible programmers thread

fritz
Jul 26, 2003

i think i posted this before, but at the time i heard all the go peoples arguments about how you dont need generics i was elbow-deep in somebody's c++ (98/03 vintage) code where the author had (a) decided to roll their own stack class and (b) come up with a terrible api and (c) botched the implementation

comedyblissoption
Mar 15, 2006

it's not even generic types or map or filter. it's even stupider than that.

you can't even have a typesafe reverse function on arrays without the golang compiler writers blessing you with this use case. the prescriptive golang solutions to this problem are patently absurd.

http://stackoverflow.com/questions/19239449/how-do-i-reverse-an-array-in-go
https://news.ycombinator.com/item?id=11860079

I would categorize this situation as "infuriating" rather than "boring" if I had to use golang

Sapozhnik
Jan 2, 2005

Nap Ghost
Baking the literal existence of GitHub and depending on "eh, whatever HEAD is pointing to right this second, I guess" into not just your build system but your loving module system is a PHP-tier level of pants on head retardation.

I guess I could live with having to cast in and out of collections constantly. I mean, I've got a few Java projects of my own that use a lot of generic types and the generic type signatures of some of my abstract base classes are absolutely horrifying. So I can see that trade-off being potentially worthwhile. Though mostly all I do with those bases is derive from them and plug types into the type variables, write a forwarding constructor, and expose it to the dependency injector. Inheritance is usually very bad.

Adbot
ADBOT LOVES YOU

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


I have written and reviewed go code. Cross-compilation is indeed easy (especially compared to Haskell, which I gave up on figuring out).

Something which amazed me: Pike has gone on record that the cli use-case was a coincidence, and he was actually trying to make a language suited for large systems, probably ones providing web services. It's very much driven by Google's needs and methods. The unversioned dependency thing is because they have a single source repo for ALL their code, so it all gets tested and changed in lock-step: you can't change the Gmail api without also changing the Android mail app in the same commit, so who needs version numbers?


lol I've never seen this one, and it's fantastic

  • Locked thread