Live data from Hacker News

What was the last breakthrough in computer programming? (2019)

quora.com

221–226 of 226 posts

Re: What was the last breakthrough in computer programming? (2019)

#221
post #164

Earlier quoted context omitted.

Lookup what CBMC does. SAT solvers will also be also be applied in traditional compilers soon. The remaining problem with formal verification and compilation is proof of termination, which is not a SAT problem. Running all test cases via cbcm is magnitudes faster than writing 100% coverage (only line cov, not covered values) tests. It's like one day vs one month. And I've never seen code with full value test coverage…

Even if everything you say is true, it's true the first time. Then I make a change to the code. Now if I have unit tests, I have to fix a test (maybe minutes, maybe an hour) and re-run the tests (minutes). Or I have to re-run the formal verification (a day).

make verify needs less than a few seconds on my targets. Everything over 30min needs to be fixed, or split up.

Re: What was the last breakthrough in computer programming? (2019)

#222
post #77
post #47

It always feels like Alan Kay is wistfully talking about how there could have been an alternate future where he and his ilk would do programming and computer engineering the "right way" and somehow the world has lost it's path. He waxes eloquent about how he enabled the genius's at Xerox PARC to do deep work and how they changed the world. I find his talks inspiring but I also find it tone deaf that he doesn't unders…

>If Alan Kay really wants to see the worlds next ideas birthed into existence, why isn't he at the forefront of free and open source? He was, he created Smalltalk, released the source code and made it as open as it can be. You can see the source of everything. The only problem was very few people were interested on that. Most children were interested in just one thing: games(the best quality they could get). And adul…

What special access to the divine do you think you have that would encourage you to report as facts the last two sentences (which are actually quite false)? You are confusing your internal inferences with what is actually going on -- and to the extent that you feel you can tell others.

If you are trying to bluff your way through -- to appear knowledgeable when you aren't and can't be -- this is a behavioral syndrome that will not serve you at all well overall.

Re: What was the last breakthrough in computer programming? (2019)

#223

Earlier quoted context omitted.

> ...shortcomings of Kotlin... I'd read that newsletter.

Don't get me wrong, I mostly like working Kotlin. But the more I do, the more I realize what a hodgepodge of features it really is. A bunch of features don't really work together that well. And a bunch of features are only 80% (or less) of what I actually want. For example, what if I don't like data class's stupid copy() method? How do I opt out? You can't. Value classes can't be used as varargs, can't implement an i…

Belated thank you. I've been chewing on your observations. You're absolutely right about the papercuts.

I have to ponder the (lightweight) value objects stuff. And

> you can't express "nested" emptiness

Spot on.

I dislike all the current null mitigations: nullability (question marks), @nullable, Optional.

My hobby language takes a different path. All nulls are actually Null Objects (under the hood). So method chaining cannot break.

re: type classes

Ya, a nice reminder that I need to learn Haskel. Stuff like that is still beyond me. I hope innovators continue to noodle with more accessible Haskel, Ocaml, etc.

Being late in my career, I'm motivated to create a better "blue collar" programming language for 99% of the work I've done. Meaning data processing. Ingest data, mostly strings, munge stuff, spit out results.

Re: What was the last breakthrough in computer programming? (2019)

#224
post #166

Earlier quoted context omitted.

He was speaking as if it was still 1980s. Now we have cloud based ML doing the optimization finding. ML will (eventually) be able to generate biz logic code, and most assuredly infrastructure config (a cloud API has a limited set of possible configs of value to our sorting patterns), UI code (we gravitate towards a limited set of UX it seems), to solve much of our daily programming work. ML can’t invent future ideas,…

> ML can’t invent future ideas, it can’t evolve itself without us making new hardware for it. But it will implode the blue collar dev job market eventually. I have doubts about that. Open source code seem to achieve a large part of the same function as ML (implement "boring" code for the Xth time) but it only has increased the number of blue collar devs. On the other hand, some no-code tools are opening programming t…

Remember; human function names and object names are for human consumption. We could write a whole lot less if not for all the programmers who need context.

We know from our hardware platforms what we can and cannot compute; their spec defines the limits. We don’t need dozens of competing languages when our goal is “reserve memory, compute values in that memory in this order, free memory when done”.

My startup is focusing on learning what code shapes are ok from the context of security and developing a filtering tool to avoid allowing merging commits that violate that spec.

We have a lot of interest from DOD and SV companies, in the form of “pre-emptively avoid security issues via coders who write stupid code.”

Eventually we’ll have tailor made hardware with little to no generally programmable surface area.

Because our generation of computing is behind us. Kids now just want the thing to emit results.

The thing that’s holding them back is maintenance of “career oriented job life”. Rather than build programs, software people babysit dependency lists and process. Google products are a mess because it’s about capturing worker and customer agency, not engineering novel things.

Re: What was the last breakthrough in computer programming? (2019)

#225

Earlier quoted context omitted.

He was speaking as if it was still 1980s. Now we have cloud based ML doing the optimization finding. ML will (eventually) be able to generate biz logic code, and most assuredly infrastructure config (a cloud API has a limited set of possible configs of value to our sorting patterns), UI code (we gravitate towards a limited set of UX it seems), to solve much of our daily programming work. ML can’t invent future ideas,…

> But it will implode the blue collar dev job market eventually. There is no “blue collar dev job market”, and the end of the dev kob market that has a hint of a bluish tinge in the collar is the end that is continuously being by tooling progress. But that just expands the scope to which it is useful to apply software development, increasing jobs and wages in software. > ML will (eventually) be able to generate biz l…

There is a “blue collar dev” market.

I dated a “web developer” who worked for the county. She used a Photoshop like tool to update the layout of an intranet, and occasionally straighten some PHP.

She knows nothing of computer science, just the tools she was trained on. She knew nothing about how the hardware works, that RAM and SSD were different types of memory or which situations make one preferable to the other, cause that was already figured out in the tooling.

There are a lot of people who work like that and call themselves software engineers.

We’re ultimately trying to make hardware do something, but rather than that, we invented more ornate interfaces to the same old hardware for … jobs.

A hardware based future where the onboard ML chip can generate a AAA game or Pixar level media will happen. Because then they don’t have to pay a bunch of coders or artists.

Greers “program the perimeter, not the area” comes to mind. Most software is simple logic and network effects. As our manufacturing process allow us to make customizable silicon from step 1, why not listen to Greer, bake the best perimeter for a task into hardware?

Re: What was the last breakthrough in computer programming? (2019)

#226
post #177

Earlier quoted context omitted.

Have you worked with Kotlin yet? Since 1.5 Result is a valid return type. Inline classes are thin wrappers and compiled out. Data classes automatically give you a toString method. With sealed classes you can implement ADTs.

I have. I generally like Kotlin, but even that makes it a little too cumbersome to work with "newtypes" such as a NonEmptyString type. Here's what I do for a NotBlankString in Kotlin 1.5+: @JvmInline value class NotBlankString private constructor(private val value: String) : CharSequence { override val length: Int get() = value.length override fun get(index: Int): Char = value[index] override fun subSequence(startInd…

Thank you very much for the detailed writeup. Several new things to learn for me in there. Not being able to use delegation here is a bummer, would be a great fit.

While trying to write up a clever solution using [0] i stumbled over String.isNullOrBlank()

[0] https://kotlinlang.org/docs/scope-functions.html

(edit)

  if (s.isNullOrBlank()) {
      doOtherStuff()
  } else {
      doStuff(s) // takes a NotBlankString
  }
If you are sure it is not null you can use String.isBlank()
Post reply on HN