This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes HTML, CSS and JavaScript and the fly likes For the author (Frank Zammetti) Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Engineering » HTML, CSS and JavaScript
Bookmark "For the author (Frank Zammetti)" Watch "For the author (Frank Zammetti)" New topic
Author

For the author (Frank Zammetti)

Matthew Alesi
Ranch Hand

Joined: Sep 13, 2006
Posts: 38
I do a lot of Java programming and I'm used to the world of desktop applications. So when I look at web programming and JavaScript and AJAX and such, it always looks so...disorganized. It seems like there are different rules for every browser, all sorts of workarounds and variations necessary.

How would you introduce somebody like me into web programming? It still remains an interesting field for me, I'm just not used to it. I'd really like to see what it has to offer.
[ May 02, 2007: Message edited by: Matthew Alesi ]

-Matt
Current CS undergrad
SCJP 5.0
Frank Zammetti
Ranch Hand

Joined: Dec 16, 2004
Posts: 136
Well, that's an interesting question... I don't often deal with people that don't already haev some web development experience... I'm usually convincing them to do things the RIA way rather than the "classic" web way, but your asking something a bit different...

My first reply would be that to a large extent, you are correct, it *is* disorganized! I quickly follow that however with "it's getting better quickly".

I talk about this in my book a fair bit... the problem is that for a lot of years, you had nothing but what I'll call amateur developers doing web development, and by that I mean developers who were good, but who weren't well-versed in methodologies and in doing things in a maintainable, repeatable way. That's started to change in the past maybe 2-3 years as many more seasoned developers have begun to look on the web as something serious and as something we need to get a handle on in terms of doing things in a "proper" way, for lack of a better way to put it.

Simple things like code structure has taken giant leaps forward lately. You see much more object-oriented development going on in Javascript than ever before, and that (usually) leads to better organization of code, and more maintainability.

Your also seeing some best practices starting to emerge that make sense. Most of it is simply the realization that there's no need to do things differently on the client-side of things than on the server-side, no reason to invent all sorts of new rules (for the most part).

We're also seeing some decent tooling coming online. Heck, just the release of Firebug alone has made life so much better for web developers!

As for browser differences, it's good to differentiate where the incompatibilities tend to be... Javascript itself is, I'd say, about 99% compatible across the major browsers today. In fact, I really can't remember the last time I had a compatibility issue due to Javascript itself. So, I'd say you can *almost* ignore that as a problem area, the issues you encounter will be few and far between and pretty easy to deal with.

Where there is still a lot of divergance is in DOM implementation. That's definitely where you'll spend some time. However, if you code to standards always, you'll find that even then the problems aren't as frequent as they used to be. Oh, they're still there, and you'll definitely get bid every now and again, but it's not as bad as it once was.

Maybe the best way to say it is this... I'm working on a huge, very complex and very client-heavy application at work that we wrote to be cross-browser... for the most part our approach has been to always code to standards and to develop in FF, then correct in IE. I can tell you that we've frankly not run into a whole lot of problems doing this, and surprisingly, it wasn't always IE that was "broken". We had some instances (please don't ask for specifics, my brain might explode trying to recall them!) where we coded something to spec in FF that didn't quite work, but did work in IE. So, don't always assume you'll be fighting IE and not FF. But regardless, the point is that there weren't a ton of issues to deal with, contrary to what you might think.

I think mostly though it comes down to good habits. If you have them in your non-web development work, and if you fight the urge to do things differently in your web development work, you'll be OK, the disorganization you mention won't be a problem, and if you stick to standards you'll find that the browser differences aren't as severe as you might think.


-- <br />Frank W. Zammetti<br />Founder and Chief Software Architect<br />Omnytex Technologies<br /><a href="http://www.omnytex.com" target="_blank" rel="nofollow">http://www.omnytex.com</a><br />AIM/Yahoo: fzammetti<br />MSN: fzammetti@hotmail.com<br />Author of "Practical Ajax Projects With Java Technology"<br /> (2006, Apress, ISBN 1-59059-695-1)<br />and "JavaScript, DOM Scripting and Ajax Projects"<br /> (2007, Apress, ISBN 1-59059-816-4)<br />Java Web Parts - <a href="http://javawebparts.sourceforge.net" target="_blank" rel="nofollow">http://javawebparts.sourceforge.net</a><br /> Supplying the wheel, so you don't have to reinvent it!
Matthew Alesi
Ranch Hand

Joined: Sep 13, 2006
Posts: 38
That's really interesting. Like I said, I'd really like to learn web programming, but I've been put off by what seemed to be its messy nature. It's good to hear that web programming is taking a more standardized approach.

A really neat thing about your book is that it focuses on projects and practical applications (ten, nonetheless), rather than just hypothetical examples of what you might do with random pieces of technology. That said, would somebody like me, who is trying to learn, be able to pick up on what is going on in these projects? I feel like I would really like this book, I'm just wondering if I'd be able to understand it.
Frank Zammetti
Ranch Hand

Joined: Dec 16, 2004
Posts: 136
I think the answer is yes, *if* you are motivated, and by that I mean if you are willing to look some stuff up every now and again. It really isn't written for beginners, however, I've had a number of beginners read my first book and they did OK with it, this book shouldn't be much different. I would expect you'd want to read it somewhere that you have access to Google so that when you hit something that's new, you can do a quick search and get caught up. If your willing to do that, I think it'd be fine.

I think it's true that probably most developers learn things better, whether foreign to them or not, when they see the concepts in real usage and not simplistic and contrived snippets, which is the route most books take. Yes, it also means you can often times find yourself off on a tangent rather than focused on the topic at hand, but my experience is that developers tend to prefer that, and that's definitely the approach all of the Apress "Practical Projects" books take.

That's a big part of why I like writing them: they are fun to work on because I get to actually write code, which is what I like doing, but I also know that not every book is written this way, and it's a way that helps a lot of people, which gives me warm fuzzies ... and lest anyone think I'm being disingenuous, a little supplemental income doesn't hurt either I freely admit Authoring books isn't a career for me though, never likely will be, so there's much more to it than some extra money... knowing that people get something positive out of my work goes a long way to making the time and effort worth it.

(and that just proves I'm a developer because *I* got off on a tangent!)
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: For the author (Frank Zammetti)