• 0 Posts
  • 34 Comments
Joined 7 months ago
cake
Cake day: February 23rd, 2024

help-circle




  • Basically the same as fake news. Check web articles and so on. (Reading source code is often infeasible.)

    You can also check Linux package managers. Official repositories from, eg, Red Hat and Suse are well maintained by the companies. I’d trust also the official Arch repo. I guess Debian is trustworthy, too, but don’t know the process there.

    Regarding OpenReplay, you could also check the companies listed as using OpenRepay. (I couldn’t find any official source from those companies that mentioned OpenReplay, but that’s rather expected given that they don’t have to open their software stack.)













  • eveninghere@beehaw.orgtoProgramming@programming.devLinux and Winforms
    link
    fedilink
    arrow-up
    1
    arrow-down
    2
    ·
    edit-2
    7 months ago

    Not talking about winforms in that quoted part. I thought that was obvious.

    I don’t buy the second paragraph, especially as the phrasing is so loose it can mean anything.

    Edit: overall I think this will result in a typical internet conversation that turns into “lmao that’s the weakest argument I’ve ever seen!” “you’re so pathetic!” etc. etc.


  • eveninghere@beehaw.orgtoProgramming@programming.devLinux and Winforms
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    7 months ago

    That syllabus likely assumes Windows. C# on non-Windows is not impossible, but it’s going to require effort infeasible for school projects like that one. As you’re facing it, C#'s packages were originally not meant to be used cross-platform, and god only knows the amount of problems that lie ahead. That clearly didn’t occur to the teacher’s head while they designed the course.


  • Computer scientist here. First, let me dare ask scientists here a question from a friendly fellow: do you have reference to your suggestions?

    Code Complete 2 is a book on software engineering with plenty of proper references. Software engineering is important because you learn how to work efficiently. I have been involved in plenty of bad science code projects that wasted tax payers money because of the naivety by the programmers and team management.

    The book explains how and why software construction can become expensive and what do about it, covering a vast range of topics agreed by industrial and academic experts.

    One caveat, however, is that theories are theories. Even best practices are theories. Often, a young programmer tries to force some practice without checking the reality. You know you can reuse your function to reduce chance of bugs and save time. But have you tested if that is really the case? Nobody can tell unless you test, or ask your member if that’s a good idea. I’ve spent a good chunk of time on refactoring that didn’t matter. Yet, some mattered.

    That importance of reality check is emphasized in the book Software Architecture: The Hard Parts, for example.

    Now, classes, or OOP, have been led by the industry to solve their problems. Often, like in case of Java, it was a partly a solution for a large team. For them it was important to collaborate while reducing the chance of shooting someone accidentally. So, for a scientific project OPP is sometimes irrelevant, and sometimes relevant. Code size is one factor to determine the effectiveness of OOP, but other factors also exist.

    Python uses OOP for providing flexibility (here I actually mean polymorphism to be precise), and sometimes it becomes necessary to use this pattern as some packages rely on it.

    One problem with Python’s OPP is that it inherits implementation. Recent languages seem to avoid this particular type of OOP because the major rival in OOP, what is called composition, has been time-proven to be easier to predict the program’s behavior.

    To me, writing Python is also often easier with OOP. One popular alternative to OOP is what is called a functional approach, but that is unfortunately not well-supported in Python.

    Finally, Automate the Boring Stuff With Python is a great resource on doing routine tasks quickly. Also, pick some Pandas book and get used to its APIs because it improves productivity to a great extent. (I could even cite an article on this! But I don’t have the reference at hand.)

    Oh, don’t forget ChatGPT and Gemini.