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.)
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.<p>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.<p>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.<p>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.<p>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.<p>Rant over.
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).<p>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.<p>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.<p>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.<p>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.<p>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.
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.<p>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.<p>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.
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.<p>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)
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.<p>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.
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)<p>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.
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.
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.
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.
I feel like a rant.<p>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.<p>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.<p>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.<p>I am very happy to be moving on from the dominance of IE6 but I am cautious of what the future holds.
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.
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.