Live data from Hacker News

Web Programming Is Hard

shubharamani.com

121–130 of 165 posts

Re: Web Programming Is Hard

#121

I'm currently working on a set of SOAP web services using tomcat, cxf, mysql, and hibernate among others. I decided to do a switch from embedded to web development about a year and a half ago after being laid off. My paycheck is smaller but I now work on a whole new set of problems. After working about 10 years in embedded and everything around it, I felt that I needed a change. It was as if I was solving the same pr…

Interesting approach to getting in to Grails. I came at Grails after about 12 years with PHP (and some Perl and other stuff too). There are a number of things I like about Grails (GORM, domain-first approach, etc). But there are still some things which bely the Java-ness of it, and I'm convinced most of the Java community doesn't "get" the web. Hard to put in to words, but an example might be:

http://jira.codehaus.org/browse/GRAILS-3364

The default in the Java world up to that point (and possibly still is) is to put a session ID in the URL. That's been frowned on and not default behaviour in the PHP world for... well since almost always. It's just asking for trouble (intentional or accidental). But the default for Grails was to have this on, because that's just how Java people think.

And the answers? Configure yet some other aspect of your system ("just change jetty's config"-type answers). Why not give more control to the framework instead of forcing people to have to learn/manage yet more systems and components. That particular issue is 'fixed' now, but there's so many moving parts that I wouldn't be surprised if it is broken again in some configurations (hasn't been for me though).

As much as I love Grails, Java as a base platform was not written with the web in mind, and makes basic stuff harder than it should be.

Re: Web Programming Is Hard

#122
I've not done any embedded stuff, but I've had jobs doing low level c/c++ to interface with poorly documented serial devices passing bit-masked instruction codes and status codes around and I'm now doing web programming and man, all I can say is this: Nothing is easy. If it looks easy for some reason, someone has probably done a lot of difficult work for you previously.

Re: Web Programming Is Hard

#123
post #85
post #8

First, she thought implementing a linked list during an interview was hard. Then, she says that web programming is hard. And I'm not saying it's "easy", but talk about blogging yourself into a professional grave?

Personally, I find it refreshing to read a blog post that isn't - either directly or indirectly - about how amazing the author is. Programming blogging has a strong culture of focusing on the newest, shiniest, and cleverest; the only negative blog posts tend to be "why X is wrong". No one blogs about their difficulties, weaknesses, doubts, or the huge amount of effort it takes to get really good at something. I think…

My eyes crossed a bit at the linked-list thing, but I agree whole-heartedly with the sentiment expressed here.

Despite being engineers/programmers, we have the same proclivities for superficiality and marketing as any other field.

Re: Web Programming Is Hard

#124
post #2

I periodically think "Man, I really shouldn't be getting paid for this. Any idiot could stick these two APIs together." In my more sensible moments, I remember that that idiot only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and…

"only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and maintain a server, system architecture, a bit of security, etc."

You should talk to my new boss, who just tore a strip off my ass for not getting somethings done in 3 days, that took another team in the company 3 months. Oh, you just have to "do this", no problem. Invoke Magic, upon 10 year old hardware.

Re: Web Programming Is Hard

#125
I made the jump from Objective-C/Cocoa development to web app development after Startup School this year. Two things surprised me when I really got down to coding my initial project. First, the sheer number of technologies involved in developing my web app. For me, that's Ruby on Rails, Javascript, jQuery, Ajax, HTML, CSS.

Second, the lack of integration between the various technologies was surprising. I often knew what I wanted a particular page to do, and the solution was to learn a new technology, and then figure out how to shuffle data between the new technology and those technologies I was already using.

Integration problems also crop up in the form of mismatches between technologies. For example, I use bignum integers in my code; but ran into all sorts of interesting problems: Ruby/Sqlite work fine; but as soon as I uploaded the app to Heroku, I uncovered issues with how these integers were being stored in the PostgreSQL. And Javascript needs special routines if it is going to handle bignums. I haven't encountered this sort of mismatch on the desktop.

That said, now that I've got a working app, I think the learning curve was in some ways (though not all ways) less steep than the desktop. A couple of reasons for this, I think:

1) The communities share code prolifically. It is not that there is no code sharing going on in desktop development, but code sharing seems much more prevalent in web development. As a new web developer, this makes my job a lot easier not only because I can just plug in code, but also because I can read that code and learn from it.

2) You can get minimal results quite quickly, which is very encouraging. Again, you can get minimal results quickly on the desktop, but the standards are different on the web. In my experience, a desktop app needs a lot more to be minimally functional than a web app, probably because the level of complexity is different. Yes, web apps can be just as complex as desktop apps; but I think a minimally functional web app is in many ways less complex than a minimally functional desktop app. Just think about all the menus, help files, and other accoutrements you need to get a desktop app minimally functional; web apps can get away with less.

3) The web technologies I depend on are more modern. Compared to Objective-C/Cocoa, Ruby is like a dream. Javascript and less so, but only because it seems more like what I'm used to on the desktop. What can I say, I like syntactic sugar and the readability that comes with it.

So, perhaps web programming is hard, but there are several ways travelling the path is made easier - maybe even easier than on the desktop.

Re: Web Programming Is Hard

#126
post #22

Earlier quoted context omitted.

"It's like maintaining a skyscraper built out of Tinker Toys." Actually, it's like maintaining a skyscraper built from steel, concrete and glass integrated with complex HVAC, plumbing, electrical and elevator systems.

"Actually, it's like maintaining a skyscraper built from steel, concrete and glass integrated with complex HVAC, plumbing, electrical and elevator systems." Adding, "Designed by a committee. Of MC Escher fans."

Designed by a committee?!

It never works!

Re: Web Programming Is Hard

#127
post #2

I periodically think "Man, I really shouldn't be getting paid for this. Any idiot could stick these two APIs together." In my more sensible moments, I remember that that idiot only needed to know HTML, CSS, the DOM model, Javascript, jQuery, HTTP (mostly headers and status codes), Ruby, Rails, basic MVC design, Oauth, SQL, SQL performance, five-ish APIs to support the two that needed integration, how to configure and…

It's interesting, I definitely see myself thinking the same thing (which may lead to myself undervaluing my skills because "any old dummy!" can learn this stuff). There are days where I've joked where I'm a "glorified typist" :)

I think in order to become more and more skilled you tend to abstract certain things out and take them as a given. Basically you know how things work, you just never think about them.

I remember when my company had an intern, and his only real education was college based (he hadn't really worked on any of his own projects). I had to explain how our stack worked, and generally these are a given when you're working with the stuff. But to someone who has never worked on this stuff it's very odd and unfamiliar. I also think that in order to build a good product for someone it helps to get to that point. I don't really need to spend a lot of time thinking about implementation these days and can focus on what would make clients happy.

To users, this stuff just works and I forget that sometimes because I'm in the weeds.

Re: Web Programming Is Hard

#128

Earlier quoted context omitted.

What are a few costly mistakes that can result from lack of HTTP knowledge?

not designing with REST in mind

Why is that a costly mistake? REST is great but it's not the only way to do web development. Read up on continuations, for example. In fact, this very website is using continuations (check out how paging works) and it doesn't seem like a costly mistake.

Re: Web Programming Is Hard

#129

Earlier quoted context omitted.

I never said linked lists were hard. I said that it's not necessary to know how to reverse a linked list from memory -- from scratch. I can look it up and get to it right away.

You know, at one point I thought that as well. I felt, that as someone who programs almost solely in 1) C# 2) Erlang -- "thanks I've got a stdlib for that". And then I actually thought about what it takes to reverse a linked list for a second. And immediately realized I will never, ever hire someone who can't regurgitate or reason how to reverse a linked list "from scratch" within a few minutes.

But on a whiteboard? That they then take a photograph of? Please! Let me pull out my computer and I'll TDD it for you right there. I coded doubly-linked lists in assembly language at age 15 without ever reading about them, but I can't spew it out onto a whiteboard.

Re: Web Programming Is Hard

#130
post #104
post #45

Earlier quoted context omitted.

You're defending your honesty, but your honesty isn't what's being attacked; it's your competence. I've been asked in interviews before, how to reverse a single-linked list, and impressed interviewers with my answer to this seemingly trivial problem; but I also remember when I first met the problem, in a newsgroup posting nearly two decades ago, and I had temporarily convinced myself it couldn't be done in constant s…

Perhaps I've just worked with linked lists too much at this point, but I find it nigh impossible to understand how reversing one could be considered even minimally difficult. "Pop the head of the source list and prepend it to the target until the source list is empty." One sentence, no complex concepts involved at all. If it's unfair to expect someone to answer a question like that in an interview, then I'm not certa…

It's very hard for you or I now, to appreciate what it was like before you learned to think of linked lists as stacks. The point is, there is definitely a leap of insight necessary if you've never thought of things in this way before. I was 12 or so when I made the leap, and I guess I'm slightly lucky that I remember the exact moment for this particular case.
Post reply on HN