20 votes

So who's using Rust, Go, Dart, D, or other less used or esoteric languages?

And what are you doing with them, I want ti know and I think others do to.

34 comments

  1. [2]
    jgb
    Link
    I use Rust. The most substantial projects I've used it for so far are: A CLI client for a web application A small static site generator I've enjoyed using it. It's painfully verbose at times, but...

    I use Rust. The most substantial projects I've used it for so far are:

    • A CLI client for a web application

    • A small static site generator

    I've enjoyed using it. It's painfully verbose at times, but the toolchain is top notch and I love the robustness of the resultant binaries. Also, when you write code idiomatically, it can be very elegant indeed.

    11 votes
    1. aleph
      Link Parent
      Nice, I'm almost finished with: Version Two of a MIPS 1 assembler. A ps clone with added functionality. A REST API HTTP server for my personal portfolio and my implementation of the EVM. With the...

      Nice, I'm almost finished with:

      • Version Two of a MIPS 1 assembler.
      • A ps clone with added functionality.
      • A REST API HTTP server for my personal portfolio
      • and my implementation of the EVM.

      With the assembler I just dived down to rewrite a nested tree of match statements into a single match with a iter().map(|x| match x{}) inside it.

      2 votes
  2. [17]
    Elijah
    Link
    I've been loving Go. It appeals to me in all the ways Python repulses me. It forces me to declare variables, forces me to be super clear about variable type, it will not let me accidentally...

    I've been loving Go. It appeals to me in all the ways Python repulses me. It forces me to declare variables, forces me to be super clear about variable type, it will not let me accidentally include useless statements (or declare but not use variables). It does not care if I mix tabs and spaces for indentation.

    7 votes
    1. [3]
      GyroTech
      Link Parent
      I like Go, but really find myself missing inheritance. Yeah I know you should redo everything with interfaces, but then I have to either copy the interface implementation into different packages,...

      I like Go, but really find myself missing inheritance. Yeah I know you should redo everything with interfaces, but then I have to either copy the interface implementation into different packages, or create another interface abstraction just for the shared portion of code... I find I can completely loose track of which packages implement what on anything other than the smallest projects.

      I think I've got some sort of conceptual block that once I crack it will all become clear. I can only hope that my side projects keep chipping away at it :)

      6 votes
      1. [2]
        Elijah
        Link Parent
        Yeah, inheritance is different in Go, that's true. It hasn't begun to bother me yet, though.

        Yeah, inheritance is different in Go, that's true. It hasn't begun to bother me yet, though.

        2 votes
        1. GyroTech
          (edited )
          Link Parent
          I'm not sure if I don't get it, or the examples I use to learn are abstracting for abstractions' sake and just making everything that little bit harder to follow without real need. Edit: other...

          I'm not sure if I don't get it, or the examples I use to learn are abstracting for abstractions' sake and just making everything that little bit harder to follow without real need.

          Edit: other than the usual tour of Go, Effective Go, do you have any recomendable sources? I would love to see practical examples of things like what NOT to test... A lot of my code so far is often just wrapping one or two functions of a third party library, and testing that requires creating interfaces for the library calls that the test later mocks out. I end up with 200+ lines to test a 5-line function.

    2. [6]
      tyil
      Link Parent
      No compiler should accept this.

      It does not care if I mix tabs and spaces for indentation.

      No compiler should accept this.

      3 votes
      1. [2]
        majackson
        Link Parent
        If the whitespace is not significant in a language (as it is in Python), why should the compiler care?

        If the whitespace is not significant in a language (as it is in Python), why should the compiler care?

        1 vote
        1. tyil
          Link Parent
          It's a joke, implying that mixing them is so disgusting, it should never be allowed.

          It's a joke, implying that mixing them is so disgusting, it should never be allowed.

          1 vote
      2. [3]
        Tardigrade
        Link Parent
        I never understood why tabs and spaces shouldn't be interchangable. I'm not a professional coder but I've done a fair bit. Could someone explain why?

        I never understood why tabs and spaces shouldn't be interchangable. I'm not a professional coder but I've done a fair bit. Could someone explain why?

        1. [2]
          tyil
          Link Parent
          Because they aren't. A tab is variable width, a space is not. Tabs are a character created for indentation, whereas spaces are not. As such, it is technically more correct (in my opinion) to use...

          Because they aren't. A tab is variable width, a space is not. Tabs are a character created for indentation, whereas spaces are not. As such, it is technically more correct (in my opinion) to use tabs for indentation.
          I have to make it clear that I am talking solely about indentation, not alignment of characters.

          When you start mixing a variable width with a fixed width character, you ensure that people will have to adapt to your weird choice of indentation. It will make code shown on pages which cannot (easily) be altered, such as source code viewed through Github, harder to read. Things that should be on a similar level of indentation, are no longer all on the same level. It's annoying to everyone reading your code that does not have the same environment as you do, and for no logical reason.

          3 votes
          1. Tardigrade
            Link Parent
            So tabs are designed for indentation whereas spaces are not and when you mix them it might look fine to you but fucked to someone else so consistancy is important for working with other people....

            So tabs are designed for indentation whereas spaces are not and when you mix them it might look fine to you but fucked to someone else so consistancy is important for working with other people. Makes sense.

            1 vote
    3. [7]
      jgb
      Link Parent
      lol no generics More seriously, do you find yourself feeling limited by the lack of 'power' that Go is notorious for? Or do you find the simplicity freeing?
      lol no generics
      

      More seriously, do you find yourself feeling limited by the lack of 'power' that Go is notorious for? Or do you find the simplicity freeing?

      2 votes
      1. [6]
        Elijah
        Link Parent
        I make a fuck-ton of typos. I want as much strictness as the compiler can apply to let me catch the bugs / errors before they become runtime issues. (For context, I think of C as the first real...

        I make a fuck-ton of typos. I want as much strictness as the compiler can apply to let me catch the bugs / errors before they become runtime issues. (For context, I think of C as the first real language I learned, Perl as C on easy mode, and almost every other language in terms of how it's different from C.)

        1 vote
        1. [5]
          jgb
          Link Parent
          Wouldn't Rust appeal more than Go then? Not criticising, just trying to understand your thought process.

          I want as much strictness as the compiler can apply to let me catch the bugs / errors before they become runtime issues.

          Wouldn't Rust appeal more than Go then? Not criticising, just trying to understand your thought process.

          1 vote
          1. [4]
            Elijah
            Link Parent
            I haven't tried Rust, so I can't say. At the super-high-level summary view, people say Go is like C and Rust is like C++. That lead me to try Go. C++ is a mess, IMHO.

            I haven't tried Rust, so I can't say. At the super-high-level summary view, people say Go is like C and Rust is like C++. That lead me to try Go. C++ is a mess, IMHO.

            1. [3]
              aleph
              Link Parent
              So what issues do you have exactly with C++, yes I know there are tons. But I want to know your exact issues and then I'll compare them side by side with Rust. Give you an overview and what not,...

              So what issues do you have exactly with C++, yes I know there are tons. But I want to know your exact issues and then I'll compare them side by side with Rust. Give you an overview and what not, since as an application and systems language I think it's top notch.

              1 vote
              1. [2]
                Elijah
                Link Parent
                Well, my main issue with C++ these days is I've only done bug-fixes, not new coding, in over a decade. And when I really learned C++, it was from second edition Stroustrup where C++ really looked...

                Well, my main issue with C++ these days is I've only done bug-fixes, not new coding, in over a decade. And when I really learned C++, it was from second edition Stroustrup where C++ really looked like C with a different pre-processor. It feels a lot more evolved now.

                1. aleph
                  Link Parent
                  Hmm, some fair points. I'll work on a little write up tomorrow then since I think you'd like Rust fairly well.

                  Hmm, some fair points. I'll work on a little write up tomorrow then since I think you'd like Rust fairly well.

                  2 votes
  3. [2]
    havoc
    Link
    Rust and Go do most definitely not count as less used esoteric languages, though. Better start somewhere below R and Closure.

    Rust and Go do most definitely not count as less used esoteric languages, though. Better start somewhere below R and Closure.

    5 votes
    1. aleph
      Link Parent
      It all depends on how you define things as less used or esoteric. I was just hoping to get talking about languages that aren't the standard gamut of C, C++, Java, C#, etc.

      It all depends on how you define things as less used or esoteric. I was just hoping to get talking about languages that aren't the standard gamut of C, C++, Java, C#, etc.

      6 votes
  4. [3]
    Silbern
    Link
    I program in lisp sometimes, if that counts. What do I use it for? Emacs... :P (more specifically spacemacs, a set of emacs extensions that makes it resemble vim. I can't stand Emacs with its...

    I program in lisp sometimes, if that counts. What do I use it for? Emacs... :P (more specifically spacemacs, a set of emacs extensions that makes it resemble vim. I can't stand Emacs with its default keybindings)

    3 votes
    1. [2]
      tyil
      Link Parent
      The vim part is mostly just the evil-mode package. Spacemacs is a community-run configuration framework for Emacs. It does quite a lot more than just make Emacs resemble vim, and it doesn't have...

      The vim part is mostly just the evil-mode package. Spacemacs is a community-run configuration framework for Emacs. It does quite a lot more than just make Emacs resemble vim, and it doesn't have to do that to begin with either.

      2 votes
      1. Silbern
        Link Parent
        That's true, but it was undoubtly their biggest selling point early on and what drew myself and many other people to it. On the frontpage of their website, they still have the tagline "The best...

        That's true, but it was undoubtly their biggest selling point early on and what drew myself and many other people to it. On the frontpage of their website, they still have the tagline "The best editor is neither Emacs nor Vim, it's Emacs and Vim!" front and center. But you make a good point, it was an incomplete explanation.

        2 votes
  5. deciduous
    Link
    I've been using Dart to make an app for about two weeks now. Probably halfway through the app (minus intense testing, changes based on feedback, etc.) and I'm really loving it. It has some...

    I've been using Dart to make an app for about two weeks now. Probably halfway through the app (minus intense testing, changes based on feedback, etc.) and I'm really loving it. It has some fantastic built in features and widgets and the ability to make both Android and iOS without using React is really nice.

    Pros:

    FutureBuilder is the most useful widget I've ever used, really powerful and easy to write async widget
    Stateful widgets are great in general
    For the most part, the UI building is pretty straightforward and rarely has issues now that I'm good with it.

    Cons:

    Error messages tend to be extremely unhelpful
    Occasional bugs in the building of the app through android studio
    Lack of options in specific widgets means you have to settle for less than what you wanted, or spend a lot of time building your own widgets

    2 votes
  6. [4]
    tyil
    Link
    I'm using Perl 6, which seems to be frowned upon by many due to the name Perl. It is a very well thought-out language that seems to check all the boxes required to be considered a modern language,...

    I'm using Perl 6, which seems to be frowned upon by many due to the name Perl. It is a very well thought-out language that seems to check all the boxes required to be considered a modern language, though. And it doesn't check a couple from a certain category, it checks all of them.

    Currently I'm working on a larger project with it that I'm keeping to myself. Maybe I'll make a Tildes post about it later on when I feel like sharing it with the world.

    Other than that, I've been using Perl 6 for personal projects for over a year now. This includes an IRC bot (my personal favourite to get used to a new language), a module to assist in writing modules, an MPD service to auto-queue new tracks in the background and an MPD notification daemon (using notify-send, I'll hook it into the libnotify library later on so I don't have to shell out).

    I'm also working on a module to build database queries programmatically, and porting the Funtoo tool funtoo-report. from Perl 5 to Perl 6 to learn more of both languages and promote the language with the funtoo-report maintainers. It might also become interesting to compare the codebases of both projects at some point.

    2 votes
    1. [3]
      aleph
      Link Parent
      Hey a Perl6 user! :D It honestly seems like a really interesting language, I'd pick it up but Rust does what I need and for any other cases I have python, Golang, etc. Don't really need to be...

      Hey a Perl6 user! :D It honestly seems like a really interesting language, I'd pick it up but Rust does what I need and for any other cases I have python, Golang, etc. Don't really need to be learning a new general purpose language right now.

      1. [2]
        tyil
        Link Parent
        It might become interesting if you want to combine doing <any modern feature> with Unicode support. Languages like Python which made a big deal out of Unicode still don't support it quite well. As...

        It might become interesting if you want to combine doing <any modern feature> with Unicode support. Languages like Python which made a big deal out of Unicode still don't support it quite well. As an example, Python still uses byte count to define string length, whereas Perl 6 can do byte and character count, and clearly seperates them, with the go-to method of getting a string's length is chars as per the docs, as this is usually what people are actually interested in nowadays.

        Python, for instance, counts this (SKULL AND CROSSBONES VARIATION SELECTOR-16*) as 2:

        >>> len("☠️");
        2
        

        whereas most people would consider this a string with 1 thing in it, which is also what Unicode thinks it is, and Perl 6 correctly interprets it as such:

        > "☠️".chars
        1
        

        If you're ever going to consider a new general purpose language, feel free to drop by on #perl6 on Freenode, we'll gladly help you out if needed.

        *: I looked up this name using Perl 6 :D

        2 votes
        1. aleph
          Link Parent
          Heh, thanks but I think I'll stick with rust. Has some pretty damn good unicode support. Thanks though. :)

          Heh, thanks but I think I'll stick with rust. Has some pretty damn good unicode support. Thanks though. :)

  7. szferi
    Link
    Mostly Go. I have used it since pre 1.0 it works fine I like it limitations and the effort the lang desiners put it to keep its simlicity. Also go func is great! ;)

    Mostly Go. I have used it since pre 1.0 it works fine I like it limitations and the effort the lang desiners put it to keep its simlicity. Also go func is great! ;)

    1 vote
  8. [4]
    teaearlgraycold
    Link
    I made a combination web application/IRC bot in Elixir a couple of months ago. Exilir's my first purely functional language. Given that and learning about OTP it was a pretty rewarding experience.

    I made a combination web application/IRC bot in Elixir a couple of months ago. Exilir's my first purely functional language. Given that and learning about OTP it was a pretty rewarding experience.

    1 vote
    1. [3]
      aleph
      Link Parent
      I tried learning Elixir/Erlang ages ago, honestly it was the syntax that put me off. Found it more weird then other functional languages.

      I tried learning Elixir/Erlang ages ago, honestly it was the syntax that put me off. Found it more weird then other functional languages.

      1 vote
      1. [2]
        teaearlgraycold
        Link Parent
        Erlang feels weird, but Elixir is very close to Ruby syntactically.

        Erlang feels weird, but Elixir is very close to Ruby syntactically.

        1. aleph
          Link Parent
          Yeah I can definitely see that, iirc I believe it was formed partially by a bunch of Ruby devs.

          Yeah I can definitely see that, iirc I believe it was formed partially by a bunch of Ruby devs.

          1 vote