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

In dynamically typed programs, you can if you allow it, let the types happen to you. In a statically typed program, you are forced to think about them from the beginning. That same abstract concept is at play with vibe coding, but instead the code now happens to you.

My best LLM written code is where I did a prototype of the overall structure of the program and fed that structure along with the spec and the goal. It is kind of the cognitive bitter lesson, the more you think the better the outcome. Always bet on thinking.


I've used a dynamically typed language extensively. I don't think they are suited for anything but small scripts.

Refactoring is a nightmare, as as types don't exist, the compiler can't help you if you try to access a property that doesn't exist.

I think generally people have realised this, and there are attempts to retrofit types onto dynamically typed languages.


To "realize" that it would have to be true. The longer I've stuck with untyped Python the more I've preferred it, and the more I've seen people tie themselves in knots trying to make the annotations do impossible (or at least difficult) things. (It also takes away bandwidth for metaprogramming with the annotations.)

It bugs me that there are two kinds of languages. Parameters and variables could be typed optionally in a dynamic language; either error in the compiler or at runtime; otherwise you just haven’t made any type errors while you coded and the code is fine either way.

This is what gradual typing (such as TypeScript, or the use of Python annotations for type-checking) accomplishes. The issue is that it basically always is bolted on after the fact. I have faith that we aren't at the end of PL history, and won't be surprised if the next generation of languages integrate gradual typing more thoughtfully.

The problem with these two languages is that the runtime type system is completely different (and much weaker) than the compile time one; so that the only way to be safe is to statically type the whole program.

CL has a pretty anemic type system, but at least it does gradual without having to resort to this.


JavaScript caught on because it was the best casual language. They've been trying to weigh it down ever since with their endless workgroup functionality and build processes. If we get a next generation casual language, it'll have to come from some individual who wants it to happen.

No, JavaScript caught on because at the time it was the only game in town for writing web front-ends, and then people wanted it to run on the server side so that they could share code and training between front end and back end.

It's not enough to just be first. It would have been replaced by now if it wasn't fit for purpose. Otherwise we might as well not bother to critique anything.

A needlessly confrontational view. Some people do use dynamic typing as a way to stumble around until it works (e.g. most scientists) but some others simply don't want the noise associated with a static type system accurate enough to really say what you want; especially during prototyping/interactive use. Which is why gradual typing exists, really.

Same reason my views about GC evolved from "it's for people lacking rigour" to "that's true, but there's a second benefit: no interleaving of memory handling and business logic to hurt clarity".


Philz is phucked, this is their Bud Light moment.

If this reddit thread has any merit, Philz will be wrapped up in a year. https://old.reddit.com/r/sanfrancisco/comments/1sfl6ji/mahes...



That's a partial evaluator, not an interpreter, and it converts an interpreter into compiler, which are different things.

> Interpreters don't translate bytecode to native instructions.

> That's a partial evaluator, not an interpreter, and it converts an interpreter into compiler, which are different things.

https://old.reddit.com/r/Compilers/comments/1sm90x5/retrofit...


Yes, that's another great example of the same kind of thing - creating a JIT from an interpreter. It remains true that interpreters do not directly generate machine code.

The author of weval is the top comment.

Reading the comments and understanding that transitively, weval turns interpreters into compilers, allowing interpreters to generate machine code.


If you turn milk into cheese it isn't milk any more, and it doesn't prove that milk is a yellow solid.

So Vagrant is launching the VM locally, is that why it needs nesting?

Would you be ok with a trampoline that launched the VM as a sibling to the Vagrant VM?


It helps if you offer a concrete use case, as in how large the heap is, what kinda of blackout period you can handle, and whether the app can handle all of it's open connections being destroyed, etc. The more an app can handle resetting some of it's own state, the easier LM is going to be to implement. If your workload jives with CRIU https://github.com/checkpoint-restore/criu you could do this already.

By what I assume is your definition, there are plenty of "non cloud native" workloads running on clouds that need live migration. Azure and GCP use LM behind the scenes to give the illusion of long uptime hosts. Guest VMs are moved around for host maintenance.


"Azure and GCP use LM behind the scenes"

As does OCI, and (relatively recently) AWS. That's a lot of votes.

Use case: some legacy database VM needs to move because the host needs maintenance, the database storage (as opposed to the database software) is on a iSCSI/NFS/NVMe-oF array somewhere, and clients are just smart enough to transparently handle a brief disconnect/reconnect (which is built-in to essentially every such database connection pool stack today.)

Use case: a web app platform (node/spring/django/rails/whatever) with a bunch of cached client state needs to move because the host needs maintenance. The developers haven't done all the legwork to make the state survive restart, and they'll likely never get time needed to do that. That's essentially the same use case as previous. It's also rampant.

Use case: a long running batch process (training, etc.) needs to move because reasons, and ops can't wait for it to stop, and they can't kill it because time==money. It's doesn't matter that it takes an hour to move because big heap, as long as the previous 100 hours isn't lost.

"as in how large the heap is"

That's an undecidable moving target, so let the user worry about it. Trust them to figure out what is feasible given the capabilities of their hardware and talent. They'll do fine if you provide the mechanism. I've been shuffling live VMs between hosts for 10+ years successfully, and Qemu/KVM has been capable of it for nearly 20, never mind VMware.

"CRIU"

Dormant, and still containers. Also, it's re-solving solved problems once you're running in a VM, but with more steps.


This is like measuring programmer value in klocs.

When klocs is approximately 0 that is telling.

Short enough to possibly be correct.

You can get new $2 from your bank

And they're still a pain to spend, because too many people refuse to believe they're real money. Or else don't want to take them because there isn't a slot in their cash drawer. I inherited a couple of bundles from my dad last year (he made $2 bills his "thing", much like Woz, because he enjoyed arguing with cashiers), and exchanged them all at the bank for "real money".

> I inherited a couple of bundles from my dad last year (he made $2 bills his "thing", much like Woz, because he enjoyed arguing with cashiers)

For the unaware, Steve Wozniak buys sheets of uncut $2 bills and spends them. He’ll walk into a location and tear off a $2 bill like a serrated coupon.

There’s probably a better link but this was at hand: https://www.snopes.com/fact-check/steve-wozniak-2-dollar-bil...


Every time I picture him doing that, I laugh.

It’s hard not to love that guy.


It's so crazy particularly because it's not just some random dude but one of the co-founders of Apple[1] (for those unaware)!

1: https://en.wikipedia.org/wiki/Steve_Wozniak


> serrated coupon

Perforated coupons. (It’s too late to edit the above.)


Many years ago a friend of mine used to tip bartenders and servers with dollar coins (a dollar tip on a drink was good at the time). They remembered him for that and he got better service even though it was probably a bit of a PITA for them to deal with the coins. $2 bills could probaby be used in a similar fashion.

Tips are a good use because they go into the pocket, not the cash register - and it makes you memorable.

> they go into the pocket

That is, assuming the worker has a pocket to receive the tips.

https://en.wikipedia.org/wiki/United_States_two-dollar_bill#...


Or at the strip club

I believe that you have run into difficulty with some person(s) not understanding that $2 bills are real money.

I don't believe that they've been anywhere nearly as much of "a pain to spend" for you as you're stating. You're just gabbing.


They're socially awkward to spend, because people don't want to take them. That was true each of the four or five times I used bills from my father's stash, though I was outright refused only once. Unlike my father, I don't enjoy needlessly provoking minor hostility, so I turned them into the bank. We're all just gabbing on the internet, my dude. You might find $2 bills a fun investment.

I know and do; it's a question if I get one in change or otherwise.

(IIRC some businesses used to give change in $2 to show their "influence" on the area.)


GCP charging for interzone traffic is an interesting financial choice. They own all the infra and in many cases this is literally moving from building to building.

There's cross-region, and cross-zone. If both boxes are located within the same zone (e.g. us-east1) then the bandwidth is free, since it's intrazone traffic. Cross-zone egress traffic (e.g. us-east1 to us-central1) is billed at a certain rate, and cross-region egress traffic (e.g. us-east1 to europe-west8) is billed at a significantly higher rate.

Amusingly enough, ingress traffic seems to always be free. So you can upload as much data as you want into their cloud, but good luck if you need to get it out.


I am referring to cross-zone within in the same region, so like us-central1-a to us-central1-b. These are building to building and often never cross public land.

Oh, yes! I forgot entirely about that case. You're right, egress traffic is charged there too.

Are the datacenters really located so close together? I assumed they weren't within walking distance of each other.


Correct, they're close in the sense of country-scale geography but physically spaced to avoid specific issues like location on a flood plain.

You don't need the source, the LLM has the source, it is called the binary.

Sure, but all they have to do is not hold up their end of the bargain. Who enforces that? These are just norms from 60 years ago that the rich decided they no longer have to follow.

They’ve started treating incorporation like a modern day papal indulgence, something that absolves whatever they do in the name of profit. It doesn’t. Limited liability buys you forgiveness in court but it doesn’t buy you forgiveness in the court of public opinion. Doing harm for a company is still doing harm.

Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: