Live data from Hacker News

Which programming paradigm had the most impact on you as an engineer and why?

news.ycombinator.com

61–70 of 91 posts

Re: Which programming paradigm had the most impact on you as an engineer and why?

#63

procedural programming (is it data or is it code, it can’t be both) and data oriented design with SOA and deferred buffering for games at least code needs to be highly cache friendly and dumping OOP makes it way easier to reason about program state and code flow

What's deferred buffering?

Re: Which programming paradigm had the most impact on you as an engineer and why?

#64
In chronological order:

- Pure functions

- TDD

- OOP

- DI

- FP idioms

- Inmutability

From these, the most important is DI. Separating the set up of runtime dependencies between parts of the software from the logical dependencies is a total game changer.

I'm curious about Erlang, which I didn't try yet, since it seems to capture almost everything in one language. Pure functions, inmutability and FP idioms on the micro level with strong OOP and separation of logical from runtime dependencies on the macro level.

Re: Which programming paradigm had the most impact on you as an engineer and why?

#65
In a negative way: the current JS ecosystem and the way we build web apps in general. I started programming in late 80s and was very scrupulous in my work. I learned how to profile and optimize my code; I basically knew what each byte was doing. When I discovered Linux it was such a joy as I could basically trace the whole execution path and optimize everything even more.

Also, I love order. I enjoy clean and elastic design that keeps things in order but gives you the flexibility to extend the functionality indefinitely. In spite of some reservations, I enjoyed building apps with GUIs in the 90s, the process was quite pleasant and neat.

Re: Which programming paradigm had the most impact on you as an engineer and why?

#66

First pure functional programming (not just functional programming) and then type driven development with a typesystem that supports dependent types. In combination they are a huge productivity boost that you can't really imagine without having tried it. I still remember the days where I wrote tests over tests and ran the system to check if it works. But "if it compiles it works" is just a sooo much smoother workflow…

What languages specifically do you have in mind?

Scala as a mainstream language probably comes closest, but it lacks a bit on the dependent types part. Idris or F* would be languages that fully support both but they are rather academic.

Re: Which programming paradigm had the most impact on you as an engineer and why?

#67
If I have to pick only one it procedural low level programming, like good old C. Taught me a lot about how memory is laid out, how software works under the hood, about lower level concepts.

Going from C to higher level languages like C++, C#, JS or Python means that I have a glimpse into why things work the way they work and having that understanding is helpful.

Re: Which programming paradigm had the most impact on you as an engineer and why?

#68
No premature optimization. Don't wrap code in complex patterns unless you're sure you're gonna need it within the next hour.

E.g. if you're building some kind of file system access and know you want different "drivers" (e.g. local, Dropbox, Google Drive), using an adapter pattern is fine. If you just need local access right now, don't waste your time. Refactor later if needed.

Re: Which programming paradigm had the most impact on you as an engineer and why?

#69
post #26
post #4

Functional programming. I learned OOP in school, and always thought it overcomplicates things, why can't this comparison operator in one page of Java just be a function, I thought. How can you make the state of objects manageable, especially if it's private, how do you test, without opening up too much of the API, couldn't we just make this a set of functions with an explicit state so it's easier to understand? How d…

As a C# developer, F# is something I long to learn. I heard about F# until I had to adjust some build script which I thought is elegant [1]. I did try some F# tutorials at free time, but nothing that would make me comfortable and "click" on how to write functional code. But I long to bring some improvements to code correctness that can be statically checked by embracing immutability, pattern matching with discriminat…

One of the things that made F# "click" for me was Wlaschin's "Domain Modeling Made Functional". It's largely a focus on how to think about the underlying data, and getting in that mindset helped tremendously in feeling more comfortable with F#.

Re: Which programming paradigm had the most impact on you as an engineer and why?

#70

I’ll actually list 3. 1 - Smalltalk. I’ve done Python, Kotlin, Swift, C++, and Objective-C, all in various forms of real production code. The kind of OOP you do in Smalltalk is not the same as you do in other “oop” languages, which are really just Algol dirivstives with some weak sauce OO smashed on top of them like lipstick on a pig. 2 - C actually. In particular, pointer rich C. Working in some domains where we did…

I agree with 1 and 2, so now you got me really interested in 3 ;-) By the way, concerning Smalltalk (Pharo), we're hiring. Honestly, it's the best way to learn Smalltalk, the tutorials on the internet are nowhere near the level of what I'm encountering in practice. Also: be on the lookout for the Pharo Days [2] and ESUG [3], and similar conferences. I've only been to the Pharo Days, but man, it's awesome! A lot of pe…

I play with Pharo from time to time. How do you think the available tutorials lack behind what you're finding on your use cases?

What about the books available from Pharo's website?

Post reply on HN