3 ms·
My theory is that there is two kinds of people. Those that like everything to be in the same language and environment, and those that like to combine lots of di
by olavk 19y ago
My theory is that there is two kinds of people. Those that like everything to be in the same language and environment, and those that like to combine lots of different languages where each language is optimized for a specific task.
- nostrademons 19y agoCould be. I'm reminded of the two competing camps for large-scale systems design. The UNIX philosophy is "small pieces loosely joined": each component does one thing well, and the system just provides a common metaphor and architecture for them to work together (eg. pipes and line-oriented text). The Windows philosophy is "big chunks tightly coupled": everything just works out of the box, but if you need to do something the designers didn't think of, you're out of luck. Kinda like "I'll do it myself; show me how" vs. "Do it for me." Nearly every computing system can be placed somewhere along this continuum. In operating systems, we've got MacOS (pre-X) and Windows on one side and UNIX on the other. In languages, we've got Scheme and Smalltalk on the UNIX side and Java and .NET on the other (ironically, Scheme and Smalltalk have a "small pieces loosely coupled" architecture internally, but are big monolithic chunks when it comes to the outside world). For IDEs, Emacs is all the way over on the UNIX side, vim not far behind, Eclipse is in the middle, and IntelliJ and Visual Studio all the way on the Windows side. For JavaScript libraries, YUI/Mootools/Prototype are all on the Windows side and JQuery is on the UNIX side, though it's moving closer to the Windows philosophy. Among web frameworks, Rails and Django are on the Windows side with Pylons on the UNIX side. The web itself is based on the UNIX philosophy, but many of the largest websites follow the Windows philosophy. I'm not so certain that people fit rigidly into one category though. Up until about 3-4 years ago, I was firmly in the Windows camp: I did Java programming only, I did it on a Windows machine, I used JBuilder and Eclipse to do it. Then I started branching out, mostly because I started learning about all this stuff that Java wouldn't let me get at. I think many people may follow a similar path: "do it for me" until you want to do something that the designers didn't think of, and then you have no choice to move to a "do it yourself; we'll show you how" environment.
- davidw 19y agoIt's difficult to be good at many languages. Knowing many is not too hard, but being really quick with them is. IMO, at least. And the more you add, the messier things get. Google, who seems to know a thing or two about programming, only allows four: Java, Javascript, Python and C++.
- nostrademons 19y agoIn production code (i.e. deployed to the publicly-facing website). I've heard that for internal-facing apps, 20% projects, and non-Google-branded stuff, you can use any language you like. Orkut was initially written in .NET, for example.
- brlewis 19y agoThat's interesting. I'm curious as to where your theory places Lisp hackers. We could arguably be placed in either category.
- olavk 19y agoThere are probably all kinds. If you are the type that love DSL's, but _only_ if they are implemented in lisp, then I would place you in the first group.