Details
-
AboutAn Apple developer since 1984, disenfranchised and pissed at Apple for turning from excellence to a bunch of fuckups.
-
SkillsAny assembly (I piss machine code). Any communications system. C, C++ Objective C, Fortran if pressed, AppleScript for fun, FileMaker because other databases suck dick.
Joined devRant on 4/11/2017
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@Lensflare In theory it is available but the language is defined by a company that puts form over function... doesn't bother to fix the base functionality and keeps on shoveling on features that nobody needs (ahem, Xcode)
and has silliness like having a space character matter here: "methodCall (" vs "methodCall(" and flags it as a problem. I mean in the pablum of babyfood scripting languages I know of only Ruby, Elixir and Julia that have whiny problems like this (nobody counts Mumps, that should have died in the 70s and it is an absolute hell) -
@Lensflare Deleting accounts... Sometimes people end up exposing their identities accidentally that cross-link to DevRant. That can be hazardous.
-
@Lensflare I can't use a one window machine. Right now I have over 40 windows open in 23 apps.
Even the iPad now handles multiple windowing work.
This one-window thing is just so 1970s DOSian -
@Lensflare macOS 26. Indexes blow up and don't work no matter how many times you rebuild.
macOS 26 goes into glacial mode on a MacBook on occasion. Rolling across the dock can have up to a second delay. Then it sits there and eventually goes back to normal (M3)
I've got a bunch of stuff filed in FeedBack Assistant but I don't want to blow my cover here...
I gave up and reformatted my desktop machine and rebuilt it. Seems to be working for the moment but I am locating a chicken farm for a live sacrifice to this damn thing when the time comes -
Every once in a while I come back here to read the rant 😂
-
BTW, thanks everyone for letting me vent. I'd be punching my monitor otherwise.
I'd go into the basement and get an old Mac, and hack that fucker to bits with an axe if it would not make me feel guilty for destroying hardware and old software that actually worked. -
@Lensflare All I want is to **never** have it open a tab, not ever.
In the last version with the settings I had I could carefully hold down the command and option whenever I clicked on anything and I would get separate document windows. I set it to pin the tab every time so it would not change the window context like a browser and gaslight me into schizophrenic catatonia. That seemed to help.
Now with the latest version it is opening blank tabs for every "window" I open it seems. Driving me absolutely nuts.
not to mention the buggy ass macOS 26.
It used to be so great working with Apple hardware and software. Now it is a shit storm every day. Tim is a nice guy but they really need an engineer driving that company. -
@afaIk 😂
-
Spanky is my wife's nickname. You can worship her all you want, but NO TOUCHY!
-
rooms.get(&name).map_or(false, |turf| matches!(turf, Turf::Mine))
but omg I hate method chaining. It looks like a hold over from data processing days and making really bad assumptions about everything never failing.
I guess it is OK for very high level languages our script languages where the programmer is far removed from the hardware such that no real memory management is performed... but still I get the 😬😱😖 every time I see it. -
The true death is the death of the community which can easily happen during a tool transition.
Yammer.com, once upon a time, was on fire. Microsoft bought it (or tried to buy the community through buying the tool). They eventually turned it into Viva Engage. Ever hear of Viva Engage? No? Maybe you never heard of Yammer... by buying Yammer and microsoftizing it... they accidentally "knifed the baby" to put it in Bill Gates' terms. -
Not to light a fire but don't you test for NULL / Nil before using memory that was dynamically allocated... or are you using "Fluent Interface" design pattern aka "method chaining" like this:
EmailBuilder()
.setFrom("sender@example.com")
.setTo("recipient@example.com")
.setSubject("Meeting Reminder")
.setBody("Don't forget our meeting at 3 PM.")
.send();
In which case... well... you need to perform 0000 0010 acts of attrition and 0000 0100 Hail Marys. -
@Lensflare Re: ObjC abomination
I did not find it quite so objectionable. I was forced into it for a project and while it felt like leaving a 6-speed sports coup w/ racing clutch to drive a 4-door Mercedes; it was at least a Mercedes I guess🤷🏻♂️.
Apple did their best to restrict drifting (so to speak) but I found ways to mod my ride without risk of malfunction. I found I could have a very full personal library that crossed assembly, C, C++ and ObjectiveC. But with Swift, I am at the complete mercy of Apple, and all the hype, or so it seems. -
@iiii I had ObjectiveC shoved down my throat but it was not really horrible... just pointless. C++ and multiple inheritance was so much more powerful but...
So I would agree... different for the sake of being different is not better. A treatise of Apple engineering that they clearly do not observe.
Next we delve into the folly of closures! -
@Lensflare *sigh* this has nothing to do with booleans and evaluation to false/true.
Exactly my point. "if" is therefor inappropriate. -
@CoreFusionX so you are telling me that nil is real? Please do explain how this works at the machine level, given that you say I am wrong... there must be some kind of "no value" that you can put into a CPU register? Please do enlighten me.
-
@Lensflare @lorentz re: try COBOL or FORTRAN:
I happen to be conversant in FORTRAN :-) as well as a number of other non-data-processing languages. I don’t think you meant COBOL as it is more like Swift than it is like FORTRAN.
Scripting languages are not my source of comparison but it seems that Swift is more like a scripting language than an actual engineering language. 🤷🏻♂️
But Apple says we can do bare metal firmware with it so we will see! I will be surprised if it achieves anywhere near the efficiency of something like C or C++ as Swift seems to require much more scaffolding in its attempt to hide the machine… even the lighter scaffolding in ObjC made it unattractive for actual embedded work. 🧐 -
@lorentz not about skipping over tokens, it is about consistency in defining a language and readability without inferring invisible operations.
It is “if something is true” or “if something is false”. It is not “if this operation was successful by some definition within the operation itself” operator.
My foundational logic is “exceptions are bad”. So having “if” operate on Boolean and then mean if not nil by adding “let” is by definition an exception to the definition of “if” -
@lorentz Re: not what happens in Swift at all. "if let" is _defined_ in terms of optional.
Doesn't that obfuscate things?
Consider that:
if( bool x = y ) {/* */}
means:
1. define x for the {/* */}
2. set x to y's value
3. if x is true then execute {/* */}
but in swift...
let y: Bool? = true
if let x = y {/* */}
would visually suggest the same thing but because of the overloaded meaning of "if", it becomes self-undocumenting.
instead it could have been:
iflet x = y {/* */}
to clearly indicate a new interpretation. AKA, it is neither a common "if" (which operates on boolean values) nor a common "let" (which can include a type...)
But to make it more readable it could have at least been:
when let x = y {/* */}
To try and differentiate from standard "if" using a boolean in generally *every* *other* *language*.
"when let" would require two whole extra characters tho! 😱 -
@BordedDev Re: Also := will be colon equals
or ... we call it SKYRIZI!
(sorry, the 14 yr old still lives inside) -
@lorentz I also don't see why either is bad form
Think of this.. it's not uncommon to see C programmers do this...
if( ptr ) {/* */}
- technically exercises the knowledge that 0 is the definition of "false" at the machine code level & any other value is "true". It translates to "if the pointer is not nil then".
But it relies on a side effect of the C language at the time. There is no guarantee that in the future version of C won't define 1 as true and 0 as false and the such code could then have an "undefined" in the conditional.
In reality, it should be:
if( ptr != NULL ) {/* */}
- which is self documenting ;-)
This parallels Swift which **assumes** that "nil" is false in the
if( let x = y ) {/* */}
as the let x = y executes and leaves behind the x as in:
let x = y
if( x != nil ) {/* */}
and this discretely performs a legit boolean check, is truly self documenting, and is easily debuggable. -
@lorentz Booleans are exactly as real as optionals too
I have not run the Swift construct down machine code or assembly yet, but the thrust is that optionals don't exist at the CPU level... the computer's machine code. It takes extra multiple lines of machine code to implement such a concept. A boolean in C is nothing more than a compare to 0 or not zero when it hits assembly. Exceptionally efficient down to the CPU cycle per machine code instruction level.
I have not investigated booleans in Swift at the assembly level yet, but what you said about booleans in Swift makes me apprehensive at an OCD efficiency level. 😱 -
@atheist fun fact, ALGOL is where ":=" started and it was popularized by Pascal circa 1970.
While I think it is kinda cool it is called the walrus operator, it is pronounced "set equal" where the colon is where the hands of the sprinter are on the track, the = is where the sprinter's feet are. Ready "set" go.. hence ":" is the "set".
Goo goo g' joob? -
@kiki Re I only like common swift
Have to agree, lovely. -
@iiii Re: What's wrong with C and C++ to be using Swift of all things?
My C conventions have carried through C++ and ObjectiveC. If I am going to convert them over to Swift, I would rather not try to maintain them in two very different languages, especially one that does not generally allow you to use pointers / hardware addresses -
@Lensflare actually it technically (with plenty of thorns) does embedded. I'm adopting it to bare metal coding for a hardware project. It is no easy task and definitely shows the insanely buggy nature of Xcode... but it is in theory a generic IDE that executes against external tool chains.
(what?! Xcodesucks sticking up for Xcode? Sign of the apocalypse; what's next? dogs and cats living together?) -
I feel your pain...
Swift is... inconsistent at best
lets just say that I did not have to put "func" in front of a method or function since Pascal and then it was either "procedure" or "function". Why on earth would a "modern" language revert to such primitive style?
But to add insult to injury, the inconsistency is that you only put 'func' in front of some methods in a Class but not all.. e.g. not in front of init(), deinit().
"func"? We don't need no stinkin' "func"! -
@Lensflare Session: "Meet Liquid Glass" would have had a standing ovation if it were I person. 😉
-
@Lensflare In my experience command-click or option-command-click does not always work. Nothing happens for instance when command-clicking on "padding". Xcode Does suck you know... 🤣
-
@Lensflare Digging through AI interaction on why that line causes the obscure error output, it very clearly pointed out that the reason the assignment could only be performed during declaration is because Swift functionally converts the "var" to a "let".
