iOS Swift developer with an unhealthy amount of Android and Flutter thrown in. Cycling enthusiast. Admirer of TTRPGs, sometimes a player, often times a GM.

  • 0 Posts
  • 23 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle
rss
  • I think the responder means that duplicate code is usually easy to refactor into single methods. Typically I see copy pasted code that is changed just a little bit. However much of a duplicated function can be broken into smaller functions and the redundant code removed in favor of calling into the functions. Often what is left then becomes easier to reason about and refactor accordingly. I love the PRs that I make which delete more code than I add but still manage to add functionality. It doesn’t happen often but it’s fun when it does.



  • It was originally meant as a better JavaScript and it was. It failed when none of the other browsers expressed interest in supporting it. It languished for a while and then was taken up by the Flutter team. At the time Flutter took it up it was somewhere around the level of Java 8 in features but not quite on par. Since then it’s seen some massive improvements to the type system and language. It’s completely null sound, not just null safe like Kotlin. It recently got records/tuples and one of the more capable pattern matching syntaxes I’ve ever seen in a functional imperative hybrid language. The next stable version of dart will introduce a compiler macro system that is very promising. The syntax isn’t always the prettiest due to it trying to not totally break old code. I do think that it offers a wide range of modern language features that competes heavily with Swift and Kotlin in the mobile space.




  • Any program written for the .net clr ought to just run out of the box. There’s also an x64 to ARM translation layer that works much like Apple’s Rosetta. It will run the binary through a translation and execute that. I have one of the windows arm dev units. It works relatively well except on some games from my limited experience.




  • The facts are that large companies rarely innovate anything major. They tend to buy up smaller companies that have taken the risk and succeeded. Look at Google and Microsoft and tons of others. It’s a problem with growing big. The forces that make a company a successful scrappy little startup die out in the name of organizational efficiency. If you want to know what Apple innovated you have to look at what they did in the 70s or extend your criteria to companies they have bought.



  • I enjoyed it. The only thing I would say is that there wasn’t a lot of tension or risk of loss in the series. It was more a low key telling of a period in someone’s fictional life. It kind of left me wondering if the last episode coincides with the last chapters of the book or if the season only covers part of the book like what was done with Silo.





  • Agreed on the M1. Anything entry level for Apple is decent but not really meant to push the envelope very far. I had a 16GB Mac mini and it served me very well for software development. I had to run multiple ram hogging tools at the same time so it did have pauses when switching between them. Other than that it was a beast. It held up well compared to my higher end MacBook Pro i9 with 32 GB Ram. The M1s run very cool. You’ll wonder if your machine even has a fan except if you’re doing a long intensive processing job. The M2s from my experience run hotter. I have an M2 iPad that I’m betting becomes thermally throttled just by watching Netflix. Not that it stutters, it just becomes warm to the touch.


  • There is a school of thought that break and continue are just goto in disguise. It helps that these two are more limited in scope than goto and can be considered less evil. If you read the book Clean Code by Robert Martin (it should be required reading for all developers), you’ll see that he doesn’t like functions to be very long. I think his rule is no more than 4 lines. I try to keep mine around 10 or less with a hard stop at 20 unless it can’t be avoided because I’m switching over a large enum or something. If you put your loops into functions then you can just use return instead of break.

    I did have a discussion with a teacher once about my use of early returns. This was when I had returned to school after many years as a professional programmer. I pointed out that my code has far less indentation than theirs and was simpler because of it and that it is common in the world outside of education. I got all of my points back he has deducted.

    You’re going to hear some good and bad advice from your teachers. Once you have a job check out what the good developers are doing and just follow them.