• 11 Posts
  • 102 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle





  • The problem is that C is a prehistoric language and don’t have any of the complex types for example. So, in a modern language you create a String. That string will have a length, and some well defined properties (like encoding and such). With C you have a char * , which is just a pointer to the memory that contains bytes, and hopefully is null terminated. The null termination is defined, but not enforced. Any encoding is whatever the developer had in mind. So the compiler just don’t have the information to make any decisions. In rust you know exactly how long something lives, if something try to use it after that, the compiler can tell you. With C, all lifetimes lives in the developers head, and the compiler have no way of knowing. So, all these typing and properties of modern languages, are basically the implementation of your suggestion.








  • I learend it in the 90s, and was working on a large Perl codebase 2005 and a couple of years forward. And 20 years, it still started to feel dated, and 15 years ago it was just so out dated it hurt. So, starting to learn Perl 20 years ago would not have been great :) However, the things making Perl horrible, is pretty much threre in Python also with the addition of significant whitespace… so technically, going from Python to Perl might actually be a step in the right direction… Now, if you excuse me, I will hide behinde this huge rock for a while to let the incoming projectiles settle.