Threads for jakob

  1. 4

    This is the textbook for a class I’m taking this semester. The course website is here if anyone’s interested in that sort of thing.

    1. 4

      The problem I have with these Linux phones is security. They are so completely far off when it comes to hardware and even software security in comparison to current generation Apple and Google mobile devices.

      Edit: Also, I don’t think I ever expected to ever see another Yung Lean listener on here :P

      1. 5

        That’s a point I wish I elaborated on more; the security situation is certainly different. At the same time, my threat model for a “Linux phone” is different from my threat model for a regular Android phone – because I tend to trust the software that I would be running on the former, and because cellular capabilities are implemented by a chip that is isolated (at least relative to how it’s implemented in, for example, a phone built around a Snapdragon SOC) from the main system. Hence, my view on security for the PinePhone is similar to how I think about security for my workstation.

        Are there specific security features from Android that you would be missing on a PinePhone? Or is it more general, like wanting more protection for your cellphone because it’s what you use for important things like electronic banking and SMS?

        I was secretly hoping someone would comment on my choice of music for the screenshots ;)

        1. 1

          Sorry for taking so long to get back.

          Hence, my view on security for the PinePhone is similar to how I think about security for my workstation.

          That’s fair enough.

          Are there specific security features from Android that you would be missing on a PinePhone?

          I don’t know how the rest feel about them but I’m a big fan of the “madaidan’s insecurities” blog. There’s a short article about Linux phones here I think it focuses on the Librem 5 but I think similar can be said for Pinephones. One thing to take away from this article is in the modem isolation section;

          There is also a lot of misinformation as to how the modem being on a separate chip means it’s isolated — this is completely untrue. […] Whether or not the modem is on a separate chip is irrelevant to if it’s isolated.

          I’m an avid user and advocate of GrapheneOS which is a hardened Android-based OS that I think deserves more attention. They only support Google Pixel devices because of their strict security requirements, like a proper secure element, among other things. No other devices (Android or otherwise) currently meet their security requirements. If you haven’t heard of this project I recommend checking it out, the work their team is doing is I think quite important, and quite interesting to observe if anything.

          So to answer your question, I think when the Pinephone meets these very strict security requirements of GrapheneOS, then I’ll be happy using it :)

      1. 7

        There have been a couple of rough spots because of literal technical limitations with the PinePhone – for example, PostmarketOS v21.06 wasn’t MMS-capable

        I am assuming that MMS works well for you now? It works for me, but since there is no tracking of any kind, I really have no idea if there are issues unless someone tells me.

        likely to leave a voicemail, which I am alerted to

        Out of curiosity, how are you getting voicemails?

        1. 3

          I am assuming that MMS works well for you now? It works for me, but since there is no tracking of any kind, I really have no idea if there are issues unless someone tells me.

          For the most part, yeah! I experienced some breakage with mmsd-tng briefly where the configuration was getting overwritten on boot and the APN was being set to apn.invalid but I was able to fix it and I’m back to sending and receiving photos, group texts, etc.

          Out of curiosity, how are you getting voicemails?

          I get a text message containing a vvm URL from some carrier-internal phone number, at which point I know that someone left a voicemail and I should check my inbox. I get to my inbox by just calling my own phone number. I don’t know if that’s carrier-specific behavior.

          There is VVMd, which is probably better, but I haven’t bothered with setting it up yet.

          1. 3

            For the most part, yeah! I experienced some breakage with mmsd-tng briefly where the configuration was getting overwritten on boot and the APN was being set to apn.invalid but I was able to fix it and I’m back to sending and receiving photos, group texts, etc.

            Heh, if it happens again, could you file an issue? You are not the first one to report that and Unfortunately it works for me….so I have yet to track that down. I am glad it is working though!

            I get a text message containing a vvm URL from some carrier-internal phone number, at which point I know that someone left a voicemail and I should check my inbox. I get to my inbox by just calling my own phone number. I don’t know if that’s carrier-specific behavior.

            There is VVMd, which is probably better, but I haven’t bothered with setting it up yet.

            FYI, there is a known issue with AT&T: https://gitlab.com/kop316/vvmd/-/issues/8 , but it isn’t hard to work around. AT&T uses a proprietary protocol and they changed how they send the password. It shouldn’t be hard to fix, but since it involves me paying $50 (and an hour of my time) to get a new SIM….. I haven’t fixed it.

            1. 3

              Heh, if it happens again, could you file an issue? You are not the first one to report that and Unfortunately it works for me….so I have yet to track that down. I am glad it is working though!

              Of course, I didn’t file it in the bug tracker because I saw that exact issue you’re mentioning, filed the same day I noticed the behavior, but I certainly will if it happens again.

              (Also, I had no idea you were the maintainer! Thank you for your work)

              1. 2

                Of course, I didn’t file it in the bug tracker because I saw that exact issue you’re mentioning, filed the same day I noticed the behavior, but I certainly will if it happens again.

                Thanks, and no worries! Sometimes I just see reviews and the reviewer goes “well MMS didn’t work well”….and since mmsd-tng doesn’t have any tracking on it, I have no idea what happened or why.

                (Also, I had no idea you were the maintainer! Thank you for your work)

                I’m glad you find it useful!

        1. 3

          love your website! it looks great imho. i’d love to switch to the pinephone daily (i have a pinephone pro), but all of the issues underlined in your “cons” section are huge blockers for me sadly. hopefully we’ll get there someday!

          1. 2

            Thanks! I spent a lot of time on the theme a couple years ago. Every once in a while, I’m tempted to change it up, but I always have a change of heart when I go back to look at it because I’m really happy with how it turned out.

          1. 6

            I’ve been playing around with Haunt recently myself, and absolutely love how far you’ve gone with your theme! It really stands out c:

            This post inspired me to find my Pinephone (a Manjaro Community Edition) this morning, which I was frankly worried I’d lost, and I’ll be referencing it as I update firmware and attempt to set it up with a functional package manager; I was initially going to attempt porting Gentoo, for which there are resources available, but I’ve been thoroughly converted to the functional approach and know from past experience that distcc can’t offload all/subjectively enough of the work when you’re working with what the Pinephone has. Hoping that I can do more with a functional manager by cross-compiling the whole system ahead of time, but eh, we’ll see. Gonna have a blast either way.

            The work you’ve done is awesome, and thanks for taking the time to document and share it!

            1. 3

              Thank you for the kind comment! I’m really happy to hear I’ve inspired you to pick up your PinePhone again, I think that’s the best kind of response I could have gotten out of writing this.

            1. 0

              why is this posted here? this isn’t “hacker” “news”, where it makes sense to post random wikipedia articles or other pages with 0 context.

              1. 3

                I just found it to be an interesting example of considerations when using free software “in practice”, especially as it pertains to the software supply-chain, which seems to be a frequently-discussed topic here.

                What would you have wanted in terms of context? The “submit story” prompt explicitly asks that you “don’t use [the text field] to promote the story, summarize the post, or explain why you posted it.”

                1. 1

                  Your comment would be more constructive if you phrased it like, “What do you find interesting about this site?”

                  As it stands, it comes off as rude. Would you say the same thing to someone in person?

                  1. 2

                    yes, I would. I’m not trying to be rude. obviously text does not convey the nuances of in-person speech, so perhaps you should keep that in mind when reading text on the internet, and not always assume malice.

                  2. 1

                    Perhaps ironically it was quite a hit on the orange site, reaching rank 7 on the front page.

                    1. 2

                      there’s plenty of low-effort stuff there that hits the front page, I’m not sure how that justifies it belonging here? can you elaborate?

                      1. 1

                        Just an observation. HN does have a culture of submitting random wiki pages, and pages like this. I believe sometimes it’s from a popular comment in another thread that the submitter found interesting.

                  1. 5

                    Energy / electricity usage…?

                    1. 10

                      I thought it was refreshing to find an article that doesn’t mention that.

                      The excessive energy consumption is the larger societal harm, as I see it, but I also appreciate that we’re able to point out the legitimate technical flaws that reveal how the designers were thinking only in the short-term.

                      1. 13

                        To the best of my understanding, not enough people know about this wasteful aspects. Mainstream news often don’t mention it and instead hype up NFTs. NFT and cryptocurrencies also advertise a lot on shows and podcasts. Never with a mention of this. Sure, a lot of people on here (most) know about it but it seems underreported.

                      2. 4

                        That’s my number one concern too, but I was strangely glad that it was absent in this write up. It doesn’t mean it’s a non-issue, but it’s often the first thing that crypto people people try to rebut and ends up a discussion tar pit.

                        1. 3

                          I’ve seen people get out of pow (or out of crypto all together) once they learn about this. There are issues where it’s pointless how much info you try to dump because there’s an underlying values mismatch rather than an info mismatch, but I believe this isn’t one yet, as in, I think there are plenty who would change their minds about it they knew about the energy and electronics waste issues.

                        2. 0

                          This is mostly an issue for older chains using “Proof of Work” consensus like BTC and ETH

                          Basically all new Layer 1 chains these days (Solana, Terra, Cosmos, Avalanche, Polygon, Polkadot, Cardano etc.) use “Proof of Stake” which this is a non-issue for.

                          Also ETH is moving to “Proof of Stake” probably Q2 2022. It’s in progress, but difficult to migrate a behemoth like ETH when it’s already in production.

                          1. 1

                            This is partially the case; probably if BTC were using PoS the energy problem wouldn’t get much attention. But, while it wouldn’t be burning more oil than Ireland for it’s current level of activity, it still just scales really really poorly to have a huge network of nodes all verifying the same ledger. Redundancy buys you resiliency, but it also wastes resources. You don’t want more of it than you actually need.

                            When thinking about the future of the technology, it’s easy to wave away PoW, since solutions are known. But large scale ledgers are still doomed to be inefficient, just not so inefficient that it finds its way into mainstream news outlets.

                            1. 0

                              I mostly agree with you, and BTC is a bit doomed to become “digital gold” because of these inefficiencies.

                              But some of the newer PoS chains have a TPS comparable (and in some cases even surpassing) that of Visa and MasterCard, with negligible tx fees.

                              Pretty interesting stuff! I’m sure the tech will only continue to improve as it attracts more funding and smart engineers/researchers.

                              IMHO the biggest wart on crypto right now is BTC’s use of PoW, but there are some interesting approaches to that issue. See this thread about what the Swedish state-owned (!) energy company Vattenfall has to say on the topic: https://twitter.com/ercwl/status/1457114531314995206

                              TL;DR: PoW can be used as a buffer/load-balancer in a mostly fossil-free energy grid like ours.

                              1. 4

                                PoW can be used as a buffer/load-balancer in a mostly fossil-free energy grid like ours.

                                Vattenfall considered harmful when it comes to this. Of course they want to sell electricity. They were very slow at getting out of the coal business, only closing their last plants as late as two years ago. (Growing up in climate activism, Vattenfall was The Enemy for all their coal plants.) I do give them credit for finally getting out of coal, fifteen years after everybody else did, but the talk of PoW being good doesn’t become more true or credible for coming from them.

                                The world found out the other day that almost a fifth of the worlds BTC is mined in Kazakhstan on hard coal, the older, ever more inefficient coal plants. Ingen nyhetsgrej direkt because of course BTC is gonna thrive where electricity is underpriced because of externalities not being accounted for.

                                As I’ve said before:

                                Spending energy on proof of work is not decreasing any fossil burning. It’s just not.

                                As an analogy, let’s say I want my students to get safe jobs instead of risking their lives as guillotine testers and tightrope dancers.

                                I take a quick glance at the jobs section and see that hmm, safe jobs seem to be paying better over the long run, if not in the short run.

                                So I take my students’ paychecks and burn the money in a big old firepit in the yard.

                                They’re like “Miss, miss, why’d you burn all that cash!” I’m like “If I waste all your money, I’ll increase your demand for money, and the new money capital expenditure that is most efficient is gonna be safer jobs” they’re not gonna go “thank you miss! That makes sense! We’ll start working those safe desk jobs right away so you can pour more of that money in the firepit!”

                                Instead, they’re gonna go “OMG we’re starving and we need cash right now and all our money got burninated, we are gonna go have to go work as dynamite jugglers!”

                                They’re not gonna go “Thank you for saving money on paper by flushing the groceries directly into the toilet.”

                                Additionally, what’s often elided when discussing the electricity use of PoW is the e-waste. The actual hardware used to mine. That’s a huge climate impact for how quick the obsolescence and turnaround is.

                                1. 1

                                  And now electricity is so expensive that the gvmt is gonna pop in 6000 000 000 SEK. To the extent that even one öre of that is because of PoW mining, that is severely messed up. Miners have ruthless disregard for externalities and the interconnectedness and interdependence of human activity. New inroads into plundering the Earth 💔.

                                2. 1

                                  PoW can be used as a buffer/load-balancer in a mostly fossil-free energy grid like ours.

                                  I can think of a few other methods for buffering, such as recharging gravity batteries. Waste heat is an undesirable side effect almost everywhere.

                              2. 1

                                You normally don’t see me complaining about PoS or other FBA variants, like MOB (which Moxie’s app Signal is involved in). I mean, as far as I can see it’s just as proprietary as PayPal and thus pretty pointless, but what I’m mostly complaining about is and has been PoW. You can often see me be pretty explicit about this in other threads. I’m not long in any cryptocurrency including PoS, but you’ll see me complaining about PoW specifically.

                                However, I am not going to gice ETH credit for being PoS before it is.

                                For example, Reddit is moving to the PoW version of ETH and therefore that’s not OK.

                            1. 8

                              This year, chronologically:

                              • Partner moved in with me to work at a nearby school.
                              • Got a return offer from my 2020 internship.
                              • Hosted my first capture-the-flag.
                              • Graduated university.
                              • Tried to have a theory paper published (unsuccessfully).
                              • Started working full time, rising to the role of lead engineer for one of the programs I’m assigned to.
                              • Took home first in a capture-the-flag for the first time.

                              Besides going off to grad school, I don’t have a particularly ambitious plan for 2022. I want to (I) continue to put my best foot forward at work, (II) spend more time with family, and (III) give myself time to read, learn, and work on my personal projects.

                              1. 6

                                What a fun question.

                                Career-related: soft skills; team leadership; all the “cloud” stuff I’ve put off out of distaste for the constant bombardment of hype; the Linux networking stack.

                                Personal: Haskell; GTK; OpenSCAD; compiler design. I’m also planning to go through the TAOCP box-set I got for my birthday.

                                1. 2

                                  OpenSCAD

                                  Warning: hacks abound. OpenSCAD suffers from a fundamental issue where:

                                  1. You need to constantly create shapes by subtracting one shape from another shape
                                  2. Said shapes need to be precisely defined
                                  3. OpenSCAD doesn’t handle subtracting a shape with a precisely-overlapping surface due to rounding-error issues on the same real-number calculated differently.

                                  The end result is that you need to slap on epsilons everywhere, i.e. you create a constant ‘epsilon=0.01’, then instead of carving a cube(5,5,10) from a cube([10,10,10]) you have to carve a translate([0,0,-epsilon]) {cube([5,5,10+(2*epsilon)]);} from a cube([10,10,10]).

                                  This means you have off-by-epsilon errors everywhere, for basically every complex shape you make. First you create the shape, then you spend several minutes adding all the

                                  What’s worse is, sometimes you do get the epsilons right, but you still get weird z-fighting artifacts in the preview with no elegant method of removing them. Not to imply the epsilons are an elegant solution in the first place.

                                  1. 1

                                    That sounds.. painful. Thank you for the insight. Perhaps I should have my goal be to learn CAD in general rather than OpenSCAD.

                                1. 11

                                  I’m interested to see the responses to this one. Deliberately practicing programming isn’t part of my routine now. It might have value if I were still a “new programmer,” but in my case, years of recreational programming have sated any perceivable need for practice.

                                  It takes a lot of effort to come up with a routine that’s more effective than the “sink or swim” approach – effort that could be more meaningfully spent working toward whatever you’re learning programming to do.

                                  1. 7

                                    I am soon to be making the decision of where to apply for grad school. U of M is no longer on my shortlist.

                                    1. 2

                                      I’m interested in hearing why this board is especially well-suited for running languages like lisp. I spy a STM32f (ARM) core. Does this board do something that the RPi doesn’t?

                                      1. 1

                                        That’s like asking what’s so special about Arduino. It’s all software.

                                      1. 3

                                        If you’ve never written a Lisp before, I can recommend Janet as a nice introduction to that world.

                                        1. 1

                                          May I ask why do you like it, and how it compares to more traditional choices like Scheme and Common Lisp?

                                          1. 2

                                            Regarding the second point, they’re similar. The syntax is the same, and you have “similar enough” primitives for working with sequences. There are a few “big” differences, like most sequential data structures not being linked lists, but it still feels lisp-y to me.

                                            Racket is another beginner-friendly Lisp if you’re looking for something resembling Scheme. It has a nicely-written guide. The Janet documentation might be a bit confusing if you don’t have prior experience with lisp.

                                            1. 2

                                              I have a few reasons that I like it.

                                              I tried it on a whim for Advent of Code 2020, and ended up liking the PEGs quite a lot.

                                              Then, as I’ve used it more and more, I’ve grown to like it for it’s macros, and for the rather practical sensibilities it has around it’s data structures. It is still very young in an ecosystem sense, so it’s a great chance to learn how to build things for a small ecosystem, and/or to practice hacking on C extensions, or writing things in Zig (there are some people working with zig with it).

                                              I don’t have deep experience with Scheme and Common Lisp.

                                          1. 16

                                            I am a big fan of Janet, which I find pretty cool to use and manipulate.

                                            Two features come out as strikingly useful to me, on top of the language being compiled.

                                            • The very simple to use and very efficient PEG in the standard library
                                            • The DEAD EASY C interop, which makes using C features or libraries a dream.

                                            I use this language at work to parse logs, automate some tasks, and I also use it on my personal blog and services for Gemini/text parsing (e.g. to HTML).

                                            1. 7

                                              Janet is also the “small language” I’ve been using recently, to build a self-hosted tag-oriented CMS for organizing my photos and videos and such. I’m happy with its standard library support for SQLite3 & PEG, the latter of which I have been using to implement the query parser (i.e. turn “give me files tagged with A and B but not C” into SQL).

                                              I’ll probably write about it when I’m done with it. I like Janet, but I don’t know if it will become my language of choice. I still very much like good ol’ Scheme (which is probably a bit smaller than Janet).

                                              1. 1

                                                Honestly, that depends on how much of the Scheme standard is implemented by the Scheme. IIRC, the later ones were pretty large, no?

                                                1. 2

                                                  R6RS is “large” relative to R5RS/R7RS. I wouldn’t call it “large” relative to other programming languages. R6RS is probable comparable to the Janet stdlib.

                                              2. 2

                                                on top of the language being compiled

                                                I’m curious as to what you mean by this. Isn’t this true of nearly every language?

                                                1. 5

                                                  Janet makes a building an executable out of your scripts a first class experience, as opposed to the second or third class experience it is in Ruby or Python. (I don’t know where fennel sites here, beyond Love2Ds bundling tricks).

                                                  If I had to guess, that’s what is being referred to here.

                                                  1. 2

                                                    I see; so specifically the fact that the compilation output is bundled up into a single binary file then? (Fennel has a --compile-binary command which does this, since you asked.)

                                                    1. 2

                                                      Sort of. jpm can build an executable if you declare one in your project.janet. of your code and libraries are pure Janet, then you only have to specify the Janet file that acts as the entry point.

                                                      But Janet doesn’t have to be compiled that way, it can run as a REPL, and/or as an interpreter. I’m sure you’re probably familiar with that level of flexibility of output.

                                              1. 11

                                                I agree that naturally recursive data types are probably the best way to teach recursion, but I disagree with the dismissal of the other examples because they “aren’t used in the real world.” This is a really silly argument— a “hello world” program is utterly useless in the real world but still is useful pedagogically.

                                                1. 6

                                                  The fibonacci and factorial examples also have pedagogical value especially when recrusion is being presented alongside concepts in discrete math. Both give way to simple properties which can be proved easily with mathematical induction, and induction is very useful when it comes to actually proving that recursive algorithms are correct.

                                                  1. 4

                                                    a “hello world” program is utterly useless in the real world but still is useful pedagogically.

                                                    um I’m not sure that I agree, I print strings to stdout pretty often, but I’ve never ever needed to compute a fibonacci number for anything

                                                    1. 2

                                                      You print strings to stdout, but do you print the string “hello world” to stdout? Or was the hello world program a nice way to teach you printing that was unrelated to real-world applications? One of the other classic pedagogical programs students have to write is a choose-your-own-adventure (teaching branching), yet I am not a VN developer. Was this a bad program to have me write?

                                                      1. 3

                                                        I view the hello world program as a way to get students (or programmers) familiar with the tools of the trade (or a new platform).

                                                      2. 1

                                                        I print strings to stdout pretty often

                                                        Yes, just as people use recursion pretty often; you’re missing the point.

                                                        You should be consistent in how generally you look at each example program.

                                                        Nobody applies printing in the real world to print only static values in the whole program, just as nobody applies recursion in the real world to fibonacci, but you’re looking at the generalities of hello world and the particulars of recursive fibonacci.

                                                        Both apply techniques that are used in the “real world”, even if the way they’re applied isn’t done in the real world. You can’t say, “but I do print values”, but then attack the fibonacci program when people do use recursion, which is what it’s demonstrating, not fibonacci itself, just as the hello world program isn’t demonstrating how to print the specific value, “Hello, world!”.

                                                    1. 10
                                                      1. PC in the room nearby (I work over USB and HDMI cables) no fan or other noises.
                                                      2. a inhouse spring? room fountain? (not sure about the english term) takes care of about 90% of the noises in my ears and distracts zilch comma nada.
                                                      3. pi hole blocks some things more during daytime, I would have to go up to the attic to change this (old house, internet still coming over copper wire on posts to the roof, router and pi hole are in the attic).
                                                      4. whiteboard, whiteboard markers (the thinner ones), post-its to make a plan for the week, green border around the portion of the day.
                                                      5. stop working something completely different (garden, sports, house, hobby, etc) if the portion of the day is done. Dont worry brain keeps running on the task, but can not clog up this way.

                                                      for video chat and conferences, I have a different place with an older thinkpad and a logitech cam in front of a sofa with neutral backdrop. I also use it for private lockdown/can-not-travel chatting. my office is sometimes my creative chaos (and will be), and I will never have the problem of someone spotting sensitive data. Plus I do not have the distraction of I might try to call XYZ, maybe he has time..

                                                      1. 2

                                                        a inhouse spring? room fountain? (not sure about the english term)

                                                        Perhaps you mean a white noise machine?

                                                        1. 2

                                                          I mean a “Zimmerbrunnen”, optically a close relative of this one: https://res.cloudinary.com/chal-tec/image/upload/w_545,q_auto,f_auto/bbg/10034777/Gallery/10034777_yy_0001_titel___Blumfeldt_Riverrun_Gartenbrunnen_Zimmerbrunnen.jpg

                                                          I got it from a friend who also has tinnitus, changed the broken pump, gave it a thorough run with the pressure washer and ever since it helps me ignore the noise in my ears, and also to focus my thoughts. It works even if I sit beneath a river or creek.

                                                          1. 1

                                                            That looks beautiful. Now I’m tempted to find one for my room

                                                          2. 2

                                                            They may mean one of those little indoor fountains with water trickling over rocks. They’re pretty and make a nice sound. But yeah, of course there are apps and machines to make similar sounds.

                                                            1. 2

                                                              I’ve found this to be one of the more useful things to do with my Echo Dot. I could put on soothing sounds like running water while snuggling my youngest to sleep. Better yet, I could change the sounds, adjust the volume, etc., all without shifting position to try to reach it and risking disturbing him as he’s drifting off.

                                                        1. 4

                                                          Apparently the trigger of this radare2 fork is this PR (which got merged in the follow-up PR which actually did it right), but then the person argueing against this change also seems involved in Rizin (“member” badge), so I’m confused.

                                                          1. 2

                                                            Relevant post from twitter.

                                                            1. 1

                                                              Thank you for the context. I was not aware of this side of the story.

                                                            2. 1

                                                              Good catch. I thought I understand it more or less, but I don’t think so at this moment.

                                                            1. 18

                                                              I certainly would like rust to become even more successful. But I feel like zig is going to take the lead in replacing C eventually, based on my limited knowledge. It’s far easier to integrate with existing C than rust is already. It has even easier ways of having multiple allocators (stack,pool etc) and allows for seamless async-await as far as I know. This makes it even better for usage in embedded environments and the harsh c world of Drivers, Kernels and so on.

                                                              Rust is a little bit too heavy or constraining it seems for those bare metal workloads and zig can just place itself as drop in replacement. Sure rust gives you even more guarantees, while zig feels like a tidy C in that aspect. But this may be more desirable than to fit your stuff into rusts totally different world. Or writing loads of unsafe code, while 99% of your Linux Kernel may already be a bunch of unsafe hacks to allow the speed and integration it has.

                                                              On the other side are the people that enjoy strong typing but don’t want to interact with the borrow checker, here Nim may be more of an option. Meanwhile Deno/Typescript, Ruby and Python are still staying strong in that field.

                                                              And replacing numpy with a rust-ish library sounds nice. But we shouldn’t forget that there are still loads of Fortran libs underneath those heavily utilized python libs.

                                                              This may sound pessimistic so I’d really like to get some different opinions on my thoughts.

                                                              1. 5

                                                                This may sound pessimistic so I’d really like to get some different opinions on my thoughts.

                                                                Sure.

                                                                Rust is a little bit too heavy or constraining it seems for those bare metal workloads…

                                                                There are a few examples of Rust being used in “bare metal” environments. I wouldn’t say it’s constraining to the point that “bare metal” software can’t be written in it. Rust is billed as a “systems programming language”, after all.

                                                                Sure rust gives you even more guarantees, while zig feels like a tidy C in that aspect. But this may be more desirable than to fit your stuff into rusts totally different world. Or writing loads of unsafe code, while 99% of your Linux Kernel may already be a bunch of unsafe hacks to allow the speed and integration it has.

                                                                I didn’t fully understand this point. That valuing performance over safety guarantees is a trade-off worth making?

                                                                On the other side are the people that enjoy strong typing but don’t want to interact with the borrow checker, here Nim may be more of an option. Meanwhile Deno/Typescript, Ruby and Python are still staying strong in that field.

                                                                Garbage collection is certainly another viable approach to the problem of memory safety. Though, some may argue that GC pauses are inappropriate for an embedded system running some sort of real-time application.

                                                                And replacing numpy with a rust-ish library sounds nice. But we shouldn’t forget that there are still loads of Fortran libs underneath those heavily utilized python libs.

                                                                I believe Fortran is relatively safe. IIRC the speed of Fortran arises from aliasing not being allowed in the language.

                                                                Zig is cool, but the size of its user base is much smaller than Rust’s, ergo I expect more effort to be poured into the Rust language.

                                                                1. 2

                                                                  That valuing performance over safety guarantees is a trade-off worth making?

                                                                  Sometimes it is. Sometimes, if you don’t prioritize performance, the code is incorrect, and the fact the code is safer doesn’t make it correct. Just buying a faster processor isn’t always a solution, either.

                                                                2. 7

                                                                  Yeah, Rust is more of the C++ replacement than C.

                                                                  1. 14

                                                                    Rust has attracted a lot of people (including me) who wanted a better C, and don’t think that C++ is a better C.

                                                                    I agree that zig is closer to being a direct C replacement. However, after using Rust I also got used to quality-of-life improvements it brings, so there’s no going back for me :)

                                                                    1. 4

                                                                      But D though… >_<

                                                                    2. 2

                                                                      I am unsure if Zig can take the lead in replacing Rust. Successfully replacing a language such as C, in my opinion, can only be a combination of (1) a strong value proposition, (2) ability to gain traction within a developer community, (3) gain traction in larger organisations. I believe the first aspect, both Rust and Zig has. What I believe Rust has, that makes it a prime candidate for replacing C in some ares, is that it has a very strong developer community that is develops integrations into wide variety of developer tools (e.g. IntelliJ Rust support), a strong ecosystem (crates.io, cargo) and advocates highly for it. In addition, it gains tractions within larger organisations and allows people to work paid on the Rust ecosystem. While Zig might be better suited, in my opinion, other factors play a significant role where Rust is really strong atm, in addition to have a strong value proposition.

                                                                    1. 1

                                                                      w.r.t the lack of package management for Guile, have you looked at akku.scm?

                                                                      1. 2

                                                                        Yeah. And guild hall as well. Akku is the more promising one, but I think the problem is it will take some years it gains the momentum of something like Quicklisp. That’s probably a never though. For Guile I think Guix is the best option since with it you can combine C builds effortlessly, but for scheme in general Akku seems very, very promising.

                                                                        Huh, I totally forgot to mention in the blog entry that CHICKEN is also a fantastic scheme implementation. Guile is a bit easier on the developer, but if you look close enough, they both are very practical though CHICKEN is more standalone, and I think there are some German companies actually using it in production.

                                                                        1. 1

                                                                          I love CHICKEN as a Scheme implementation. The package manager there feels quite a bit more like Quicklisp than, say, Akku. Gerbil/Gambit is another Scheme I’m fond of, though it lacks the community aspect I associate with CHICKEN.