A programmer with an interest in transit, making music, and building things of all types.

I have dysgraphia which makes writing difficult for me. I hope you can figure out what I mean despite my issues.

  • 0 Posts
  • 56 Comments
Joined 1 year ago
cake
Cake day: June 22nd, 2023

help-circle




  • I was a lot more productive in C++ 15 years ago when the current project was 100% greenfield. Now that the code is 15 years old I’m much less productive because over the years we have discovered mistakes we made. I suspect I’m still more productive than the average C++ programmer because 15 years ago modern C++ was known (c++11 was still a couple years away though) and so we didn’t do a lot of the mess that people hate on C++ for.

    Which is to say I want to know how productive those programmers will be in 15 years when the shiny of rust has warn off and they are looking at years of what seemed like a good design but current requirements just don’t fit.


  • Added on top of that is a modern dependency management system that is severely needed in languages like C and C++

    I won’t disagree, but what Rust did is not the correct answer. Better than C++ perhaps, but not good enough. In the real world my code is more than Rust. I’m having trouble using rust because all my existing code is C++ and the dependency management does not work well with my existing build system and dependency management. If you want a dependency manager it needs to cover all languages and be easy to plug in whatever I’m doing currently. This is NOT an easy problem (it might not even be possible to solve!), but if you fail you are useless for all the times where dependency management is hard.







  • bluGill@kbin.socialtoLinux@lemmy.ml*Permanently Deleted*
    link
    fedilink
    arrow-up
    11
    arrow-down
    1
    ·
    9 months ago

    Sure, when linux loads are process it follows a standard procedure to see how to run the file. If the file has ELF markers it runs the process via the ELF loader. If the file has #! as the first then it uses a different process to run that script. (I doubt a.out executable format is supported anymore, but that at least used to be an option). There is no reason you cannot hack this process to detect windows executable and then use wine to load/run the application. I’m not sure why nobody has done this, but the basic things have been supported in linux for decades.





  • The C++ committee is actively looking at how something like rust’s borrow checker could be added to C++. Likely it won’t be a borrow checker, but just enforcement that some code cannot use new/delete and so must use a container (std::unique_ptr, std::vector…) which gets rid of most of the pain. Modern C++ is a much better language than C++98, but I still see a lot of people writing C++98 code.


  • A terminal is something like a DEC model Vt220, or IBM 3270. These are physical machines with a keyboard, and a display. Most often the display was a CRT, but some were just a printer, I supposed some must have had a LCD but I’ve never seen one. A few did have a mouse, but that was rare. They might look like a computer, but they do not have a CPU (or they do but the CPU is very under powered). The point is you can have 100 cheap (cheap as in 4x the cost of a modern PC, without factoring in inflation) terminals connecting to an expensive powerful computer (expensive as in millions of not inflation adjusted dollars, powerful as in a modern smart phone is faster by nearly any measure). Every terminal had some special commands that programs could use to do something more fancy than plain text, but different ones had different abilities.

    These days a powerful PC is cheaper than any terminal could be and vastly more powerful than those old computers, so it doesn’t make sense to have one except as a collectors item. However terminals themselves did leave a useful of program design. Most command line programs know how to control a terminal to do some pretty printing. Thus we often use terminal emulators which let our computer pretend to be one of those old terminals. The DEC vt100 for whatever reason ends up being the most commonly emulated terminal when someone says terminal emulator - there really was a model vt100 terminal at one time.

    Note that a web browser counts as a terminal emulator by the above definition. Nobody thinks of them that way, but they fit.


  • Learning a programming language is not hard. there are thousands of choices. Before you ask for another one, first please check that there isn’t already one that meets your needs. Fragmentation of languages is not useful in general. It is rare to have an idea that hasn’t been tried before, so find someone who already has done that idea.



  • Why would you want that? What is wrong with python if you want an interpreted language with garbage collection? By contrast what is wrong with rust + a lot of crates (or C++/Ada/…) if you want a compiled language?

    Zero cost abstractions are great because speed is very important for complex problems. Little things here and there make for modern computers that feel slower than my old 8 bit atari when trying to get work done.