Programming languages that compile to native binaries; also WASM

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 (217x232, 1.7K)

Other urls found in this thread: thee behind me /master/design/

My 2019 language bracket predictions:
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.
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.
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.
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.
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
See Haskell
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
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.
Eliminated in 1st round by Nim. Can't sell enough tickets to make it to next season.
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.
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.
Doesn't make the playoffs. Team manager arrested for embezzlement. Doesn't play next season.
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.

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

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.
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.
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.
I deny that this language exists.
Don't link me to it.
I don't care.
V for vaporware.
it would be more satisfying for him to convert to anarcho-capitalism.

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

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

C is the only true language faggot. only subhumans use anything else. thee behind me

I want off the euphemism treadmill


Entertaining post, but
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 (235x334, 75.7K)

I refuse to believe this

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.

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?


just u guys wait until i finish prototyping my language

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

Tell us about it.

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 (1539x743, 201.75K)

So you're like 90% complete then.

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

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.

That's gonna be a bitch to pull off correctly.
Have you heard of supercompilation?

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

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.

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.

well that's basically any optimizing compiler.

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

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

Do julia

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.

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

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.

Yeah you're actually this fucking retarded.

Sage because shit thread.

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.


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



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

So you want the interfaces and reflection that Go already has? OK.
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?
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.
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.

Who are you quoting?
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.
Show benchmarks that aren't microbenchmarks.
Who are you quoting?

Meanwhile /master/design/
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, 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.

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.


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?

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.

The mad man did it!

stop trolling

valid attitude IMHO. Based.

Cnile impostor spotted

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

Kubernetes? What the fuck do you want?

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


Wow, you are one pissy little bitchboy

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

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

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.

malloc is definitely more than a single instruction.


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.

Gophers are even more retarded than Cniles.


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

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 (768x432, 22.18K)


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

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

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

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

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 (559x646, 59.59K)

kek, does that code print itself?

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

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!

Python browsers!
Hail the TKinter based web!

Tk did nothing wrong.

Let's see what the soys have said about Tk. Prepare to die.

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

True enough. Its biggest problem is people trying to use it without reading the docs.
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.

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

More like get thee to a nunnery amiright?

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.

Tk browser is one of the oldest.

Fork Lyx. Problem solved.

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.

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.

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 (436x345, 27.24K)

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 (400x257, 14.83K)


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.

kys shill

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 (512x512, 927.81K)

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:

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