

Ask HN: what still sucks about web development? - johnswamps

Anything from framework features, editors, technologies, hosting, deployment, standards, conventions, whatever. What are the biggest obstacles preventing you from easily writing modern web applications? And if you have and ideas on how to fix it, I'd be interested in that as well.<p>I'm less interested in non-technical issues (dealing with clients, etc.)
======
zephjc
Two words: Internet. Explorer.

The number of man-hours wasted on working around IE bugs probably counts in
the billions.

~~~
salman89
Are these bugs fairly common? Is there no way of writing an IE "spell checker"
- meaning that you throw code at it and it makes it IE compatible?

~~~
zephjc
There are these days. Tools like jQuery and CSS Reset help normalize some
issues, but some persist. See: IE haslayout bug

------
jwdunne
I think Dreamweaver being pushed about as a leading web development tool is
harmful. It's actually very bad for what needs to be done and almost always
contributes to bad code. The best IDE for frontend web development should be a
text editor with syntax highlighting, block-start/end matching and a few
hotkeys to speed up the writing of HTML (ZEN Coding anyone?). The design view
is very harmful and the code editor is not much better. No matter where ever
you untick "Use tabs" or similar, Dreamweaver will still use tabs. It really
ruins code.

Another thing is many web developers will use meaningless class/id names and
fall back to generic terms such as "floatLeft", which is pretty bad.

Although there is SASS, this isn't often available in a lot of projects so you
do often have to repeat yourself a lot in CSS... unless you resort to the
above. Which is worse? That's left as an exercise.

Then there's people who still use HTML that went stale over ten years ago just
to do a quick job. Yeah, you save time by writing <i> by a) writing less
characters and b) not having to define any potential CSS rules but then it
loses all meaning. That is, unless, you give it meaning which then makes it
redundant since a better alternative could have been used.

Another thing is how you're forced to use a lot of divs to come up with a good
pure HTML/CSS solution to something. Although there is now HTML5, it's
obviously not supported by the older browsers which a good percentage of the
Internet still uses.

Rant over.

------
chubbard
Layout. The legacy layout model and the cryptic CSS work arounds we employ to
get it to work are terrible.

~~~
DTE
Absolutely. And are there any significant efforts or new ideas for dealing
with this problem?

------
ISeemToBeAVerb
I'm pretty sure your question is squarely aimed at experienced developers, but
I would like to offer a perspective from someone coming into web development
from a completely different industry (film editing).

I decided to abandon my career as a film editor because I found my interests
and ambitions leaning more toward interactive media and web development.

Having left editing at a time when video standards were all over the board (it
wasn't uncommon to receive projects shot over 10 different formats), it wasn't
all that surprising to see that web development is in a similar state of
frenzy.

The sheer number of languages/frameworks/libraries/etc… is enough to make a
person's head spin off. Honestly, being quite new, I don't fully understand
how you experienced guys keep up. My own personal solution was to just choose
a language (semi-arbitrarily) and dig in.

So my point in all this, from a purely newbie standpoint is that MY biggest
frustration so far has been the sheer number of technologies to choose from.

I'm definitely not lost on the idea that this is a positive thing from the
standpoint of innovation. Like most other industries, the REALLY good ideas
tend to float to the top. But you asked for frustrating things, and navigating
through all the different options has been MY most daunting challenge thus far
from a technical standpoint.

~~~
captainbeef
Choosing something and digging in I think applies at all experience levels.
The processing of choosing changes with experience.

~~~
ISeemToBeAVerb
I've noticed that. The more I get into web development and the more I learn,
the better I am at recognizing the tools that apply to my needs. When you
start fresh in any industry, the biggest challenge is trying to find the tools
that best suit you. Sometimes those tools are not the ones that everyone is
fawning over. I'm still new enough to not really know the subtle distinctions,
but I agree that the more knowledgeable you become, the more critical you
become of the tools you choose. I do feel that it's a difficult time for
people coming into this industry with little background in programming, but at
the same time I also recognize that the contributions of experienced
programmers are making programming more assessable than it has ever been in
the past. In some ways, that's a positive thing. At the same time it also
means that so many people entering the field will never come to understand the
core concepts that make programming an art.

------
dstein
The biggest problem is the technology stack is too tall. With Ruby on Rails
adding Jquery, Coffeescript, SASS, and SCSS it's exposing some obvious
shortcomings in today's web frameworks.

The high level problem is that web developers are trying to do things (state)
in web browsers over a protocol (HTTP) that was not designed for it. Every
server-side web framework is always going to be Frankenstein-ish like RoR has
become.

Meta-frameworks may start to become necessary. There's a few out there like
Haxe, and GWT is sorta one. Websockets may also start to become a more widely
used alternative to Ajax. HTML and JS are going to be a problem for a while,
but can maybe be abstracted almost completely.

~~~
sunchild
"Ruby on Rails adding Jquery, Coffeescript, SASS, and SCSS"

Eh? None of those things that you listed is for emulating state over HTTP. In
any case, Rails is supposed to be a "tall" stack – it's supposed to be a
highly opinionated framework.

If you want to attack stateful apps in browsers, aren't Sproutcore/Cappuccino
better targets?

~~~
dstein
Using Jquery to do ajax requests and updating part of a web page is emulatimg
state over http.

Coffeescript, SASS/SCSS are just examples of making the Rails stack even
taller.

I don't have any experience with Sproutcore or Cappuccino but both look like
clientside-only frameworks and would only extend the state & stack problems
that I already dislike.

~~~
sunchild
"Using Jquery to do ajax requests and updating part of a web page is emulating
state over http."

Only if you use it that way. Also, Sproutcore/Cappuccino are not add-ons to
Rails. They're stand-alone client-side frameworks.

------
veyron
What is the standard framework for abstracting most of the browser-specific
behaviors (like those IEx hacks) away? I'm not even talking about dynamic
behaviors; just simple standard HTML / CSS jazz.

In 2011 I would hope there would be a simple way of expressing my desires that
does not involve slogging through books and blogs to figure out how to hack a
few small bits together so that some asinine browser can render a page in the
same way as a newer version of said browser (I've seen this with IE, FF, and
Chrome)

------
kingofspain
Perhaps because I deal with it much less than the other stuff, but SSL.
Getting it set up, being tied to one IP (until all older browsers have died)
and to a lesser extent the fact that "trustworthy" certs still cost so much
and the racket with greening.

Other than that overflow on iframes in Chrome (big hassle today!), SOAP(!!)
and the general lack of a decent editor/IDE that doesn't have at least one
infuriating feature.

------
venturebros
Aside from IE like someone mentioned I would have to say DreamWeaver
(answering the question in the title not the one you posted in your post)

I have this job for the summer recoding sites that were built using
DreamWeaver. They took Photoshop files, sliced large chunks of it and used
DreamWeaver to make it a "website" if you can call it that. It's all a
horrible mess.

~~~
adrianparsons
Oh god, I would honestly get a new job.

------
MatthewPhillips
For me it's testing. My testing consists of refreshing the browser, clicking
some browser, then examining the console window. I know I can use PhantomJS
but I can't bring myself to learn how to use it.

------
bigamil
Legacy Browser Support and lack of video standards. Thanks Google for throwing
the hammer down recently and telling everyone they wouldn't support any
browser older than 3 major revisions.

------
HowardRoark
HTML, CSS, Javascript, browsers, database, IDE, at least one server side
language, and hosting for a simple web app. Web development sucks. We are just
used to it.

------
jparicka
Performance.

------
jparicka
Security.

------
bigwally
I feel like a rant.

Editors: The best editor/editing environment of the bunch is the Microsoft
offering of visual studio. The biggest problem is that it is only well suited
for Microsoft products. There are a few others and there is eclipse that some
people seem to worship but is clunky hog of a thing that is nowhere as smooth
as Visual Studio. A lot of people still use fairly basic text editors.

Standards: At first there was Netscape it was good. Then IE came along and it
was good and Netscape was a garbage. Then Firefox came along and it didn't
crash as much as IE. Then Chrome came along and IE was crap. While I like the
way Chrome has done so much, I really hope Google doesn't do too much to
dominate the browser market. Competition is needed. Competition was needed
when Microsoft was winning the browser wars. The actions that Google has taken
of late seem to not much different from the bullying Microsoft employed all
those many moons ago.

Javascript: The things you can do with Javascript are fantastic. The language
of javascript is a dogs breakfast. Instead of pushing the language forward and
making it more integrated with the browser, add-ons such as jquery have been
created. Having one dominant language (that was set by Netscape) makes
programming for the web a sometimes painful experience. Using Javascript and
trying to make it work with every browser can get ugly. There is room for new
language or two in the browser.

I am very happy to be moving on from the dominance of IE6 but I am cautious of
what the future holds.

~~~
sunchild
You couldn't pay me to use an IDE. I always end up liking a simple shell and
text editor better.

------
seanp2k
Frameworks. MVC itself isn't hard for me to grok, but doing USEFUL things with
Django and friends is kind of hard having never done it before. All the
tutorials assume that you're already an ace OO guy.

------
ddemchuk
Even after learning how to properly deploy rails apps in production, it still
sucks. I want to be able to install the heroku deployment process on my own
servers.

~~~
sunchild
Close enough? <https://github.com/mislav/git-deploy>

