1. 2

    Dasp is great. I think rust audio development is in an interesting era right now - there seem to be a wealth of libs and bindings and decoders, but no encoders. Rust seems like a great fit for DSP. Can’t wait for those libs to mature.

    1. 2

      I use a modified Dvorak layout on a datahand keyboard. It’s not too hard to use hjkl in their current place. It is a little frustrating at first but that’s how you know that you’re learning. Just keep at it.

      1. 0

        I think the author sums up my feelings pretty well.

        1. 2
          • Learning Scala, because it someone recommended it and it seemed really interesting. From my little usage of it so far, it feels like Java meets Rust.
          • Sleep. A lot. I am running purely on caffeine right now.
          • Probably play some more Skyrim and Diablo III.
          • Work more on my nixinfo crate, I managed to get quite a bit of work done on it. Now most functions will output to a Result<String> instead of a String, and I managed to slim it down some.
          • Probably test out a bunch of more programming languages. I love Rust and all, but using the one same language all the time can get… ugh. Too bad it’s hard to find languages I haven’t already tried:
            • I don’t like C, C++, Dart, Go, JS, Python, Ruby, nor Swift.
            • Fortran, OCaml, Lisp, Nim, Pascal, and Perl are ok, but not something I’d prefer.
            • Zig is interesting but confusing.
            • I like PHP, but I have no use case for it.
          1. 2

            I find your list of programming languages very interesting! How much Scheme have you tried? If you’ve only tried Common Lisp, I’d give Scheme a chance on its own. They’re philosophically quite different.

            Also, what about PHP is up your alley? Most of your other language preferences make sense to me in context, but PHP is confusing to me, especially given that you like Rust. I feel like PHP and Rust are philosophical opposites of one another in nearly every way, but I might be missing some aspect that’s important to you.

            I love how programming languages are just as much tools for the mind as they are tools for the computer, so two different people might have radically different preferences.

            1. 2

              How much Scheme have you tried?

              Not very much. Though I do know of it. I’ll have to look into it.

              Other lisp I’ve used are indeed Common Lisp and Emacs Lisp.

              I was going to try Clojure as well, but at the time the Java requirement was throwing me off (I’m a little picky about what gets put on my system). That’s not quite an issue right now, obviously, since I’m using Scala. But at the time it was enough for me to avoid it.

              Also, what PHP is up your alley?

              Ok, this might sound a little weird, but hear me out. I really like shell scripting, like a lot. I’m always creating shell scripts all the time. PHP, to me, feels like the shell scripting of the web. There’s something about PHP that came just as naturally to me as bash scripting.

              I love how programming languages are just as much tools for the mind as they are tools for the computer, so two different people might have radically different preferences.

              Oh 100% I agree. I have one friend who swears left and right Python is the way the way to go, they can implement like anything in it. But at the same time I have another friend who hates Python with a passion and wouldn’t touch it with a 10 foot pole unless he was being threatened under death or something.


              I am really sorry about the late response by the way. Like an hour or so after posting my reply, I crashed right at my desk and I just woke up a few minutes ago.

            2. 1

              Get into Haskell! It’s very rewarding. Rust and Haskell are good friends.

              1. 2

                I really should. I used Haskell for a time when I was on XMonad a long time ago, but when I left it I also left Haskell.

                I like Haskell, though I do remember it having a bit of steeper learning curve when I tried it.

                Though I do think there was something about Haskell that really threw me off. Just not sure what it was because it was so long ago.

                Anyways yeah, I’ll have to get back into Haskell at some point.

            1. 6

              For those who see this post and get discouraged about the complexity of async rust - don’t give up. This is not a great example of async rust at its most elegant. Maybe that’s because of async-std, I don’t know as I’ve never used it. I have used tokio 0.2, which is great. Instead of reinventing std as async I think it hits a sweet spot - it’s easy to spawn a new thread in which to do blocking IO and then await it using async syntax and std primitives. There are some macros that make life easy there as well.

              Of course there are gotchas and some rough edges, for example - if your program holds a mutable reference over an await point you’ll get a pretty cryptic error. There’s still work being done. But if you wrap your mutable things in Arc<Mutex<_>> and tend to write functional code then it can be easy and simple. Go has no comparison. It simply lacks the types to get the job done. Go’s syntax for multithreaded channels look promising on the outside but there’s just not enough type checking for me to be confident that the program is doing what I think it is.

              Also keep in mind that there are certain programming domains that are necessarily async, like the browser! One of rust’s design goals is to provide the journeyman rustacean with as many viable programming contexts as possible - server, desktop, microcontroller, browser, lambda, etc.

              I’ve been very pleased with rust and async using tokio and js-futures. It’s not all hype, there are real productivity boosts to be had.

              1. 3

                Adding user home and registration to my todo bot service http://srcoftruth.com. The forms use higher kinded data types and at the end of this sprint I may have a new form library that shakes out.

                1. 3

                  The forced moratorium of 2001-2006 was also prime time for innovation in Flash. It’s going to happen one way or another.

                  1. 8

                    I’ve got a lot of respect for Haskell, but this seems like a truly complicated way to solve a simple problem.

                    Never mind that as soon as you want to add some tuning parameter to your config file, you’re going to need to either thread an effect type through your entire program or perform some other equally non-trivial refactor. Double nevermind having to compose monads with a transformer stack.

                    At least Idris offers the bang! effect notation (which probably requires strictness to be sane) built on extensible effects. Haskell version of the Eff type here: http://www.cs.indiana.edu/~sabry/papers/exteff.pdf - That’ll at least alleviate the monad transformer stack madness.

                    1. 2

                      yeah, i think this is also a really bad example; it seems infinitely nicer to not pass a big amount of state to various functions, but simply the little bits and pieces that each small function needs in order to do its work (in this case).

                      1. 1

                        Forgive me, I didn’t read the article but I have used extensible-effects in Haskell and I highly recommend it.

                      1. 4

                        We’re seeing again and again that we’re not seeing Lisp as the language for object-oriented programming, or Haskell, or Erlang, which are all incredible languages on the server, but haven’t fit well to these ideas.

                        The problem OOP solves is code organization. It gathers like functions and data together in the same place. It’s somewhat intuitive because real world objects mostly work this way - alike things are usually gathered together. There are many downsides to this approach as well, but we as programmers have become used to them. Not knowing any other way we assume these difficulties are intrinsic to programming. There’s nothing keeping functional systems from comprising graphical interfaces, but organizing code as objects makes less sense in functional languages. I think Aaron misses a bit on that note. Modern GUIs were invented in imperative languages and all the tactics and patterns used to create GUIs are tightly coupled with OOP. I think we are in functional GUI’s infancy right now and in the next coming years we’ll see functional solutions that are easier to work with than their OO counterparts. The biggest hurdle is lack of supporting libraries in computational geometry (spatial maps, triangulating/decomposing polygons, etc). We’re getting there though and the concepts are new and exciting, at least in my opinion.

                        1. 1

                          This sounds really cool. I wish there were some more examples though.

                          1. 4

                            Oh, and I know if anyone actually reads this post, they are going to ask “Why not Haskell?”, and my response is that Haskell is a great language but it isn’t going to become a mainstream language any time soon (or ever).

                            The author started the paragraph with “So I’ve been looking for a language to replace Python” however near the middle of the paragraph it seems they are actually looking for Yegge’s NBL. Even then, later in the article the author considers Smalltalk and Scheme as “big” and “mainstream” languages.

                            In case the author seriously doesn’t consider Haskell a viable language because it isn’t mainstream: since when does a language need to be mainstream to be usable?

                            1. 1

                              Yes, and how many people have to use a Lang for how long before the author considers it mainstream?

                            1. 6

                              Good post :) I’ve been learning going on 3 years. I started with the 99 Haskell problems, LYAH and RWH. I think the biggest help I’ve had so far has been getting on irc.freenode.net’s #haskell, #haskell-game and #haskell-beginners. Actually being able to talk to someone helps a lot. Thanks guys!