HNHacker News
TopNewBestAskShowJobs

still_grokking

2,093 karma · joined May 24, 2016

submissionscomments
still_grokking··on Google details new 24-hour process to sideload unverified Android apps
Just use µBlock Origin for most of the annoyances, and for the stupid google popup a simple Stylus CSS rule is enough.
still_grokking··on Google details new 24-hour process to sideload unverified Android apps
TBH, you could change a few terms and that text wouldn't look much different in the 90's. Microslop never gave a shit on end-users and what they think. Nobody ever "liked" Microslop. People were always complaining that Windows is shit, Office is shit, MS Servers are a joke, etc. Nobody at Microslop ever cared. They always cared only about having all the companies and governments in ransom, which was always their golden egg goose. The only other thing they care about, to make the first thing happen, are developers. They put a lot money into keeping people developing using their tech, and this actually works. Even on Linux it's hard to avoid Miroslop tech. (I've got just today a Pipewire update which pulled in some MS libs for ML; and there is for sure more as they have even code in the Kernel.) Microslop's EEE strategy is a long game, which is actually pretty hard to beat.
still_grokking··on Google details new 24-hour process to sideload unverified Android apps
Most client PC are still running on Microslop Windows.

They are, as always, using Windows to sell all their other crap, especially Azure and 365. Things like their AD or office tools are tightly integrated into the cloud so you realistically can't even use the one without using the other.

still_grokking··on Google details new 24-hour process to sideload unverified Android apps
> mail, maps, docs, search, etc. It would be pandemonium

I would hardly notice, TBH.

There are alternatives for all of that.

still_grokking··on Google details new 24-hour process to sideload unverified Android apps
I'm not sure where you are but at least here Microslop is still ruling more or less everywhere besides the online ad market.

They are big in everything that is mass scale developer oriented with things like GitHub, VSCode, or all their libs, tools, and integrations (they "own" in large parts for example Python, TS, and Rust). Governments and public services are all running on Azure. So do a lot of companies; more or less all small and mid sized. They are still dominant in the gaming market, and get stronger there with every year.

Microslop was always, and still is the same Microslop. They are very successful with what they do since decades. Whether one likes that or not.

still_grokking··on Scala 3 slowed us down?
> But safety is not the only important aspect of a programming language.

That's also part of what I've said.

The point still being: Where you need a safe language there is no way around it, and Scala is still one of the very few options you have at all. Scala is in that regard indispensable.

> I feel that Scala 3 really hurt the community angle

I don't see that.

Everything relevant, besides Spark, is now on Scala 3, and this is already like that since a few years.

But I agree that Scala documentation / references / tutorials are to this very day lacking. This was and still is a real issue, and that's actually a very relevant one. I really hope this gets better with time.

The sub-optimal situation regarding docs does though not prevent people from starting new projects in Scala.

In fact Scala 3 is again ahead of the pack. It provides features not seen so far in any real world language and will almost certainly again pioneer the implementation of new language concepts in the large, as it did already in the past with its pragmatic approach to a OOP / FP fusion.

Just see for yourself what is currently happening:

https://softwaremill.com/understanding-capture-checking-in-s...

still_grokking··on Scala 3 slowed us down?
> Python has convenient and good type design with str.join ignored by other languages.

Of course such non-discoverable and unintuitive design gets ignored everywhere!

We just established that even in Python the correct way to do it would be

  Iterable[str].join(str) -> str
but for that Python would need generic iterators on the language level…

> For example I'm lost which abstract class to inherit in Scala to obtain mkString for my custom container.

So you're saying you've been able to implement custom Scala collection types, which is regarded some of the more difficult stuff one could possibly do, but you don't know how to implement an Iterator for your custom collection—as this is all needed for mkString to work? BTW, how did you implement the collection type at all without implementing Iterator for it? Your collection is not Iterable?

TBH, this does not sound very realistic. This sounds more like typical HN Scala FUD. People throwing around some vague, most of the time outright made up issues they've heard about somewhere about 10 - 15 years ago.

still_grokking··on Scala 3 slowed us down?
That's obviously the wrong signature.

The semantically correct one is "Container[T : Printable].join(): String"; T must implement the Printable concept, but Python lacks concepts (or type-classes as these are alternatively called).

But this all is irrelevant as this is anyway not the signature of `str.join()` in Python. It's `str.join(Iterable[str]) -> str` there. With sane design and syntax it would just become `Iterable[str].join(str)`.

still_grokking··on Scala 3 slowed us down?
> or Scala 2, yes, or there was the last I looked. Still the best Scala development experience by some margin, sadly.

I can't find it.

Could you link to that "best Scala development experience by some margin"?

All I know is that the Eclipse plugin is dead since about one decade. But maybe I just missed something.

> the integration/bridging piece is still flaky

What concrete issues do you have?

I'm using Metals on a daily basis and don't know about any such problems.

Could it be that the last time you've seen Scala (if you actually ever seen it at all) was about 10 years ago?

The discussions here on HN regarding Scala seem always massively dishonest, with a lot of people always spreading outright FUD for some reason I don't understand…

still_grokking··on Scala 3 slowed us down?
I still don't get what you want to say.

Linking some GitHub repo does not explain anything.

What is "abuse", what is "magic" in this context?

still_grokking··on Scala 3 slowed us down?
First of all nothing in the article is about optimization. Scala does not even have an optimizer…

It was about translation strategies and macro expansion.

But this makes no difference. You have all issues you just named exactly the same in so called "high level languages" as you have in C. C is in fact a high level language, and the code you write in C has not much in common with what the machine actually executes. The last time this wasn't like that is about 40 years ago.

1. Whether the C optimizer kicks in or not is pure dark magic. Nobody can tell from just looking at the code. The optimization techniques are way too complex to be understood ad hoc, not even experts can do that.

2. The difference between the optimizer doing its work, or instead the computer just verbatim executing whatever someone written down is hilariously large! Adding -O2 can make your code many orders of magnitude faster. Or it does almost nothing… (But like said, you can't know what will happen just from looking at the code, that's point again 1.)

3. You neither can express what the machine does in C. The machine does not execute anything like C. The last time it did is over 50 years ago… Since at least 30 years we have kind of JIT compiler in the CPUs which translate the result of compilation to ASM into the actual machine language. A modern CPU needs actually to emulate a computer that still works like a PDP-11 to match the C machine model even the real hardware does not look anything like a PDP-11 any more! You have only very indirect influence on the actual machine code when writing C. It's mostly about forcing the CPU internal JIT to do something, but you have no control over it, exactly as you don't have control over what for example the JVM JIT does. It's the exact same situation, just a level lower.

still_grokking··on Scala 3 slowed us down?
The website is a private undertaking which started literally a few days ago. It's not some official complete tracker.

The point was to show that big corps are dependent on Scala, often at their core.

Scala is likely not for everybody, but where you need to write safe high level code there is more or less no alternative, not even on the horizon. Scala is simply very likely where Rust will end up after the honeymoon, when people realize that feature rich, safety first languages aren't for the mass market, where mostly only the cost of initial development counts.

still_grokking··on Scala 3 slowed us down?
Examples and code snippets in the official docs of course default to the new syntax, making them well readable for all people accustomed to Scala's new syntax.

> If I recall correctly, later they added a switch allowing one to choose between syntax versions in the online docs.

Stating this, which is not, and never was true creates the impression you're talking about things you have no clue about.

The point is: Removing braces really makes code much easier to read for people who get distracted by useless line noise!

> So reading unfamiliar syntax is literally harder. > […] > Source: have a degree in neurophysiology.

You need a degree to understand something such obvious? Never mind…

The point is: New syntax is only new in the first few hours of contact with it.

Anybody who uses more than one language knows that switching languages is in fact a bit distracting, but at latest on the second day you completely stop thinking about syntax, and than switching back to whatever was before is as hard as the previous switch to the current thing. Usually this happens already after a few hours for languages you already know.

As we're talking about neurophysiology: As a matter of fact filtering "noise" — irrelevant information — from sensory input is a hard task for the brain. So having less distracting useless noise in the input helps to concentrate on the stuff that actually matters!

Braces in code are 100% redundant, useless noise. The only reason they were added in the first place was to make code simpler to parse for computers, something that does not matter any more since many decades. So there is no rational reason any more to pollute code with useless, distracting noise.

still_grokking··on Scala 3 slowed us down?
Scala 2's macros are compile time constructs. There is no runtime code generation / staging.

Scala 3's macros support staged compilation, so you can have macros which create code in later stages at runtime.

https://docs.scala-lang.org/scala3/reference/metaprogramming...

still_grokking··on Scala 3 slowed us down?
It won't in general.

Doing so is a feature of high-end VM runtimes like the state of the art JVMs or JS runtimes.

still_grokking··on Scala 3 slowed us down?
> However I agree that the syntax is a textbook case of trying to fix what ain't broke.

The great new syntax is the very reason I don't want to even touch Scala 2 any more.

The syntax change is the absolute highlight in Scala 3. It makes the language so much better!

The only real problem was that it happened so late; at least a decade too late.

still_grokking··on Scala 3 slowed us down?
> The original language spec is the best thing the Scala devs ever made.

The overreaching majority thinks that Scala 3 is objectively much better than Scala 2 ever was. That's at least what you hear just everywhere, besides the occasional outlier by some Scala 2 die hards.

still_grokking··on Scala 3 slowed us down?
Sure. All successful languages go into decades still stand.

Just see how great this worked out for Java (or Perl… ;-))!

/s

still_grokking··on Scala 3 slowed us down?
What's so bad about it?

Why not try to learn it for good?

still_grokking··on Scala 3 slowed us down?
The upgrade Scala 2 -> 3 is usually super smooth. The compiler does all the work, you just need to update your build config / dependencies.

The only exception is macros: If you used the experimental Scala 2 macros you need to migrate them to the new system which is completely different.

still_grokking··on Scala 3 slowed us down?
> Lower-level languages don’t have this same problem to the same extent.

Of course they have.

If the computer would directly execute what you write down in what you call "low level language" this would be slow as fuck.

Without highly optimizing compilers even stuff like C runs pretty slow.

If something about the optimizer or some other translation step of a compiler changes this has often significant influence on the performance of the resulting compilation artifacts.

still_grokking··on Scala 3 slowed us down?
> Especially when the libraries abuse magic language features (and far too many Scala libraries do)

Would you mind to explain what you mean?

still_grokking··on Scala 3 slowed us down?
Just for context, a lot of people in the community think that this syntax change was the best thing that happened to Scala since its inception.

Also the silent majority thinks that the people who still lament over that change are just a very vocal minority.

Almost all Scala 3 code uses the new syntax, no matter how loud a few people cry. Similar situation to systemd on Linux…

still_grokking··on Scala 3 slowed us down?
What are you missing currently?
still_grokking··on Scala 3 slowed us down?
There's still a working Eclipse plugin? Does Eclipse now support LSP servers?

The most reliable Scala IDE is currently Metals (in VSCode, but other editors work, too). Metals uses directly the compiler for all code intelligence so it's as reliable as the compiler itself.

https://scalameta.org/metals/

https://scalameta.org/metals/docs/#editor-support

still_grokking··on Scala 3 slowed us down?
People on HN down-voting facts?

And yes, "you get what you pay for" is part of this.

still_grokking··on Scala 3 slowed us down?
https://nindalf.com/posts/stop-citing-tiobe/

https://medium.com/@ankushroy7/tiobe-is-trash-why-it-gets-mo...

Tiobe bullshit unfolding looks like:

https://news.ycombinator.com/item?id=24997496

still_grokking··on Scala 3 slowed us down?
It's such a blessing to be able to write in Scala

  customers.map(_.name).mkString(", ")
instead of the Java bloat

  customers.stream().map(c -> c.getName()).collect(Collectors.joining(", "))
still_grokking··on Scala 3 slowed us down?
Python's approach is one of the most confusing ways to possibly do it. Not having proper, discoverable methods is super annoying, and I need to look it up every time anew I use Python because it's so unintuitive.

Of course you can write a generic version of `mkString` (as this method is called in Scala), so it's also just one method no matter the container count.

The Python weirdness is actually a direct result from the language lacking generics…

still_grokking··on Scala 3 slowed us down?
Scala is broadly used by the biggest companies in existence.

https://business4s.org/scala-adoption-tracker/

The stuff currently cooking in Scala 3 will once more revolutionize the whole programming language landscape.

https://softwaremill.com/understanding-capture-checking-in-s...

https://www.youtube.com/watch?v=p-iWql7fVRg

← PreviousPage 2 of 34Next →