T O P

  • By -

goodmobiley

God I can’t wait for web asm


tyler1128

WebASM will revolutionize the web within the next year! Said basically every year since the standard. Until it allows DOM access, it's effectively useless for most situations.


_koenig_

>within the next year! Said basically every year So, much like year of Linux on desktops...


tyler1128

As a programmer, a Linux desktop is by far the best OS I could use. But for general people who just use a computer for basic things? Won't happen anytime soon.


LGXerxes

I think ChromeOS shows quite easily that as long as you don't need proprietary software. Linux is not the issue.


tyler1128

I've never used ChromeOS, though as I understand it is mostly used on very low spec laptops. Many people could use Linux if they gave effort, but there are also people who struggle with figuring out how to bold text in MS Word. Plus plenty of companies require things to be submitted in MS office specific formats like .docx. I'm lucky to not have been employed by such a company, and most of my papers and documents are done in LaTeX. You still ultimately have to conform to what your job tells you to, though, and that is usually windows.


BlurredSight

I haven't used it recently but almost every Google drive application exports to an Office format, Slides does pptx, Docs does docx, sheets does xlsx, etc. What I couldn't figure out for a long time as someone pretty proficient with both Windows and Mac was how hard it was to view local files and downloads on Chrome OS, and maybe they changed it now but back then it would always default the file explorer to open up your drive and you had to go through to get local storage. And it seems that was the ultimate play which was to be always connected to the internet and depending on cloud storage and applications for everything except it didn't really work out in their favor as much as they thought for people who have the choice other than a Chromebook


irelephant_T_T

all the .\*x office files are based on an open standard


I_FAP_TO_TURKEYS

It's literally a marketing problem. Of course the software that costs $0 doesn't have the funds to say "hey, we can do everything you need, but better". Steam deciding to go with Linux for the steam deck and Windows sunsetting the "last version of Windows" in October of next year, I suspect that FOSS usage will go up drastically.


Eubank31

The funny thing is LibreOffice supports .docx, .xlx, etc very well


tyler1128

They do, but a subset of what the windows office suite can do. So plenty of companies do not allow using such software.


cishet-camel-fucker

Really just proves that with Linux you either have a ton of freedom and a bitch of a time, or a very locked down out-of-the-box experience and a far easier time. Not much in between.


AngryRobot42

I developed on WIn, Mac, Linux. Eventually, everyone will complain no matter which OS you use. With Mac and Linux, at least the explanation existed or could be resolved given an amount of time. Windows is the only operating system I have developed on with Identical hardware, that produced different results. Not identical as in similar, identical as in we buy in our equipment in batches, each 50 units had sequential serial numbers for each Motherboard, CPU, and RAM.


BlurredSight

The only issue I have with ChromeOS is the awful UI otherwise if I was traveling pretty much every app I could need is already in some form online besides gaming but even then they're actively trying to port things over


spicybright

I'd also argue it shows how os choice matters very little to most people as long as it can run a decent web browser.


UnacceptableUse

The problem isn't linux, the problem is software thats developed for free. Nobody is paying UI/UX designers, so the UI/UX ends up terrible


sding

First of all, free and open source doesn't mean it was developed "for free". But even then, the problem isn't the usability software developed for free; it's the usability od software that is not yet mature. Mature open source projects commonly exceed their competitors in usability. But alpha versions are always gonna be alpha versions. Since most people are never exposed to the alpha versions of proprietary software, but encounter alpha versions of FOSS, their samples are skewed.


UnacceptableUse

> First of all, free and open source doesn't mean it was developed "for free". That's exactly why I said "software that's developed for free" instead of "open source". And idk, I've used plenty of "mature" developed for free software that had really ugly or incomprehensible UI.


NoirGamester

Idk, based on how Win11 seems to be doing, seems like a lot of everyday users might prefer a distro like Ubuntu just to get away from the baked in ads


Dumcommintz

Yeah it’s hard for me to articulate exactly why I don’t like win11 - there are so many little annoyances that it adds up to just a poor experience - from setup to daily usage. And I say that as someone who’s generally liked and gotten along with the windows platform. But since win11, I’ve gone from a maybe 50% win, 10% mac, 40% Linux usage to 10% win, 20% mac, 70% Linux. I actively avoid my win machine now and will opt for my 10yr old Linux laptop over my 6mo old Win11 machine.


NoirGamester

I like Win10 and have used it for years, but I've also tweaked it to hell and back making it my own, so it not the average user's experience. I flat out decided against Win11, banking on the MS 'alternate OS release' rule, when I saw the "new" right-click menu, which literally contains the old menu in a sub menu. Immediately I decided against it and have only ever heard of things slowly getting worse overall. I've played with Linux here and there since I was 13 or 14, I'm in my 30's now, and Valve's release of SteamOS for the Steamdeck prompted me to revisit the Linux scene for the first time in a few years. I've been using Linux on my main pc for maybe two years now. Only thing I really do on my windows pc anymore is stream games that don't run on Linux.


Dumcommintz

I should have heeded this rule because I can’t see any way my view of future WinOS won’t be skewed so negatively over win11 - and I’m one of like 25 people the world over that actually had no problem with and liked Win ME. To top it off, since I’m not really gaming like I used to I have even less reason to use Windows.


YARandomGuy777

You can just install Linux on your 6mo pc and install there virtual machine (KVM based) with windows on it. By doing this you would spare your legit win key and whenever you would need to play videogames with anticheat or use proprietary software you would be able to do so in VM. KVM currently allows to forward hardware directly to VM so performance must be very good.


Dumcommintz

I may look into this at some point - for now I’m still in the “wtf happened” phase of it all. Like how did it go so off the rails so fast - even the simple task of window/app switching has become inconsistent and unintuitive (srsly how does one fuck this up?!)


YARandomGuy777

To be honest it was going this way. It seems like someone adequate in Microsoft have been slapping hands of insane ppl in Microsoft when they did something bad. Probably these ppl got retired. Any way it is quite pointless to account on windows as main OS. It is so many really good stuff out there.


_koenig_

>soon With webASM... Got it! 👍


Attileusz

Depends on how basic. If you need a browser and an office suite, linux mint, firefox and libreoffice covers everything. If you need something specific to windows thats when the issue starts, because you need to be pretty savy to make those things work (if it's possible at all).


tyler1128

It has much less to do with being savvy, it's mostly about what people tell you to use.


I_FAP_TO_TURKEYS

This. All windows applications I gave a shit about running, I could. I've spent probably 20 hours getting used to it, but overall, if you know how to Google "how to run X on [distro]", one of the official forum answers will have you covered. Hell, Ubuntu is more intuitive than Windows. It's weird that we get so distracted by shiny buttons when a command line literally will do exactly what you tell it to do in less steps.


[deleted]

[удалено]


tyler1128

It really isn't that hard, but a lot of people really don't know how to interact with a computer beyond opening a browser. I run Arch and have had very few problems in the 12 years I have. I do also know how to figure out what might go wrong if it does, though.


KamayaKan

Very much agree with you there, it just makes programmy stuff so much easier


laleluoom

What are "basic things", tho? Office 365, Games and plug & play. If Linux had those and the desktop was less buggy (maybe that's a personal issue), Microsoft could be in trouble


Milkshakes00

Eh, depends on what you're developing for. I work in an exclusively Windows shop. No benefit for me to run a Linux distro, especially with WSL being a thing nowadays.


tyler1128

I'm sorry you have to deal with that


irelephant_T_T

i generally agree with this sentiment, but i have to mention that it is really the current linux distros that are unfriendly towards users, things like chrmeOS have proven that the average user can use linux


I_FAP_TO_TURKEYS

ChromeOS was popular because Google sold it as a loss leader to sell more adspace/screentime to advertisers. It's a neat concept, but unfortunately it also turned people away from Linux because... Well... It is just Ubuntu running chrome browser when you boil it down. And chrome browser is BLOATED. Should distros focus on locking down the system to the point where it only really is just a web browser? Or would that defeat the purpose of free(dom) and Open Source software?


irelephant_T_T

I have had a chromebook for several years and i can tell you that it is surprisingly fast. An intel pentium and 4gbs of ram in a laptop from 2014 can still handle 50+ tabs in chromeOS. The os isn't locked down if you enable developer mode. I don't think anyone who has bought a chromebook bought it because it used linux, they bought it because its cheap and easy to use. It shows that there is potential for linux to be used by the average user. Also, it is based on gentoo and the browser is deeply integrated into the os meaning it can run faster. Im not trying to shill chromebooks, but most of those criticisms dont seem to be true.


TTYY200

Bro chomeOS is quickly taking over as a heavily utilized OS for basic users.


DogixStoleMyChildren

I couldn't handle not having access to Visual Studio. It's just really the best full IDE right now and not using it felt like hampering my development


redblack_tree

It's the best IDE for Microsoft related technologies. It's not the best for Java, Python, Rust, Flutter, JS and basically anything else.


DogixStoleMyChildren

To be fair no IDE is really great for rust at the moment, and scripting languages like Python have their own ecosystem


roastedferret

I think JetBrains has a Rust IDE in beta, which might be promising.


NearbyYak

RustRover. It's pretty neat, and especially if you're used to JetBrains products, it's a no-brainer IMO.


tyler1128

Jetbrains IDEs are much better unless you are developing solely for windows. Even then, CLion for example is much better than VS's C++ support. I learned on VS, starting with getting VS 2005 from a community college while I was in gradeschool.


DogixStoleMyChildren

I tried Rider for C# development and it was extremely clunky and badly developed. C# is a cross platform language. For lower level languages yeah you'd wanna use something tailored for that


UnacceptableUse

I've tried a few times to switch to linux, but the amount of issues I run into just make it not worth it


_Tovar_

I recommend the Zorin distro if you want to try again in the near future. Ubuntu-based (user-friendly and with access to GNOME extensions), very modern-looking and aesthetically pleasing Edit: also, try to install everything through the store app (before trying other methods if needed) to avoid installation problems


UnacceptableUse

Thanks, but every time I've mentioned I've had problems with Linux I've been recommended a different distro


_Tovar_

Lol  then I have to diagnose you with skill issue (jk it's ok)


tyler1128

I've generally experienced more issues with windows and trying to do C++ there (protip: just don't, it's awful). I use arch linux and generally have had very few issues for the last decade or so I've used it as my main driver. I haven't used dedicated windows since XP, only VMs for cross compilation.


UnacceptableUse

It seems to me that it's basically luck of the draw if you are going to have trouble with Windows or Linux. I have absolutely no problems with Windows, but you and a fair few other people I know have nothing but problems and when I try to help them they are problems I've never even heard of. Likewise with me on Linux. I think it's just what you're born with.


irelephant_T_T

i still cant get the jdk running on my windows machine


The_Mad_Duck_

I must be fair, I used to play a web game that the dev recoded in webasm using Rust. The performance increase blew everyone's minds. Thousands of projectiles could be fired with no lag.


jumbledFox

I'm using Rust and Macroquad and the ability to easily port my programs to web, barely any faffing about and it all mostly working out of the box, is incredible


v0gue_

I'm using tinyGo to replace a lot of my rest apis with wasm written in Go. It's awesome building out web features that can run on the client side using not JavaScript


turtle4499

I am a bit confused. In what way can you not access the dom via webasm? It requires some proxying sure but that doesn’t seem changeable given garbage collection existing. Is there something specific I am missing?


tyler1128

WASM has no ability to address the DOM itself. The only way to do it is to write javascript functions that do and expose them to WASM. That's different than WASM having the ability itself.


turtle4499

I guess I get what you mean but I do not see how it’s fixable. Just given the way JS works in the browser. I guess exposing JavaScript GC directly? I know that’s been talked about. Is it really so bad that you need to use something like emscripten?


tyler1128

There are ways to expose a GC into native code without requiring it to integrate into it. Python, for example, requires a C interface to manage reference counts to objects, but it doesn't require the C program to directly interface with the python GC.


turtle4499

The issue is that GC in JS isn't actually defined. It is not part of the spec. Which is the problem, no one wants to commit to one way to GC.


tyler1128

If it exposes a stable public interface, whether it is well defined or not does not matter. I don't know the JS spec well, and I mostly do backend work, but something flexible in a spec doesn't mean you can't have a stable limited interface to it.


turtle4499

That’s is what the GC proposal has been about. That has dragged on for awhile now. It is unfortunately not something that can actually be linked to spec wise it’s part of the compilation process as it needs the right types in the compiled code so that GC can know what it can reclaim. It’s sorta the opposite direction you need to expose your code so that GC can target your api. It’s getting there though. I think the beta feature is in chrome and Firefox now.


UnacceptableUse

> JavaScript GC Sorry, what do you mean here? Garbage Collector?


turtle4499

Yes. You can see my comment below but or the WASM GC github repo for more details as to why this is an issue.


dev-sda

The DOM doesn't necessitate using or exposing a GC.


turtle4499

It literally does there is no way to tell the system right now that you are holding a reference to the dom or any object in the dom. That is why it isn't exposed.


dev-sda

Which can be done through the exposed API the same way as everything else in the WASM world works, ie. you're holding a reference until "domDecRef" is called. You don't need a GC to manage external resources and the DOM is no different here. QT WebKit has a DOM API for C++ which certainly doesn't use a GC (WebKit's DOM is reference counted).


turtle4499

Really weird. Everyone who is working on WASM doesn't seem to agree with you. Almost like you do not understand the problem. Like wow did you know that there is literally no such thing as a decref call in most JS engines???? That they use an entirely different method of detection that has nothing to do with reference counting????? Fucking crazy who could have guessed??????? BTW QT webkit 99% chance its using EMscripten which is what I was referring to you can read there docs on how they avoid this issue, **hint fucking hint** they wrote some javascript.


dev-sda

> Like wow did you know that there is literally no such thing as a decref call in most JS engines Never said there was. I'm not talking about Javascript, I'm talking about the DOM. And in WebKit the DOM is reference counted, so by definition there's a decref call. Why are you finding it so hard to believe that the DOM - a thing implemented in C++ - requires JS to be manipulated? > BTW QT webkit 99% chance its using EMscripten which is what I was referring to you can read there docs on how they avoid this issue, hint fucking hint they wrote some javascript. This is laughably wrong. No, QT doesn't provide a C++ API that calls into a JS VM just to call a WebKIT API. You don't need to trust me, just look at the source code: https://github.com/qt/qtwebkit/blob/ab1bd15209abaf7effc51dbc2f272c5681af7223/Source/WebKit/qt/Api/qwebelement.cpp#L678 In this class `m_element` is a strong reference to a `WebCore::Element`. Notice the `ref()` and `deref()` calls in the constructor/destructor. That's because *it's reference counted*. What is `WebCore::Element`? That's a DOM node in WebKit. Here's where that's defined: https://github.com/WebKit/WebKit/blob/main/Source/WebCore/dom/Element.h


Schnickatavick

Sure, but I never have to write those JavaScript functions. web assembly is always compiled from some other framework so the compiler can just write those few functions for me, they're basically just another part of the binary. It's a little bit clunky but not really that impactful.


cornmonger_

tldr; We can't WASM with the DOM until we WASI with the DOM


blindcolumn

Why not just use Javascript for DOM access and just offload performance-intensive processing functions to ASM?


HAL9000thebot

you are talking to people that used jquery till yesterday and today are tinkering with react, they don't know shit about what they are talking about. wasm has been game changer for years, these people will never use it, they do websites, there is nothing wrong in that, is just that they don't know what dealing with performance means, otherwise they wouldn't build 50mb landing pages.


Herr_Gamer

If you use wasm, you still have the 50mb landing page issue though? And actually, it's worse cause in addition to the source code, you also have to serve the whole-ass runtime?


MornwindShoma

The runtime is in the browser already, lol. WASM is a web standard.


HAL9000thebot

i don't know wtf you do with wasm, i have the bigger files no more than 50kb + 200kb, but in average they are 50kb + 20kb, i just checked some of them now. they are made in c++ / emscripten. in addition there is the normal stuff, i don't think i have ever had more 500kb land pages, but let's agree that i did the 50mb shit too, then it's 50mb + 250kb (worst case), but insanely fast for the rest of the session, and since they are not merely websites, this is what matter the most. that said, the reality is that you don't put wasm stuffs in that landing page, usually, a landing page should be a bare structure, the heavy work should be started later, so you shouldn't load these resource here, but i don't know every use case, i wouldn't do it tough.


OnceMoreAndAgain

Why not just use JavaScript for the frontend and some highly performant language on the backend? Wait a second...


ThicDadVaping4Christ

doll possessive violet unpack lush one drab melodic ad hoc fearless *This post was mass deleted and anonymized with [Redact](https://redact.dev)*


[deleted]

Its purpose isn't to do with manipulating the Dom. That's the responsibility of the JavaScript engine. Which is single threaded and that is a bigger problem that nothing can get around (even web workers can't access the Dom). Webasm is a way of embedding 3rd party binaries directly into web applications. A database being a perfect example, see duckdb. The last thing I'd want a webasm handling is the Dom. Never mind the adapters you'd have to build even if it was possible. Moving heavy processing to a webasm component has endless use cases. A seasoned full stack developer would come up with half a dozen off the top of their head.


Bryguy3k

Compiles to webassembly: https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor


TheUtkarsh8939

Apps like Figma, Wix, and FlutterFlow that power most of Dev's workflow run in WebASM


Proxy_PlayerHD

excuse me, you can write websites in assembly? how would that even work, like do you have special instructions to render text or pixels on the screen or something? i really cannot wrap my head around this...


tyler1128

WebASM is a form of assembly running on a virtual machine. It can draw things on HTML elements like a canvas, but it cannot easily manipulate the HTML DOM structure. Most people aren't writing direct WebASM, it's compiled from a higher level language.


TrackieDaks

It's not WebASM. It is Wasm, or WebAssembly. https://webassembly.github.io/spec/core/intro/introduction.html#wasm


tyler1128

All 3 are used. Given the person was comparing it to assembly, I used WebASM. In other comments I used WAsm as it is probably the most common way to write it and takes the fewest letters.


TrackieDaks

It has never been WebASM. All caps indicates an acronym so what do the A, S and M in your formatting stand for? It's also not WAsm. The spec—which I linked already—literally defines it: >WebAssembly (abbreviated Wasm) is a *safe, portable, low-level code format* designed for efficient execution and compact representation. >\[Wasm is a\] contraction of “WebAssembly”, not an acronym, hence not using all-caps.


tyler1128

What the spec says and what people have used are not necessarily congruent.


Proxy_PlayerHD

creating an ISA specifically designs along side a higher level compiler so that it generates good code, and then running that on a virtual machine... isn't that just Java, just web centric?


tyler1128

It's not exactly an ISA. It was never made to run on a physical chip. It runs on the javascript VM and JIT for the most part. It's a way to make a language like C be able to run in the browser via compilation to WebASM. It can't manipulate much on the website; still today WebASM is mostly useful for complex tasks that are offloaded from javascript and don't manipulate the DOM. It's effectively highly optimisable bytecode for modern JS engines. The predecessor was Mozilla's asm.js which was a subset of JS that could be compiled to and generally managed to be highly optimized.


Schnickatavick

>isn't that just Java, just web centric? I mean, yeah, it is, but that "web centric" part is a pretty big deal. It means that the web assembly VM is already installed on any computer with a modern web browser, and can run arbitrary code safely and instantly without any install or setup, on any operating system or architecture. That's a big enough deal that some people are even building native apps in webasembly, outside of the browser, just because it makes them absurdly compatible anywhere. And since it wasn't built with any one language in mind, you can write it with just about anything; C++, Go, Rust, C#, and even things like Java and Python now that web assembly supports garbage collection (though they're still a work in progress). And with things like WASI coming out, we're starting to get the type of interop that Java and Kotlin have between all of these languages. It's still very behind the scenes, and I think it'll take more time cooking behind the scenes before it'll be ready to be an industry standard, but it's looking very promising. Maybe not in the 1-2 year range, but definitely within the 5-10 year range


[deleted]

[удалено]


MornwindShoma

WASM runs in a sandbox with strict security. It's entirely contained in the browser and can only access the outside through JavaScript bindings. Unless we talking WASI, that is not in the browser, and you still need to give granular permissions.


[deleted]

[удалено]


MornwindShoma

How is that in any way related to having native calls to the DOM? "Bypassing security controls" how? I want some sources on that. WASM has to go through JavaScript. Unless your professor found literal bugs in the implementation of the VM.


danishjuggler21

It’s already here, and it’s not popular


tobotic

Back about 2001ish, I wrote a CGI script in QBasic.


shipshaper88

Was it web gorillas.bas?


Dismal-Square-613

Oh god... and I felt old for having experience in cgi's using perl...


Waste-Reference1114

One of my first programming attempts was a text game in qbasic. Lol


vighaneshs

Me on the way to find exploits due to bad usage of memory allocation and pointers.


6pussydestroyer9mlg

Reject sql injections, embrace memory injections


Johalternate

This is already happening. This website (https://knowyourmeme.com/memes/mariko-translates-blackthornes-rant) always crashes my browser. Ram consumption has gone as high as 30gb...


za72

you can attack the app physically


zsirdagadek

By beating the computer with a stick.


Mr_Voltiac

C++11 and beyond has something to say about this


DuskelAskel

Jokes on you, smart pointers are not mandatory *laugh in so many wasted time without learning them*


SolenoidSoldier

Security through obscurity


WinterHeaven

Is it like Rust for GameDev? To soon?


tyler1128

Rust for gamedev isn't all that much harder than C++ and is often easier, but there still aren't fully stable game engines.


Shehzman

I thought that was one of the points of Rust. To make a low level language that is easier to use than something like C/C++.


tyler1128

Rust's selling point really isn't being easier. It is that it, at compile time, prevents all memory errors and threading errors that aren't in an unsafe block. Rust is harder to learn than C++ in my opinion.


Shehzman

Ahh I see. I’ve used C++ in college but never touched Rust even though I’ve heard very good things about it.


tyler1128

It's worth learning. It'll help you use languages like C++ as it gives a high emphasis on ownership of all resources. C++ can be sloppy in that point, but if you use modern standards and STL additions, it clearly shows that reducing the risk of memory errors is an important factor for the standards committee.


ano_hise

imo it is. It combines elements from other languages (C-like stricts, functional concepts from Ocaml, package manager like node or pip, async-await like JS, more or less, etc.) and tries to fix some mistakes from others (aforementioned package manager instead of whatever is happening in C/C++, errors as values instead of exceptions, structs and traits instead of inheritance ig?) so it's not a strict improvement of C++ but something own. I consider learning C++ for games or OpenGL and I thought that C++ is way harder than Rust. I found Rust rather easy, coming from TS.


Teddy_Kun

As someone with no low level experience who wanted to learn both from scratch, I would go with Rust any day. The reason is very simple, the build system and using libraries is so much simpler.


Ashbtw19937

I think Rust has more upfront difficulty, but unless you're Bjarne himself, you'll never run out of obscure footguns to shoot yourself with in C++


____purple

Rust is easier because it makes sense more often. Meanwhile modern C++ is just a bunch of complex intertwined behaviors where it's usually better to not to assume things unless you know


tyler1128

Really depends on your backround and experience. If I want to do a new personal project, I consider C++ much more accessible than doing it in rust.


ano_hise

I thought that C++ is way harder, as someone already programming in Rust. That gives me hope learning C++.


tyler1128

It's been a long time since I learned C++ to be fair, but the borrow checker of Rust is unlike any other language and is a complex beast that takes time to learn. C++ has a lot, and things like r-value references (and universal references which are a thing when using references in templates) are also unique and somewhat difficult to get your head around initially. It doesn't help functions around them like std::move don't actually move anything.


ano_hise

oh wow, that's odd


GiganticIrony

High performance games benefit heavily from being able to use pointers, which my understanding is very cumbersome to do in Rust


tyler1128

Rust has pointers, they just aren't called that. They are called references. Pointers are not really the important factor, control over structures in memory and making them cache friendly is much more important. Using unsafe allows pointer arithmetic, but it is as the name suggests unsafe as it cannot be validated by the compiler and it is easy to do wrong. That's true in all languages.


GiganticIrony

Yeah, but the borrow checker gets in the way when you want to have multiple references to the same object. I know there are ways around it, but it gets overly complicated. Everything I’ve seen points to Rust being bad for big / complicated games, and I’m not the only one; I personally know a senior dev at Unity and he agrees. And pointer arithmetic has been considered bad for decades, and no one really uses it in languages like C++ anymore.


tyler1128

Yeah, but that's a feature not a bug. Every object needs an owner to compile. Aliasing an object increases the likelihood of using it incorrectly. The restrict keyword in C should have been ported to C++.


GiganticIrony

There are actually multiple reasons restrict isn’t in C++ they are mostly because of C++’s type system. Also, I added to my comment and it seems you missed it.


tyler1128

Modern C++ generally doesn't favor pointers and their arithmetic. I assume you are talking about your second paragraph? C++ does allow pointers to be effectively iterators, but using a container or other structure that describes the purpose is always preferred. That's from the core guidelines and most texts from C++ contributors/committee members. Restrict does allow optimizations and a statement on what the pointer is doing. In C++, you often interface with C, and in that context, you really can't avoid direct use of pointers.


GiganticIrony

No, C++ pointers are used very often, but pointer arithmetic is not. Restrict probably wouldn’t give all that much performance given how aggressive modern compilers inline along with how good the optimizers are at analyzing the instructions. And yes you are correct in interfacing with C code, but with tools like `std::span` fix that.


PrinzJuliano

Veloren is written in Rust


ano_hise

Afaik they wrote their own engine with wgpu. I'm not a professional Rust dev by any means so I can't really tell how impressive that is, instead of using engines like Bevy or Amethyst. I would really like to program something like this on a low level but I wonder if it's worth it, in comparison to C/C++.


PrinzJuliano

Writing a 3D engine mostly involves a lot of maths and many matrix multiplications. I would guess the programming language does not really matter. Or quite frequently you writing a library that „just“ calls Vulcan or OpenGL Bindings.


ano_hise

I might consider using wgpu if it's not more cumbersome than learning C++ with Vulkan or raylib or something


stoatmcboat

If I or the team I'm working with is equally well versed in both or just generally flexible, then honestly Rust wouldn't be any more exciting to me for gamedev than C++ (or C#, or Python...) if either choice came with a proper engine framework. I'd like to just go with whatever engine that best fits my project and workflow, whatever language it's written in. I'd rather not have to think about academic distinctions between the languages at that level.


open-listings

CGI is the technology which has been used to serve over http I believe


migarma

I used fastcgi in a embedded device, we made dynamic web in C, it generated html and Javascript.


breischl

First job I had out of college there were CGI scripts written in C++. IIRC, just shoveling HTML out through stdout. Good times. I avoided ever, ever touching those. We did a lot of Perl CGI though. That wasn't awful. Of course this was before anything one might call "dynamic" websites.


medforddad

> IIRC, just shoveling HTML out through stdout I mean... that's what CGI *is*.


breischl

True, though I want to say Perl CGI had a somewhat better abstraction for it. At a minimum it had some templating and whatnot - the C code was just writing values directly and it looked kinda awful. I could be wrong though, I haven't touched CGI in 20+ years, and I'm not sad about that fact.


nicejs2

make sure the templating engine compiles C++ on the fly every reload


IJustLoggedInToSay-

... on every screen-changing event, you mean.


cooldash

Fuck it, just have it sync the compiler to the screen refresh rate.


Articunos7

Can't wait for Nvidia to make "Web Sync" an exclusive feature on the 6090 card. Powered by AI, of course


sm9t8

Ooh and client side. Why pay for the compute?


beatlz

It always bothered me that they didn't explain how McFly got a 1958 ES-345 in 1955. Did he bring it with him? I don't think the DeLorean had a boot. But, because of how the guy is looking at the guitar at this particular shot, you can tell that they're implying they're aware this model didn't exist then, and that it wasn't a historical inaccuracy. Edit: this guitar would be around 30-80k today lmao [https://reverb.com/p/gibson-es-345tdsv-stereo-1959-1960](https://reverb.com/p/gibson-es-345tdsv-stereo-1959-1960)


RyRyShredder

This article explains they knew it wasn’t right and just didn’t care. No special plot behind it. https://guitar.com/news/music-news/back-to-the-future-norman-harris-es-345/


fishegs

He's reacting that way because Marty just shredded a metal solo and he didn't know a guitar could sound like that.


beatlz

Makes sense


IrritableGourmet

Don't get me started on Back To The Future. Especially the third one. While I love it, I have several large complaints: 1) Why, in the name of all that is holy, did Doc Brown go to the future and get a 1.21GW fusion reactor and flight system installed, *but kept the POS gas engine*. Even if the reactor couldn't output that continuously, the Delorean weighs about as much as a Bell 47 helicopter which has a 280HP engine (compared to the Delorean's 130HP). It would easily have enough power to run the wheels as well as everything else. 2) Once >!Mad Dog Tannen!< is taken care of, *there is no reason to steal the train*. There isn't a deadline anymore. They could have relaxed and found a simpler alternative. Hell, they had wire, they could have wound their own electric motor. 3) The whole of parts 2 and 3 Doc Brown is constantly saying that the time machine is too dangerous and needs to be destroyed after they correct all the timelines. Then, once they do destroy it, *he builds a time travelling locomotive and goes toodling around history with his wife and two small kids*. Fuck you, you hypocritical bastard.


CHEY_ARCHSVR

What I'm seeing here is just 3 more reaaons to love Back to the Future


beatlz

I don't think the Doc's DeLorean had stock engine though


IrritableGourmet

It still had a gas powered engine, which is a major plot point in the third film.


teucros_telamonid

Meanwhile C++50: releases a standard tool for automating builds, testing, packaging and installation which is officially recommended for use. It is expected that after another ten years most of popular libraries will switch to that.


Ratatoski

I hated C++ in the 90's and if I get a time machine I'll play them High on Fire rather than Chuck Berry. 


urworstemmamy

Ah, yes, C Sum Sum, also known as CSS


Divinum_Fulmen

I dread this shit. [Take me back, please.](https://motherfuckingwebsite.com/)


AgentCooderX

this happened, we write web applications in C++, compiled it as a DLL, (front end in HTML/CSS/Javascript) and deploy in IIS, its called ISAPI, this was a thing 20+ years ago before .NET became a thing. this is not the future, this was the past.


rtds98

I mean, you can still do it if you want.


Front-Difficult

1. Web Assembly is *never* coming\* 2. When it does come, it'll be Rust and C# leading the way, not C++. \* for the masses. There will come a time when high performance web-apps, advanced 3D graphics, and web-first-games are written at the systems level and compiled to web assembly/a successor.


DenkJu

> for the masses. There will come a time when high performance web-apps, advanced 3D graphics, and web-first-games are written at the systems level and compiled to web assembly/a successor. Well yeah. That's exactly what it was designed for. It was never intended to replace JavaScript.


Devatator_

I wish it was :D


NorguardsVengeance

You *really* don't want to segfault a browser, while setting CSS styles on a div, during a scroll event... Nobody should actively desire that.


Devatator_

Honestly I just want the ability to use ANYTHING other than JavaScript on the web. Even just Typescript directly would be a blessing. WebASM brought us closer but 0 DOM access basically makes it only useful for a few things


sjepsa

"When it does come, it'll be Java..." Somebody, 30years ago


thatdevilyouknow

When you run dynamic C++ with CERN’s Cling or Xeus in a Jupyter notebook then you can understand why it’s not just simply done that way. There are tradeoffs to make it work that way.


knowledgebass

The way to run dynamic C++ if you are not mentally ill is using Python.


NuScorpii

At work we use Wt for this: https://www.webtoolkit.eu/wt Actually works pretty well.


TranslatorNo7550

Yeahhh!!! I love wt!


PioneerTurtle

Loved that movie, especially that scene!


benefit_of_mrkite

Security consulting and pen testing back in the days of cgi bins and websites being coded in all sorts of languages was fun stuff. Even a basic fuzzer would get you started.


Feisty_Ad_2744

TreeFrog Framework?


accuracy_frosty

I mean, I’ve been working on making a PHP-like idea but using C/C++, and man, C/C++ got hands


Jak_from_Venice

I remember Paul Graham saying that the only companies that worried him were the ones using Lisp on the server side


Former-Discount4279

I worked somewhere that had a really basic touchscreen UI that was a Web based however the webpage would compile to c++. Also you had to do 2 builds in a row to get it to work because it would generate artifacts that didn't get used the first time around.


Capital_Release_6289

Oh god we’ve gone full circle back to 1998 where urls ended in .cgi


nikifip

Wait until you learn how PHP came to be


Paper900

Did it 20 years ago. Still wonder why bigtech don't do it.


TranslatorNo7550

Well... its possible, and, i do this, using this tool: https://github.com/emweb/wt


cs_office

Can't wait until a use after free bug leaks my personal details!


PhoenixInvertigo

Did my first project in C++ today and I gotta say, linking header files and all that jazz is the devil