in Technical

The crazy world of code

Here’s a great comment by @eranation. I call it the crazy world of code:

I agree, I can’t keep up. I just finished learning backbone.js and now I’m found out on that it’s old news, and I should use ember.js, cross that, it has opinions, I should use Meteor, no, AngularJS, no, Tower.js (on node.js), and for html templates I need handlebars, no mustache, wait, DoT.js is better, hang on, why do I need an HTML parser inside the browser? isn’t that what the browser for? so no HTML templates? ok, DOM snippets, fine, Web Components you say? W3C are in the game too? you mean write REGULAR JavaScript like the Google guys? yuck, oh, I just should write it with CofeeScript and it will look ok, not Coffee? Coco? LiveScript?  DART? GWT? ok, let me just go back to Ruby on Rails, oh it doesn’t scale? Grails? Groovy? Roo? too “Springy?” ok, what about node.js? doesn’t scale either?? but I can write client side, server side and mongodb side code in the same language? (but does it have to be JavaScript?) ok, what about PHP, you say it’s not really thread safe? they lie?? ok, let me go back to server coding, it’s still Java right? no? Lisp? oh it’s called Clojure? well, it has a Bridge / protocol buffers / thrift implementation so we can be language agnostic, so we can support our Haskell developers. Or just go with Scala/Lift/Play it’s the BEST framework (Foresquare use it, so it has to be good). of course we won’t do SOAP and will use only JSON RESTful services cause it’s only for banks and Walmart, and god forbid to use a SQL database it will never scale

Original comment can be found here.

Follow the discussion on Hacker News here.

Write a Comment

Comment

45 Comments

  1. These days you can become paralyzed just trying to decide which technology stack to use for that shiny new project. And by the time you get it to v1.0, it’s already light years behind the current state of the art.

  2. This is why I give approximately 0 cares when people hate on my choice of platform. Just learn something and get good at it and use it with pride. On a long enough timeline everything is obselete.

    • I agree with you. That’s the point that I got out of this as well! Unfortunately, I find developers often type-cast other developers :( Like “Oh, you use PHP for that??”, etc.

      • A lot of devs use PHP out of laziness and unwillingness to learn new things. The choice between staying in your comfort zone and obsessing over the framework du jour is a balancing act.

        • This is very true. PHP is a fine tool. But, if it’s the only tool that you use then you could probably be doing a better job.

          I realize that not everybody is trying to do their best job at being a technical professional. To learn new technologies in order to have a basis of comparison and more awareness is vital.

        • What’s the point of typecasting users of a certain language like that? The only things that matter are that you’re actually shipping releases and that they’re stable. Do you think you’d actually care if Gmail’s backend was written in PHP vs Haskell vs LOLCODE vs VB6? Ever?

  3. My thoughts exactly. What’s the point in trying to buy the most expensive, state of the art car before you even know how to drive properly or how far you’re going. When I find myself lost in a myriad of “I’m doing it better than you because…” arguments I like to remember a quote I read a while back: “Your problem isn’t scaling, your problem is getting someone to give a shit”

    • Well, it seems some people tend to believe that using XYZ framework will give me that little extra oomph over my competitors, and I’ll be able to write some cool blog posts about the technology that I used, and I’ll learn some new stuff and people will give a shit because of it. All of the above may be true, except people won’t give a shit unless you solve a real problem. :-/

  4. SQL will never scale? LOL. It scaled beyond any recent startup’s capacity running some of facebook’s critical features. All of the facebook like functionality is run on a distributed MySQL backend and that’s just one of the apps. It’s an idiotic fallacy, but a misconception that a developer needs to deal with.

    Certainly, one of greatest trends I’ve seen in my career is the surge in ignorance when it comes to relational technology.

    • Facebook likes are done with memcached.

      The problem with SQL is that it doesn’t scale horizontally very well. See the CAP theorem for why.

      • So you quoted a mathematical theorem to justify why some technology won’t scale. And the alternative technology doesn’t obey the theorem, or what?

        I mean, if you are saying A, you should say B. In this case, what assumption of CAP are you going to give up.

  5. You’ve got to have your own preferences based on your own experience to make choices fast enough to get something done. :)

    Btw I’m sticking with knockout.js and I know why.

  6. Sometimes it feels as though maturity of a technology is viewed as a weakness. I think this is a shame. That said though, I do love the pursuit of the new & building great things ontop of the shoulders of giants. For e.g the great plethora of languages which have spawned within the jvm.

  7. Then wait until you want to create the mobile app that goes with it :
    “native ? But how do I port to other platforms ? Should I use phonegap then ? Titanium is better ? Is it going to be fast enough ? pure Html5 ? Is everything going to be correctly supported by all OS versions ? Code in C++ ? C# ? Lua ? Should I use Unity 3d for my 2d game ? Ho, Corona’s best ? Cocos2d-x ? will Apple reject it from the store ?
    Wait, you mean my UI should support how many different screen formats ???

  8. Luckily we are surrounded – next to incredibly skilled people – by a myriad of technologies that always keep evolving. P¹ writes an article about some idea, P² reads the article and implements some of the ideas. When P³ observes the implementation in question which acts as a catalyst, resulting in a new article. And this circle goes on.

    Unless you develop the tools you can never be on the cutting edge, and there in my opining, nothing to gain from trying. I choose tools after these criteria: a) solves a the problem in a superior way, b) allows to write decoupled code to allow the tool to be change in the future without touching other parts of the system.

  9. Actually, you are falling into a mental trap. You dont realize that the underpinnings of these technologies are actually quite a non event. Old news trotting out “new” paradigms.

    Pretty much everything you listed besides Java and SQL are non starters.

    Dont get caught up in bullshit. Technology is not advancing that fast. You are just listening too closely to things that essentially dont matter…and wont ever matter.

  10. Being on a path and following a goal are not the same thing. Profit comes from using whatever works to achieve goals. If you are obsessed with tools, well … Good luck with that!

  11. The problem is that there are too many people who are programming who don’t have a strong enough technical basis to make those kinds of decisions. It takes experience to be able to separate the new-and-all-hype from the new-and-interesting. It takes careful thought to weigh the pros and cons of different tech with a relatively complete view of the product and its environment.

    Just jumping in and programming with no training is certainly an option these days, but it doesn’t scale.

  12. As long as the technology can deliver and give you the result you want. It doesn’t matter if its the shiny new toy. And scaling is a fallacy. Anything can scale though some better than others. Look at Facebook pushing PHP to its logical limits. Many High Traffic sites are built on rails. At the end of the day many startups never reach the point where they need to scale. Instead of being a Jack of all trades and master of none. Focus on a few and be damn good at them.

  13. A scaling problem is like a money counting problem. “How on earth am I going to count all this money?” It’s a good problem to have. Just get it working and get the money flowing…then worry about the other stuff.

  14. so true…
    I’m always finding new technology to use

    so many choices!
    I’m like” whatever! I’ll just use it anyway! when my application get popular, I’ll got someone handle it :P”

  15. Okay, I think this comment confuses things. I know, I know, you’re saying, “no, it’s pointing out how confusing things already are.”

    But look. There are some really great things that this amount of technical “frothing” shows us, if you are willing to look at it positively. And I’ll add this caveat; this mostly applies to web development–there is a lot of other development going on too. But I digress. Here’s the points I want to make:

    1) People are spending a lot of time thinking about good ways to solve problems in ways that are satisfying for developers, fast to build great sites with, and standards compliant.

    2) People are getting more and more of a clue about how expressivity helps one develop better software faster.

    and, finally and most accurately perhaps (the previous two are just hunches, but this one I think is already a done deal), 3) for web applications, the dominant paradigm is shifting from one where heavy server-side development is the norm, to one where client-side development will be dominant, supported by relatively light-weight server-side frameworks–in some cases perhaps just “NoSQL” datastores with RESTful interfaces and little-to-no business logic, which can all be contained on the client-side.

    All of this ends up meaning: the platforms we have available to us are more varied and rich and fun to work with than ever before, and we are developing in a very interesting time.

  16. First it’s always interesting to checkout new stuff, and actually you ought to do it as a developer … I think all developers share the same feelings, (actually the person who told you Backbone is old news, probably meant that it’s older than Ember, but it’s certainly still an excellent JS library to have in your toolbox)

    Then when it comes to choosing your stack, you’re the boss, whoever says you did the wrong choice before knowing what you plan to do is a total retard … use anything as long as you think it fits your needs. With that said, well happy coding

  17. True story. Maybe it’s time we look back at our programming predecessors who had less cpu than my pocket calculator and still managed to send rockets to space. They knew their shit in and out. Modern devs really don’t. And while it’s really great to have all these libs and frameworks, like LEGO bricks that we can quickly put together, maybe it would be wise to start talking about them in that manner – as bricks, pieces, elements. Not solve-all-your-problems must-use magic dust.

    Know your shit. Pwn the frameworks. Otherwise, frameworks end up pwning you.

  18. Frameworks come and go, logic is eternal. Simple as that.
    Learn the latter, it applies to any language. Meanwhile, I take great pride in my choices of frameworks not to learn that have come and gone. I intend to continue the practice.

  19. This was a really intense read. Just as I was about to look up the first framework I hadn’t heard of — like a knee-jerk reaction — i was punched in the face with “no. this. no that. oh wait, nevermind” It’s so sad and funny because it’s so true.

    Also, you’re missing the last little bit from the original essay:
    “I’ve had it, I’m going to outsource this project… they will probably use a WordPress template and copy paste jQuery to get me the same exact result without the headache and in half a quarter the price”

    http://www.haogongju.net/art/1559056

  20. Very nice comment :D. There are beautiful solutions built with any of the technologies, and messy one either. This will never change.

    Technology is a tool, not religion :)