3 ms·
> asymptotic complexity If it hasn't mattered to you, it's probably because you are using libraries or apis which have solved for optimal performance. In shor
by saimiam 9y ago
> asymptotic complexity
If it hasn't mattered to you, it's probably because you are using libraries or apis which have solved for optimal performance.
In short, performance mattered a lot to you code. Only, you didn't slog long hours to make it so.
Back to the topic at hand, if you didn't spend time to understand why a particular module or library is part of your code base - be it for performance or maintainability or any other -ities - you're halfassing your job as a software engineer. Would a structural engineer ever claim with a straight face that they have never worried about the integrity of their struts? That's basically what you said with your claim.
- sidlls 9y agoNah, that isn't what was claimed. What you describe is more like claiming an engineer is half assing it if he doesn't verify that a given strut (library) that has been analyzed to death (already verified to have characteristics meeting the requirement) in fact meets them.
- saimiam 9y agoThe OP said they don't care/haven't had to care about performance. What you're saying is that they used a library which is known to be performant. If the OP knows it to be performant, they are misstating that they don't care/have never been asked to care about performance. If they truly don't know about the performance and picked a library at random, they are halfassing it and aren't doing their job as a software engineer.
- yeukhon 9y agoWell, remember: don't start with performance in mind unless you have to or you already know the right way. Take a Python library like requests. Who the hell will read the source code and run a profiler on that module if you see a consumer? I don't care until I have to. Perhaps before shipping my production code I can run a profiler. If you are going that deep at the beginning, you are wasting your time instead of building MVP and iterate. Library's code out there is ever changing. One version can br slower than another. You aren't doing meaningful work if you start with performance. OP didn't say he/she is picking a random library out of the blue. I don't remember reading that "random" part.
- saimiam 9y agoThis entire discussion is about what an SE does vs what a CS does. Item #1 for an SE is to pick a library to use instead to reinventing every wheel every time. OP says they don't care about performance which is a naive, potentially stupid, approach to software engineering. Beyond this, I'm out of crayons. Just because some hotshot (PG?) said to not optimize prematurely doesn't absolve you of your responsibility towards picking a library to use. Don't optimize early by all means but at least know why the library you picked might not be a great choice for problems you face in the real world. Do you write your websites in C outputting raw HTML? I'm sure you don't. Clearly you made some sort of reasoned deduction about the tools at hand and went with one which got the job done. Why did you not pick C code spitting out HTML? No point premature optimizing your productivity, right?
- stan_rogers 9y agoThe "hotshot" was Donald Knuth, and he was talking about getting clever before you're sure your program does what it's meant to do. The keyword is premature; analysis and optimization pretty much forms the bulk of his body of work, although he doesn't believe in sacrificing readability until you're out of other goats to kill.
- saimiam 9y agoYou're right! @ Knuth. I knew that but it got overwritten by PG's point about scaling prematurely. Like a good astrologer, I'm going read into your comment to assume support for my larger point - know your tools.
- lmm 9y agoProductivity is the thing that is worth optimizing. Seriously, stop worrying about performance. Don't consider it when picking libraries. You'll write better programs as a result. I know how implausible it is, but it happens to be reality.
- saimiam 9y ago
- deleted 9y ago[deleted]