• 0 posts
  • 28 comments
Joined 3 years ago
Cake day: June 27th, 2023
  • Modern programming languages and IDE’s are so complex it’s enough to put a lot of people off ever learning to program - it seems such a massive learning curve. There’s something to be said for learning Basic then assembly on an 8-bit computer, where everything is so much sampler and direct. Writing a value to memory and seeing a blotch of pixels change on the screen gives such a direct understanding of what’s going on inside the machine. And if you only have 48k of memory, you can genuinely understand everything the computer is doing.

  • I used to enjoy programming as a hobby in my spare time, but in two years I’ve opened the IDE on my personal machine no more than twice.

    This is why I have never taken on programming as a profession. I earn more than I would ever make as a developer (even a very senior developer) leveraging my (average) programming skills to produce a personal suite of software tools and scripts that means I can do my chosen profession better, faster and with less effort than any of my colleagues or competitors. I have also developed small apps on a private/ personal basis that I have then sold to my employer for wider use in the company.

    And I still enjoy programming as a hobby as much as I ever have. Don’t underestimate how much being able to program at even an average level can boost a career in another field.

  • Of course, it is not always possible to avoid over-committing as sometimes the business calls for it.

    Well that sounds like lazy acceptance of a bad situation for your team.

    No mention of fighting for better terms for the team. If the business calls for over-committing you team, you or someone else in management have failed. Such a commitment may be indeed be unavoidable in that situation, but your job as a manager is to fight for your team to be additionally compensated for such an over-commitment.

  • But if they don’t know they have to knock “shave and a haircut” first, your job gets a lot easier and you’re dealing with a lot fewer nuisance password promptings.

    Very good explanation. And the benefits are even greater: because there is absolutely no response until the entire secret knock is correctly used, the random guy trying to get in doesn’t even know if there’s anyone at that address. (In fact, set up correctly, they won’t even know if there’s really a door there or not)

  • If you want to go down that path, a password is only security by obscurity.

    Port knocking is an extra layer of security, and one that can stop attackers from ever knowing your private server even exists. A random scanner won’t even see any open ports.

    Always bear in mind that any random guy advising people not to use port knocking may be doing it with malicious intent. I’m sure there’s someone out there advising that random passwords are a waste of time, and everyone should just use monkey123.

  • You cannot perfect old languages. And you cannot write a new language without making architectural errors. And any new language that deviates significantly from what has gone before will only ever see niche success.

    Thus what we have today is the best we can expect: gradual evolution of new languages, and gradual improvement of old languages. Neither has any particular advantage, but the industry as a whole keeps grasping at the eternal straw of the ‘silver bullet’ language that new languages promise.

  • Partly because sometimes a particular language suits a particular problem set.

    Partly because people just like writing computer languages.

    But mostly because people mistake the fundamental problem of programming, which is programming is really hard. So someone comes along and thinks “Programming is really hard, it must be a problem with the languages available” and sets out to write a computer language that makes programming easy.

    But all that happens is they trade one set of difficulties for another set of difficulties. They might succeed in making writing the initial version easier, but make maintaining that code harder. Or they might solve some memory allocation problems, but create performance issues.

    Either way, someone will write a language because they think they will help solve the issue of programming being hard, and fail. Because the really hard bit about programming is about understanding everything the program needs to do, in microscopic detail, and translating that into a structure that best fits the problem; not the actual coding itself.