3 ms·
This is not for your typical glue code, or standard algorithms, this is for discovery work, novel programs, library api design, and exploring new systems and id
by MarceColl 3y ago
This is not for your typical glue code, or standard algorithms, this is for discovery work, novel programs, library api design, and exploring new systems and ideas. If you are able to take novel greenfield work, map it all out in your head and get to writing, good for you. But I somehow doubt it
- bayindirh 3y agoI do not write glue code 99% of the time, but write libraries, small tools, etc. The last time I did this, it was a completely novel framework for material simulations using boundary element method which happened to be my Ph.D. thesis. It did not completely turned out the way I wanted, but I was able to get the theoretical performance I targeted for (i.e. literally drowning the system in computation), nailed the data formats workflow we wanted to have, and it turned out to be pretty good. It can scale from laptops to high end servers, and on a typical laptop, it's 30x faster than a well tuned MATLAB implementation, while being at least as accurate. The formulae and algorithms we used for calculations were novel. It was mostly designed on paper, with some whiteboard work, and implemented with zero memory leaks along the way, plus we hit the performance numbers we were hoping in second beta IIRC. I'll shortly start on its second iteration, borrowing the high performance architecture, data types, but not the overall workflow. We'll try to make it even more user friendly. So yeah, I do this during implementing APIs, libraries and novel programs.
- MarceColl 3y agoAs I said, if you can do this, good for you. I'm just explaining how I need to do it. However, your whiteboard and paper is my exploratory programming. I don't see it as it being that different.
- bayindirh 3y agoHonestly, you said "I doubt you do", so this is why I wrote this long answer. I just visualize the problem on paper. You have this, you want this, and to go from A to B, we need to do this, etc. Exploratory programming is nothing bad, or what I do is nothing good or exceptional. Humans' brains are wired differently, and as long as we arrive to the point we want, it's all good in my eyes. There's no superiority in any of the methods. We're just cooking the same food differently. That's all.
- MarceColl 3y agoYeah, sorry if it sounded harsh, what I meant is that I doubt someone hears of problem, gets coding immediately, and a very good result comes out. We need a way of reasoning and investigating the problem for some people is sit and think about the problem, for some people it is writing things down, and for some people is get going with exploratory programming.
- bayindirh 3y ago> Yeah, sorry if it sounded harsh It wasn't harsh, but it felt like being labeled as deluder, which I don't like a bit. > (S)omeone hears of problem, gets coding immediately, and a very good result comes out. No, that's not possible from my experience. You need that problem to ferment a little in your mind to understand the problem in its entirety, or more realistically to the point you know the domain. Experience makes the process faster, but not instant. > We need a way of reasoning and investigating the problem... Of course, this is why I exactly said that we need a way, and it can be any way, as long as it works.