Post 9mQmTlFbJcblcJ6liS by HarneyBA@pleroma.site
 (DIR) More posts by HarneyBA@pleroma.site
 (DIR) Post #9mQRd2WiM4AElZhDQ8 by fribbledom@mastodon.social
       2019-08-30T22:25:23Z
       
       0 likes, 0 repeats
       
       Hot take:Go & Rust are the future of systems programming. C is the new Assembly.
       
 (DIR) Post #9mQRfmN0sfPnWiSrtw by guenther@chaos.social
       2019-08-30T22:25:47Z
       
       0 likes, 0 repeats
       
       @fribbledom LLVM and actual Assembly are the new assembly.
       
 (DIR) Post #9mQRgbUCpgTK3nDph2 by clarjon1@connected.cat6.network
       2019-08-30T22:26:03.255284Z
       
       1 likes, 0 repeats
       
       @fribbledom node.js is the future of native apps.
       
 (DIR) Post #9mQRrH86rE966xyXA0 by msh@coales.co
       2019-08-30T22:27:56Z
       
       0 likes, 0 repeats
       
       @fribbledom how long before a CPU is available that directly slurps in and executes C source code?
       
 (DIR) Post #9mQRyDo9bfH9psxBOS by bep@cybre.space
       2019-08-30T22:28:17Z
       
       1 likes, 0 repeats
       
       @fribbledom c is actually a pretty crappy assembly: https://queue.acm.org/detail.cfm?id=3212479
       
 (DIR) Post #9mQRyd17sZVU1MDOaG by fribbledom@mastodon.social
       2019-08-30T22:29:17Z
       
       0 likes, 0 repeats
       
       @msh They don't directly slurp in and directly execute "assembly code" either, so I don't think we'll see that happening.
       
 (DIR) Post #9mQS0rhmEzcY9bEPDs by somarasu@cybre.space
       2019-08-30T22:29:42Z
       
       0 likes, 0 repeats
       
       @fribbledom I feel it
       
 (DIR) Post #9mQSMgx8tiqBB3pHW4 by drwho@hackers.town
       2019-08-30T22:33:39Z
       
       0 likes, 0 repeats
       
       @fribbledom Web Assembly is the new assembly.But Go and Rust do seem like they're going to be the new go-to languages in sys.dev.
       
 (DIR) Post #9mQSSMjUzL4yCg9M7U by patchman@social.linux.pizza
       2019-08-30T22:34:37Z
       
       0 likes, 0 repeats
       
       @fribbledom I thought it was javascript and html5.
       
 (DIR) Post #9mQSXwIWBd5HxCBh6O by msh@coales.co
       2019-08-30T22:35:37Z
       
       0 likes, 0 repeats
       
       @fribbledom true, though assemblers aren't compilers, they are primarily translators that convert the mnemonics to the binary code they directly represent.There has been work in the past to make CPUs that act more like interpreters that execute tokenized versions of high level languages since the late 1970s, but they've been failures thus far. Probably for good reason I suppose.
       
 (DIR) Post #9mQSk7dXqzVmb2peCG by niconiconi@cybre.space
       2019-08-30T22:37:48Z
       
       1 likes, 0 repeats
       
       @fribbledom I thought JavaScript was the new Assembly. Proof: go to any website, open a JavaScript file, click "view source".
       
 (DIR) Post #9mQSy8iYdErk0ErQ9o by cinebox@cybre.space
       2019-08-30T22:40:19Z
       
       0 likes, 0 repeats
       
       @fribbledom imagining a processor that natively interprets C code and falling into a coma
       
 (DIR) Post #9mQSzv52J4CsHoDvSy by 361.xj9@social.sunshinegardens.org
       2019-08-30T22:38:29.353701Z
       
       1 likes, 0 repeats
       
       @fribbledom Scheme is the future of systems programming.
       
 (DIR) Post #9mQSzvUCnUL7Xs01hI by 361.xj9@social.sunshinegardens.org
       2019-08-30T22:40:45.764184Z
       
       0 likes, 0 repeats
       
       @dtluna @fribbledom well, most people are too stupid to appreciate it.
       
 (DIR) Post #9mQTDk6PuzWeIGSd6G by Flisk@cybre.space
       2019-08-30T22:42:15Z
       
       0 likes, 0 repeats
       
       @fribbledom sensibly warm take:go & rust are nice and suitable replacements for c not in all but a growing number of domains
       
 (DIR) Post #9mQTKm6qr2w8Xs18JE by 361.xj9@social.sunshinegardens.org
       2019-08-30T22:44:32.516696Z
       
       0 likes, 0 repeats
       
       @dtluna @fribbledom read up on Lisp Machines, they were *so* ahead of their time. its really powerful stuff. i honestly don't care what you end up thinking about it. you are welcome to keep using primitive, overly complex languages for the rest of your life. you don't *have to* like or understand scheme.
       
 (DIR) Post #9mQTi1O2DjtmaS8hea by 361.xj9@social.sunshinegardens.org
       2019-08-30T22:48:43.763983Z
       
       0 likes, 0 repeats
       
       @dtluna good question. sounds like you have some interesting research to do.
       
 (DIR) Post #9mQU064dX5ScKugXYG by fribbledom@mastodon.social
       2019-08-30T22:51:59Z
       
       0 likes, 0 repeats
       
       @Flisk You mean like systems programming? 😉
       
 (DIR) Post #9mQU0SeBbay8LXUF16 by 361.xj9@social.sunshinegardens.org
       2019-08-30T22:52:03.956080Z
       
       0 likes, 0 repeats
       
       @dtluna alright then
       
 (DIR) Post #9mQWdhQInmaHNLpZ1U by gudenau@mastodon.technology
       2019-08-30T23:21:31Z
       
       0 likes, 0 repeats
       
       @fribbledom Yeah but Linux.
       
 (DIR) Post #9mQXaLDF1YaHZlgTT6 by zacanger@mastodon.social
       2019-08-30T23:32:01Z
       
       1 likes, 0 repeats
       
       @fribbledom I feel like this is more of a warm take tbh. Kind of like a take that was very hot at one point, but is now definitely the right temperature to drink. A good take, either way.
       
 (DIR) Post #9mQXm3b6LJ2wQ0QmS8 by Flisk@cybre.space
       2019-08-30T23:34:14Z
       
       0 likes, 0 repeats
       
       @fribbledom sometimes yes, sometimes no. there's been plenty of discussion among people trying to use rust for various types of systems programming. sometimes it's great, sometimes less so. systems prg is too complex a domain to make broad statements about.
       
 (DIR) Post #9mQaIwHwjoKzDNHKXg by FelixArden@social.tchncs.de
       2019-08-31T00:02:32Z
       
       0 likes, 0 repeats
       
       @fribbledom I'm not yet sure whether the greater difficulty of writing Rust code that compiles at all is offset by the time it supposedly saves in finding bugs.
       
 (DIR) Post #9mQcimJwcVtJjnf6Qq by djmoch@mastodon.danielmoch.com
       2019-08-31T00:29:08Z
       
       0 likes, 0 repeats
       
       @fribbledom Did you read this?https://lobste.rs/s/drcxer/rust_is_future_systems_programming_c_isNot sure what I think ...
       
 (DIR) Post #9mQgYReJ1OSQXxVvOq by vertigo@mastodon.social
       2019-08-31T01:12:34Z
       
       0 likes, 0 repeats
       
       @msh @fribbledom Assemblers do all have the same components of a compiler though: a lexer/scanner, a parser, a constant expression evaluator for computing relative displacements and bitfields, etc.CPUs executing high-level assembly have all failed because they're hard to make efficient for the expense of making them.  They'll always be microcoded in practice, at which point, what distinguishes such a beast from a sealed RISC CPU running a bytecode interpreter?  What *is* the CPU then?  :)
       
 (DIR) Post #9mQlHPmVDDkFbN2wyG by msh@coales.co
       2019-08-31T02:05:32Z
       
       1 likes, 0 repeats
       
       @vertigo @fribbledom with the complex state of CPUs these days and embedded graphics cores and IME equipped computers having hidden little MINIX machines in them I already ask "what is the CPU"!I think Intel's experience with the iAPX 432 scared them and everyone else away from seriously trying to make another high level language CPU. More profits in making incremental changes and refinements. Moar Corez! Embiggen all teh pipelines! Lotza cache! Branches Branches Branches! No vision really.
       
 (DIR) Post #9mQmTlFbJcblcJ6liS by HarneyBA@pleroma.site
       2019-08-31T02:19:04.066539Z
       
       0 likes, 0 repeats
       
       @fribbledom pdp 11 is the new hex code
       
 (DIR) Post #9mREhxvnrAYJcwybmC by phlox@mastodon.corecoding.dev
       2019-08-31T07:35:15Z
       
       0 likes, 0 repeats
       
       @fribbledomFor my understanding of systems programming Go is too high level and the C interop is horrible. I would rephrase it toNim & Rust are the future of systems programming. C is the new Assembly.
       
 (DIR) Post #9mRI4msxOI9ltMDeKm by Sturmflut@mastodon.technology
       2019-08-31T08:12:56Z
       
       0 likes, 0 repeats
       
       @msh @vertigo @fribbledom GPUs and IME/PSP are peripherals embedded in the same chip. They have nothing to do with normal program execution.IAPX432 still executed normal CISC machine code and just had special hardware support for accelerating some programming paradigmas. Like IBM's AS/400 or ARM's Jazelle. And - like many others - they had to learn doing these things in hardware can also have severe downsides. More cache, more cores and better branch predictors ARE the better solution.
       
 (DIR) Post #9mRN9NVze0JkQSUE0u by veer66@mastodon.in.th
       2019-08-31T09:09:06Z
       
       0 likes, 0 repeats
       
       @fribbledom System programming with a garbage collector and non-native threads is quite interesting. 🤔Why don't people use Crystal, Java,  and OCaml in system programming too?
       
 (DIR) Post #9mRSPInNSVrwBz1w2q by Keltounet@mastodon.social
       2019-08-31T10:08:50Z
       
       0 likes, 0 repeats
       
       @fribbledom C has always been the new assembly :)Agreed on both Rust and Go of course :)
       
 (DIR) Post #9mRXASPLwABvQqX9H6 by charlag@birb.site
       2019-08-31T11:02:07Z
       
       0 likes, 0 repeats
       
       @fribbledom too hotC is not a low-level languagehttps://queue.acm.org/detail.cfm?id=3212479
       
 (DIR) Post #9mRlO350XDhQNtj9iC by fribbledom@mastodon.social
       2019-08-31T13:41:29Z
       
       0 likes, 0 repeats
       
       @phlox "Too high level"? 😂People have been doing systems programming in Go for years now, quite successfully.
       
 (DIR) Post #9mRlhS6hhwrFVWlzsG by fribbledom@mastodon.social
       2019-08-31T13:44:59Z
       
       0 likes, 0 repeats
       
       @veer66I wouldn't call it "quite interesting", but rather "quite the relief".With regards to Crystal, Java, OCaml: I'm sure some people do use them successfully for that, but for a broader acceptance the requirement for an interpreter and/or VM will always be a hindrance.
       
 (DIR) Post #9mRlnj1rhn7ljAV7q4 by veer66@mastodon.in.th
       2019-08-31T13:45:54Z
       
       0 likes, 0 repeats
       
       @fribbledom Go requires a runtime too?
       
 (DIR) Post #9mRlnzoJJRNnm3I2ZU by fribbledom@mastodon.social
       2019-08-31T13:46:01Z
       
       0 likes, 0 repeats
       
       @charlag Nobody said it is. What difference does it make though?
       
 (DIR) Post #9mRloKKF2QoBOsNp7Q by fribbledom@mastodon.social
       2019-08-31T13:46:14Z
       
       0 likes, 0 repeats
       
       @veer66No?
       
 (DIR) Post #9mRlu7JGLMKwlngbw0 by veer66@mastodon.in.th
       2019-08-31T13:47:16Z
       
       0 likes, 0 repeats
       
       @fribbledom Go requires as much as Crystal does.
       
 (DIR) Post #9mRm7FTLJ443qmf9eq by fribbledom@mastodon.social
       2019-08-31T13:49:39Z
       
       0 likes, 0 repeats
       
       @veer66 Ah, you may be right about Crystal. Even better, looks like a nice language.
       
 (DIR) Post #9mRmEeR4tJyzIg8KLw by amiloradovsky@functional.cafe
       2019-08-31T13:50:56Z
       
       0 likes, 0 repeats
       
       @fribbledom Nitpick: Go isn't suitable for system programming, but for the applied, it seems fine.
       
 (DIR) Post #9mRmI2yK7fM2GbIqKO by fribbledom@mastodon.social
       2019-08-31T13:51:36Z
       
       0 likes, 0 repeats
       
       @amiloradovskyWhat's the difference to you and why wouldn't you consider it suitable?
       
 (DIR) Post #9mRmJsZnkBTYbYhrvs by veer66@mastodon.in.th
       2019-08-31T13:51:53Z
       
       0 likes, 0 repeats
       
       @fribbledom Ocaml can create a statically-linked binary too.https://www.systutorials.com/98337/how-to-statically-link-ocaml-programs/ (I searched couple minutes ago 😅)
       
 (DIR) Post #9mRmPLJCLUcfAEXtcO by fribbledom@mastodon.social
       2019-08-31T13:52:55Z
       
       0 likes, 0 repeats
       
       @veer66Nice, even though I don't consider the statically-linked part a requirement.
       
 (DIR) Post #9mRmcYXiS7s3yQdYS8 by amiloradovsky@functional.cafe
       2019-08-31T13:55:16Z
       
       0 likes, 0 repeats
       
       @fribbledom Pretty heavy RTL, and complicated memory (de)allocation machinery, a.k.a. GC.Also, doing everything through ~go~ is too alien…
       
 (DIR) Post #9mRn1RfX99wptVA5MO by fribbledom@mastodon.social
       2019-08-31T13:59:49Z
       
       0 likes, 0 repeats
       
       @amiloradovskyAnd that's stopping you from doing what exactly? I'd say the "heavy RTL" and GC and very much part of the reason why people are dropping C for that kind of thing.
       
 (DIR) Post #9mRnFy0ZhrXkFNvb6m by amiloradovsky@functional.cafe
       2019-08-31T14:02:25Z
       
       0 likes, 0 repeats
       
       @fribbledom It doesn't ATM, but it would stop me from using Go in e.g. programming microcontrollers.
       
 (DIR) Post #9mRnpu9TWQV8iBEAIy by fribbledom@mastodon.social
       2019-08-31T14:08:55Z
       
       0 likes, 0 repeats
       
       @amiloradovskyGranted, after more than 25 years of C and C++, programming microcontrollers is pretty much the only domain left where I'm still willing to use these languages.That's not really what I'm talking about when I'm referring to systems programming, though.
       
 (DIR) Post #9mRnwq8DVENXUEBGc4 by amiloradovsky@functional.cafe
       2019-08-31T14:05:08Z
       
       0 likes, 0 repeats
       
       @fribbledom P.S. WRT alienness, it's not really an argument of course, just an inertia: people are too used to (g)cc+(g)make+autotools…
       
 (DIR) Post #9mRnwqOsVHhqJtyZaC by fribbledom@mastodon.social
       2019-08-31T14:10:09Z
       
       0 likes, 0 repeats
       
       @amiloradovskyTalking about inertia and autotools in the same sentence does sound really funny 😅
       
 (DIR) Post #9mRo8P5VsNFF5TQjRY by charlag@birb.site
       2019-08-31T14:12:15Z
       
       0 likes, 0 repeats
       
       @fribbledom what defines Assembly for you then if not "low-level"?
       
 (DIR) Post #9mRoYmB2ea9iE5ajYW by amiloradovsky@functional.cafe
       2019-08-31T14:17:01Z
       
       0 likes, 0 repeats
       
       @fribbledom Well, there is e.g. MirageOS, written in OCaml, which does pretty much what a server OS would do. — Doesn't suffer from the lack of a manual memory management in OCaml…Another reason one might still want to use C nowadays is because just rewriting all the critical pieces of software in every language of the day is somewhat time consuming, even wasteful, I would say…And also most of the languages are lacking formal semantics and the tools like Frama-C…
       
 (DIR) Post #9mRosJU32puj1inVoG by byllgrim@mastodon.xyz
       2019-08-31T14:20:36Z
       
       0 likes, 0 repeats
       
       @xj9 What's your fav interpreter/compiler? (I consider getting into scheme, if the transaction cost is small enough)
       
 (DIR) Post #9mRp0yiTctX1Dyg7M0 by amiloradovsky@functional.cafe
       2019-08-31T14:22:07Z
       
       0 likes, 0 repeats
       
       @fribbledom Inertia is the only reason why many inferior solutions are still widely used, but it can't be dismissed, even if one so wishes.OTOH, many of the complaints about autotools aren't really autotools-specific, but are about the configuration and infrastructure in general. And the new proposed solutions are often even worse in the long run (rely on GitHub etc.)…
       
 (DIR) Post #9mRp65t4OPMQud4YNM by phlox@mastodon.corecoding.dev
       2019-08-31T14:23:03Z
       
       0 likes, 0 repeats
       
       @fribbledom Well, I am not saying it is not possible, just that there are other languages which offer a far better FFI than Go. I use Go a lot, but when I need to interop with C libraries I tend to use other languages. I guess it is all about how you define "systems programming".
       
 (DIR) Post #9mRv122Dt6KnF2K68O by masterofthetiger@theres.life
       2019-08-31T15:29:18Z
       
       0 likes, 0 repeats
       
       @fribbledom And C used to be considered high level...
       
 (DIR) Post #9mRvIFZmnKAsA7ET5M by fribbledom@mastodon.social
       2019-08-31T15:32:30Z
       
       0 likes, 0 repeats
       
       @masterofthetigerI guess these perceptions are shifting over time. It'd be a shame if they did not, as I think we're far from having the optimal tools for our craft.
       
 (DIR) Post #9mRvw8WQRPtprpgCga by brad@weeaboo.space
       2019-08-31T15:39:43.819157Z
       
       0 likes, 0 repeats
       
       @veer66 @fribbledom https://github.com/ffwff/lilith
       
 (DIR) Post #9mRwOBK9cIMofMJSUa by Mikoto@fedi.absturztau.be
       2019-08-31T15:44:48.908177Z
       
       0 likes, 0 repeats
       
       @brad @veer66 @fribbledom This was actually made by a fellow fediposter: @fluff
       
 (DIR) Post #9mRwkVjWPt0WKopGBE by fribbledom@mastodon.social
       2019-08-31T15:48:48Z
       
       0 likes, 0 repeats
       
       @charlagDo you consider Assembly a viable option to write software efficiently and securely?What we accept as viable tools in our craft keeps shifting over time. It'd be a shame if it didn't.
       
 (DIR) Post #9mRwxhnMsi7pVcusk4 by charlag@birb.site
       2019-08-31T15:51:10Z
       
       0 likes, 0 repeats
       
       @fribbledom wait wait wait I'm lostC is the new assembly you sayI ask, what you mean by assembly
       
 (DIR) Post #9mRxM1BwPyDMcF0Hlg by fribbledom@mastodon.social
       2019-08-31T15:55:35Z
       
       0 likes, 0 repeats
       
       @charlag Sorry, not sure where you lost me?
       
 (DIR) Post #9mRxpqJJRDkpYXfmSm by charlag@birb.site
       2019-08-31T16:00:56Z
       
       0 likes, 0 repeats
       
       @fribbledom you diet answer and asked if I consider assembly safe and now i'm confused
       
 (DIR) Post #9mRxzK44BMwERX3uKm by fribbledom@mastodon.social
       2019-08-31T16:02:41Z
       
       0 likes, 0 repeats
       
       @charlag Still not sure what's so confusing about that?I don't consider Assembly a viable option to write software (anymore) and over time C is shifting towards that same area more and more.
       
 (DIR) Post #9mRz31gsXR5cZNXunw by amiloradovsky@functional.cafe
       2019-08-31T16:14:33Z
       
       0 likes, 0 repeats
       
       @fribbledom @charlag Another place where C may still be used nowadays is to reach directly to the ISA, to implement a hardware-dependent optimizations; where assembly would be used some time ago, but now one needs to call __something_something64(…).
       
 (DIR) Post #9mSUAjEoIJloHOX7Mu by 361.xj9@social.sunshinegardens.org
       2019-08-31T22:03:20.646600Z
       
       0 likes, 0 repeats
       
       @byllgrim i'm a big fan of chicken scheme. they have loads of libraries and the community is v helpful
       
 (DIR) Post #9mSWDvTLSn7V07z4sK by byllgrim@mastodon.xyz
       2019-08-31T22:26:19Z
       
       0 likes, 0 repeats
       
       @xj9 Then I'm up to "three points" for chicken scheme. Thanks 😀