Time to learn new programming language, got to decide between Rust and Go.
What's your opinion /g/?
yeah, but I have some sense that Go will be the most used programming language someday
>thanks Googl botnet
I do it already :^)
what's main difference between their philosophies?
Go is meant to be simple to understand above all else. Rust is a modern C++ replacement focusing on safety with a not-insignifcant amount of cognitive overhead due to its mutability and ownership semantics. It also has a lot of things inherited from functional ML-family languages while Go is mostly modernized C and strongly procedural and religiously minimal.
Go solves no problems and doesn't build on any existing knowledge. There is nothing special about go. All you faggots telling people to learn Go need to go. OP just learn erlang at least then you can get an easy as fuck job working for a telecom.
God you're such a leet hacker for manually allocating memory please let me suck your dick
Grow up, GCs are a godsend, the days of 512KB of memory two decades ago where you were forced to manually do memory are long gone.
Some GCs are even faster than manual memory control.
If you are set on picking and learning one right now, I would reduce the question to the following:
Do you want to learn something and start building production-ready software ASAP, even if you are likely to drop the language later?
Do you want to play with something more exciting, less stable, and more powerful? Are you just experimenting for now and not desperate to ship a product, but want something you will probably want to use more in the future?
Rust is just a badly made hotpot of Haskell, C++ and Erlang, it brings nothing that those languages already don't have.
Not to mention it's in a eternal alpha stage
Meanwhile Go is stable, performant and easy to use.
>it brings nothing that those languages already don't have.
That would be relevant if I could use all of those languages in the same source file. Oh, wait, I can. It's called Rust.
>it brings nothing that those languages already don't have.
But it won't allow the things that they do. You can shoot yourself in the foot easily with C++. Rust added a saftey over the trigger. You can still shoot yourself in the foot, but you'll have to take the saftey off first.
Also, it's structurally typed, so non of that 3000 layers of indirection bullshit you get with C++.
>because channel operations are functions in a standard module rather than being a language feature.
Something being in the standard library rather than integrated into the language syntax doesn't stop them from optimizing it. See: Option types.
>Having concurrency support isn't novel
It's not support, it's language constructs built around it. Rust's types and pointers, for instance, are built to make things like concurrency easy. You have to worry about a lot of things doing that in C++.
Obviously they do; you can read the release notes for the past couple versions. Though I hear they actually make a point of holding back on some things in the interest of keeping compile speeds fast.
How dumb it is to move the hand off the wheel to do something the car should be doing itself.
Gear shifting is unnecessarily complicated and a chore, auto transmissions in every car can't come soon enough.
-gcflags='-m' to see optimization annotations; most commonly it spews notes about inlining and escape analysis and common subexpression elimination, so yes.
Google gains nothing from non-contributing users, mind you. Also, you're 'jumping up Ericsson's ass'.
I was thinking of support in terms of libraries or runtime support; that can be added to any language. Although I guess now that you mention pointer ownership Rust has more meaningful built-in concurrency support than go does.
>It's a domain-specific language for creating buffer overflows.
My sides just segfaulted.
>I grew up in the late 90's and never learned to drive a stick!
Nigger you'll never know the amount of gas and breaking you can save yourself with a stick.
tfw I rarely touch the break...
It's larger if you link the stdlib statically.
It statically links to the runtime unless you tell it not to. gcc and the like dynamically links. Read the rustc arguments in his post.
tl;dr he's comparing apples to apples, instead of apples to oranges.
Automatics are STILL less fuel efficient.
Instead of a bunch of traction sensors to determine the proper gear ratio you can do it to feel.
You can choose your own torque range with manuals.
It's not stupid to have one, it's just not useful for those who do normal driving.
These new gearless automatics are cool though.
Engine breaking is coming back with regenerative breaking on hybrids and electrics.
That doesn't seem that hard to do, from the perspective of a sepplesfag: write a coroutine lib, use generics to implement typing, then add a threaded scheduler and then you're done
I'd rather a manual in my 4WD, it's not a shittier experience, it's different and has use cases and advantages.
At the 13k to 20k mark having to spend another 2k does hurt.
So? They work on entirely different principles, CVT transmissions don't even have gears though so that's cool.
>Erlang is better than go and already in use in huge industries I really don't understand why people are jumping up Google's ass to learn Go.
but more companies are using Go, including Apple
It's not the fact that you can do it, it's the fact that people actually do. Java's bullshit enterprise culture seeps into your code by way of other people's libraries and established conventions.
I feel confident that this is one bet I will win.
If you look at any enterprise environments you will find horrific code in any language you want. Enterprise is where your dreams go to die.
Well it was made as a response to having to use C++ and Java in that exact setting so I hope the trauma lasts. There is already a large community of faggots trying to bend the way they write Go into some Java clone which is scary.
Rust is already the next target of SJWs and hipsters from Ruby on Rails
If you're learning a new language just for the sake of learning a new language, why not go with something interesting? I've always wanted to learn Squeak Smalltalk; just haven't got around to it.
Better yet, read this book if you haven't. It's one of the better CS books I've read. Starts with Ruby (yawn) but then gives you an intro to Io, Prolog, Scala, Erlang, Clojure and finally Haskell, explaining the rationale for each. Great book if you like languages.
I'll have to check that out. Looks cool.
I was drawn to Squeak because of the whole visual programming aspect. That hasn't been done very often. I'd rather learn a language that tries to do something unique and interesting than... yet another scripting language in the vein of Ruby/Python.
But yeah, check out that book people. I read that before taking comparative languages at my university and it made the class easier. Also it's just a fun read (all of the Pragmatic books are.) And the practice problems are actually interesting and challenging, unlike your usual programming text. You can really "get into" them.
The author assumes you already have some programming experience.
Apparently they didn't like type generals either. There is a lot missing from Go to make it as powerful as other general purpose languages. And it will not add them because it was never designed to be a general purpose language.
>Ctrl-f " D "
>/ d / at top
>/ d / at bottom
having a large runtime is not the same thing as a language that uses too much memory inefficiently. Memory dynamic management doesnt happen by magic, something running on your computer has to handle this, 2mb is not a lot to ask.
tl;dr exception safe "manual" resource management. Basically if done properly there is no need to manually delete or clean up resources.
use the semi auto setting which most cars have these days.
a computer + fuel injection + controlled rpms provides much better gas millage than what *you* think is best when driving a manual.
>Nobody mentioned D
>>Go for faggots
>>rust a shit
niether D, Go or Rust is going to gain mainstream traction. Swift will become a mainstream open source language because it was developed by the guys who make LLVM
wtf never heard of switch
>Swift is an innovative new programming language for Cocoa and Cocoa Touch
how is this going to win over cross platform languages except for objective c users?
>huur, it handles the web so its not part of the system
oh these basement dwellers are too funny.
just so you know, web browsers are some of the most resource intensive types of software you can write that have to handle many concurrent layers of system networking and graphic rendering.
yes i know, i was just lazy and copied the first line.
here's some from the wiki page
>developed by Apple for iOS and OS X development
> Swift is designed to replace Objective-C
>uses the Objective-C runtime
i mean it's possible, but i doubt it
>Javafag, you are an island
>nobody agrees with your shit, not even C#
Java, the #1 most used language in the world, C# is a totally ripoff of everything in Java
>comments of a C-neckbeard living in basement
>guys stop learning new things, new things are for hipsters, you dont want to be a hipster do you hey guys stop
Because some of the devs are basically using Rust as a soapbox for SJW evangelism. Feel free to check the sticky on the rust reddit or read Graydon Hoare's, Steve Klabnik's or Tim Chevalier's blogs if you don't believe me.
Tim's is especially funny as he's one of the ones who basically spends his entire downtime inventing new and exciting ways to feel oppressed. It's a shame they kicked him off the team for being useless.
>not having an official language spec
lua shits on python for similar reasons that go shits on rust
>tfw this conversation about rust and go devolved to car transmission
Never change, /g/. There is a correct opinion for everything.
You are missing the point. If I need something in my program I want to go import something and keep writing the important part of my program, not some shit that has already been written about 5 million times.
For example in C you don't have any container in the standard library, and reimplementing linked lists and vectors in every project is not the most practical thing to do (or effeicient or safe at all).
I'm not missing your point. I posted this as well: https://code.google.com/p/go-wiki/wiki/Projects
No, it's not on the same level as Java or sepples, but more likely than not you'll find anything you need. Go has plenty of libraries.
>For example in C you don't have any container in the standard library, and reimplementing linked lists and vectors in every project is not the most practical thing to do (or effeicient or safe at all).
using black box libraries for linked lists, seriously calling a library to do a linked list, people wonder why programs have turned into colossal bloat, over use of libraries to implement a linked list
Go is a great innovative language, the only problem is that it's about 40 years too late.
Rust is interesting but unstable. It's usable though.
The only reason anyone uses Go is because google made it.
I know its possible, its also stupid. Programming is algorithms that work on data structures. If you use libraries do handle all your algorithms and data structures for you, you are a literal code monkey, you are the cause of endless bloat and glacial algorithmic performance. You dont understand what you are doing, you are like a child who should be programming with Scratch and stacking graphical code blocks on the screen
I know its possible, its also stupid. Programming is algorithms that work on data structures. If you don't use libraries do handle all your algorithms and data structures for you, you are a literal code monkey, you are the cause of endless bugs and instability. You dont understand what you are doing, you are like a child who should be programming with Scratch and stacking graphical code blocks on the screen
Java/C# have both copied C++ syntax and succeeded in making a safer programming platform than C++ to program on. But people want to replace Java and C# with a faster compiled language because using a VM language for application/systems programming does not work. The contenders to replace Java/C# are Go, Rust, D and Ada
Go is a joke with out OO
Rust is not a stable language
D is viable but not supported well enough
Ada is too difficult for mainstream use
They said they plan on adding more later. The languages is going to flex a lot with DST and the like hitting in the next few months. After it settles I see them adding more sugar.
Lifetime inference will help a lot.
>They also need unboxed closures
DST will allow just that. It's going to be sweet.
>I'm too stupid to solve NEW problems
>I prefer to REsolve solved problems, so I can tell my friends how smart I am
>I never heard about the separation between algorithms and data structures through iterators
>C++ <le<template<face>>> is ugly.
At least is readable.
C is just fucking insane: http://blog.golang.org/gos-declaration-syntax
(and this post is not to argue who is better, it's just an informative post)
D did just that without <<<<<<>>>>>>>>> everywhere, you can even call a single template function without the parenthesis e.g,To!int(x)
shame D got ruined by absolute refusal to let go of the mandatory GC + horrible GC implementation.
>shitting on a language that isn't anywhere near finished and is well aware that there's dozens of problems with the syntax
most of these issues are being addressed.
Although it does irk me that as time goes on, rust moves further and further away from ML to pander to java idiots.
If Stroustrup made Algol68 with Classes like he originally wanted to, people wouldn't want to create languages to replace it because it would be a good language.
Algol68 mandated garbage collection, bounds checking, and full type safety.
It would have taken a lot less to be turned into a modern OO/generic/functional language than K&R C needed to be turned into C++.
No, you're wrong, I am a new car salesman, I have the tables right next to me.
The semi auto can get you some of the control but it can't get you the same torque or fuel efficiency.
Some of the lighter cars MIGHT be the same but never better.
We still haven't cracked it.
because D dropped the ball by thinking GCs would be good enough for real-time programming by 2010.
Surprise, GCs are still crap. Especially D's, it's basically 1998-JVM tier. You can't replace C++ with a language that forces a GC down your throat.
>b-b-but you can disable the GC! @nogc!
Enjoy not being able to use _any_ of the standard library. There's roughly 30 functions that are tagged with nogc out of about 500. All those functions have to be redesigned for manual memory management.You can't even create static arrays in @nogc functions. Then you're right back to C after disabling the GC, so you might as well use C because D has no real modern ARC implementation ala shared/unique_ptr, it has an _extremely_ poor shared_ptr implementation.
Here's to hoping Rust doesn't drop the ball so I won't be using C++25 someday.