Live data from Hacker News

If You're Not Writing a Program, Don't Use a Programming Language [video]

youtube.com

71–80 of 288 posts

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#71
post #59
post #10

I believe these are the kinds of ideas that might actually create a genuine engineering culture in software development. Until we start applying this kind of rigor to our work, I don't believe the title of "Software Engineer" is justified. It doesn't have to be TLA+; it doesn't have to be any particular tool or technology or pattern or whatever. But the attitude that rigor and formal technique is worth the additional…

I think that tools such as TLA+ show their value not by convincing people that they're worth the extra effort but that they actually save you effort. The experience at Amazon and Microsoft shows exactly that, and managers were relatively easily convinced.

Absolutely agree. I work in the autonomous vehicle space, specifically in creating high-assurance resilient systems, and I've had more arguments that I care to count which went something like the following:

Them, "All that extra effort sounds great, but we don't have the time to do that. It will explode the really tight build, test, debug cycle we have now. Suddenly every cycle will be 100x as long."

Me, "First of all, you should be less concerned about the length of an individual cycle and more concerned about the sum of all the cycles up to completion."

Them, "Okay, but having short cycles also helps us course correct quickly, and keeps our 'velocity' up."

Me, "Well, second of all, what good is it to be able to iterate really quickly toward an unspecified goal? How do you know that what you're doing will get you there? Or worse, how do you know that what you're trying to do is even possible or not? Maybe you're 'engineering' your way asymptotically toward an impossibilty result."

It's sometimes crazy making to have these conversations and see how wildly distorted we've allowed our incentives and perceptions become as a group of professionals. It's become more important to produce the appearance of progress and effort than it is to actually make progress and thoughtfully apply effort.

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#72
post #3

I haven't watched the full talk, so let me know if this gets explored by Lamport, but... Here's a thought: PL researchers seem to generally agree that typed languages are superior to untyped languages, yet programmers tend to prefer untyped languages to typed languages, to the point where Java and C++ have the fanciest type systems in common use, with ML being the closest thing to an academic language that gets signi…

> Certainly if I knew exactly what program I was going to write when I started, I could probably write it in haskell;

If you don't know what program you want from the start, it's yet another reason to write in Haskell.

Haskell programs are much easier to change than any dynamically type language. Each time you change your mind in Python, you have to basically rewrite your entire program, and if done often enough (what 2 or 3 times are already enough) you will still get a mess on the end because of all the changes.

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#73
post #3

I haven't watched the full talk, so let me know if this gets explored by Lamport, but... Here's a thought: PL researchers seem to generally agree that typed languages are superior to untyped languages, yet programmers tend to prefer untyped languages to typed languages, to the point where Java and C++ have the fanciest type systems in common use, with ML being the closest thing to an academic language that gets signi…

I feel like all the hype for dynamic languages has led to a lot of backlash in the opposite direction.

For me it was writing unit tests for python where you’re pretty much manually checking types. Or running slow one off processing scripts that fail at the last step because of an issue that static types would have caught. Writing the same thing in go usually takes the same amount of time, runs 5x as fast, and works the first time.

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#74
post #39

Earlier quoted context omitted.

They who? Old or new?

"A lot of the new people"

Ah, thank you for disambiguating the pronoun 'they' whose reference wasn't clear as you provided no antecedent.

EDIT: Heh, kind of ironic really. A pronoun without an antecedent is like a variable in a dynamic programming language whose context isn't clear.

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#75
post #69

Earlier quoted context omitted.

> I see writing software to be similar to writing music. Music has rules and structure, but leaves room for creativity and allows two or more highly skilled musicians to be able to play music together and improvise. Bad music carries only the risk of people not liking it. Bad code on the other hand...

Usually risks people not using it or playing your game. Rarely does it kill and in those cases (self driving cars, banking) those application usually has a company behind them.

If the RSS reader you're building has no guarantees of working it has no value to anyone. Not all software needs to try and be bug free but all software should strive to minimize the number of bugs in it.

Static typing helps to minimize bugs (when used correctly) by allowing function contract declarations and reducing the build up of defensive guards over time. I've seen code in dynamically typed languages with lines like `if (!foo is integer) raise;` which basically equate to onerous home-built static typing.

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#76
post #65
post #10

I believe these are the kinds of ideas that might actually create a genuine engineering culture in software development. Until we start applying this kind of rigor to our work, I don't believe the title of "Software Engineer" is justified. It doesn't have to be TLA+; it doesn't have to be any particular tool or technology or pattern or whatever. But the attitude that rigor and formal technique is worth the additional…

>the attitude that rigor and formal technique is worth the additional effort Commercially speaking - it's usually not.

Does this speak more to the pursuit of the application of software to problems generally or to the baseline triviality of problems that are funded to have software applied to them?

To me it seems like an incentive problem that starts with the distorting effects of unsophisticated investors w/ unrealisitic expectations who fund following a herd mentality only things they can themselves pattern-match to.

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#78
post #66

Meta-comment: if you're producing a video of a presentation with lots of equations on the slides, PLEASE make the slides larger than a postage-stamp. I wanted to be able to follow this in detail, but was unable to do so because the slides were illegible, and following them verbally was something that even tripped up the presenter.

There's a better version here:

https://hitsmediaweb.h-its.org/Mediasite/Play/abdee6c8696a48...

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#79
post #3

I haven't watched the full talk, so let me know if this gets explored by Lamport, but... Here's a thought: PL researchers seem to generally agree that typed languages are superior to untyped languages, yet programmers tend to prefer untyped languages to typed languages, to the point where Java and C++ have the fanciest type systems in common use, with ML being the closest thing to an academic language that gets signi…

I think a lot of the disconnect comes from "static typing" meaning different things to different people. When some people say "static typing" they are thinking a language like Haskell with a powerful type system. However, when most programmers say "static typing" they are thinking a language like Java or C++ with a rather underpowered type system. Programmers who prefer dynamic typing are largely deciding that they would rather work in a language without a static type system than a crappy one.,

Re: If You're Not Writing a Program, Don't Use a Programming Language [video]

#80
post #39

Earlier quoted context omitted.

"A lot of the new people"

But that's only if they also got some experience working with static typing. Without that, they won't see the difference in difficulty, as they have no reference to compare to.

Feeling the pain would already be a good start :-). With a lot of Javascript projects being very short term a lot of people never get the experience of maintaining a code base for years.
Post reply on HN