views:

943

answers:

23

Are you satisfied with the current state of web programming? What fundamental changes or improvements would you suggest to vastly improve the state of the art of web programming? What problems do these developments address? In other words:

What are the Grand Challenges of Web Programming Technology?

+14  A: 

Layout Expression: Recently, there has been a well-known debate raging over the issue of web site layout techniques. Should web sites express layouts in terms of HTML table syntax, or should layouts be expressed in terms of "semantically correct" divs and CSS? How much of the issue is resolved by the CSS display property with its table-* values? Will widespread, standards compliant, CSS3 adoption help to solve the issue? Since every web site has a layout, and since it seems that humanity has lost countless person-years to debugging CSS layouts, it seems that web programming would benefit from a well-designed, well-implemented, widely-adopted, well-understood language in which to express layouts.

Greg Mattes
agreed. spending 3 hours on debugging css to work in 4 different browsers who all decide they are going to do things differently is stupid, boring and counterproductive. however, using tables for layout is dumb too - it's a choice between 2 evils.
gnomixa
I've given up on using CSS for form layouts. Tables it is... until something better comes along.
Joe Philllips
@do3boy: you're an hero - really...
annakata
+1 for bashing CSS. I'd like to say something sophisticated about why CSS is so bad, but then I'd have to look at the CSS specification again and that would ruin my temper. If you ask me, W3C is losing it.
flodin
+1  A: 

Dynamic Content Programming Languages: There are several choices here, but it's difficult to argue that JavaScript (ECMAScript) isn't the de facto dynamic programming language of the web. Sure, you can embed some Flash, but is that really the web, or is that a hack to get around a fundamental discrepency in the web?

Joel and Jeff talked about the relationship of Flash to the web, start listening at the 50th minute of the 11th episode of the StackOverflow podcast, or search for "un-webiness" in the transcript.

How good is JavaScript? It's so good that Douglas Crockford had to write "JavaScript: The Good Parts" to warn us of the parts of the language that should be totally avoided (It's a very good book BTW). Oh, and let's not forget that users can, and do, simply turn Javascript off because of security concerns.

Greg Mattes
javascript isn't bad language. sure there might be better ones, but MUCH bigger problem is lousy implementation of DOM by IE team. Adding more languages is hardly a solution, when this one isn't supported properly
Slartibartfast
I agree (again) with Slartibartfast...
Mauricio Scheffer
+8  A: 

We Can't Write Math: The March-April 2009 Edition of American Scientist has a nice article about the current state of the art in writing mathematical formulæ on the web. Knuth gave us a reasonable, compact, and expressive language for writing math decades ago, the web is still clunky.

Greg Mattes
Have you seen MathML? http://www.w3.org/Math/
mmattax
The article mentions MathML.
toolkit
Just like the answer about curves, the spec is there and it works (Firefox). It's just not *widely* implemented...
Mauricio Scheffer
Way to go jsMath: http://www.math.union.edu/~dpvc/jsMath/
Greg Mattes
+36  A: 

Browser Incompatibilities: We test and we port, and we test and we port. How many times have you found advice on some "hot" web programming technique that works on "most standards compliant browsers," but then has a caveat on how to make the technique work on a certain family of browsers that is not known for standards compliance? Porting is always a challenge when multiple platforms are in play, but this issue seems to be particularly relevant to web programming.

Greg Mattes
Flex/Air should prove to be interesting in the next few years on this front. Flash has almost as much ubiquity as web-browsers, without the need to install another Java or Silverlight runtime.
Jas Panesar
Yeah, but where is the line between those technologies and the web? See the answer to this question named "Dynamic Content Programming Languages" http://stackoverflow.com/questions/554055/web-programming-grand-challenges/554061#554061
Greg Mattes
+11  A: 

Browser Backwards Compatibility: Not only must we support many browsers, but many versions of many browsers. How much would web programming be improved if we could phase out legacy browsers more rapidly?

Greg Mattes
+2  A: 

Asynchronous file uploads: Possible to fake it with iframes, to do it with Java, Flash, Silverlight and similar things, but there is still no pure AJAX file upload. And that's a bad thing.

DrJokepu
true, but SWFUpload is pretty darn close. ;-)
scunliffe
A: 

Lack of alternatives: The world wide web? HTML only. Scripting? Javascript only. Styling? CSS only.

I think it lacks innovation. Why can't we come up with any alternative to these things at all? So far we only have closed platform such as Flash, PDF or Silverlight as an alternative but they are not the web and they are governed by a corporate entity.

You see, we used to only have Perl+CGI.. then we get PHP.. then Java and .NET caught up and then we have ruby on rails and django etc etc...

but what about (X)HTML? Javascript? CSS? There're virtually no viable alternatives at all.

chakrit
yeah, but it's hard to talk about other open/unpropriatery solutions when microsoft can't even handle this one properly.
Slartibartfast
Right now we need more standardization, not more divergence.
flodin
@Slartibartfast what if HTML and CSS itself is the problem?
chakrit
@flodin I agree... but I also believe that a more elegant solution is also possible if we grant innovation some chance.
chakrit
+3  A: 

Parallelization: Given that the majority of processors these days come with more than one core, how would you utilize parallelization on a client machine from the web? What jobs exist to benefit from web parallelization? What language constructs would need to be created? We already have (relative to serial programming) trouble with parallelization, what additional level would a web abstraction bring to the equation?

Gavin Miller
+7  A: 

Authentication: How many usernames and passwords do you have? (I mean how many accounts/profiles do you have, not how many unique passwords and usernames do you use out of (bad) habit). Is OpenID the "single sign on" answer?

Greg Mattes
Yes, OpenID is the single sign on answer. :) Now we just need to get it to become standard use.
flodin
No, OpenID is not the answer, but using your email as your login definitely is.
gvkv
+8  A: 

Spam, bots, and other undesirables

Steven A. Lowe
Other undersirables? Chinese ppl being pade 1 cent / autentication or register?
fmsf
@fmsf: i was thinking of trolls
Steven A. Lowe
+3  A: 

Typography: Do you like fonts? Do you like the font choices you currently have when programming on the web? Do you design with "nicer" fonts, and then include your design as an image instead of "real" text?

Like the challenge of writing math, this related issue is discussed in the March-April 2009 Edition of American Scientist in the last section of the article.

Greg Mattes
Try sIFR 3.0 if you want some cool fonts, it works great, but is too much of a jackhammer to use on all text, most people just use it for headlines.
Peter Turner
CSS @font-face: http://craigmod.com/journal/font-face/
Greg Mattes
+1  A: 

No. After programming Windows desktop applications for years and then having to write web applications I've found web programming to be very limited in power in terms of programmer and end user productivity. I don't think HTML is going to keep cutting it, given its challenges.

I would argue that it ultimately ends up costing more to program a web application by the time you factor in getting things to look the same for all major browsers (especially Internet Explorer), and dealing with all of the cross browser CSS hassles. Also HTML has poor performance and will never have the same power and superiority that desktop applications offer.

In order to take the web to the next level, users are going to need the cost efficiency and power of desktop apps, with the convenience of the web. Silverlight seems like the best answer to these issues so far, but unfortunately it's controlled by a corporation. I would like to see a big tech war between Silverlight and Flash so that these products can reach a higher level of maturity. Just like what happend with the browser wars of the past. Perhaps if this occurs the standards body will make the same moves and take the best of these technologies and make some new standards to take things to the next level.

James
+2  A: 

Move away from browser rendering: I hope one day sites will be not in the plain html and javascript but in "html-bytecode" and "js-bytecode" and the browser will be something like java's JVM. As a result pages will be small, fast, and browser independent.

serg
I can't agree on that. Parsing text or a bytecode, there is always a way to do it wrong.
Slartibartfast
Think about TXT file compared to PDF.
serg
I agree with Slartibartfast...
Mauricio Scheffer
I agree with Slartibartfast too
Camilo Díaz
+5  A: 

Curves

I want to be able to define and create bezier curve areas and lines in my web sites without playing weird image-mapping games. Rectangles and 90-degree angles everywhere are not pretty.

Paul Nathan
Canvas, SVG... forseen but unimplemented
Slartibartfast
The tech is out there. I'm certain of that. But it's *not* sitting in my browser out of the box, with SGML tags for curve elements, and all modern browsers supporting it, and corporations using it. That's the difference.
Paul Nathan
+3  A: 

Stateful Web

A true stateful model that enables elegant creation of websites without the HTTP/HTML restrictions and kludges of AJAX/Flash/etc.

Paul Nathan
is this required? does REST not bypass this?
annakata
REST does not solve the issue at all, unless I am misreading Wikipedia. Java/flash embeds are an approach on this, and are a conceptual step in the right direction. But having a patchwork quilt of technologies and ideas cobbled together is not a good architectural pattern.(See Big Ball of Mud)
Paul Nathan
A: 

Can't believe nobody mentioned it, but unquestionably the number one problem facing web programming is security and "solving" XSS.

annakata
A: 

Learning Curve: If you're a new developer the specs are all available from the W3C or various framework's sites - but the quirks of 1 browser vs. the next are often something you don't become aware of until you've designed your site, navigation, controls etc.

Every other day a developer approaches me asking... "why doesn't this work in IE?" and you dig under the covers and realize they've tried to do something very straightforward, that IE (or another browser) doesn't handle. e.g. why can't I disable options in a select list?... Are you serious? I can't do this in IE? At all? WTF?!

scunliffe
+3  A: 

Typesetting. Look at a beautiful LaTeX document (source). Now convert it to HTML, and watch your browser ruin it. Why can't browsers use the same typesetting rules that professional typesetting packages do? For example, I don't know of any browser that does good hyphenation for justified text.

flodin
+1  A: 

Identification: knowing who you are, your age, protecting you and our children.

A: 

THE Tool: That anyone can use to update a website without requiring me to go in and rewrite half the HTML and CSS. It must allow cool, non-obvious things to be done by non-programmers.

Peter Turner
+2  A: 

Unambiguous and Relevant Standards

A lot of the problems we solve on the web today comes from standards that can be interpreted in more than one way, or browser manufacturers that start going beyond the standard and make up their own. Also, the current standards are dreadfully old when you consider the speed at which the internet evolves.

I hope everybody would start pulling in the same direction, so we don't have to wait another 10 years on the next ambiguous "standard". I know its a lot to ask but the trend has been going in the right direction especially within the last few years. Just look at IE8, FF3, Opera and Chrome... They are not quite "there" yet, but they all seem to be going in the same direction, even if some are going faster than others. ;)

JohannesH
+2  A: 

Pull vs Push architecture: If we had to do it over again, would we choose XMPP (Push) over HTTP (Pull)? As originally conceived, HTTP facilitated information retrieval, but now we're expecting more efficient methods of dissemination as well.

jcrossley3
A: 

Back-end API

Not directly Web Programming Challenge but it often happens when you create view layer.

Back-end developers just create really greatly designed API with a lot of automatic test, good documentation, ... The only problem is that it doesn't support your use-cases so you have to repack it, add another wrapper API, etc.

Or when API force you to pre-convert and pre-pack some regular values from user to be more regular or enough regular for API.

Or ... Any other problems with back-end APIs? I know that there are a lot of them...

Supowski
I think I follow you. There needs to be some better name for this: Presentation/Service Impedance Mismatch? This sounds similar to the issues facing object-oriented domain model designers/writers when storing information in relational databases: the Object/Relational Impedance Mismatch.
Greg Mattes