Hacker Newsnew | past | comments | ask | show | jobs | submit | imbnwa's commentslogin

> One of the most annoying things after installing Tahoe for me, that for no good reason an ordinary app would randomly lose its focus. In the midst of my typing.

So its not just me!


I'd imagine only SteamOS on the GabeCube could make this guarantee on Linux

>Alan Dye ruined everything at Apple, no idea how he clung on for so long

Cook doesn't seem to a have any taste for product design, isn't he a logistics guy?


Yup. He is, by all accounts, a great supply-chain guy. eg. As far as I can tell, there were no significant breaks in Apple's supplies during COVID.

But he clearly falls afoul of Steve Jobs'warning about leaders with no taste.


This is even an understatement.

It’s not a stretch to say that Tim Cook created the whole Shenzhen microelectronics industry. The thousands of specialist component vendors and large integrators that assemble products trace to his instigation with Compaq and then Apple. The iPod, Macs, iPhone, copied the Swiss Watch model of vast redundant networks of component competetors working as an ecosystem to drive down costs.

This created the skill and machinery base that made it possible for other western design companies (such as Android vendors that were not Samsung or Japanese) to make clones of the iPhone quickly and easily. (Let’s be real, every smartphone is an iPhone 1 clone)

China owes a lot to this work.


Tim Cook needs to drop some acid. He has no creativity what so ever.


You'd think a supply chain guy would be able to get ahold of some psychedelics too...


What would be better?


Remove all of that noise.

Take this:

  fn fib(n: i32) -> i32 {}
The (n: i32) can be just (n i32), because there is no benefit to adding the colon there.

The -> i32 can also be just i32 because, again, the -> serves no purpose in function/method definition syntax.

So you end up with simple and clean fn fib(n i32) i32 {}

And semicolons are an ancient relic that has been passed on to new languages for 80 fucking years without any good reason. We have modern lexers/tokenizers and compilers that can handle if you don't put a stupid ; at the end of every single effing line.

Just go and count how many of these useless characters are in your codebase and imagine how many keystrokes, compilation errors and wasted time it cost you, whilst providing zero value in return.


In a Hindley-Milner (or deriative) type system, types doesn't have to be explicit, making the number of arguments ambiguous here:

  fn fib(n i32) i32 {}
But even if they need to be written explicitly, type applications like `List a` would require syntax to disambiguate them.

Personally, I would like a language that pushes the programmer to write the types as part of a doc comment.

Also think about returning lambda's. Should it look like this?

  fn foo(n i32) (i32 i32) {}
Of course the IDE could help by showing the typographic arrows and other delineations, but as plaintext this is completely unreadable.

  > And semicolons are an ancient relic that has been passed on to new languages for 80 fucking years without any good reason. 
You still have to think about stuff like currying. You either delimit the line, or you use significant white space.


> Also think about returning lambda's. Should it look like this? > > fn foo(n i32) (i32 i32) {}

It should be

  fn foo(n i32, m i32) (i32, i32) {}
It will also allow future implementation of named returns, like in Go:

  fn foo(n i32) (a i32, b i32) {}
As for semicolon, that is needed only if you have inline expression:

  for (;;;) {}
Or inline block, like in Go:

  if foo := a + b; foo > c {}


  > fn foo(n i32, m i32) (i32, i32) {}
But now consider returning a function with type¹

  Foo<T<string, T2>> -> (bool -> IDictionary<string, T3> -> i32 -> T3) where T2 : T3
even if you leave out the latter type constraint, I think it is hard to avoid undecidable ambiguity.

  fn foo(n i32, m T2) (????) {}

You quickly get ambiguity due to type parameters / generics, functions as arguments, and tuples if you don't syntactically separate them.

Even if you your context-depended parser can recognize it, does the user? I agree that a language designer should minimize the amount of muscle damage, but he shouldn't forget that readability is perhaps even more critical.

____

1. Note, even if the parser can recognize this, for humans the '>' is confusing unless syntax highlighting takes care of it. One time it delimits a generic type argument, the other time it is part of '->'. This is also an argument for rendering these things as ligatures.


This is pointless discussion as Go has all of these things already implemented, so there is no point in going backwards.


The point is that a (new) syntax for any language needs to support any such implementation. The language implementation itself is not the point.


Yes, and I am saying Go has already solved all of this and it makes little sense to deviate too much from its syntax.


> The (n: i32) can be just (n i32), because there is no benefit to adding the colon there.

> The -> i32 can also be just i32 because, again, the -> serves no purpose in function/method definition syntax.

Well, there is, but it's more of a personal trait than a universal truth. Some human programmers (e.g. me) tend to read and parse (and even write, to some extent) source code more accurately when there is a sprinkle of punctuation thrown in into a long chain of nothing but identifiers and subtly nested parentheses. Some, e.g. you, don't need such assistance and find it annoying and frivolous.

Unfortunately, since we don't store the source code of our programs as binary AST blobs that could be rendered in a personalized matter, but as plain text instead, we have to accept the language designer's choices. Perhaps it actually has better consequences than the alternative; perhaps not.


the only reason why one might hold such an opinion is the lack of syntax highlighting.


What’s with all the periods, one at the end of each paragraph? Fully wasted.


I wish more languages would adopt Clojure’s approach to optional delimiters in collections.

[2 45 78]

It’s just a nicer thing to view and type in my experience.

Regarding syntax soup, I think Odin is probably syntactically the cleanest of the lower level languages I’ve played with.


oh, yeah. that looks good. i always hated using ", " delimiter for lists and the amount of typos it always takes to make clean(well, not with Go fmt).

Odin seems interesting but for me it has two deal-breakers: first one use the use of ^ for pointer de/reference. Not that it does not make sense, it's just that it is not an easy key to get to on my keyboard layout and i will not be changing that. The & and * are well known characters for this purpose and, at least for me, easily accessible on the keyboard. Second issue is the need to download many gigabytes of visual studio nonsense just so i am able to compile a program. Coming from Go, this is just a non-starter. Thirdly, and this is more about the type of work i do than the language, there are/were no db drivers, no http/s stack and other things i would need for my daily work. Other than that, Odin is interesting. Though I am not sure how I would fare without OOP after so many years with inheritance OOP and encapsulated OOP.


It's a Lisp thing, obviously, but also there's a benefit to explicit delimiters - it makes it possible to have an expression as an element without wrapping that in its own brackets, as S-exprs require.


What’s the best resource for getting a handle on all modern CSS for someone who hasn’t paid attention since flex box


I like Josh W Comeau's content, he has a lot of free articles, but his paid CSS course goes through step by step why CSS is the way that it is, worked great for me for understanding it all. My work paid for it though, that's why it's priced so high, but I'm sure he has discounts for individuals.


This should be a good start: https://nerdy.dev/cascading-secret-sauce


There are a lot of resources.

I am a fan of: https://www.youtube.com/@KevinPowell

Kevin is a no-nonsense no-hype educator. He will keep you up to date without a lot of engagement hacking.


Yes, and he will control CNN just prior to the first midterms runoffs, this is all part of a plan.


That is exactly what is going on. Everyone at WB management knows that the Ellisons want to weaponize CNN before the midterms runoffs start in spring.


Netflix isn't buying CNN though, Paramount can just pick up Discovery on the cheap when its split off. There's no reason for them to even be trying to do a hostile bid either. I think this is just purely an ego/power trip thing.


It's scheduling. WBD was set to spin off Discovery Global in April --- after the March congressional primaries. The hostile bid creates leverage to get the TV networks spun off sooner, rather than later, to ensure that the Ellisons can pick them up Q1, in time to set the narrative for the congressional primaries.

See: https://substack.com/@thedreydossier/p-180959723


> the midterms runoffs

Do you mean primaries? Runoffs are a thing in some elections in the US, but not a thing that would start in spring for the congressional midterms.


Doesn't that imply that Netflix was planning to do the same (for their party)? Or are you saying Netflix is innocent here


No, it doesn't imply that. Saying party X plans to do something implies nothing about what party Y plans to do.


> Saying party X plans to do something

but that's not the whole thing being said.

Party X may have been planning on something, but party Y threw a wrench in the middle, causing party X to have to make some response. By implication, party X believes party Y to be throwing a wrench, hence, party X must act. Therefore, party Y also must be planning something that counteracts party X's desires. If it weren't so, party X would not act (as that costs money).


The thing that contradicts Party X's desires can just be not doing the thing Party X wants done, it doesn't have to be doing an equal and opposite thing.

This seems like a variation on the fallacy of the excluded middle.


It's closer to so-far-unnamed fallacy of "the right has no agency." Everything they do is in response to something done by the democrats or the left or whatever and so they aren't responsible for their actions.


Netflix wasn't buying CNN.


Both-sidesism is a hell of a drug.


Netflix and those involved hasn't conclusively metamorphosed into a Larry Ellison-esque state of Lawn Moweriness.

Make no mistake, it (Netflix) is still a billionaire corp; on the humanity scale, it scores quite low, but not lawn mower low. They're still outside the Ellison event horizon.


> it (Netflix) is still a billionaire corp

What does that mean?


It means do not make the mistake of anthropomorphizing Larry Ellison.


Didn't you know? It's only bad when the people I don't like are doing it.


Well Netflix hasn’t given Trump a $15 million bribe or any other politician yet.


his son-in-law is outbidding netflix so $15bn maybe would do it :)


They’ll be replaced with cheaper humans in Mexico using those Copilot seats, that’s much more tangible and obvious, no need to wait for genius level AI


LLMs raise the floor for confidence for near/offshoring in the executive class. That’s the actual sell.

Edit: in the context of SWE at least


Uh

* two major platforms on PC and one of em doesn’t sport a Big Picture mode

* the other store does nasty tricks like never terminate a game process completely when you launch their titles through the other platform (very obvious w/ Alan Wake 2)

* other store’s titles doesn’t have this problem if I use Playnite as the TV frontend, but Playnite is a giant security vulnerability waiting to happen cause you need 3rd party plugins to emulate Steam Big Picture

* entire swatches of games that act funny with Steam Input or have incomplete configurations and I don’t feel like figuring that out just to play Backrooms

* Windows window management when using Steam Big Picture w/ controller is bad, b/c lots of desktop things will steal focus (hello Rockstar Games and EA)

* oh yeah, mandatory LAUNCHERS

* Try to play Mass Effect Legendary Edition on a TV with a controller; no really, try

* don’t even get me started on OOTB auto HDR config for almost any random TV with PS5 vs dicking around with the NVIDIA control panel

* the Steam store navigation w/ controller is baaaaad in 2025, many times you won’t be able to move or select certain things.

This is an incomplete list. It actually doesn’t matter whether you have a point-by-point refutation, no non-technical person wants to deal with any of this. They want machine to take care of everything. That’s what an appliance is

(Edit: formatting)


Thank you for writing all of this so that I didn’t have to.

And the exciting thing is I’m not even aware of many of those because I don’t play the same games and use different peripherals. If I listed out all my issues many would be unique to me. There are an infinity of issues with using a PC as a console.

A random one - audio outputs and inputs randomly locking to something you aren’t actually using. Between virtual devices for streaming apps you didn’t know you installed, weird devices hidden in USB peripherals, outputs on various TVs and monitors - my sound rarely “just works” and I have to spend a lot of time in the desktop fiddling around with the system tray.


I made sure to match brand between my TV and sound system for this reason. Also reminds me: you can have wake from sleep with an Xbox controller on PC, but not any other controller, and Windows won’t wake if I turn the TV on and switch to the PC connection; consoles have done this a long time.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: