Steve Yegge: Notes from the Mystery Machine Bus
101–110 of 186 posts
Re: Steve Yegge: Notes from the Mystery Machine Bus
#102As much as some commenters are (weirdly?) railing against this classification scheme I think the underlying idea that software conservatism is about risk aversion is essentially accurate. Perhaps another way of framing this is to ask the question: are you optimizing for the best case or the worst case? This ultimately is a form of risk management. And I'm not talking in the algorithmic sense, meaning complexity expre…
I don't think the main problem with operator overloading is "abuse"; I think it's that there's absolutely no way to know what a given clause of code might mean , even if the overloading has been defined by excellent coders.
Re: Steve Yegge: Notes from the Mystery Machine Bus
#103Re: Steve Yegge: Notes from the Mystery Machine Bus
#1042001: http://developers.slashdot.org/story/01/11/13/0420226/kent-m...
Re: Steve Yegge: Notes from the Mystery Machine Bus
#105I think I'm a software libertarian. If you like dynamic typing and can write good, legible code in a language like Python or Lisp, do it. If you like static typing, knock yourself out. If you want to use an IDE, go for it. If you want to use emacs, do it. Hell, if you like object-oriented programming, try it out. I think 95% of "object-oriented" programming (as currently practiced) is junk, but the other 5% is legiti…
I agree with this.
At the end of the day, all I want is software that is both modular and portable. Unfortunately, in this day and age, that itself is controversial enough that some people consider it an extreme viewpoint.
This is why the Unix philosophy is so powerful - each individual tool is a black box, so it can be ignored for convenience, but each tool is also so small in its scope that it can be removed when rechaining without worry.
Unfortunately, Windows remains POSIX non-compliant, but for any -nix, not only should most projects port directly, but rechaining for equivalently-functional tools should be trivial. If it's not, that signals a problem with project organization. (Example: I include a Makefile even in pure Python projects, because nobody should have to figure out whether I used nosetests or another library until and unless they want to switch it out).
If everyone followed this mindset, I don't think any 'political spectrum' would need to exist. So you prefer statically typed languages and heavy use of IDEs? Doesn't matter - your Scala program written using IntelliJ still takes in input through a unix pipe and passes it to my Python or C program seamlessly. Why should I know or care how the tools work if I don't want to modify them?
My choice of tools should be viewed as the implementation, not the interface. If my tools preclude your project, that's a sign that your project isn't abstracting well.
This is only one small part of the larger argument, but it's the part I notice the most, and I think it abstracts well to the larger issue.
Re: Steve Yegge: Notes from the Mystery Machine Bus
#106In his section on Tech Corporations, he classifies Apple as "Diagnosis: no idea." Is there a reason nobody speaks publicly about Apple's engineering culture? We hear a lot about the culture at Google, Facebook, Microsoft, and Amazon. But I've never met an Apple engineer. And I've never read any detailed accounts by an insider. Does anybody have any good resources? Or is there a very restrictive confidentiality policy…
Day to day in my world was a lot of C, Objective-C and C++, with Python for rapid prototyping and glue code; Java formed the backbone of the store infrastructure, but there was plenty of other stuff going on. Fairly standard architecture (huge Oracle DB, loads of web servers). Teams tended to be undermanned, so there was constant tension between getting stuff done and standardization; much of the time, the wrong balance was struck, meaning that people couldn't easily switch roles, but still had a lot of bureaucratic scutwork to manage. Things were improving when I left, and I imagine that they have continued to do so.
Re: Steve Yegge: Notes from the Mystery Machine Bus
#107Re: Steve Yegge: Notes from the Mystery Machine Bus
#108With Clojure you keep one feet on the ground (the Java ecosystem) and the other feet is in the unknown dark water.