I used to be all about C++ / Java / C and what not, but honestly... After playing around and making apps in JavaScript/ Python, I seriously can't go back. It's made programming so much fun again.

I might try Go and Rust sometime. That being said, I really still enjoy doing some brain teasers in C++

  • 7
    So strange to hear that opinion. Python is what makes me hate programming and I miss c++.

    I like concrete types at least up to a certain point, and I think we can do a lot better than c++ even but there’s just nothing stronger that’s more popular
  • 3
  • 2
    @RememberMe I have honestly always wanted to hear his opinion in D and Rust, particularly because of the field he is in
  • 1
    @RememberMe @AleCx04 Rust is a natural evolution of C++, D is not. But these qualifications are relative and patently incomplete. To be honest though I do not have enough experience with those two languages to speak on the topic with any authority. I have written hundreds of millions of lines of C and C++ and probably 500 each of D and Rust? Hell, I’ve written more python than Rust or D and I consider myself as green as you can get in python. I’ve known it for two years and only recently stopped having to google weird syntax stuff.

    The main thing that holds back both is lack of adoption. I know the guy that wrote one of the garbage collectors for D. And while he is indisputably brilliant, well... D has a garbage collector (that is optional if I’m not mistaken) but that puts it solidly in the category of java and c#. And well, there are already java and c#. Swift was adopted because Apple forced people’s hands. C# was adopted because Microsoft forced people’s hands. Java was adopted because it was one of the first of its kind. C was adopted because it was the second of its kind and B sucked. Plus B wasn’t around long enough or ever got popular enough for anyone to care. I’ve been trying to track down historical B compilers for 20 years, sifting through DECTapes and RK cartridges. Anyway, D and rust are neither of these things.

    Rust may become popular some day but unfortunately technical merits aren’t enough to make a language take off any more. There’s 50 years of shitty code running the world right now, and it’s all written in C, C++, COBOL, MUMPS, and system/370 assembly language.

    And for as much as I’d like to learn rust, there’s basically no chance of me having to or getting to touch it professionally in the next 5 years.
  • 0
    Apples and oranges... Fuck Java and JavaScript though.
  • 0
    Go feels like a nice combination between C and Python
  • 3
    @AleCx04 @RememberMe I will say this though. The problem with C++ is threefold:

    1. Meta programming sucks ass in c++. Macros need to be removed (and something better needs to take their place) and templates need to be re thought without moving the load to runtime. These guarantees include memory models, side effect modeling, and the fact that everything has constructors with potentially unlimited side effects.

    2. The language makes too many guarantees and has too many features. This makes doing useful and gainful transformations in IR tricky. Languages that quack like c++ will inherently suffer from this problem without rethinking those guarantees and execution models.

    2.1. Better type safety. Even better than “these two things are a number.” Not all numbers are relatively comparable.

    3. Provisions like STL and standard libraries should be formalized as part of the language. When system calls are primitives and can be inlined, you can actually do smart things when you aggressively optimize. Same with containers. A ton of work has gone into making the c++ compilers do smart things with STL and they still suck. It doesn’t have to be that way if they are formalized as part of the language rather than implemented in it. Even in 2020 the fastest most performant code must avoid STL like the plague and that is still true even if you use custom allocators. Who knows, that might still be true with formalized containers but i bet it would be good enough.

    I believe rust and d do (3). My understanding is they somewhat address (1) but don’t really address (2) at least not the way that I imagine.

    If you want to look at a really promising language nim is interesting. You can write firmwares and user applications with it and it lowers an IR that can be very aggressively transformed because of the properties of the language and the guarantees it makes. That’s an example of how you can solve these problems with. Design choices
  • 0
    .... How?
    I want to pull my hair out every time I have to use python...
  • 0
  • 0
  • 0
    Wow, no ruby critics here, it must be dying?
  • 1
    @FrodoSwaggins would you say that the language making too many guarantees comes from trying to evolve it to fit more than one area?
    I remember that in another rant some time ago you mentioned the exact same thing about the STL, about how people writing certain applications avoid it like the plague.

    In terms of Rust and D, my experience to them is similar to yours in that I have not written much in those languages. D does give me the same sensation of it being more akin to Java and C# because when I was reading the specification and found out that it uses a garbage collector my intuition was to say "well.....this is not going to be useful for current C/C++ engineers, what is the point?" and it just sounded like a more performant Java/C#, I get the same feeling from Go for the very same reason. Nim does seem like a cool choice though, but I say that as someone with not enough knowledge to really appreciate what benefits it could have.
    I will probably order Nim in Action :D thanks man
  • 1
    @AleCx04 I think the intention of D is that if you turn off the garbage collector that you could write an OS in it. I think Rust is intended to do system work as well. (Shrug). It’s just there is no chance of me working with them in the next 5 years except as a hobby. And if I ask anyone else that they’ll say the same thing. So for whatever factors contribute to that. I’d say that’s currently what the writing on the wall says.
  • 0
    @FrodoSwaggins I hear you. I am just someone who's quite lazy and while I do aknowledge some of the other languages are more powerful, I can get results relatively quick with the others.
Add Comment