Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming The Internet

HTML Web App Development Still Has a Ways To Go 279

GMGruman writes "Neil McAllister was helping out a friend whose web developer disappeared. Neil's journey into his friend's website ended up being an archaeological dig through unstable remains, as layers of code in different languages easily broke when touched. Neil realized in that experience that the ever-growing jumble of standards, frameworks, and tools makes web application development harder than it needs to be. Although the Web is all about open standards where anyone can create variations for their specific needs and wants, Neil's experience reminded him that a tightly controlled ecosystem backed by a major vendor does make it easier to define best practices, set development targets, and deliver results with a minimum of chaos. There's something to be said for that."
This discussion has been archived. No new comments can be posted.

HTML Web App Development Still Has a Ways To Go

Comments Filter:
  • This just in... (Score:5, Insightful)

    by sunking2 ( 521698 ) on Friday May 14, 2010 @11:11AM (#32207512)
    Knowing how to code is easy. Being a decent software engineer isn't. 90+% of web developers fall into the first category.
  • by Gudeldar ( 705128 ) on Friday May 14, 2010 @11:14AM (#32207552)
    It is an ever-growing jumble of different libraries, standards and tools.
  • by Assmasher ( 456699 ) on Friday May 14, 2010 @11:14AM (#32207560) Journal

    The problem with web app development is that the environment was never intended for interactivity, it was designed for displaying information. Everything added since then to create 'apps' has been bolted on (sometimes cleverly, sometimes not so cleverly) and implemented differently between browsers and (relating to plugins/extensions) differently between operating systems. Developing for x86 machines running Windows and/or Linux isn't a "tightly controlled ecosystem" but you can certainly develop excellent applications, why? Because the environment was intended to run applications.

  • Mostly (Score:5, Insightful)

    by Poodleboy ( 226682 ) on Friday May 14, 2010 @11:15AM (#32207570)

    I can agree with all of this except the "backed by a major vendor" part, which seems superfluous... Design is all about maintaining a coherent vision of the end product, whereas hammering a tin shed on the side of the Taj Mahal is always a bad idea, particularly for maintainability and robustness. What isn't clear to me is why I need a vendor to supply my vision when I've already had years of education and experience...

  • back to perl! (Score:2, Insightful)

    by slashnot007 ( 576103 ) on Friday May 14, 2010 @11:19AM (#32207644)

    The ultimate glue language. It's not pretty as python but it's a woodchipper when it comes to parsing and re-gluing outputs. Indeed that's what the acronym P.E.R.L strands for. My favorite reason to use perl is that you can do more things more easily with the core language. You don't have to depend upon importing libs. The surprise is that it's also not bloated at the core level: compare the thickness of the perl pocket ref to any other language. it's tiny.

  • by dingen ( 958134 ) on Friday May 14, 2010 @11:25AM (#32207704)
    The serverside part of creating web applications is actually the easy part. It is indeed as you say: just pick a platform and a framework and use that. In most cases you have full control over the server side part of your web application, so you create it just the way you like it. The hard part is creating a good looking and well functioning interface for your clients using HTML, CSS and Javascript which will deliver (somewhat) the same experience, whatever the clients software, hardware or screen size may be. It's hard exactly because you don't know what the client will be using to access your application, as you have no control over this whatsoever.
  • Re:This just in... (Score:5, Insightful)

    by ducomputergeek ( 595742 ) on Friday May 14, 2010 @11:29AM (#32207752)

    The problem I find with web developers is that they are too busy chasing the "Ohh shiny" of the month. I've worked off and on with a development group over the years usually as their systems & database guru during the planning stages. This is usually once or twice a year. And each time they are using a different framework "Because it has killer feature xyz". But then they get into it and it seems like it won't do A or B and they end up coding their own.

    Meanwhile, at the day job, we had a project that was very close to something I did 12 years ago and wrote in perl5. I dusted off the old scripts, installed, changed the path to perl to the new system and was up and running in less than an hour. I had to update a few lines of code to use new perl modules, but a decade later it still worked. We rewrote the backend to use PostgreSQL instead of flatfiles and updated the template files so the web pages generated don't look like something out of the NS4 days, but maintenance has been a breeze.

  • by fuzzyfuzzyfungus ( 1223518 ) on Friday May 14, 2010 @11:29AM (#32207754) Journal
    I honestly don't understand how an anecdote about a seriously fucked server setup is relevant in the slightest to the pros or cons of "HTML web apps" or their development.

    With HTML, whether the shiniest of web 2.0 or the seriously old-school stuff, there is clear separation between the client(where "standards" such as they are, matter) and the server, which can do absolutely whatever it likes, so long as it responds correctly to a few HTTP messages.

    If you want to deliver a webapp, the development of your client component is, indeed, somewhat constrained by the fact that "web standards" are more evolved than designed, and are somewhat inconsistently implemented. If you want to discuss the cons of web-apps, horror stories in this vein are the anecdote to use. If you want to discuss the pros, heroic tales of multiplatform, install-free deployment are to be used.

    On the server side, though, the vices and virtues of web standards(aside from seriously uncontroversial stuff like TCP/IP and HTTP GET) are basically irrelevant. It's your server. You can do whatever you want to deliver HTML, CSS, and javascript, and interpret responses from your clients. Totally in-house stack? If you feel like it. Modestly customized OSS job? Sure. Some single-vendor enterprise development solution? If that is how you roll. The fact that somebody's web-dev fucked up and then disappeared just seems completely irrelevant(can you think of any type of development, application or otherwise, where "the developer fucked up, then disappeared, and we had to call somebody else in to do a mixture of archeology and pacification" has ever been a good thing?)
  • Re:This just in... (Score:5, Insightful)

    by R_Dorothy ( 1096635 ) on Friday May 14, 2010 @11:31AM (#32207782)

    On the flip side: Being a decent software engineer doesn't make you a good web developer. I've had to deal with a site built by decent software engineers who didn't understand the web and it fell seriously short in SEO, content management, analytics, degradation and a slack handful of other stuff that's second nature to a decent web developer.

  • by xanthos ( 73578 ) <xanthos@toke.PARIScom minus city> on Friday May 14, 2010 @11:37AM (#32207840)

    Perl is for coders, not web designers. As the former, I can pull together and correlate data from all over the place. The only problem is my output is ugly as hell. Since I don't do commercial work viewed by the general public that isn't a problem but it would be nice. Whenever I right click and look at the source for a fairly complicated webpage I get depressed. Seems way, way too complex and you are not seeing everything being brought in via CSS and JS libs.

    I keep looking for a way to bridge the gap between WYSIWYG page designers and plain text perl backends. Any and all suggestions are welcome.

    -Xanthos

  • Re:This just in... (Score:4, Insightful)

    by Migala77 ( 1179151 ) on Friday May 14, 2010 @11:42AM (#32207902)

    Knowing how to code is easy. Being a decent software engineer isn't. 90+% of web developers fall into the first category.

    And 90 % of developers think they are a part of that 10%. And they disagree on who else is in that category.

  • by Assmasher ( 456699 ) on Friday May 14, 2010 @11:48AM (#32207960) Journal

    POST and DELETE

    You're confusing HTTP with HTML.

    If you want to get picky, 'computer' were 'never designed' for media playback, using your criteria

    Uhm, you're completely missing the point. Computers don't have to be 'designed' for media playback, media playback is simply an expression of the inherent capabilities available to a computer. A web browser is an application, not an operating system or hardware, that people are trying to force into being an application container. It is not meant for these types of things. People have found ways around these shortcomings; however, they generally tend to be poor, kludgy, and overly complex. This is, again, because HTML, XHTML, and such, are not intended to be used for application development.

    Flash is another example of something that was not intended to be used for application development, yet it has grown to accomodate these type of possibilities and since the introduction of Flex, it's far less horrid than previously - but it still isn't a good development environment because of all its legacy baggagejust like web browsers.

  • Meh (Score:5, Insightful)

    by SmallFurryCreature ( 593017 ) on Friday May 14, 2010 @11:48AM (#32207962) Journal

    Actually, web development is pretty easy. Just that you got to stay away from the "do it all frameworks" that you want to "customize".

    Either build it yourself or use off the shelf, but when you try to combine the two you get a mass.

    The tools/languages he mentions all do their own things. And since when are html, xml, json and css a language? Might as well call headers in C a separate language.

    Neither is cross-browser all that hard or rather, it doesn't need to be.

    As an experienced web-developer I see some very simple problems with web-development:

    • I want program X, now make it do Y. If you want wordpress, use wordpress. Yet what many a customer wants is to use Windows XP, then have it modded to be OS-X, with no budget, with MS supporting it. If you want to use off the shelf software then you got to use it as it is, or spend on customizing it and then accept that you got a custom solution that nobody can help you with.
    • A cheap developer is often a bad developer. There is a reason I charge a high hourly rate, I know what I am doing and more importantly, what I shouldn't do. This doesn't mean I am the best programmer you can hire. A programmer punches code. A developer gets you a working site. Anyone can punch out code but you will all to often end up with something that just doesn't work.
    • Outsource only if you are a master at cross-culture communication. Indians, Chinese, East-europeans, they just ain't got the same attitude as you do. Granted I only see the bad examples, were someone has outsourced a project, it turned bad and I am asked to clean it up, but there is so much work with this that i wonder if it ever goes right. And the outsourced code is often so fucking bad, you got to wonder how old the people involved were.
    • Know your tools. Really, what truck driver doesn't know anything about trucks? For that matter, what shipping company director doesn't know anything about trucks? We often don't realize how much we know about stuff, does a shop owner know a thing or to about real estate? That a door should be 2 meters tall or more? That it is handy if the door opens if you push on it? That lights inyour shop are handy? All basics stuff, but many have no idea at all about their own website. And if you don't know the basics, then how can you judge wether you got value for money? it would be like hiring someone to maintain a garden when you have never seen a garden, don't even know what the word means.
    • Time/Costs/Money. The web for a lot of customers is often what their little nephew did with the wedding pictures. Cute but hardly something that you want to build your company on. A webshop/site is expensive, especially if you want it customized. Renting a physical store isn't all that hard, but when you are done making it your store you are looking at a huge bill, and the same goes for your online presence.
    • Know what you want. Developers like me charge by the hour, so if you spend all day calling me up trying to determine the font/color of a something on your site, that will get you neat bill at the end. Yes, just for changing the color. If I don't charge you direct, I will do it indirect. KNOW what you want. If you are building a house, you don't tell the brick layer to tear the walls down again because you want to try a different look do you?
    • And finally. CONTENT. Get your content ready in time. I seen plenty of projects delayed endlessly because the content takes to long to be produced. A site needs content and anytime between delivery of the site and you getting it up and running is lost revenue.

    Really, web development ain't all that hard, but the customers often make it far more expensive then it needs to be.

  • by Anonymous Coward on Friday May 14, 2010 @11:49AM (#32207974)

    None of those sentences make sense, because "a" is used for singular words.

  • Re:This just in... (Score:5, Insightful)

    by Junior J. Junior III ( 192702 ) on Friday May 14, 2010 @11:54AM (#32208024) Homepage

    First, minor nitpick though it may be, HTML isn't coding, it's markup. It shouldn't require a 90th percentile web developer to craft it. All you have to do is understand and follow about 2-5 pages of straightforward rules, and you can create a valid HTML file. It's not hard. People don't do it not because they're dumb, but because they can get away with it.

    HTML was designed to be as accessible to new developers as possible. If it had not been, and you could only do web development if you were in the 90th percentile of brilliant developers, it would not have taken off so explosively in the mid-90's.

    HTML was originally designed to be loose and forgiving about markup errors. This was both good (HTML was fault tolerant; you could still read a page even if the author didn't mark up everything perfectly) and bad (because now the browser had to do a lot of guessing to infer the intent behind the bad markup and render it somehow, and this made things very prone to error and inconsistent rendering). Ultimately it was recognized to be bad, so W3C tightened up the rules for validating correct HTML syntax, and web developers who cared learned to appreciate the benefits of valid markup. The browser is still forgiving of invalid markup, of course, so bad markup is still tolerated. But unless the web developer recognizes the value of valid markup (consistent rendering as intended), which isn't hard to author, they will tend not to worry about validation, and will continue to think that the web ecosystem still sucks as much as it did in the late 90's when browsers from various vendors were widely inconsistent.

    In the early days, the browser wars were not just about who owned the market share, but who could usurp the open standard for HTML and CSS through vendor lockin to unofficial vendor-specific HTML tags. Browser vendors thought they could win the browser wars if they could advance HTML and offer web developers incentives to develop web sites for a specific browser, and thereby steer the market toward using the preferred browser.

    As a result, browser developers routinely ignored, broke, or unofficially extended W3C recommendations in ways which made web development a horrible nightmare. When W3C released HTML 4 and CSS 2.1 recommendations, it took nearly 6 years for browser vendors to deliver browsers that actually supported those standard anywhere near decently.

    They STILL don't support the standards fully, 100%. W3C has never even finalized the CSS 2.1 recommendation, for that matter.

    We've been stuck in a decade of HTML4/XHTML1 + CSS 2.1 stagnation. Only the last 4-5 years have been decent for web developers to fully use clean, compliant HTML4+CSS2.1, and even then only if they elect to break compatibility for outdated browsers and focus on supporting reasonably modern versions of the major browsers that have finally gotten on board with supporting the W3C recommendations.

    The downside to this decade of stagnation is that we've been stuck with the limitations of HTML 4 and CSS 2.1 for a long time, long enough for other people to come up with other ideas. Things like tableless layout, fluid layout, rounded corners, transparency, server-provided fonts, multi-column text flow, and so on have frustrated web developers for the last decade. W3C really couldn't do much about it for the first half of that decade because it took browser vendors that long to just get their shit together enough to support the most recent standard. But now, they've been taking way too long to advance to the next level.

    HTML 5 and CSS3 are nearly here, and are already partly supported by contemporary mainstream browsers. This is good, but we really need to see a faster adoption, especially in the advancement through the Recommendation process. Unless innovation happens on a regular basis, other players out there are bound to realize that you don't have to serve only HTML over HTTP. Microsoft has something called XAML now, which they use to build rich interfaces for Silve

  • by toxonix ( 1793960 ) on Friday May 14, 2010 @11:55AM (#32208036)
    You said what I was thinking, without all the expletives. Thank you sir. I should have stopped reading at the title '... still has a ways to go'.
  • by Anonymous Coward on Friday May 14, 2010 @12:09PM (#32208222)

    While i am one to admit that Web Dev is, for some parts, a bunch of hacks, most of it isn't.

    JavaScript, the DOM, and CSS are all highly detailed on W3C site. The only ones who chose to ignore the standards was Microsoft. (although it seems they are turning around now)

    All the stuff you said is literally the exact same crap we deal with in Operating Systems NOW.
    Not all programs run on all OSes the same. I've had cross-platform programs run faster / slower on other machines, use more / less memory, look different occasionally, etc.
    Let's not forget how much of a bitch it is in the first place to MAKE a cross-platform executable. Compared to web dev, web dev is making a cup of coffee, cross-platform software development is like building the machine to make the coffee granules. (actually make them, AKA 3D printer or something like that)

    If you actually READ the standards on W3C and work with them, you shouldn't ever screw anything up outside of IE browsers, or working-drafts, or on the rare occasion where there is a legitimate bug in finished implementations of standards.
    JavaScript doesn't lack a damn thing when it comes to application development for the most part, it is the DOM model that is the mess, and methods and attributes across some browsers. (see keycodes and other such things)
    You either haven't used JavaScript at all / are trolling, or you just plain suck at it.
    The only other problems are really memory management and leaks with functions and objects. (which varies between each browser)

    Again, this is all just sounding more like software development in general: it all sucks, it is all a mess, but those who stick to the standards get by fine without any problems, it is the ones who have to deal with the idiots who went outside the standards and generally fail at decent coding styles (no indent, awful naming, etc)

    The worst thing of all web development is the web browsers.
    All these people developing them refuse to do huge changes to the base code to actually stick to the standards simply because it will break websites.
    SCREW THEM, if the developers in both cases stuck to standards, none of this mess would exist!
    People who code shit deserve to suffer incompatible mess.
    If everybody done it at the same time instead of pussyfooting around with minor changes, we'd look back at this day with a smile and sigh of relief.
    Ditch compatibility modes as well. If people refuse to update, they don't deserve to be on the web.
    Backwards Compatibility is the worst thing in development, it just results in a mess.

  • by Anonymous Coward on Friday May 14, 2010 @12:11PM (#32208262)

    I think he's talking about JavaScript missing critical language features. You know, things like proper namespaces, exceptions, static typing, a sensible object model (or even something like the approaches to prototype-based OO that Self and Io take), and so on.

    There's a big difference between a scripting language like JavaScript, and scripting languages like Python, Perl and Ruby that are much more advanced and suited to large-scale development. Even then, there's a much bigger gap between those languages and languages like C++, Java and C#, which are suitable for huge-scale development projects.

  • by Anonymous Coward on Friday May 14, 2010 @01:18PM (#32209218)

    MySQL sucks? Don't use it.

    PHP sucks? Don't use it.

    Hackiness in the backend is not a difficult problem to solve. Most Web developers use PHP and MySQL? Well, that's because they're bad programmers, and these tools are targeted at bad programmers. Use something better.

    You don't even /need/ to use JavaScript. Things won't fly around the screen and people might have to wait a microsecond for their FIOS to download an entire new page, but Web 2.0 cruft is hardly a requirement. You're free to use no JS at all, dab it in where it's useful, or be a jerk and make your whole app JS-based if you want.

  • by rsborg ( 111459 ) on Friday May 14, 2010 @02:32PM (#32210664) Homepage

    You know, things like proper namespaces, exceptions, static typing, a sensible object model

    See it in action here [w3schools.com]. If you're talking about that mess of cluster that is subclassing from Exception, yes it doesn't have that (perhaps Dojo or other js frameworks do?) However, unlike Java and the like, this language at least has closures.

  • Re:Web Development (Score:2, Insightful)

    by MillerHighLife21 ( 876240 ) on Friday May 14, 2010 @02:47PM (#32210942) Homepage

    And I can related. I used to be in the "J2EE is the only proper way to do things" camp too. Read about 4,000 pages worth of books cover to cover about everything from Struts, Hibernate, Tapestry, and EJB's on. Also thought all interfaces should be done with XML and XSLT because it was just the right way. Preached about it to people.

    Then reality actually hit. I went to work for a large telecom company who's upper management constantly was obsessed with converting everything into J2EE but because I had some PHP experience I ended up doing both and got to live in both worlds.

    The result was was that, of about 80 different internal and external websites that worked 75 of them were PHP, 4 were J2EE, and 1 was ASP (pre.NET). Our team of 3 developers maintained all 75 PHP sites and 1 of the J2EE apps. The other three J2EE apps each had a team of 8 people on average, dedicated DBA's (because the application "required" Oracle). The ASP app only worked in IE6 and had 3 people responsible for it.

    Now, exactly what does it say about maintainability when 3 people can maintain 75 different sites and have spare time for new development. After a while, when my eyes were officially opened to the man hours / licensing fees wasted on pursuing the "right" way of doing things we convinced our VP to let us rewrite a particularly buggy J2EE app that we had to interface with a lot. This system had take 6 months for 5 people to build.

    Our team rewrote the entire thing in 1 night, bug-free for at least the next 1.5 years too (I left for another job after that).

    The lesson that we learned was simply this: practical abstraction.

    You can strive for ideals all day long, but if the ideals are so bloated that it takes 8 people to do the job of 1 person it is no longer cost effective.

    With J2EE you spend so much time learning all of the "right way" to do things that it prevents you from having any amount of time to learn all the other surrounding web technologies. You also end up with people who are literally afraid to learn anything new because they've invested so much time into learning what they already know. Ever meet Java people who think EVERYTHING needs to be done in Java? That's why.

    At the same time, a language like PHP that you can be polished with in a week is a powerful tool in the hands of a good developer. It gets a bad rap because it's so easy to learn a little bit at a time that designers and other people with no formal programming background at all are able to jump in and create some bad code.

    For further reading material, check out "The Top 10 Signs You're a Crappy Programmer (and don't know it)." http://damienkatz.net/2006/05/signs_youre_a_c.html [damienkatz.net]

Those who can, do; those who can't, write. Those who can't write work for the Bell Labs Record.

Working...