Does anyone actually use this?
Does google even use this?
Useless software general.
Are you serious?
I'm compiling SDL games (linked to shared libs) that have an output of 50kB.
792K for a hello world?
Have you ever even used haskell
do you know the power of parametric polymorphism
now, i'm no programmer, so maybe i'm wrong, but doesn't this binary require glibc to function? unlike >>51572339, which is statically linked (includes the libs it needs internally)
Writing highly concurrent C code is a massive pain in the dick. This is basically the only problem Go attempts to solve. A lot of old dudes at Google who aren't dead yet are trying to ensure they're skill set isn't obsolete, so they made Go.
Go statically against a self rolled GoogleLibc that works with practically all versions of the OS you compiled on.
This is nice b/c no GLIBC errors, but on the other hand, massively bloated binaries.
>C code is a massive pain in the dick. This is basically the only problem Go attempts to solve. A lot of old dudes at Google who aren't dead yet are trying to ensure they're skill set isn't obsolete, so they
Not really. At least in the past 15 years.
We have libuv, libevent2, sdl2 and the operating systems concurrency libraries.
Open up a book on them. Takes about 5 minutes to learn. Internationally recognized, lightning fast.
Are they hip? Not really. IEEE doesn't really want to wast their budget buying graphic artists to make "shiny" fancy logos and hoolabaloo.
They, for some reason, view themselves as grand architects.
Perhaps the wisdom of these people who literally built unix, linux, bsd, windows are better than a 25 year old saying he can write an OS in scala and haskell.
looking at >>51572339
it seems fine comparing to a statically linked glibc/gcc program, is it a bigger deal with things more complex than hello world?
can they be dynamically linked?
basically, what i'm asking is, is code size /really/ that big of a deal next to comparable languages
>Perhaps the wisdom of these people who literally built unix, linux, bsd, windows are better than a 25 year old saying he can write an OS in scala and haskell.
Go fag detected. Did Larry cut you a check for this post?
eh, they had to pull teeth to do it.
also libuv has a code of conduct, or some shit went down.
the new thing is to let the NEETs code a great library, then hand it off randi harpers, sick fucks, wierdos, freaks run the operation.
if you have a code of conduct, your app markets itself to the right crowd. helps people understand that even crossdressers pervs and all manner of vile deranged animals can use your code
The Go/C interface is slow as dog shit since both use different calling conventions. You have to manually allocate a new stack, flush all registers, start the new C stack,run the C code, sanitize the C stack, flush all registers, copy output into the Go code, and return to Go.
Its slow, bloated, and doesn't achieve good C/Go interopt. If you want statically linking against C code look into Rust, C++, or D.
this can't be true
i thought that golang was all about this
any sources on that?
because i bet you if you actually compiled in postgres' c files into golang, you'd have a far far more stable, bug free, faster db.
golang will also typecheck c code you import also. and add gc to it with no overhead
GCCGO isn't dead, it just is out of date at this point.
It was from the start pretty much just a compiler to have a number two compiler. There are some large annoying changes that have to be made to bring it up to Go 1.5 which will be made eventually.
Currently it is up to par with the old C implementation of the Go compiler.
This is 100% true. Sit down the the GDB and watch how Go/C interact. Go uses completely different calling conventions then C, and isn't ABI compatible.
Congratulations, now you covered 1 thing of about a 100 that makes Go easier to program than C.
Enjoy implementing coroutines, enjoy implementing cross-platform abstractions atop of the different OSs, enjoy implementing your own network libraries, enjoy writing your Makefiles and coming up with naming schemes because no packages, enjoy your nested structs and function pointers in structs and all the other shit because C sucks at abstractions.
>Only two months away from using Go for three years
It is a pretty nice language, pick it up if you are interested, it takes only a week to get the gist of it.
>enjoy implementing cross-platform abstractions atop of the different OSs, enjoy implementing your own network libraries,
libuv, libevent2, sfml network module, sdl2
>enjoy writing your Makefiles and coming up with naming schemes because no packages,
cmake, automake are superb. i can literally generate a makefile, find libraries on any system. BSD, OS X, Linux distros.
>enjoy your nested structs
yes we enjoy it when our objects are dense enough to fit on l1/l2 cache. we love 0 overhead.
we love that we can fit our software on chips the size of a fingernail while your java/golang/haskell needs a brick battery, android and gorilla glass to work.
nano second function calls. how painful
>all the other shit because C sucks at abstractions.
literally every higher level language uses the abstractions that are made in C. name a language, if it wasn't for there using a C abstraction of some sort - they'd never have gotten bootstrapped.
in many cases, they still rely on the c abstractions.
frankly, c is the the best at abstractions because you don't have to by into deciding an object model early on (C++, 99% of the time the developer will write nasty little cruft that you have to dig yourself out of 3 years later, and then you go bankrupt - just look at EVERY company in tech that gone bankrupt)
now we here in c land are ok. we're not arrogant. we don't care. it's just literally everythign that matters is in c. ever. and everything else that failed was in something that tried to second guess the benefits of transparent abstraction c provide.
c basically has 0 downsides.
that's why we use it where mission is critical.
personally i prefer node
> Persistence with this agenda, continuous and lengthy discussions, technical meetings and negotiations eventually led us to the point where we were allowed to run our own node.js-server on the inflight servers of the aircraft.
Node.js is the RTOS language of choice in mission-critical systems.
We're talking about node modules to handle autopilot.
it'll get bigger after this. slippery slope
i have friends at airbus, boeing. they're writing C++ node.js wrappers for all the systems.
no fucking lie
the internals of flight avionics will forever be irrevocably a nested web of callback schizophrenic soup.
this is what happens when you hire these "bright" 20 year olds. You get all sorts of clever ideas.
>people who used the equivalent of java 25 years ago are expert on compilers and language theory and know of its modern development, therefore they know what language is best!
That doesn't even begin to make sense. And no, C is still garbage to write in. It always has been really. Also windows is C++. There is no system programmer working on or in go, only webdevs; unlike rust.
not just avionics, but TCAS, as well as the system which will come to supercede ILS waypoints.
It was a 250 billion dollar project to replace them at all airports in the country. As of last year, all front-facing code is now being ripped out and replaced with node modules and an event loop.
obviously, no one senior is on any of these teams anymore. they were wired by glib 20-somethings who spoke authortively but in reality knew nothing
no one takes rust seriously
github has 100k node repos
excluding the rust organization:
it has 500 rust repos. 400 of them are forks.
and I haven't even MENTIONED that rustlang is ran by Mozilla - who will take every oppurtunity to turn every last commit into forcing transgender politics down your throat.
Rustlang is an experiment.
literally nothing of value exists in it.
you don't really have the skillset needed to build the product we want
How so? Rust has been only a boring hobby project so far with nothing to show for it while go runs on literally a few dozen square kilometers of production servers. Care to elaborate?
Google could adopt literal pig shit as a computing platform and then bully the rest of the world into it on the basis of market share. Argumentam ad populam is a dumb reason to pick a programming language.
>Rustlang is an experiment.
It's Mozilla's research lab, clean-slate langsec implementation.
Servo is written in rust, servo is on the roadmap to become Firefox's next rendering engine.
There is redox or whatever its called and that's showing how god-tier rust is for OS/kernel development as well.
docker is written in go
dropbox is written in go
99designs is written in go
soundcloud is written in go
heoroku is blog is written in go
even github is using goLang !
It's has its pro's and cons like other languages but after i tried and program a lot in goLang i actually love.. you should try make a some 2-3 libs/frameworks/projects or contribute to the goLang projects and after writing some years code come here and bash a language with actual valid arguments ! Please go and kill yourself ! fmt.Println("FUCK YOU")
It has virtually no pros compared to other languages and it has plenty of cons. Argumentum ad populum is retarded, and one can list major projects built in virtually any language, even niche as fuck now-has-5-users languages.
Almost every installation of linux, is going to have the C standard library, and on Windows most customers have Visual C++ Runtime, but the same cannot be said for Go. So it makes sense to statically link by default.
If you know, or are willing to mandate, that your end users have the Go toolchain installed you can dynamically link Go.
>And no, C is still garbage to write in. It always has been really. Also windows is C++. There is no system programmer working on or in go, only webdevs; unlike rust.
Spoken like someone who has only ever used Overly Object Oriented systems. C is glorious to write in, if you're writing the right things in it.
Problem is, most people "learn C" in school, and they weren't taught how to actually program in it. They were taught CS & programming 'concepts' in pedantic ANSI C. The latest and greatest programming concepts of 1989. Trying to write non-trivial code in ANSI C, much less the somewhat limited subset you're taught in CS101 & 201, is horrible. Especially if you're not using external libraries for niceties like like linked lists and hash tables.
On the other hand, if you bone up on a more modern revision (it only takes a day or so), like C99 or better yet, C11, then add in the things modern standard libraries give you. Things like hcreate/hsearch/hdestroy aren't officially in the c standard library, but exist in glibc, and the BSD libcs. Add in gnudb or berkleydb for on disk persistent hash tables, and you've got most of what people complain about is missing in C.
>Come back when you've graduated from your fizzbuzz academy.
How does that even begin to be a reasonable response? come on. Argue if you disagree, don't just whine like some /b/tard, If you disagree with one of the points, come up with a counterexample. Even an anecdote illustrating I might be wrong is a better retort.
>Does anyone actually use this?
>Argumentum ad populum is retarded
Is replying in context and reading comprehension retarded in your universe, too? If not, you may want to work on that first before busting out the fancy Latin for English buzzphrases.
I think that D, Rust, Swift and Go all look like they have a good chance at being the next big language. But Im picking Go out of these simply because I like how it leaves the traditional inheritance focus on OO and move to a more module based OO. Programmers for the last 20 years have had blinders on to where they can only approach a problem by making dozens of class definitions before they ever make code that does anything. This makes code VERY static and very hard to refactor once you have laid out the initial design. People who code in Go say they find it refreshing how little code they have to write compared to all the ceremony of class definitions and that it is trivial to redesign a program even if you are in the late stages. I like this, I am really ready to take the OO blinders off and make programming fun again.
People has been saying that about D since it first appeared, I don't think it can actually "pull it off".
Functional programming is becoming mainstream, it is IMO a better (=more fun) language than obj-c. It seems to be moving to other areas than ios development. I could definitely see this one go big. (Also Apple devs have the whiny power to force it on everyone else).
I could definitely see this as a replacement for projects where you would typically pick C++, familiar syntax for most people.
>familiar syntax for most people.
Easily the worst part of a language that secretly thinks it's an ML derivative and has higher order functions spread all over. One of the examples on their main site had about six levels of closing brackets at the end.
Which is hilarious given all the research that has gone into GC in the meantime, there are even realtime GCs nowadays but they decided to just fuck their GC up. Rob Pike is truly the definition of a hack.
your all dumb lol
>there are even realtime GCs nowadays but they decided to just fuck their GC up. Rob Pike is truly the definition of a hack.
the guy on the Go team who does gc is Robert Griesemer, he worked on the hotspot JIT for the Java JVM. I dont know why he is just doing mark & sweep gc for Go, I guess they will improve the gc at some later date.
>Being too autistic to read a few slides
That's exactly what is happening, the GC evolves over time and got a major rework for Go 1.5. It will not wind up being all that similar to the JVM, the aims are quite different.
It's perfect, It pretty much summarizes everything wrong with the online programming community in one comment.
The 1.5 go gc slows down computation during gc stops (i.e. it cheats) and the execution performance of a program under 1.5 is WORSE due to that according to the slides themselves except with a large heap and many goroutines running at once. In other words, IT IS GARBAGE.
>the execution performance of a program under 1.5 is WORSE due to that
the execution performance is worse because all the c code was automatically migrated to go and still needs to be optimized
> All dumb fags complain about this language.
> All dumb fags didn't try to make a real project in this language
> All dumb fags complain without a real fucking argument.
1. the gc is under 10 ms
2. some business that was written in python for example needed 50 server to run all the infrastructure and when they rewritten in go the need just 2.
3.You can remove/bypass the GC if you want
4.You can call exiting c code.
5. It's more faster than nodejs and more reliable.
6. It's more fatsten than php about x50 times.
>Thinks he cought someone with this argument
>Thinks this is a valid argument.
What a fucking kek.
Dude, it's just facts , and valid arguments why you should use use GoLang on the server side/cloud/serices.
Yeah i know python is not native compile language, yeah i know, BUT this is not my fucking point here. My point is that python,php,ruby all the other slow and single threaded languages it sucks to make concurent programs, it sucks to run that slow.
Yeah go is very verbose sometime, yeah, php/ruby/python are more productive in a respective level but in the long run i think go is a much more valid option even then java/c# or c++ because java is much more bloated with that fucking jvm, c# also it's just a clone of java and about c++ i would rather write c code than c++, those many template of template of template it's just mess and shit all that fucking waist abstractions.It's not clean and it's very hard to mantain the code.
Given that most non-trivial open source C programs have suffered memory corruption security vulnerabilities at some point, it may not be hard, but it sure is stupid. Bending over and spreading your asscheeks isn't hard either.
You also get to spend twice as long arguing with a borrow checker over correct code.
You wouldn't know about that, though, because you haven't done any web development in either language, so it's futile for you to try to make sensible point about any of this.
As opposed to receiving an uninterruptible 10k line stream of 100% useless segfault information whenever an error occurs?
You wouldn't know about that, though, because you haven't done any web development in either language, so it's futile for you to try to make sensible point about any of this.
I'm not the one pushing C or Rust, but here's the imageboard I wrote in Go:
Go doesn't "segfault". You seriously can't navigate two or three lines down a stack trace? Maybe you should stop trying to condescend to people with an actual basic competency in programming.
Holy shit, always these threads: people who never used Go nor have any plans to do so telling others why Go is absolutely unusable and why people who use Go and say otherwise are liars.
Every post itt (including this one) is a waste of time.
Not just a bit.
>All the #golang excitement on hacker news makes me realize I don’t think people realize how deep @Dropbox is in golang.
>Our entire infrastructure service layer has been rewritten in golang, 10s of thousands of servers running millions of hits per second.
what a total retard, Go's is revolutionizing how multithreading is done on servers, and considering how important web content and cloud computing is now, this makes Go the most important language by default, this goes way over the head of the typical C/C++ fizzbuzzers who think this can be done with thread locking
>what a total retard, Go's is revolutionizing how multithreading
Concurrency. Not multithreadding. There is a difference. Multithreadding makes every thread run in parallel. Concurrency lets the compiler & runtime decide if it will run it in parallel or not.
message passing came before Smalltalk, Erlang and Go, its from Carl Hewitts Actor model, and I really dont give a fuck who invented it, currently Go is the only imperative programming langauge that fully supports it
>people tell me all the time theyre processes not threads, I dont care, theyre threads to me
OK. Gross oversimplification here.
In FP, each function call could be run separately, until you saturate your CPU. In a pure FP environment, with no side effects, none of the child processes talk to each other, they just return their output to their parent. If you have an array of data, all of your sub functions don't care, because they can't see it.
With processes, they don't inherently share state, they work independently. They can communicate, using semaphores or shared memory areas, but you need to set that up on their own. Those would be side effects from an FP point of view. If you had a big array of data before you fork your processes, each child process can read and write their OWN COPY of the array. In a shared memory area, each of the processes could see what the other wrote.
Threads, inherently share state. If you have a big old array of data in threadded code, before or after you spawn your threads, you have to be careful. Every thread can read to it and write to it, and each thread sees what every other thread wrote.
>In FP, each function call could be run separately, until you saturate your CPU
Saturate your CPU?? how old are you, 12?
>With processes, they don't inherently share state, they work independently. They can communicate, using semaphores or shared memory areas
no, they dont use semphores (locks), message passing is totally lock free, you have no idea what youre talking about
Just try it:
you are just mad because your shitty language can't do things as easy, particularly concurrency and message passing
u wot m8
>Go's concurrency shit is literally copied directly from Erlang.
what the fuck am I reading?
how doesgo someFunction(some, args)
>go someFunction(some, args)
It doesn't. It's morons who don't understand concurrency, processes, threads, or message passing trying to pass judgement on a system, because they're bored.
Reading this thread I've learned nothing new about web development and what languages and frameworks should be used.
All of you just back up your own preferences.
Seriously now... What do you guys think are the top 3 frameworks or languages which should be used?
Actually I've never done any back end. Never. That's why I asked that question.
I'm really interested in that because that shit is changing a lot and I just can't get grip of what's good and what's not.
I've talked to few people who are into that stuff and all of them told me different stuff.
>There is no system programmer working on or in go, only webdevs; unlike rust.
>I never said anybody took rust seriously.
>Argumentam ad populam
that was what literally what the OP asked, you fucking retard.
go try Go and tell us how you like it.
>It has virtually no pros compared to other languages
anyone using docker today is already using Go
spawn returns an identifier which is how processes talk to each other, go x simply runs x in a new goroutine, and uses channels for communication.
they won't reply, because they don't care. they love mental masturbation, but know very well that their languages are absolute shit for anything productive in reality.
>90% of actual enterprise web dev is happening with C# and Java
of course, it's practically impossible to change that, marketing > reality
As someone who actually admins a fucking Cold Fusion server for a "mission critical" application handling healthcare information for millions of people..
Anyone who posts complaining about Go, Node or Rust has never truly seen this horror.
>he thinks the goal of enterprise software is minimalism
well, at least I can enjoy better performance, simpler syntax, shorter code and .
btw, how was erlang reborn? afaiu, barely anyone cared until elixir was shilled by some ruby guy... no?
You enjoy none of that, though.
Erlang was made by ericson in the 1980s for telephony applications. Then it took over the entire telephony industry and due to its strength, was picked up by some large web-based projects (like whatsapp).
>It's particularly popular in neural network research and development.
When will this meme end?
NO IT'S NOT
NOBODY DOING ANY NN-RELATED WORK HAS EVER EVEN HEARD OF IT
STOP PRETENDING THAT EVERY FOTM MEME IS USED IN NN
You're retarded. I didn't say Erlang was the only language used in neural network research, but it is a popular one. Seriously, read some journals before making a fool of yourself on an anonymous image board.
compare and contrast: memory usage, CPU usage and length of code ("gz", the gzipped length of the total code)
you could have googled it
so, basically, used as a niche language, and resurrected by academia. you guys are the definition of hipsters.
Yes, it is a "niche" language. Don't know what you mean by "resurrected", it was never dead. It's been consistently becoming more popular and spreading to other "niches" since its inception. And it's hardly academic, it's the definition of a industry standard for certain applications.
Uh, you realize erlang does better than go in those benchmarks, right? The tests are not in the same order on both pages, but if you compare the actual tests, erlang consistently is better.