Programming languages that compile to native binaries; also WASM

Luke Jackson
Luke Jackson

There is a resurgence in programming languages and compilers that target native binaries. Go is already popular. Rust enjoys a lot of hype. D and Haskell seem to be making a bit of a comeback. New compilers are being worked on for existing languages, like Kotlin Native and Scala Native, and entire new languages are being developed, like Zig, Swift, Pony, Nim, Crystal and V. Which are you betting on? Which do you find interesting?

Do you think WASM will overturn the trend? There is certainly a lot of people trying to make "write once, run everywhere" happen with WASM for some reason.

Attached: images.png (1.7 KB, 217x232)

Other urls found in this thread:

idioms.thefreedictionary.com/get thee behind me
neilmitchell.blogspot.com/2007/07/making-haskell-faster-than-c.html
vimeo.com/16541641
youtube.com/watch?v=0fpDlAEQio4
medium.com/@arschles/go-experience-report-generics-in-kubernetes-25da87430301
go.googlesource.com/proposal/ /master/design/go2draft-generics-overview.md
news.ycombinator.com/item?id=12376242
en.wikipedia.org/wiki/TkWWW

Jace Taylor
Jace Taylor

My 2019 language bracket predictions:
Go:
Overcomes limitations to take the championship ring. Basically takes up the space where people had been inappropriately using Python (networked microservices, servers and CLI tools for distribution). Becomes the official programming language of the Chinese. Explosion of libraries of proportions never before imagined.
Rust:
Makes it to the playoffs and is eliminated in the 2nd round, but good choice for next season. Complex projects requires expensive reinventing wheels or very heavy reliance on 0.X crates of widely varying quality and security. It turns out "if it compiles it werks!" is just a platitude. Not enough paid devs to evolve the ecosystem to parity with C++ for several (5+) years. Serious devs will get annoyed with its "Rust doesn't do that" pain points. Hipster-devs will use it for web servers because they believe Medium articles and don't know any better. Async will have poor stability, subtle bugs and thus badly damage Rust's reputation and burn out a couple core devs. Const generics will land and make std slightly less ridiculous looking. HKTs will never land. Steve Klabnik will jump from a Vegas hotel within 3 years.
D
Doesn't make the playoffs. Continues to be an objectively better C++ that is favored by adults, but never adopted due to lack of paid shills. Comfy, plucky underdog for life.
Haskell
Makes the playoffs, and is eliminated in the first round. Loses Nike endorsement deal. Team manager arrested for embezzlement. Hometown stadium is sold to pay debts. The outlook is grim as more devs realize that all of Haskell's "brilliant" innovations are only necessary to get around the limitations of the language. Functional programming is accepted as overrated, and college professors eventually stop forcing kids to learn this shit as they get feedback from tech companies that trying to force abstract mathematical concepts into CPU architecture isn't practical.
Kotlin Native
Eliminated by Go in the semifinals as more people realize the JVM by itself isn't that necessary if you have a good cross compiler
Scala Native
See Haskell
Zig
Doesn't make the playoffs. Found conspiring with Vegas bookies to rig hackernews comments to appear more popular than it actually is. Dead by 2021
Swift
Eliminated by Go in the finals. Fundamentally sound language with excellent performance with unfortunate Apple lock-in. As Apple collapses because of its failure to collude with the US State Department as effectively as Google, Swift's governance will be dumped into the wild and a fork with good support for Windows and Linux appear, ushering a golden age of development.
Pony
Eliminated in 1st round by Nim. Can't sell enough tickets to make it to next season.
Nim
Eliminated in 2nd round. Gains popularity, but syntactical idiosyncrasies are offputting and 1.0 will never happen. Gains a cult-following with indie-game devs and remains there.
Crystal
Eliminated in 1st round. Comfy language that fails to find its niche. Hipster-dev market is captured by Rust and Crystal never gets an endorsement deal to pay its players. Doesn't play next season.
V
Doesn't make the playoffs. Team manager arrested for embezzlement. Doesn't play next season.
WASM
Eliminated in the semifinals. Google wants WASM to seem "normal" so they can ship completely opaque binaries that implement nightmarish spyware and mine shitcoin on your computer. They use their puppet Mozilla to shill WASM as some kind of liberating tool that brings devs of all backgrounds to the web. By 2020 everyone realizes that WASM isn't actually faster than plain JS.

Brandon Garcia
Brandon Garcia

(W)ASM isn't much worse if any than obfuscated js.

Anthony Edwards
Anthony Edwards

Go wins
it doesn't have generics
it doesn't have exceptions
it doesn't even have discriminated fucking unions. This is the reason people keep talking about shitty scripting languages in its context. Go can't model data like a grownup programming language. This language is just obnoxious.
Functional programming is accepted as overrated
Haskell is a 600 lb fat woman. Functional programming is the skeleton inside the fat woman. Inshallah, Haskell will finally fail and thereby show as overrated its universe of random bullshit, utterly incompatible to other languages, and only serving to restore to Haskell the problems of non-functional programming.
Be strict, not lazy.
Do not build a tower of type bullshit 666 stories high when your intended direction of movement is horizontal, rather than vertical.
Zig dead by 2021
it's got a lot of promise on the tooling side, and I can see it as a replacement for small systems apps that need to be a light as possible while also easy for non-professional programmers to understand (think sysadmins). It's serious about being an alternative to C, by a guy who kinda likes C.
Wait for a tech writer to appear, then revise your opinion on it.
V
I deny that this language exists.
Don't link me to it.
I don't care.
V for vaporware.
Steve Klabnik dies
it would be more satisfying for him to convert to anarcho-capitalism.

Christian Phillips
Christian Phillips

Go
Haskell
Kotlin
Scala
Swift
Pony
Crystal
<mandatory gc
<native
When is this meme going to stop?

Attached: discarded.jpg (261.86 KB, 800x800)

Benjamin James
Benjamin James

GC is bad
get thee behind me, C++.
In Jesus's name, BEGONE RUSTFAG

Daniel Wilson
Daniel Wilson

C++
muh OOP
C is the only true language faggot. only subhumans use anything else.

Blake Barnes
Blake Barnes

idioms.thefreedictionary.com/get thee behind me

Asher Morris
Asher Morris

it's not an emulator, it's an interpreter
it's not interpreted, it's bytecode
it's not bytecode, it's a runtime
it's not a runtime, it's garbage collected
it's native, i swear!
I want off the euphemism treadmill

Ryder Rodriguez
Ryder Rodriguez

GC is spoopy voodoo that needs a complex runtime to support
malloc meanwhile is probably a single-instruction primitive even on ARM

Ethan Martin
Ethan Martin

Entertaining post, but
Scala Native
See Haskell
How are Scala's innovations there to get around the limitations of the language? Scala is not pure and lets you write completely imperative code if you choose to.

Attached: 235px-Th16Cirno.png (75.7 KB, 235x334)

Chase Richardson
Chase Richardson

WASM is slower than plain JS
I refuse to believe this

Nathan Lewis
Nathan Lewis

Believe it. I really wanted WASM to kill the abomination that is JS (yes, even at the expense of potential Google botnet), but it won't. God hates us and we're alone.

Brody Anderson
Brody Anderson

Isn't the whole point behind WASM secretly to provide the abstracted infrastructure necessary to one day eliminate JS and do just have sandboxed native deployment like Google originally wanted with NaCl?

Nathaniel Smith
Nathaniel Smith

Ada.

Jason Turner
Jason Turner

just u guys wait until i finish prototyping my language

Attached: 1563151286689.jpg (6.85 KB, 250x250)

Adrian Harris
Adrian Harris

Tell us about it.

Caleb Kelly
Caleb Kelly

automatic optimal concurrency.
automatic data structure choosing.
automatic integer type choosing.
automatic cache friendliness.
automatic memoization.
and more...

insteading of making trade off between performance and ease of use like other languages do, here you get both because the compiler making the decisions = the programmer doesnt have to make them, which makes things simpler.

Attached: 9e6.jpg (201.75 KB, 1539x743)

William Gutierrez
William Gutierrez

So you're like 90% complete then.

Kevin Powell
Kevin Powell

maybe on the theoretical side of things.
implementation wise i dont have usable compiler yet.

Charles Hernandez
Charles Hernandez

I really wanted WASM to kill the abomination that is JS (yes, even at the expense of potential Google botnet), but it won't.
God willing it won't. The last thing we need is opaqua code running in our webpages. Hopefully I'll still be able to use the web without upgrading to a poz-browser that supports wasm.

Henry Reed
Henry Reed

compiler making the decisions
That's gonna be a bitch to pull off correctly.
Have you heard of supercompilation?
neilmitchell.blogspot.com/2007/07/making-haskell-faster-than-c.html
vimeo.com/16541641

Basically haskell programs can be transformed in mathematically magic ways such that the result semantics is the same but the execution is much faster.

Blake Jones
Blake Jones

There are too many languages and disregarding a few chosen autistic obsessions by the developers they are barely different from each other, they're like episodic "Imagine C, but with $feature" wankery that turns into a fad and then fades from public consciousness, that's the simple and ugly truth why they all don't and won't gain traction.

Christopher Watson
Christopher Watson

has never learned any interesting languages
youtube.com/watch?v=0fpDlAEQio4

Elijah Richardson
Elijah Richardson

That's gonna be a bitch to pull off correctly.
it is. it's something that i been working on for over 2 years on the theoretical part (not full time), which was mostly driven by random "aha!" moments.

the result semantics is the same but the execution is much faster.
well that's basically any optimizing compiler.

Mason Watson
Mason Watson

C is the only language ever. No, I have never bothered learning about another languages.

Tyler Reed
Tyler Reed

Go has no generics
< Neither does C

It's a technical decision made to keep compile times low and discourage unnecessary complexity. It's inconvenient, but it's probably the correct decision from a business management perspective. There are plenty of languages that let you be a cowboy. Go is ascending because it will become favorites in China and India due to its simplicity. The age of $120,000/yr "software engineers" who fuck off all day and twiddle with a couple hundred LOC of PHP a month are coming to an end, and that's a good thing.

If we're really lucky, a governing body will pass laws and institute some kind of standardized testing or performance metrics to make software "engineers" a licensed profession, like doctors, attorneys or real engineers. There will be a necessary separation of code monkeys, Indians and Xah Lee from people who actually know what's going on. Lucrative government and industrial contracts will only be awarded to these professionals. Code monkey wages will collapse to barrista-levels and that will start to discourage charlatans from entering the industry. This will also bring the death of blockchain, or "high-latency, low-throughput, append-onpy databases" as they should be called.

Sage for tangent.

William Nelson
William Nelson

Do julia

Thomas Morgan
Thomas Morgan

Are you an idiot? It doesn't have bindings so for anything other than datamining and shitcoin mining it won't be much faster.
Javascript is already bad enough. People need to learn using CSS for layout, menus and HTML forms for forms.

Jose Richardson
Jose Richardson

*native bindings
ie it always has to call back to a javascript file

Jaxson Ward
Jaxson Ward

It's a technical decision made to keep compile times low
Imagine being this retarded. Only if you monomorphize generic constructs does it become expensive because now you've multiplicated the amount of code the optimizer has to optimize.
Optimizing is by far the most costly part of very compiler.
You do not have to monomorphize generic constructs though. Java doesn't for example.
Anyways what do you think go generate does? The reason why Go compiles fast isn't because it doesn't have Generics but because the optimizer is shit and barely optimizes anything.

If we're really lucky, a governing body will pass laws and institute some kind of standardized testing or performance metrics to make software "engineers" a licensed profession
Yeah you're actually this fucking retarded.

Sage because shit thread.

Jayden Jenkins
Jayden Jenkins

my man, i think it's way more expensive to pay for a developer to write debug and maintain every instantiation, than waiting few more milliseconds for a build to finish or scaling a build server.

Gavin Fisher
Gavin Fisher

it's OK that Go doesn't have this feature because C doesn't have it either
cope_over_9000.svg

Xavier Richardson
Xavier Richardson

At the end of the day, the readable code is transformed into binary.
Language quirks are there to simplify machine code writing and depending on what the project objectives are, you'd want to be closer to baremetal.
Unless you are those fags that goes like
Writing in [VAR] is super easy! Include this lib and write
myprogram(); // It does everything

Zachary Morris
Zachary Morris

he's never heard of sapir-whorf
actually, the past 50 years of language development have been pointless because everyone would've been just as productive writing in raw machine code, not even using an assembler

Ethan Cox
Ethan Cox

language has survived 50 years
millions of grizzled programmers have done all their best work in it
the world's infrastructure is written in it
<any language that emulates c is a baby language

programmers of 50 years ago never did anything
they just sat around waiting for better languages to come along so they could get to work
but muh sapir-whorf hypothesis!

Lucas Rodriguez
Lucas Rodriguez

Julia isn't in competition with these languages. All of them are trying to replace C, whereas Julia is trying to replace Matlab.

Michael Ward
Michael Ward

I want generics, but I don't want monomorphism
So you want the interfaces and reflection that Go already has? OK.
The compiler doesn't optimize nothin!
Go performance is consistently comparable to Java. I don't think you really know what you're talking about and are probably repeating some shit your professor tells you.

Which optimizations, specifically, are you talking about, cool guy?
licensure is retarded
Yeah, you should really rely on amateur surgeons next time you're dying. That business-critical software is being written or altered by any idiot, like you, with a paper-mill degree, should be criminal.
General bleating
1.5B Indians are going to implode your earning potential, and there's nothing you can do about it. Boohoo. Go blog about it on Medium, faggot.

Daniel Reed
Daniel Reed

I want generics, but I don't want monomorphism
Who are you quoting?
So you want the interfaces and reflection that Go already has?
No? I don't give a shit about Go. I'm just saying that Go's lack of generics isn't why it compiles so fast.
Go performance is consistently comparable to Java.
Show benchmarks that aren't microbenchmarks.
licensure is retarded
Who are you quoting?

Jayden Sullivan
Jayden Sullivan

It's inconvenient, but it's probably the correct decision from a business management perspective.
Meanwhile
medium.com/@arschles/go-experience-report-generics-in-kubernetes-25da87430301
go.googlesource.com/proposal/ /master/design/go2draft-generics-overview.md
The age of $120,000/yr "software engineers" who fuck off all day and twiddle with a couple hundred LOC of PHP a month
If Go developers write more lines of code per day, it's because their language forces them to. They aren't creating more value with those lines, because code to do the same thing is a liability.
If we're really lucky, a governing body will pass laws and institute some kind of standardized testing or performance metrics to make software "engineers" a licensed profession
If we're really lucky, the government will start shooting you in the face if you so much as touch a computer without license and replace money with food rations.

Sage for responding to bait.

Logan Brooks
Logan Brooks

be Indian
try to blackpill Americans with the low wages of my own countrymen
have no idea just how blackpilled Americans really are
yeah I wish my biggest concern was my income. That's the kind of worry that comes with a wife and kids and some nice property in a nice area.
My coping mechanism for the last decade has been "it doesn't matter how bad the Earth gets. Once we get to space--"
I have accepted that I'll never see space. NASA did nothing but Muslim outreach now and under Trump it's probably been converted to LGBT outreach.

Aaron Jackson
Aaron Jackson

microbenchmarks
Techempowerer

Childish hyperbole
Having licensure for doctors isn't treading on you; it keeps salt-lamp selling hippies from performing brain surgery. Your electricians license keeps some illiterate, toothless Guatemalan from wiring your house and burning it down.
What about software, though?
Live free or die, maaaaaan

Absolute. Brain. Damage. The industry is a train wreck full of snake oil salesmen and mentally ill trannies precisely because ANYBODY can start calling themselves a "developer" and performance metrics are nonexistent. Requiring some proof that you aren't an idiot before you call yourself an "engineer" or enter contracts for services would send these pansexual shitbirds back into harmless industries, like bagging groceries, where they fucking belong.

Or just let Pajeet and Doug/Saphire keep adding CVEs to the list.

Coping
The mad man did it!

Justin Richardson
Justin Richardson

microbenchmarks
aren't
stop trolling

Wyatt Edwards
Wyatt Edwards

valid attitude IMHO. Based.

Jack Jackson
Jack Jackson

Based.
Cnile impostor spotted
unbased

Colton Hughes
Colton Hughes

It is absurd to call developers engineers at all. Even what the best programmers do is nothing like engineering.

Brandon Adams
Brandon Adams

goalpost: moved
Kubernetes? What the fuck do you want?

Basically true, but C++ is a valid counter-argument.

Ian Bailey
Ian Bailey

goalpost: moved
What the fuck do you want?
lol
Show benchmarks that aren't microbenchmarks.

Owen Hughes
Owen Hughes

Wow, you are one pissy little bitchboy

Jordan King
Jordan King

The Go defense force is out in full force it seems.

Nolan Bell
Nolan Bell

wow, I might be offended if you'd said anything meaningful at all.

Connor Moore
Connor Moore

Shitting on Go is a meme, and a foolish one that needs to be squashed. It's a good language with clear design goals and great tooling. It greatly reduces development cost and complexity by removing nonessential language features. You can then get reasonable productivity out of less experienced developers. That's the trade, and it's not a secret. If that stifles your self-perceived brilliance, then go back to writing shit nobody cares about in Haskell.

You aren't going to write an OS, embedded software or some game using Unreal Engine with Go, but the overwhelming majority of problems aren't OSes, missile guidance or some EA games shit. If you're writing your bespoke CRUD application in Haskell or C++ or Rust, you're an idiot. If you're using Python and shipping your entire interpreter stack and dependencies to run on a remote server, then you're making problems for your future self.

Julian Peterson
Julian Peterson

malloc meanwhile is probably a single-instruction primitive even on ARM
malloc is definitely more than a single instruction.

Ryder Williams
Ryder Williams

thatsthepoint.xpm
no language without discriminated unions deserves your respect or your attention. C gets a pass. Oops--no passes left! That was the one pass. Gotta have discriminated unions now, sorry. No more passes for it.

Jose Morris
Jose Morris

hurr durr ur stoopid!
ur no resarchet ur fresh out of school and aren't capable of understanding a brilliant language
Gophers are even more retarded than Cniles.

Adam Ross
Adam Ross

We need more Indian programmers!

Leo Cook
Leo Cook

No real-world experience confirmed.
20-something confirmed.

Carson Price
Carson Price

Javascript will dominate them all. Javascript is the English of programming languages: a disgusting mutt of different ancestries mashed together in a drunken furor with inconsistent rules and exceptions to rules everywhere. Like English, Javascript is the common language for the fucking globe. Everybody uses it, it's in every website, and you can't just go "we don't like it anymore we'll make a new one!" because that's how you get Esperanto.

This is the ideal programming language. You may not like it, but this is what peak code looks like.

Attached: 48b85c8a215f81d78df7728b3192d46a976d7fbed5824078b45b2e3caa39106c.jpg (22.18 KB, 768x432)

Hudson Butler
Hudson Butler

R7RS-large

Luke Perry
Luke Perry

Capped. I hate Javascript but your post was funny.
Colour, color, gala, neighbourhood, neighborhood, de hood

Attached: javascript---the-english-of-programming-languages.png (57.06 KB, 790x206)

Jaxon Allen
Jaxon Allen

A very chuuni post. You'd rock the programming club, user.

Anthony Stewart
Anthony Stewart

The (((javascript))) language may be in many pages, but it's still a shit language.

Eli Morris
Eli Morris

People were saying the exact same thing about Perl 15 years ago and look what happened. Pic related, it's how white men used to obfuscate their code.

Attached: camelcode.png (59.59 KB, 559x646)

Dylan Watson
Dylan Watson

kek, does that code print itself?

Julian Murphy
Julian Murphy

it says 'japh' right in the center so it probably prints "just another Perl hacker"

Bentley Hill
Bentley Hill

The last thing we need is opaqua code running in our webpages
50K lines of combined, minified, obfuscated JS is already opaque.

Brayden Ortiz
Brayden Ortiz

50K lines of combined, minified, obfuscated JS is already opaque.
Who is using that? Google.
Who is developing Webassembly? Google.
The murderer already has a knife. Let's give him a gun!

Easton Cook
Easton Cook

Python browsers!
Hail the TKinter based web!

Bentley Robinson
Bentley Robinson

Tk did nothing wrong.

Let's see what the soys have said about Tk. Prepare to die.
news.ycombinator.com/item?id=12376242

electron: 32 matches
antiquated: 5 matches

Julian Campbell
Julian Campbell

electron
hey, hey, hey, remember when the big complaint with Tk was that it didn't look native?
native: 89 matches
and not a single match about how electron proves that this objection was never a real issue.

Colton Morgan
Colton Morgan

Tk did nothing wrong.
True enough. Its biggest problem is people trying to use it without reading the docs.
Prepare to die.
Why? I see about an equal number of pro-Tk and anti-Tk comments there. I also see the OP drawing conclusions from uninformed posts, which I guess confuses the situation.

Ian Brown
Ian Brown

I like Zig a lot, it basically delivers on its promise to be a better C
Rust is interesting but overhyped and the syntax is unimaginably hideous

Aaron Hill
Aaron Hill

More like get thee to a nunnery amiright?

Parker Bell
Parker Bell

The real question, user, is that if Lisp-homos like us can't even write a simple text editor, how could we ever hope to make our competing deliberately non-modern-web-compatible browser in Python?

Although, it is promising that users would actually probably be fine with a Tk-based browser and CSS would go into the trash where it belongs.

Mason Brooks
Mason Brooks

Tk browser is one of the oldest.
en.wikipedia.org/wiki/TkWWW

Chase Martin
Chase Martin

Fork Lyx. Problem solved.

Luke Carter
Luke Carter

If the average programmer was halfway-competent and if the consequences of fucking up malloc weren't so serious, languages with mandatory GC wouldn't be necessary. But that's not the world we live in. We live in a world where the average programmer spends 50% of their time smashing together snippets they've randomly copypasted from stackoverflow, and 50% of their time being autistic on /r/programming.

If preventing those fuckups from fucking up means mandatory GC becomes ubiquitous, that's a sacrifice I'm willing to make.

Owen Bennett
Owen Bennett

You don't get to decide what everyone else does. But you can stop using other people's code and write all yours with GC, if you really want to.

Leo Gomez
Leo Gomez

Using non-native runtimes for rapid prototyping, or for simple high-level scripting in non-performance-critical components, is fine. Saddling finalized user shipping builds of software with non-native runtimes top-to-bottom is not.

And calling GC "native" definitely isn't.

Attached: adult-on-training-wheels.jpg (27.24 KB, 436x345)

Bentley Gomez
Bentley Gomez

I don't know about you, but my daily driver isn't a PDP-11. I simply do not give a shit about the marginal performance advantages I'd gain from endless fucking-around with manual GC.

But hey, if you get an autistic hard-on from fucking around with malloc like a dawn-of-time savage, go nuts.

Attached: caveman-laptop.jpg (14.83 KB, 400x257)

Jeremiah Bennett
Jeremiah Bennett

malloc
he doesn't know about new and delete

Lucas Morgan
Lucas Morgan

50K lines of combined, minified, obfuscated JS is already opaque.
Who is using that? Google.
Pretty much everybody else, too. At least with WASM, web software will be more cohesive. There will be a clearer distinction between distribution and source.

Joshua Miller
Joshua Miller

kys shill

Jonathan Parker
Jonathan Parker

caring about performance is arcane
managing memory manually allows you to optimize for cache hits; those improvements are marginal and autistic
Imagine being this fucking stupid. Go back to whatever soy infused javascript project you were working on, finish it, and then kill yourself.

Attached: kys.webm (927.81 KB, 512x512)

Ayden Thomas
Ayden Thomas

You don't seem like a happy person. Have you tried yoga?

Oh, that reminds me, I've got to get back to work on my current project, a job quotation web app written in Go. But don't worry, I'll paste a list of memory-related bugs in my project below, since you seem to enjoy them:

Parker Lee
Parker Lee

This.
The reason shits like soyreddit couldn't make a usable search engine (more like a working one) for years is because of soydevs.

Disable AdBlock to view this page

Disable AdBlock to view this page

Confirm your age

This website may contain content of an adult nature. If you are under the age of 18, if such content offends you or if it is illegal to view such content in your community, please EXIT.

Enter Exit

About Privacy

We use cookies to personalize content and ads, to provide social media features and to analyze our traffic. We also share information about your use of our site with our advertising and analytics partners.

Accept Exit