Rust’s package manager doesn’t manage c++, python, or anything else. Since the real world should not be one language to rule them all any package system must handle all possible languages. Otherwist they are lacking.
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.
Rust’s package manager doesn’t manage c++, python, or anything else. Since the real world should not be one language to rule them all any package system must handle all possible languages. Otherwist they are lacking.
I said this is a hard problem and might not even be solvable.
rust is not better than C++ if you are in any of those cases where rust doesn’t work. Not really worse, but not better either. If it works for you great, but it is worse for me as rust fight our homegrown system (which has a lot of warts )
Dependency management has to deal with the real world where what we didn’t know in 1970 hurts us.
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.
Unfortuately c++ interoperability is hard. I wouldn’t write c++ without vector and other containers (templates). Or classes complete with inheiritance (rarely multiple) and thus name mangeling. I now have millions of lines of that stuff and it is hard to write anything else because it has to mix.
@ajsadauskas sounds like you want https://curlie.org/ - which seems to be up to date and interesting.
Crying over some C code I have to work with. I’m supposed to do a quick proof of concept but with all data passed by global variable.
Nothing is exposed. There are things I want exposed, but I don’t want to keep security patches up to date, even if there is a zero day. I’m looking for someone trustworthy to hire for things that it would be useful to expose, but they are hard to find.
i last looked into this about 20 years ago. I concluded I could make it work but I don’t use wine enough to bother.
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.
mobiles and desktops are very diffrerent and need different user incerfaces. So you are not savin, much work. In fact trying to handle both in on may be worse because of all the special cases. Be glad you don’t have to support teletypes, they demand different user interfaces.
As a C++ developer memory safety catches my attention. I keep rejecting code reviews - in 2024! - because of naked new. Since experience proves I can’t get people to use the memory safety modern C++ offers I need to force the issue.
unfortunaty rust has other choices that don’t play well with our existing C++ so it will be a long road.
The article is clear that this is about C# not C++. Is the romance for managed languages wearing off - I wonder what issues they are seeing.
Microsoft is big in C++, but they are also pushing C++ to be a lot safer. Modern C++ isn’t as safe as rust, but it is still much safer than C or C++98.
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.
Ruby often comes up as a python alternative. There are a lot of other lesser known choices - but any of them will still be more popular (at least at first) than something you come up with and thus any of the will give more community support.
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.
my python doesn’t need to parse to pass cI, at least to long as I don’t write tests that run that code section. Checkmate all languages that have to compile. /s