6 ms·
As a 'hobbyist' programmer who makes his money outside of the software game, this is something I've really taken note of. And I have to say the programming tech
by increment_i 12y ago
As a 'hobbyist' programmer who makes his money outside of the software game, this is something I've really taken note of. And I have to say the programming tech treadmill is one of the most cringe inducing phenomena I've ever witnessed - particularly in scripting languages. Software folks tend to see themselves as futurists in the fast lane, and as a Hacker News-er I tend to carry myself this way as well. But I kid you not, I can't count the amount of articles I've come across where the title is 'X tech is the new ish! - so rockstar lol' and the article is a simple example of http routing or process spawning. It is SO easy to get caught up in this drivel when you're starting out as a programmer.
I've since learned to use programming languages to solve problems I care about. If that makes me the forever-novice then I'm cool with that.
- swatow 12y agoSoftware isn't a game, it's an industry. People use particular languages, frameworks, etc. because it makes them more productive. As a professional, I also can't follow every single trend (e.g. I've got no idea what Chef and Puppet are) but I keep an eye on things that are close to my own area, because I don't believe that fads come out of nowhere, or that you can ignore what other people are doing. Most of the major trends I've seen are justified on technological grounds: Node.js - lets you share code between client and server Docker - a more reproducible environment than a VM Python - the most user friendly syntax of any language You have a fake humility in your post, but I would ask you what particular things (e.g. what scripting languages) you think are "cringe inducing".
- increment_i 12y agoTrust me, it's not a fake humility. I really have nothing to do with the development of software in my day to day life. And I wish I could agree with you on the "it's not a game" thing, but having used enterprise Windows software for most of my working life I really can't come to any other conclusion than a lot of the software out there running our day to day lives must be produced in settings not unlike your local McDonald's. Having said that, I've yet to come across a situation where I've shared code between a Node server and client code. Don't get me wrong, I LOVE writing processes in javascript but when I was starting out, the language wars really confused me.
- swatow 12y agoIt's false humility in the sense that you emphasize that you are not a professional, and then go on to precisely attack professionals for their judgement in what languages and frameworks to use and comment on. I can't comment on enterprise Windows software in itself, since I'm not a big user and have never written it, but the Windows itself could never be compared to McDonalds. Incredible skill and expertise was needed to write Windows. As to the software written on Windows, are you qualified to judge it? Have you written something similar by yourself? I've never used Node myself, I was just assuming that people really did share some code across server and client in practice (otherwise why not just use Python for the server).
- ido 12y agoReducing context switching when working on both, easier to hire people that are fluent in a particular language than people who are fluent in 2, performance, in that order.
- increment_i 12y ago1) I didn't compare the technological achievement of Windows to McDonald's. It was a personal anecdote about enterprise Windows software being so terrible that I'd imagine it wasn't written in an environment where user experience was a major concern. I never compared the OS itself to anything. Do I think I could write something better? As a matter of fact, yes, I think I could. Should I put my money where my mouth is? I suppose I should, but even if I don't certainly I should be allowed to criticize software that I use on a daily basis. After all, I'm the user, no? These are my own observations, surely I don't need to claim they're gospel or apologize for them? 2) Maybe I offended some people when I used the term "software game". Rest assured I was making a slangy generalized reference to the software industry itself, and in no way did I mean to trivialize those who do dev for a living. In fact, I applaud you.
- swatow 12y agoRegarding enterprise software, as a user you can say what you thin about the software, but how can you make claims about how things might be better? You could only make that sort of claim if you understood something about what it was like to write that software. As an amateur you know more than the average user, but I would ask you consider that you don't know all the constraints faced by the person writing the actual software >Maybe I offended some people when I used the term "software game" Yes, you did offend me. And I appreciate your clarification. My main point was that it's easy to criticize, but until you get your hands dirty, you won't really know what it's like to write software for a large user base. And it doesn't have to be commercial. If you're working of open source software with 100,000 users, your experience is as real as with commercial software.
- sbov 12y agoI think software as a whole is a lot more subject to fads and personal preference than you're leading on here. Which is okay because picking the exact best technical fit (if it's even possible to figure this out ahead of time) for any given problem will give you tech ADD. E.g. lots of people use node.js because its in a language they're familiar with and it fills a niche (lightweight process that can accept and process many incoming requests). I use Erlang for those needs, which actually existed before node.js. But it's a "weird" language so most people don't use it. I like Python more than Ruby. I've learned both but never use Ruby anymore. Other than preference or mandate I'm not sure why I would use one over the other. Lots of people used to writing in scripting languages seem to be discovering the wonders of a speedy language like Go. You could obviously use speedy languages before Go but their preferences made them not want to use them. For whatever reason Go is attractive to them.
- swatow 12y ago>E.g. lots of people use node.js because its in a language they're familiar with and it fills a niche (lightweight process that can accept and process many incoming requests). I use Erlang for those needs, which actually existed before node.js. But it's a "weird" language so most people don't use it. If languages are close enough, then yes, familiarity or popularity will influence usage. >I like Python more than Ruby. I've learned both but never use Ruby anymore. Other than preference or mandate I'm not sure why I would use one over the other. Never used Ruby, but my impression is that like Python, Ruby is a slow interpreted language with a good set of libraries and user friendly syntax. So you're probably right that there's not much between them. >Lots of people used to writing in scripting languages seem to be discovering the wonders of a speedy language like Go. You could obviously use speedy languages before Go but their preferences made them not want to use them. For whatever reason Go is attractive to them. I think that attraction of Go is that there is one build system, one debugger, one linter, etc. Having all these things be take responsibility by the language developers is a big plus as it avoids buck-passing and inconsistencies. While Go doesn't excite me at an emotional level, there are some things that it seems really good at.
- Iftheshoefits 12y agoHow about if a person who develops software for a loving agrees that it seems more and more like a game. Words and phrases like "our stack", "you need X years of Y language," or "we need a Z language dev" and so on all read like rules in a role playing game to me. Sometimes after I read certain posts--and particularly posts gushing over some language's features--I feel a bit surprised the commenters don't mention hearing a "ding" after "leveling up". Our industry is filled with tens of thousands of professionals carrying on quietly developing software boring and exciting, and inundated with loud mouths acting and speaking in ways strongly suggestive of a certain " gaminess."
- Roboprog 12y agoAwesome. I can almost visualize playing "Dragon Age" with my daughter while reading your comment. Considers +2 "XML Mace", but requires level 15 Java Brute Force skills to wield. Reconsidering player "cast", selects +3 "RegEx Dagger", which better matches level 18 Perl Dexterity. Upon leveling up, considers how many XP to spend on "management persuasion" craft skills. :<>
- mrgriscom 12y agoI think this phenomenon is an artifact of the media that we as programmers consume. The easiest way to become an programmer celebrity is to build tools (languages/frameworks/etc.) for other programmers. Many programmers of equal skill are out there programming to solve actual problems, but the HN sphere and like are awash with people programming on programming itself. Which, while is surely intellectually stimulating, does seem a bit 'meta' and removed from why we're all doing this in the first place. But people who work on programming tools get the most press because those topics appeal most broadly to the audience of their peers. Then people in that audience see those topics as 'hot' and focus their energy on them. It's a reinforcing cycle. It reminds me of the ideas in this article: http://slatestarcodex.com/2014/12/17/the-toxoplasma-of-rage/ http://slatestarcodex.com/2014/12/17/the-toxoplasma-of-rage/
- oinksoft 12y ago> programming on programming itself ... does seem a bit > 'meta' and removed from why we're all doing this in the > first place. I heartily disagree, and think that tools vs. "actual problems" is a false dichotomy. Software design/engineering is very much its own discipline. A good API/framework/whatever can lower defect rates and generally make your software more coherent and maintainable. That saves time, money, and headaches. We should absolutely care about the tools we use, because nobody else is going to, hence "programming on programming." Attributing that to a quest for "celebrity" is cynical, and I don't see how you can blame programmers for seeking a good professional reputation by creating tools for their peers.
- deleted 12y ago[deleted]
- SiVal 12y agoI teach my kids that the systems they are programming should be considered onions of abstraction layers. They need to understand how to choose from among the options available at each level and to realize that those options are constantly changing. This onion is the only way we can deal with the ever-widening diversification and combinatorial explosion of hardware platforms, communications channels, types of users, geographic dispersion, data sources, problems to solve, etc. Improvements at one layer demand adaptations at another; accumulate enough options at one layer and you need to encapsulate them in another. And the bigger these onions get, the more leverage they provide to anyone who uses them, meaning any improvement you make to some part of the onion is contributing to solving a thousand, or a million "actual problems" simultaneously. If solving end-user problems is "why we're all doing this in the first place," a toolmaker who can solve 50% of each of a million different problems simultaneously is contributing more than those of us who solve the remaining 50% of just one.
- 7952 12y agoSo much of the treadmill seems to be about reinventing existing computer science concepts. People learn about a particular concept and become enamoured with a particular pure implementation of that concept. Just because you need asynchronous I/O doesn't mean that you should exclusively use node.js. And a lot of the hype tends to ignore the underlying CS concept that makes the software worth using. You don't need ElasticSearch because of "search and analytics" but because you have queries that benefit from an inverted index. But you can find yourself spending too much time coercing technology to do things that it was never designed to do. If you have huge SQL queries to implement basic faceting you should probably just learn ElasticSearch. If you need to completely retrofit a language to do async networking maybe just learn Go.
- walshemj 12y agoamen brother (or sister) its the problem that is the cool and interesting part of the job - the tech used to solve the problem is a tool not the end in its self