Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Tell me if I'm being stupid...

Tell me if I'm being stupid...

Scheduled Pinned Locked Moved The Lounge
javascriptc++comsecuritybusiness
39 Posts 19 Posters 4 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M megaadam

    I would warmly recommend you to recommend you to take a peek at Go. It is very C-style, has amazing libraries, generous tutorials, and it can hardly be called a "young" language anymore (Born in the USA, 2009). If you like the look of it, I am pretty sure you will never be disappointed by the [set of] libraries. For example: Go by Example: HTTP Client[^] Go by Example: Regular Expressions[^]

    "If we don't change direction, we'll end up where we're going"

    J Offline
    J Offline
    Jeremy Falcon
    wrote on last edited by
    #11

    Keep in mind, I did ask to keep the zealotry out of it. I realize it was a warm suggestion, but let me put this way... 99% of devs that lack hardcore experience tend to think the language they chose is the best one. I passed that stage a loooooong time ago. I need facts, empirical data, the voice of experience, to make sure I'm being heard, etc. to ever convince me of anything these days. Currently, I'd use Rust before I used Go. Go is still garbage collected and incurs a runtime penalty. While Rust has some runtime abstractions as well, it's not as much as Go. I have absolutely nothing against Go. It's just not what I want for this project. The whole idea behind my choice in a lower gen language is raw speed. While Go is most certainly faster than say JavaScript, it's still not bare metal. So, then it would be a "good enough" situation where I still know I could do better, in which case I may as well just stick with JavaScript/Node.js (what the app is currently in) if "good enough" is the standard I'm willing to accept.

    Jeremy Falcon

    M 1 Reply Last reply
    0
    • J Jeremy Falcon

      Keep in mind, I did ask to keep the zealotry out of it. I realize it was a warm suggestion, but let me put this way... 99% of devs that lack hardcore experience tend to think the language they chose is the best one. I passed that stage a loooooong time ago. I need facts, empirical data, the voice of experience, to make sure I'm being heard, etc. to ever convince me of anything these days. Currently, I'd use Rust before I used Go. Go is still garbage collected and incurs a runtime penalty. While Rust has some runtime abstractions as well, it's not as much as Go. I have absolutely nothing against Go. It's just not what I want for this project. The whole idea behind my choice in a lower gen language is raw speed. While Go is most certainly faster than say JavaScript, it's still not bare metal. So, then it would be a "good enough" situation where I still know I could do better, in which case I may as well just stick with JavaScript/Node.js (what the app is currently in) if "good enough" is the standard I'm willing to accept.

      Jeremy Falcon

      M Offline
      M Offline
      megaadam
      wrote on last edited by
      #12

      I never said Go "best". I too am old enuff to to agree that "best" does not exist. I might have read your post (and requirements) a tad to quickly, still I dunno why the word "zealotry" had to be repeated.

      "If we don't change direction, we'll end up where we're going"

      J 1 Reply Last reply
      0
      • M megaadam

        I never said Go "best". I too am old enuff to to agree that "best" does not exist. I might have read your post (and requirements) a tad to quickly, still I dunno why the word "zealotry" had to be repeated.

        "If we don't change direction, we'll end up where we're going"

        J Offline
        J Offline
        Jeremy Falcon
        wrote on last edited by
        #13

        Bruh... bro... dude... You uh, eggshells much?

        Jeremy Falcon

        T 1 Reply Last reply
        0
        • J Jeremy Falcon

          Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

          D Offline
          D Offline
          Daniel Pfeffer
          wrote on last edited by
          #14

          Practically any standardised language (and many that are not) have libraries that can meet your requirements. I'd say that more depends on the target environment. On Windows, I would choose C# or C++. On Linux, I would choose C++, Rust, or C# (if the Mono environment meets your requirements). Having said that, I'm sure that these days you can even find libraries for Fortran and COBOL. :)

          Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

          J 1 Reply Last reply
          0
          • J Jeremy Falcon

            Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

            S Offline
            S Offline
            stunt Stand
            wrote on last edited by
            #15

            Equipped with retractable features, this https://stuntstand.com/[^]stunt stand can be easily folded and stored when not in use. Its design facilitates convenient transportation and quick setup on set, making it an ideal choice for production environments that require flexibility and efficiency.

            J 1 Reply Last reply
            0
            • D Daniel Pfeffer

              Practically any standardised language (and many that are not) have libraries that can meet your requirements. I'd say that more depends on the target environment. On Windows, I would choose C# or C++. On Linux, I would choose C++, Rust, or C# (if the Mono environment meets your requirements). Having said that, I'm sure that these days you can even find libraries for Fortran and COBOL. :)

              Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

              J Offline
              J Offline
              Jeremy Falcon
              wrote on last edited by
              #16

              Totally agree buddy. I like Zig, but it's not a standardized language yet. It's just so new to the party. So, now I gotta decide if I want to be cool or stable. :laugh:

              Daniel Pfeffer wrote:

              I'm sure that these days you can even find libraries for Fortran and COBOL.

              Real talk, there's a masochistic part of me that thinks doing it in COBOL would be funny. :laugh:

              Jeremy Falcon

              1 Reply Last reply
              0
              • S stunt Stand

                Equipped with retractable features, this https://stuntstand.com/[^]stunt stand can be easily folded and stored when not in use. Its design facilitates convenient transportation and quick setup on set, making it an ideal choice for production environments that require flexibility and efficiency.

                J Offline
                J Offline
                Jeremy Falcon
                wrote on last edited by
                #17

                Thanks man. It seems to be the best compromise would be to use the C libraries in Zig, but I have years of experience working with C so what's the real gain ya know? Maybe I just need to man up and make a choice already. :laugh:

                Jeremy Falcon

                1 Reply Last reply
                0
                • J Jeremy Falcon

                  Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

                  Richard Andrew x64R Offline
                  Richard Andrew x64R Offline
                  Richard Andrew x64
                  wrote on last edited by
                  #18

                  Just out of curiosity, is Zig binary compatible with C? Can it do COM?

                  The difficult we do right away... ...the impossible takes slightly longer.

                  J 1 Reply Last reply
                  0
                  • Richard Andrew x64R Richard Andrew x64

                    Just out of curiosity, is Zig binary compatible with C? Can it do COM?

                    The difficult we do right away... ...the impossible takes slightly longer.

                    J Offline
                    J Offline
                    Jeremy Falcon
                    wrote on last edited by
                    #19

                    Richard Andrew x64 wrote:

                    Just out of curiosity, is Zig binary compatible with C? Can it do COM?

                    Keep in mind I'm still new to it, but the short answer is yes. From a pure binary perspective it'll be 100% compatible with clang or any compiler using LLVM. There are talks in the future to replace LLVM, but that's no biggie as it'll still support C ABIs. One of the core features is you can easily use a C library in Zig and you can easily use a Zig library in C. So, even if LLVM is dumped, that'll never change. As far as COM goes. I haven't used Zig on Windows yet, but in theory as long as there are C bindings for COM, you can use it in Zig. You can use the [Win32 API](https://github.com/marlersoft/zigwin32), so it should work. Besides the little tiny "oh that's cool" things, the two biggest sales pitches to Zig are interoperability with C and comptime (which is waaaaaaaay nicer than macros).

                    Jeremy Falcon

                    Richard Andrew x64R 1 Reply Last reply
                    0
                    • J Jeremy Falcon

                      Richard Andrew x64 wrote:

                      Just out of curiosity, is Zig binary compatible with C? Can it do COM?

                      Keep in mind I'm still new to it, but the short answer is yes. From a pure binary perspective it'll be 100% compatible with clang or any compiler using LLVM. There are talks in the future to replace LLVM, but that's no biggie as it'll still support C ABIs. One of the core features is you can easily use a C library in Zig and you can easily use a Zig library in C. So, even if LLVM is dumped, that'll never change. As far as COM goes. I haven't used Zig on Windows yet, but in theory as long as there are C bindings for COM, you can use it in Zig. You can use the [Win32 API](https://github.com/marlersoft/zigwin32), so it should work. Besides the little tiny "oh that's cool" things, the two biggest sales pitches to Zig are interoperability with C and comptime (which is waaaaaaaay nicer than macros).

                      Jeremy Falcon

                      Richard Andrew x64R Offline
                      Richard Andrew x64R Offline
                      Richard Andrew x64
                      wrote on last edited by
                      #20

                      I agree that interoperability is crucial. Microsoft certainly thinks so. That's why they put so much effort into making Platform Invoke work so well.

                      The difficult we do right away... ...the impossible takes slightly longer.

                      N 1 Reply Last reply
                      0
                      • Richard Andrew x64R Richard Andrew x64

                        I agree that interoperability is crucial. Microsoft certainly thinks so. That's why they put so much effort into making Platform Invoke work so well.

                        The difficult we do right away... ...the impossible takes slightly longer.

                        N Offline
                        N Offline
                        Nelek
                        wrote on last edited by
                        #21

                        Richard Andrew x64 wrote:

                        That's why they put so much effort into making Platform Invoke work so well.

                        Only because they put so much effort... :rolleyes: ;P :laugh:

                        M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.

                        1 Reply Last reply
                        0
                        • J Jeremy Falcon

                          Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

                          O Offline
                          O Offline
                          obermd
                          wrote on last edited by
                          #22

                          I challenge your second requirement for regex. Unless your project is a web based regex explainer/tester, regex is a tool and not an end user visible requirement.

                          J 1 Reply Last reply
                          0
                          • O obermd

                            I challenge your second requirement for regex. Unless your project is a web based regex explainer/tester, regex is a tool and not an end user visible requirement.

                            J Offline
                            J Offline
                            Jeremy Falcon
                            wrote on last edited by
                            #23

                            You can challenge it all you want. That means nothing to me. Now, I'm just gonna assume you're not flat-out lying about this little CTO thing you got in your bio... But, if you reread the post, I mention needing to handle web requests. Now, can you imagine the need to able to parse a body response that many or may not be what you anticipated? Ever use the web before, where people say they're RESTful but they're not... especially in error conditions? I could go on, but you already missed the entire point of the post man. :|

                            Jeremy Falcon

                            C 1 Reply Last reply
                            0
                            • J Jeremy Falcon

                              Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

                              G Offline
                              G Offline
                              Gary Stachelski 2021
                              wrote on last edited by
                              #24

                              OK, so tell me why you hate GO (language not the game).

                              J 1 Reply Last reply
                              0
                              • G Gary Stachelski 2021

                                OK, so tell me why you hate GO (language not the game).

                                J Offline
                                J Offline
                                Jeremy Falcon
                                wrote on last edited by
                                #25

                                I don't. I promise I don't. It has an execution engine that runs at runtime and a garbage collector. I'm looking for a language that doesn't. The nerd in me is looking for raw speed for this app though. I'm sure it's a great language man. Promise I don't hate it.

                                Jeremy Falcon

                                1 Reply Last reply
                                0
                                • J Jeremy Falcon

                                  dandy72 wrote:

                                  IMO, the risk with a "young" language is that the original team behind it gets tired of it and the rest of the community isn't large or committed enough to keep it going, and it becomes an unsupported dead-end. It's a Catch-22, it's gotta have the traction to keep going, but you need to have enough people with a vested interest to do so.

                                  100% agree. That's why I've ignored most newfangled languages. Zig is different. Yeah they're young (compared to old farts), but the peeps behind it are serious and pretty smart. There's already an established foundation behind it that just got $21.1m in their series B and a community that's really growing. I'm completely confident this language will continue to grow and mature.

                                  dandy72 wrote:

                                  That's the first question I'd ask myself. Do you get a feeling that if the entire team suddenly died in a plane crash, the project would go on?

                                  I think so. Been wrong before, but this one is different than languages like [Odin](https://odin-lang.org/) (these kids watch too many cartoons I swear). I could be wrong again, but I'm not sure the Odin project would survive without the one dude behind it.

                                  dandy72 wrote:

                                  Without a contingency plan, the risk is entirely on you. Cool syntax and all technical wizardry under the hood seem entirely irrelevant without that.

                                  100% agree buddy. Dang, this should be easy to choose. :wtf:

                                  Jeremy Falcon

                                  P Offline
                                  P Offline
                                  Peter Jamieson
                                  wrote on last edited by
                                  #26

                                  Do you have time/energy to do both Zig and C, side-by-side? Could be some useful results from that, both for you and others, and if you start seeing problems on the Zig side, you've got a fallback.

                                  J 1 Reply Last reply
                                  0
                                  • J Jeremy Falcon

                                    Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

                                    G Offline
                                    G Offline
                                    giulicard
                                    wrote on last edited by
                                    #27

                                    Jeremy Falcon wrote:

                                    Zig is to C as Rust is to C++

                                    The main point of using Zig is that according to the author of the language it should encourage the DOD style, i.e., Data Oriented Design. As you rightly said, Zig is comparable with C. Since this “practice” tends to produce “cache-friendly” code, using Zig might be even better than using C, from the point of view of pure computational power. Even with C (and C++) you can write “cache-friendly” code, but you have to be careful how you write it. That said, I don't use Zig, so I may be talking rubbish.

                                    1 Reply Last reply
                                    0
                                    • J Jeremy Falcon

                                      Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

                                      M Offline
                                      M Offline
                                      MikeCO10
                                      wrote on last edited by
                                      #28

                                      I'd answer your question in a language agnostic manner. You're not being stupid, but being cautious. To me, whether you need to be that cautious or not is entirely up to you. You mention that it's a 'personal' project with no time constraints. In the pure sense of that, you can throw caution to the wind and have fun! But, if the definition of personal means that you might hope that it turns into an MVP down the road, I'd stay with the tried and true. Aside from being the shiny object, would Zig get you where you want to be that much faster? Along with realizing that it may never get to 1.0. Sometimes the back of your head has the right answer even though your eyes may see it another way :)

                                      J 1 Reply Last reply
                                      0
                                      • J Jeremy Falcon

                                        Please no zealot type replies. Looking for intellectual discourse amongst those not afraid of change, based on real life experience, etc. I also realize the target audience here will always lean towards C-style languages, so please be objective. But, I'm torn. For this project I'm about to embark on, I have two mandatory requirements. Everything is optional. 1) It's gotta be able to do web requests. 2) I gotta be able to know I can do regex... should I need it. Regex has saved my butt so many times I will never use a language without. Just won't happen. So, back in the day, in C at least, for these two solves I would just use [libcurl](https://curl.se/libcurl/) and [libpcre2](https://github.com/PCRE2Project/pcre2). I don't know about you guys, but that got old. It's a hell of a lot easier to handle these requirements in higher level languages. But, I need the speed here because I want this application to represent the best of what I can do... not half arse it because it's easy. I wanna be proud of this; otherwise, I'd just use JavaScript/Node.js. So, that brings me to Zig (yes, I said it :laugh:). If I were to give a 2 second overview, Zig is to C as Rust is to C++. And that really, really got me interested. I'm an old fart, and this is a new smell. Cool. However... Despite all the niceties of Zig, it's still young with 1.0 being years away I'm sure. It can do web requests, but that just came out months ago and it cannot connect to some [TLS servers](https://github.com/ziglang/zig/issues/17446). Which means, I'd still be using `libcurl` anyway to be able to reliably do web requests... just in Zig. I'm sure it'll improve in time, but that may be a couple years from now. It's still so young. Same thing goes with regex, there are _some_ regex libraries by people, but nothing official as part of the language yet. And, the ok "zig style" third party ones I've seen don't support UTF-8 for instance. So, for now, I'd still be using `libpcre2` as well. Edit: There is POSIX regex, but ideally this app would be cross platform and that would still be C-style anyway. I want something new (a lot); I'm not afraid of moving on from C if I can find something that has the same philosophy of it (KISS). But, I also want things to work reliably. And unfortunately, it may be that Zig is still too young for this for the next couple of years. There's absolutely nothing preventing me from using C libraries in Zig. So, I can use these libraries and just eventually migrate over to the "zig way" in

                                        S Offline
                                        S Offline
                                        Steve Naidamast
                                        wrote on last edited by
                                        #29

                                        Stick with C or move to C++. We also now have Rust. Anything else and you could be risking more than you would want...

                                        Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com

                                        1 Reply Last reply
                                        0
                                        • M MikeCO10

                                          I'd answer your question in a language agnostic manner. You're not being stupid, but being cautious. To me, whether you need to be that cautious or not is entirely up to you. You mention that it's a 'personal' project with no time constraints. In the pure sense of that, you can throw caution to the wind and have fun! But, if the definition of personal means that you might hope that it turns into an MVP down the road, I'd stay with the tried and true. Aside from being the shiny object, would Zig get you where you want to be that much faster? Along with realizing that it may never get to 1.0. Sometimes the back of your head has the right answer even though your eyes may see it another way :)

                                          J Offline
                                          J Offline
                                          Jeremy Falcon
                                          wrote on last edited by
                                          #30

                                          MikeCO10 wrote:

                                          To me, whether you need to be that cautious or not is entirely up to you.

                                          Good point. Think I'm just in over worry mode, because that's what good times are made of. :laugh:

                                          MikeCO10 wrote:

                                          But, if the definition of personal means that you might hope that it turns into an MVP down the road, I'd stay with the tried and true.

                                          Good point. This project is personal to me, but it still needs to function as if it were not. I'll never resale it as I do not want to support it, but it needs to be rock solid no different than a commercial app.

                                          MikeCO10 wrote:

                                          Aside from being the shiny object, would Zig get you where you want to be that much faster? Along with realizing that it may never get to 1.0. Sometimes the back of your head has the right answer even though your eyes may see it another way

                                          You speak from experience. :) I'll admit I did get caught up in the new shiny object thing a bit since AFAIK there hasn't been a viable "C 2.0" as it were until now IMO. I'm pretty sure they're serious enough to take it to 1.0, but yeah you're right... either way it's a gamble.

                                          Jeremy Falcon

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups