The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Some Q's about Web 2.0, AJAX and Open Source

Last week I launched my first XMLHttpRequest App here

Bugninja Notepad
http://www.bugninja.com/xmlhttprequest/index.php

I've had some people email me and say that it's good, but not totally Web 2.0 or AJAX, or whatever.  My questions for this community are:

1) What do you think?  Is the program good enough to go in the new Google Office (ha)

2) What makes a program fully Web 2.0 or AJAX?  Am I not complying because I have a few "font" tags still in my code?  Or "table" tags instead of all DIVs?  I just don't know.  Does it really matter?

The program uses XML, HTML, CSS, Javascript, PHP, and MySQL.  All form processes return an XML file to the program that is parsed by Javascript.  Doesn't this qualify as AJAX?

3) Lastly, and this probably falls under the Business of Software, but when others create small programs like this, do you keep the code to yourself, or do you release it as open source somewhere as a way of giving back to the community?  Also, I wrote this very quickly.  If I release the code, do I run a risk of being scoffed at or laughed at for the likelihood of there being bugs and poorly put together code?

This has always been my biggest problem when contemplating releasing source: 1) are there bugs and security risks that I didn't see that others will pounce on me for, and 2) what does it take to get a program ready for open source?  Can I just release the ugly code and that's that?  I guess I don't want to look bad is what I'm saying, and this isn't a "commercial" grade program in the slightest.
Ben Mc Send private email
Tuesday, October 04, 2005
 
 
"This script currently supports IE6 only."

Bah!!
Almost H. Anonymous Send private email
Tuesday, October 04, 2005
 
 
Is that why it's not Web 2.0?  Good point.  I'm working on getting the kinks out so that Firefox will work.  It's the content-editable thing.  I have to replace the div with a textbox or iframe with different javascript.
Ben Mc Send private email
Tuesday, October 04, 2005
 
 
It doesn't seem to work in either Opera or IE. After I click on a message, I can't bring up another one.
sloop
Tuesday, October 04, 2005
 
 
"What makes a program fully Web 2.0 or AJAX?  Am I not complying because I have a few "font" tags still in my code?  Or "table" tags instead of all DIVs?  I just don't know.  Does it really matter?"

CSS is like Web 1.5.  If you haven't gotten your site (mostly) validated to some kind of standard (even HTML4) then that's just bad coding.  I use tables all the time though -- I just avoid things outside any standard and use lots of CSS for layout and styling.

"Doesn't this qualify as AJAX?"

Does your site use xmlHttpRequest?  I would say that's what makes something AJAX.

"Do you keep the code to yourself, or do you release it as open source somewhere as a way of giving back to the community?"

Personal choice.  There are advantages and disadvantages to both methods.  If you are planning on building something large, then keeping it to yourself leaves more options. 

"If I release the code, do I run a risk of being scoffed at or laughed at for the likelihood of there being bugs and poorly put together code?"

I wouldn't worry about being laughed it.  ;)

"1) are there bugs and security risks that I didn't see that others will pounce on me for"

They won't pounce.  They'll probably just email you with them as a bug report.  And then you can correct them. 

"2) what does it take to get a program ready for open source?  Can I just release the ugly code and that's that?"

Yes, you can just release the ugly code.  If you aren't using source control, you should be.  Probably CVS and put it on sourceforge.  Cleaning up and documenting the code is always nice but not required.

"I guess I don't want to look bad is what I'm saying, and this isn't a "commercial" grade program in the slightest."

Well if it was commercial grade you probably wouldn't be making it open source, right?
Almost H. Anonymous Send private email
Tuesday, October 04, 2005
 
 
Yeah... it mostly worked in FF.

When you select a note from the list, you have to refresh the list to see any of the others.
KC Send private email
Tuesday, October 04, 2005
 
 
It does use XmlHttpRequest, so it's AJAX.  Web 2.0, probably not, though in the last few minutes I put up my Firefox friendly version which makes it a little better.

Thanks for everyone's advice.

Continuing forward with Web 2.0 apps could be very exciting.  I can see some obvious improvements that can be made to some of my other existing programs.

I should have asked in my original post, but are there any great websites that completely focus on Web 2.0 and creating websites like this?  I've found a few javascript sites that talk about XmlHttpRequest, but not too many websites truly dedicated to the subject of creating excellent Web 2.0 applications.
Ben Mc Send private email
Tuesday, October 04, 2005
 
 
Almost H. Anonymous Send private email
Tuesday, October 04, 2005
 
 
Uh, I hate all this "Web 2.0" bullshit
triplez
Tuesday, October 04, 2005
 
 
Actually, nobody ever asked what "Ajax" really is. Someone said "it used XMLHTTPRequest, so it's Ajax" -- but you can do the same functionality without that object, using a hidden iframe or some other method of querying the server.

That's the reason why I don't really like that term. A.J.A.X. is supposed to stand for Asynchronous JavaScript and XML, but the problem is that you can have the same effect without any of the three buzzwords that comprise it:

- The communication can be both synchronous and asynchronous; even the original IE implementation of the XMLHTTPRequest object provided both functionalities, as well as features for taking track of the data transfer.
- Also, you don't need Javascript -- not only you can use VBScript (IE only, but can be useful in intranet applications, but there are technologies like Flash which can provide the same effect.
- Finally, you need XML least of all -- the inappropriately-named XMLHTTPRequest is a simple Web browser inside a browser, and can swallow whatever a server throws at it, be it XML, classic HTML, plain text or the more compact JSON syntax.

In other words, "Ajax" is a strange beast: if we limit ourselves just to what the acronym represents, we miss all other useful possibilities for real-time remote applications in browser, especially in terms of transfer format (check http://www.json.org ). On the other hand, if we include everything, we see that the term is inappropriate (although convenient) and that the old term "remote scripting" seems more to the point.

One more thing: For all the hype about "Ajax", there is one important network ability which is a given for most desktop applications, but still out of "Ajax's" reach: server push. It means that any communication is initiated by the client, and there is no way for the server to send information without being requested first. While in most cases this is quite fine, there are certain areas where this plays a big role -- e.g. real-time games.
Berislav Lopac Send private email
Tuesday, October 04, 2005
 
 
Actually, you can mimic a user-request by using time-driven commands and/or have event-driven things strung together.
KC Send private email
Wednesday, October 05, 2005
 
 
Source for application, would you give away the source on a commercial style license.  I(we) cant give it away?
Berlin Brown Send private email
Wednesday, October 05, 2005
 
 
That looks like a cool application.
Berlin Brown Send private email
Wednesday, October 05, 2005
 
 
It still doesn't work in IE6 here.. I can only bring up the first note, then it refuses to load any other notes after that.
sloop
Wednesday, October 05, 2005
 
 
Still doesn't work in Opera either, by the way.
sloop
Wednesday, October 05, 2005
 
 
> I've had some people email me and say that it's good, but
> not totally Web 2.0 or AJAX, or whatever.
Who cares? Focus on the problem you are trying to solve and whether it is of any use to people.
anon
Wednesday, October 05, 2005
 
 
Suppose we are trying to pick an architecture for a new multiple-user business database application, to be accessed via the public Internet. We hope to be able to extend the application as we get more users of a period of years.

"AJAX:"

***A few percent of the users will not have access to Windows, the DotNet framework, and a current version of IE. AJAX will support them, provided we put up with endless "browser compatibility" issues.
***Based on on-screen widgets native to the Web HTTP model.
***Unmanaged code, multiple languages, almost a return to the days of Qbasic in terms of programming.
***Might not need to pay as much for development systems, code libraries or server licenses
    
DotNet WinForms applications with web services and one-touch deployment:

***Requires Windows, the DotNet framework, and a current version of IE.
***Full access to finely tuned native on-screen components
***Managed code, very deep standard library support from the Framework.
***Requires paying for development systems, code libraries, and server licenses

Am I missing something here?
Howard Send private email
Thursday, October 06, 2005
 
 
Howard:

Is that really available now from Winforms?  I'm not a windows developer, but delivering native-widget apps over the web sounds promising.  Pretty much what java applets would have been, if they hadn't sacrificed user experience for compatibility.
Timothy Mark
Friday, October 07, 2005
 
 
Yes. In order to use WinForms, your customers have to download your application, install it and run it. They have to have the right version of .NET. If you don't want them connecting directly to your database, you have to write some layer on top of the database with SOAP/whatever.

No idea what you mean by "Return to QBasic". I'm not sure which part of client-side web programming you're talking about. In WinForms, the medium of the interface is a set of 2D windows with widgets placed in them. In web programming, the medium is a document that is conveyed by markup language and changed on the fly by DOM and Javascript. They are different abstractions of a general interface.
Jesse Millikan
Friday, October 07, 2005
 
 
Not that I actually used this "feature", but WinForms *works* over the web. Just embed a UserControl using <object>.
Ioan Bizau
Monday, October 10, 2005
 
 
In order to use WinForms, your customers have to have the right version of .Net installed. This may or may not be a problem. In many enterprise software cases it isn’t much of a problem.

Click-once deployment means that your Win Forms application can be installed from a URL. Your customers have to have a reasonably current of Internet Explorer for this. The application can be updated automatically or semi-automatically to new releases. http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/

The application can communicate with back-end servers over the Web using Web services.

All the new code can be written in a single, managed, object-oriented language such as C#, with the very deep support of the .Net framework plus various best-practices types of add-ins both from Microsoft and from open-source.

AJAX means client-side scripting in JavaScript or another inferior language with support from libraries that you might create yourself. Like QBasic.
Howard Send private email
Monday, October 10, 2005
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz