• 1 Post
  • 26 Comments
Joined 1 year ago
cake
Cake day: January 3rd, 2024

help-circle
  • I’d actually argue Python stops people learning how to solve problems.

    I love teaching juniors and have done so for 10 years but I’ve noticed in the last 4-5 years since Python became the popular choice at universities Graduates aren’t learning anything about Static Types, Memory Management, Object Oriented Programming, Data Encapsulation, Composition, Service Oriented Architecture, etc…

    I used to expect most graduates to have a mixed grounding in those concepts and would find excuses for them to work on a small UI projects. I would do this as it gets them used to solving a small problem and UI’s give instant feedback. As Python became dominate university teaching language the graduates aren’t spending their time learning Typescript, Angular, HTML, etc… but instead getting overwhelmed by the concept of types.

    Those concepts I want them to learn were created to help make solving problems easier and each has their strengths and weaknesses but most graduates are coming through only knowing how to lay out a small amount of procedural logic using Python and really struggling to move beyond that.



  • You are far worse than the people you are claiming to act against.

    Lots of people can feel something is a problem and struggle to articulate it. So you have to take people on a case by case basis.

    OP talks about how they feel diverse characters are shoe horned in or badly written. Ask them to provide an example.

    When they can’t, then call them out. They are a bigot and deserve scorn.

    If they can provide an example, help them understand the issue and use appropriate language.

    Calling someone out who genuinely feels there is a problem doesn’t stop them feeling there is a problem. These people will go looking for some who acknowledges their feelings.

    Which is how you make a bigot



  • stevecrox@kbin.runtoToday I Learned@lemmy.world*Permanently Deleted*
    link
    fedilink
    arrow-up
    4
    arrow-down
    4
    ·
    10 months ago

    I wouldn’t get massively excited.

    Python is a scripting language, its shines when you want to write a stand alone file which takes an input and performs a task. Scripting languages are great to learn as a first language and so python is wonderful for non developers.

    The issue you hit is the build management solutions for Python are kind of broken and these help support and encourage good development practice so a lot of Python projects end up a collection of scripts rather than a mature project. You can have good projects but…

    In raw benchmarks Java has 90% of the performance of C/C++, but in reality Java is more performant because developers get bogged down in memory management on C/C++ and they get more time to optomise in Java as a result. I’m not sure where Rust will come out to be honest.

    Python benchmarks at 50% the performance of Java, in reality I’ve found code ends up slightly worse because Python is procedural, library support and streaming is poorly supported.

    Take library support, Spring really rose to prominese because of ‘hibernate’ which was a way to abstract talking to different databases through objects, you could switch from PostgreSQL to Oracle through config. Spring data has dumbed this down so I define a plain old Java object and Spring will generate everything I need.

    Python expects you to hand craft SQL statements and every database extends SQL slightly differently, so i need to write SQL for every operation and manage/own it. So the win in being able to quickly read/write to a database (since you don’t have to learn anything about Spring) is quickly ruined because of the all the boilerplate and error handling you now have to write.




  • stevecrox@kbin.runtoRust@programming.devMeta: How can we grow this community?
    link
    fedilink
    arrow-up
    56
    arrow-down
    2
    ·
    edit-2
    10 months ago

    I believe this post would be better if it was rewritten in Rust it would allow more efficent. memory usage compared to; the dynamically typed English language which doesn’t have the borrower checker. while allows you to detect when resources are no longer used unlike English’s poorly performing ‘grammar checking’ tools

    But seriously there has to be content to engage with and people who respond to the content. I’ve noticed this community has someone posting really high quality updates but the community appears to be that person.

    Posting blogs, or asking questions, etc… would be a good way to engage.


  • If you click the link and follow it through 3 redirects you’ll get to Stamets post.

    Basically risa is listed as having “no rules” but the community admin is/was trying to moderate things to keep it “fun”.

    Stamets and others were upset at the contradiction and through there own posts generated alot of noise to get it resolved the startrek.website admin got sick of the drama.

    To be honest the site admin should require mods to accurately explain their actions “Doesn’t inspire Jahamora” isn’t a great reason and reading stamets examples I think you could build rules fairly easily.

    But I won’t be going to Ten Forward, reading the post was exhausting.


  • stevecrox@kbin.runtoLinux@lemmy.mlI dislike wayland
    link
    fedilink
    arrow-up
    1
    ·
    10 months ago

    Immutable distributions won’t solve the problem.

    You have 3 types of testing unit (descrete part of code), integration (how a software piece works with others) and system testing (e.g. the software running in its environment). Modern software development has build chains to simplify testing all 3 levels.

    Debian’s change freeze effectively puts a known state of software through system testing. The downside its effecitvely ‘free play’ testing of the software so it requires a big pool of users and a lot of time to be effective. This means software in debian can use releases up to 3 years old.

    Something like Fedora relies on the test packs built into the open source software, the issue here is testing in open source world is really variable in quality. So somethinng like Fedora can pull down broken code that passes its tests and compiles.

    The immutable concept is about testing a core set of utilities so you can run the containers of software on top. You haven’t stopped the code in the containers being released with bugs or breaking changes you’ve just given yourself a means to back out of it. It’s a band aid to the actual problem.

    The solution is to look at core parts of the software stack and look to improve the test infrastructure, phoronix manages to run the latest Kernel’s on various types of hardware for benchmarking, why hasn’t the Linux foundation set up a computing hall to compile and run system level testing for staged changes?

    Similarly website’s are largely developed with all 3 levels of testing, using things like Jest/Mocha/etc… for Unit/Integration testing and Robots/Cypress/Selenium/Storybook/etc… for system testing. While GTK and KDE apps all have unit/integration tests where are the system level test frameworks?

    All this is kinda boring while ‘containers!’ is exciting new technology


  • It does but for the 90’s/00’s a computer typically meant Windows.

    The ops staff would all be ‘Microsoft Certified Engineers’, the project managers had heard of Microsoft FuD about open source and every graduate would have been taught programming via Visual Studio.

    Then you have regulatory hurdles, for example in 2010 I was working on an ‘embedded’ platform on a first generation Intel Atom platform. Due to power constraints I suggested we use Linux. It worked brilliantly.

    Government regulations required anti virus from an approved list and an OS that had been accredited by a specific body.

    The only accredited OS’s were Windows and the approved Anti Viruses only supported Windows. Which is how I got to spend 3 months learning how to cut XP embedded down to nothing.



  • Technical Leads are not rational beings and lots of software is developed from an emotional stand point.

    Engineering is trade offs, every technical decision you make has a pro/con.

    What you should do is write out the core requirements/constraints.Then you weigh the choices to select the option that best meets it.

    What actually happens is someone really likes X framework, Y programming language or Z methodology and so decides the solution and then looks for reasons to justify it.

    Currently the obvious tell is if they pitch Rust. I am not saying Rust is bad, but you’ll notice they will extoll the memory safety or performance and forget about the actual requirements of the project.



  • Docker swarm was an idea worse than kubernetes, that came out after kubernetes, that isn’t really supported by anyone.

    Kubernetes has the concept of a storage layer, you create a volume and can then mount the volume into the docker image. The volume is then accessible to the docker image regardless of where it is running.

    There is also a difference between a volume for a deployment and a statefulset, since one is supposed to hold the application state and one is supposed to be transient.


  • There will always be someone who is beating you in a metric (buying houses, having kids, promotions, pay, relationships, etc…) fixating on it will drive you mad.

    Instead you should compare your current status against where you were and appreciate how you are moving forward

    As for age

    During university my best mate was 27 who dropped out of his final year, grabbed a random job, then went to college to get a BTEC so they could start the degree.

    It was similar in my graduate intake, we had a 26 year old who had been a brickie for 5 years before getting a comp sci degree.

    The first person I line managed was a junior 15 years older than me, who had a completely different career stream. They had the house, kids, had managed big teams, etc… honestly I learnt tons from them.


  • It isn’t a good move.

    A domain name can cost as little as £10, similarly most email services cost ~£5-£15 per person per month. Its normally pretty easy to link a domain to an email provider and doesn’t cost anything other than time.

    If a company can’t be bothered to implement the most basic online branding people will make their assumptions and some will filter your company out because of it. With the cost to implement so low (e.g. £160 per year), even the loss/gain of a single customer would justify it.



  • Wine attempts to translate Windows calls into Linux, its developed by Codeweavers whose focus is/was application compatibility.

    Valve took Wine and modify it to best support games, the result is called Proton. For example:

    Someone built a library to convert DirectX 9-11 calls and turn them into Vulkan ones, it was written in C++ and is called DxVK.

    Wine has strict rules on only C code and their directx library handles odd behaviour from old CAD applications.

    Valve doesn’t care about that, they care that the Wine DirectX library is slow and buggy and DxVK isn’t. So they pull out Wines and use DxVK.

    There are lots of smaller changes, these are ‘Proton Fixes’, sometimes Proton Fixes are passed on to Wine. Sometimes they can’t but discussion happens and a Wine fix is developed.