6 ms·
How Religion Destroys Programmers
- davidw 13y agoSee: maximizing vs satisficing http://journal.dedasys.com/2006/02/18/maximizers-satisficers-and-programming-languages/ http://journal.dedasys.com/2006/02/18/maximizers-satisficers...
- logicchains 13y agoTempleOS would beg to differ.
- michaelwww 13y agoOne of my fun daydreams is that TempleOS begins to attract followers and becomes a new religious movement of hard core assembly language programmers seeking the SOURCE.
- awjr 13y agoToo be honest, after coding for 20+ years, I'm don't have a particular 'religion', but that probably has more to do with my main bread and butter coming from Coldfusion development. What I try and be is acutely aware of trends and then try and use them in my spare time or introduce them into my day to day development. So at the moment there is a lot of love out there for Javascript frameworks (AngularJS in particular). I like how it allows your front end to become middleware agnostic. It's one sexy trend I think is also a lot of fun and gives great results and I'm jumping on board for the next couple of years. Just remember to try and learn something new everyday :)
- lostcolony 13y agoOut of curiosity, has ColdFusion turned into what Cobol kind of is, that niche where no one is starting new projects, but a lot of legacy systems still need support, and the price for that support is beaucoup money? I ask because I actually learned ColdFusion back in the mid to late 90s, but never really did much with it; Perl largely supplanted it in the stuff I was doing, and by the time I entered college, Java supplanted that for web (and actually in industry I'm using a lot of others). (Not that I want to do that, by any means; I don't have the experience or desire. But curious)
- awjr 13y agoNot so much Cobol, but basically the only places that still use it are profitable companies set up in the early 2000's. There's nothing wrong with it (although a lot of the time I end up writing Java as CF now compiles to it). It just doesn't have the user base out there and most companies did the right thing and bit the bullet and migrated to "a nother" technology. In the UK this usually meant .Net Currently I'm of the impression that we'll end shifting to Python or Java however there is a huge legacy set of code to overcome first.
- deleted 13y ago[deleted]
- noonespecial 13y agoIf I may float the counter argument: Sometimes the only way to beat analysis paralysis is to pick something, anything, and then pursue it with religious zeal. (Sometimes even to the point of excluding something you find out later would have been a much better choice) I can definitely get behind the idea that you shouldn't be an unpleasant bigot about it, but a little dedication doesn't hurt. Its better than "Gandalfing" the merits of this or that technology for longer than it takes to just pick something and get it done.
- StavrosK 13y ago> Sometimes the only way to beat analysis paralysis is to pick something, anything Sure. > and then pursue it with religious zeal. This does not follow. You can pick something while still being fully aware that you just picked it "because you had to", rather than delude yourself into thinking you picked it because it was the absolute best.
- noonespecial 13y agoI'd rather use the perl project of the guy who loves perl than the project of the guy who chose it "because he had to". Not sure if I'd want him as a coworker though...
- StavrosK 13y agoI'm confused. Your original comment discusses a way to beat analysis paralysis, and now you're talking about someone who loves Perl. Is your original comment about a project that needs to get done, and about a way to get it done, or is it about a side-project that one starts just because they love writing it? It doesn't seem like these two are very similar.
- watwut 13y agoWhy? It is quite possible that "because he had to" guy will produce more readable code. There is no reason to care about developers personal relationship with whatever technology. Important question is whether he is able to produce functional, readable, well-designed code in acceptable speed. In case of projects under time pressure, the important question is whether the developer can do reasonable trade-offs between those expectations (eg. sacrifice the right one).
- nnnn 13y agoThere are perfectly valid opinions to why one might be better over the other based on facts. Just because you're not smart enough to figure it out. Don't be a bigot, live and let live. Stop spewing nonsense just because you need a way to get traffic to your site.
- mikeash 13y agoOne of the advantages of being a cynic and a pessimist is that I don't go in for these religious attachments to technology, since I know (think) that it's all crap. Just some is more crap than others.
- einhverfr 13y agoIndeed. I tend to be a bit luddite about such things even. If it is trendy, chances are people are creating lots of crap in it ;-). In fact my religious approach has been to avoid trends. This being said, within any framework, there are right ways to do things and wrong ways to do things, and a good, solid programmer in the worst framework in the world (ok, maybe not the worst but close) will beat a shakey programmer in the best.
- lostcolony 13y agoHipster programming!
- gpcz 13y agoA great way to become a cynic and pessimist about programming is to get a computer engineering degree. Once you understand computers at the gate & flip-flop level, you realize that most of what people argue about on the Internet is window dressing.
- mercurial 13y agoI like to look at technology stacks by thinking about what problems I'd like to deal with on a daily basis. You'll encounter different issues in a Java/Hibernate/Oracle environment compared to a Perl/Postgres environment or a pure C# environment. They all have their share of problems (though some more than others, like PHP), and it is possible to write great software with all of them.
- lmm 13y agoEntirely true, but it's worth remembering the flipside: some stacks are better than others. Some have their niche, and some are simply obsolete. Some were the best choice at the time and aren't worth the cost of moving away from, and some need to be abandoned right away or the pain is only going to get worse.
- BugBrother 13y agoHear hear! Let me take the example PHP, since you mentioned it and I don't know enough to have an opinion. PHP is generally claimed to suck badly. But even I can see that the "haters" on HN generally don't know/discuss the existing PHP frameworks and methods. If I would look at PHP to evaluate it for a project, I'd look at if it seems fun to use (really important!) -- and if it would be usable with good coding standards and modern frameworks. The bad things people talk about PHP (bad cruft in naming of methods, kludgy parts) are not relevant if it takes a few hours/days to learn that -- and if a good coding standard can limit yourself to a subset of the language. You need to do that for all languages anyway. (See JavaScript.) But: One big red flag would be if the language proponents are language war fanatics that vote down criticism of their language/framework while attacking all competition. You probably know which ones I talk about.
- lmm 13y ago> The bad things people talk about PHP (bad cruft in naming of methods, kludgy parts) are not relevant if it takes a few hours/days to learn that -- and if a good coding standard can limit yourself to a subset of the language. You need to do that for all languages anyway. (See JavaScript.) Javascript is by no means a good language. I think "needs a coding standard and a few hours/days to learn which parts to avoid" is a point against a language - not necessarily reason to rule it out entirely, but a mark in the negative column. There are plenty of languages where this need for a standard doesn't seem to arise, because the obvious way to do things is good enough (e.g. Python). > But: One big red flag would be if the language proponents are language war fanatics that vote down criticism of their language/framework while attacking all competition. You probably know which ones I talk about. That's a terrible reason to make any decision. It reminds me of the guy who wouldn't listen to U2 because he didn't like their fans. If you avoid languages that're used by idiots you'll find yourself on a treadmill where you're constantly moving from incomplete language to incomplete language, because as soon as a language gets good enough, idiots will find it and use it.
- pjmlp 13y agoFully agree. At the end of the day, what matters is delivering a product that works to satisfy a purpose. The customer couldn't care less what gets used to develop the product. Technology religion only serves to sell training stuff, fill conferences and entertain ourselves in flame wars.
- nctime 13y agoIt would be nice to have a place or blog that hosts posts by people who switched from language X to Y and write about what they like and what they miss.
- hoektoe 13y agoSimpleProgrammer, another site that brings up a box blocking all content ,SUBSCRIBE NOW = Instant Close site
- michaelochurch 13y agoReligious wars are also counterproductive, because they tend to give too much power to the MBA-culture conquistadores who really don't belong in technology, but end up ruling it because engineers are so fractious. When we have the Scala and Python and Lisp crowds all slugging each other over minor differences in the languages, it generates background FUD in the same way that mechanical collisions create waste heat. Then the MBA-culture colonizers get overloaded thanks to all these disparate overblown accounts of each language's deficiencies, but since they construe their job as Making Decisions, they feel a need to Say Something and make everyone use Java, because it's "the standard". Now there's no Scala and no Python and no Lisp for anyone (at least, at that company). Religious wars actually lead us to mediocrity, because business people get to make the decisions when we become so fractious.
- qwerta 13y agoHow not following certain direction "destroys" programmer? It is like saying muslims should try to be christians for a year or two. For example I am Java guy (or more precisely JVM guy), it satisfy all my needs. There are new innovative languages, IDEs, databases, concurrency libraries here... It would take multiple lifetimes just to explore small fractions of that. It takes years to get efficient at some platform. Other technology also means changing working habits, libraries, IDE, debugging style... I know C++, PHP, Ruby, JavaScript, Erlang etc are not for me. Not based on some 'religious' arguments, but because I actually investigated it or worked with it at some point. - C++ language is horrible, there is small island around QT, but most code out there is mess. Not much has changed since my school - PHP has reasonable runtime, but code culture is atrocious. - Ruby has horrible runtime, horrible community and code culture even worse than PHP - JavaScript has not changed much since 1999. Sure there is JQuery and HTML5, but it still sucks. - Erlang is interesting, but too alien. Plus it is not usable outside of very narrow specialization.
- lostcolony 13y agofry meme face Can not tell if serious. C++...most code in any language is a mess. The language being horrible is an opinion. PHP can't comment. Ruby...the community always struck me as a strength for it, honestly. As there are multiple implementations, which are you referring to, exactly? Javascript hasn't changed since 1999 except for jQuery and HTML5? -Really-? Ecmascript 3 (actually, 2; 3 was standardized in December 1999) is the same as 5, and all the libraries and functionality and approaches and ideas are no different than a time when Geocities was a big thing? Erlang is alien (fair, but...that's a reason to be dismissive?) and -not usable outside of (a) very narrow specialization-?! It's extremely usable -except- in a few specializations, which the language site even lists for you.
- qwerta 13y agoI am serious. Most people think that learning new languages gives some sort of spiritual enlightenment. But in reality most languages are minefield of legacy problems and hidden traps. The 'boost' or enlightenment usually comes from learning new stuff, not just programming language. Sure if you like some new clearly designed language (Clojure comes to mind) give it try. But do not expect miracles from 20 years old platform. I dont want to argue about languages. All languages have to keep backward compatibility and for outsider Java is strange as well. Lets just say that all of those points are my opinion.
- Spooky23 13y agoProgramming religion is a reflection of the relative inexperience and youth of the average programmer. (At least the average programmer posting on message boards, blogs and mailing lists) I've been doing IT professionally for 15 years now (how did that happen, I'm old!), and I've been an computer nut for about 25. I think as you grow professionally, you start to recognize that tools are tools, and the best tools depend on the environment, team and task at hand. I used a handsaw and miter box to cut some moulding this weekend to finish up a home project. I like using hand tools for small projects, but that doesn't mean that my brother-in-law's professional power miter saw is "bad', or that using a hand-saw at a construction site where time=money to "good".
- tehwalrus 13y agoTo me as a language pluralist, none of this particularly sounds like anything new. My initial programming training was FORTRAN (in 2006!) and I then "taught myself" C++ (I didn't know anything about C++ by the end of it), wrote a ruby-on-rails "site" for a friend, and then got a job writing C# and MS SQL, where I wound up actually writing a lot of Actionscript 2. This was all while I was still learning about new programming concepts, e.g. I was using lambdas/anonymous functions in Actionscript before I knew that there was anything special or difficult about having inline functions as objects. When I finally tried to write a non-trivial program in C, I started to understand the difficulties and trade offs of all the complex, mutable collection types I had been using in higher level languages. and so on. I say all this, because when you come into programming on that journey (now rounded off with 3 years of Python-and-C/C++-extensions) you don't have time to develop a religion (that lasts any length of time). It becomes apparent that lots of different technologies work in different circumstances, and that each of them shares a lot of ideas, and have some unique features (good or bad). That said I do have a preference, indeed I posted a language rant last year[1]. I still think homoiconicity is wicked, even if not always useful - and I've not yet ever written something that anyone uses in lisp. [1] http://joe-jordan.co.uk/blog/2012/10/one-syntax-to-rule-them-all/ http://joe-jordan.co.uk/blog/2012/10/one-syntax-to-rule-them...
- rjzzleep 13y agoto be honest with you i always find it suspicious when someone can only program one or two languages. either he doesn't want to or he's not capable of. there used to be a time where all our scientists used to be philosophs with a lot of proficiency in a lot of different domains. that's not even too far back.
- sebastianconcpt 13y agoThere is no best, only design decisions.
- pekk 13y agoRelative to a specific purpose, one design decision is often better than another. But something doesn't need to be best to be good enough.
- ph4 13y agoSlightly off-topic, but would anyone recommend Sonmez's Pluralsight videos - Java Fundamentals in particular?
- islon 13y ago"The problem with this self-imposed religion is that our technological religion blinds us from the truth." No. The problem is that this self-imposed religion blinds us from the fact that there is no "truth".