Hacker News new | past | comments | ask | show | jobs | submit | moe's comments login

Rest assured this is not subjective. It is objectively disgusting.


Crystal performance is close to Go-lang. It's just very fast across the board.

Consequently, just like Go-lang, it beats Ruby by an order of magnitude on pretty much any benchmark.

Newcomers often assume Crystal must be sluggish like Ruby because "how could a language with such a convenient syntax be so fast", but it really is not.

https://www.techempower.com/benchmarks/


> Crystal performance is close to Go-lang. It's just very fast across the board.

I know Go is known for it concurrency, does Crystal come close to that aswell?


in fact Crystal concurrency is the same with Go, both using coroutine technique. though Go should be more performance because it is built for that feature.


Interesting, I might give Crystal a try!


That's one of the aspects in which Crystal shines.

It retains most of the flexibility and DSL capabilities, but the type- and nil-safety allow you to leverage them without nasty surprises at runtime.

Not having to guess what a method or block returns and instead having the compiler tell you when you get it wrong makes an enormous difference.


Go is not a good comparison.

Crystal is expressive, 500 lines of Go commonly translate to 50 lines of Crystal. The DX in Crystal is really closer to Ruby than to Go. It's essentially a very fast and type-safe version of Ruby.


> The DX in Crystal is really closer to Ruby than to Go.

Me as polyglot can say that is much easier to switch completely between languages and paradigm than write or talk similar (but not equal) languages. So it is maybe a great reason for beginners to start to play with Crystal as Rubyists, but as soon as you start to work daily with the language, other factors like good documentation, tons of examples, great standard lib, active community and development, etc are much more important than if its remembers ruby or not.


Crystal core developer speaking:

I think this argument is less about the concrete syntactical and semantic similarities to Ruby, but the shared general idea to focus on developer happiness. For example, code is easy to read, yet still expressive.


Maybe with LLMs it won't matter much anymore? Maybe in the near future we'll have copilot for crystal as vscode plugin and the rest doesn't matter much - just quality of this plugin?


What will your LLM be trained on?

It only makes the problem even more acute I think.


Yesterday I told ChatGPT:

> We're going to write a program in a "new" language that is a mix of Ruby and INTERCAL. We're going to take the "come from" statement and use it to allow "hijacking" the return of a function. Furthermore, we're going to do it conditionally. "come from <method> if <condition>" will execute the following block if <method> was executed and <condition> is true. In <condition>, "result" can be used to refer to the result of executing <method>.

And that was enough to get it to understand my example code and correctly infer what it was intended to return.

Given it took that little, I don't think you need much code in a new language before you have a reasonable starting point as long as you can give examples and document the differences, and then use that on a few large projects that has good test suites, and work through any breakage.


You still need libraries and the ecosystem.

If it can't find those, then because there is no training data, best case scenario is that it will hallucinate APIs that don't exist.


If the LLM understands the language it can aid in creation of the libraries and ecosystem because it can also translate code. I just tested it by having ChatGPT translate one of my Ruby scripts to Python for example.

I don't like Crystal all that much, but it's similar enough to Ruby that if ChatGPT can handle Ruby->Python, it can handle Ruby->Crystal with relatively little work.

But it doesn't need to handle it flawlessly, because every new library you translate and fix up gives you a new codebase you can use to finetune it.


We need RLHF -> RLCF/RLIF/RLEF (Reinforcement Learning from Compiler/Interpreter/Execution Feedback).


But that's the thing, libraries are written and it should be able to just read/learn/train on it, that's all.


Ideally on source code so it knows standard library and how to use it with enough comprehension to be useful.


At that point, why bother with high-level languages at all? A sufficiently-good AI should be able to read a specification / test suite and directly generate a binary which passes those tests.


Maybe. Or maybe it'll become validation/what-is-happening lowest denominator. Programming languages are also a good Intermediate Language between humans<->machines and machines<->machines apparently due to recent AI advancements.


> 500 lines of Go commonly translate to 50 lines of Crystal

This is a vast exaggeration. And even if I grant it, it's still thousand of loc that you don't have to write because of available libraries.


IMO crystal's value is that I can do things normally associated with golang without the horrors of actually dealing with golang's absence of a good type system and other quirks like error handling.


Although they do try to make it easy to use C libraries:

https://crystal-lang.org/reference/1.8/syntax_and_semantics/...


The mic is pretty bad anyway.

And to add insult to injury, your listening audio quality also gets degraded whenever it's on... So it's a lose-lose for both sides every time you use it.

My main complaint is that OSX has no setting to completely disable it. I have to manually switch to the Macbook internal mic basically before every call.

I wish they would just sell a model without the crappy mic. I would even happily pay less for it.


The audio quality thing is a Bluetooth limitation AFAIK. There is no standard which lets you stream high quality audio bidirectionally, their high fidelity mode has only one audio stream going to the headphones.


Friends don't let friends buy Salesforce (or Oracle) has been common sense in engineering circles for at least a decade.

It seems founders should adopt a similar stance: Friends don't let friends get bought by Salesforce.

I wonder if James et al regret having fed their baby to the devil. Surely a better buyer could have been found, one that doesn't destroy everything they touch. But no blame here. They had their well-deserved payday and we shall remain grateful for all the good patterns, ideas and years of solid service they contributed to our craft.

R.I.P. Heroku!


I feel like you are both chasing red herrings.

This is not about child porn nor about what AV software can or cannot do.

It's about normalising mass surveillance and implementing populace control. They don't want another Snowden to scare the public with reports about "backdoors" and mass privacy violations.

They want the coming generation to perceive it as normal. Because all phones do it, hasn't it always been this way, and think of the children.

Oh, these dissidents in $distant_country that will be muted and killed using Apple's shiny surveillance tech? Well, evil governments do what they do. But we are not like that. Over here it is only about the child predators. Trust us.

Apple has been an opponent of these developments for decades. Now they are spearheading it.


But then how would you know it's really off!


I sense sarcasm, but I'll answer anyway.

A power indicator light would do the trick...

But in all seriousness, your bluetooth headphones should have a sim card built in and be an IoT slave to the cloud. So that when you turn them off, they send a message to Alexa, Google, and Siri, so that all of your devices can tell you "YOUR HEADPHONES ARE NOW OFF" at the same time. Like a tiny choir of angels informing you of the new state of your device.

But of course, there will be one slow/older device that lags 0.3 seconds behind and says "HEADPHONES...OFF", completely out of sync with the rest, like a rebel.

Damnit, toilet! Get with the times...


𝕐𝕆𝕌ℝ 𝕁𝔸ℂ𝕂𝔼𝕋 𝕀𝕊 ℕ𝕆𝕎 𝔻ℝ𝕐


This reminds me of that one dystopian text adventure game the verge put out a while ago.

The version on the original site now links to here:

https://adirobertson.itch.io/wake-word

for those who haven't played it yet.


The way I've been able to learn that devices are off since the early 2000s is that the blindingly bright blue LED light is replaced by a blindingly bright red LED light.


I really hate those. When your house is dark and it's calm and all you see are little eyes of Sauron floating in the darkness. I've gone around my house with masking tape and covered every unnecessary visible light.

Google Wifi is one of the worst offenders. They might as well market it as a wifi-repeating lamp.


You can adjust the brightness of the light ring from the Google Wifi app (all the way down to "off"!).


Thank you. This helps a lot. I didn't think to look for it.


Out of curiosity...

Do the doors at Apple HQ have locks? Or is there just a little LED next to them that lights up when they open?


There is a little LED that lights up when they open. The door latch is controlled via software and so is the light, though I would assume in the case of power failure they'd unlock for fire safety reasons.


Ok. So there is not only a LED, but a physical latch.

I think Apple's building security architect should have a conversation with their camera security architect.


I know where you were going with that, but the situation is different than what you’re trying to show. On Macs the light is on the path of the camera: if it is on the camera is, if it is not then the camera is not. Whereas with the door you might think that if it was latchless someone could just push it open when the light was off. The camera light is really a door alarm, not a door latch. (And as I just mentioned, doors with an alarm but no lock often do exist, usually for fire safety reasons).


No, the situation is in fact the exact same.

A door without a latch does not prevent an unauthorized person from trespassing. A camera without a cover does not prevent an unauthorized person from trespassing.

Apples webcams are broken by design.

Other companies fixed theirs years ago: https://www.youtube.com/watch?v=37NFVGLX3vw


If you want to try it, grab https://karabiner-elements.pqrs.org/

Activate the complex modification called "Change caps_lock to control if pressed with other keys, to escape if pressed alone".

Now you have a capslock key that doubles as control and escape and your pinky can begin recovering from the decades of abuse.


Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: