My biggest focus at Microsoft is the Script Junkie website. We use it to publish really great cross-browser, solutions-based content to help developers improve their JavaScript, HTML, & CSS development efforts.
The Script Junkie team is working on our content plan for the next six months and we’re looking to identify developer problem areas that we can provide solutions for. So I’m reaching out to my blog readers in an effort to understand what type of things pain you. Here are some examples of problem areas that we’ve heard of:
- Designing and implementing for multiple devices like 42″ LCD TVs to 480px Android device
- Getting users to upgrade their browsers in a friendly way
- Developing cross-browser compatible websites with minimal hacks
- How realistic is it to begin using HTML5 & CSS3 today?
It’s important to note that that we’re not looking for answers to the above problem areas at this time. These are examples to demonstrate the type of concerns we’re hearing. We’re looking for more questions that hopefully we can answer via solutions-based articles and code. So if you have thoughts on wide-spread development problems that you’d like to see tackled, please comment below. Remember that Script Junkie focuses on JavaScript, HTML and CSS so please be sure to keep that in mind when listing out your pain points.
We’ll roll-up your comments and then focus on the top 10 things listed by the development community.
Thanks for your help!
Unit Testing Javascript is painful, especially when you try to work it in to a CI build. It would be nice, if when I ran my test suit with R#, Gallio, or TD.NET it would just pick up script tests as well.
One of the largest problems I see with jQuery and JavaScript in general is that new developers have no easy way to navigate the glut of available tutorials and plugins to find an example that not only meets their immediate needs, but does it in a performant, reliable way, using best practice techniques. While I’m not sure what the best approach would ultimately be, there certainly needs to be more high-quality content written (and vetted) by actual experts, and not just by anyone who runs an impression-driven “tutorial” or “roundup” blog / twitter feed.
Best practices for coding in various JS frameworks. I see a lot of devs who don’t really *know* javascript that will just toss some random (and often poorly written) jQuery plugin onto a page that already uses some other framework.
Though there should never be any reason to use multiple js frameworks on the same page or even the same site, documentation on how to avoid conflicts and what frameworks *can* live together without causing any issues would be nice.
The $ method should not be used period really.
“Though there should never be any reason to use multiple js frameworks on the same page or even the same site”.
That is the most ridiculous thing I have ever heard.
I would go with Unit testing, and keeping a professional javascript structure in your application
And having back-end developers to output good front-end code…
A big pain point for clientside development is testing.
Setting up a good testing environment is really difficult and there isn’t any good information on how to actually set one it.
I’ve figured it out through trial and error over the years, but very few developers actually test their stuff properly.
IE6 (XP), IE7 (XP), IE8 (XP), IE8 (Win 7), IE9 latest preview (Win 7), Firefox 1.0–latest beta, Safari 2.0–5.0, WebKit nightly, Chrome, Opera, iPhone, iPad, Windows Phone 7, Palm/HP webOS, etc… etc…
The number one issue for me is lack of web development in the field of Geographic Information Systems. You can learn how to build a good website or how to add GIS to web pages, but there is little to no information that includes both, building a Geographic Information Systems Website from the ground up while maintaining the separation of content, style, and functionality.
I use the JavaScript API from http://www.esri.com at need to have more information available to ensure I am building a solid application.
Haven’t seen many good articles on the diffences in producing web apps instead of web sites. For example, a web app designed for internal company use. Many best practices may not apply. Many companies have a single target platform and/or browser. (We have saved countless hours by targeting only ie for the last 15 years.)
+1 for testing. It’s a mine field out there.
@Ben You’re going to be paying for that when IE8 and IE9 adoption rates increase (or Firefox/Chrome/Safari for that matter), or if any of your users attempt to access the page on a mobile. Have fun going back and fixing all of that old code. Target a single browser and you’re giving up one of the main benefits of the web. Good code is future compatible code.
@Zach We have 10,000+ users all running the same windows build with only IE and no ability to update. Us developers can’t even test on alternate browsers because it’s not “approved” software.
My suggestion was regarding web applications vs websites, or web apps designed to run like installed apps. Are there special considerations or recommendations for this type of development.
I want to see more content on topics of code organization, and strategies for teasing apart an application’s requirements to produce modular, encapsulated, loosely coupled components. I’d also like to see content that disabuses us of the notion that JavaScript has to be all about the DOM, and that steers us away from DOM-centric coding practices when they don’t make sense.
Finally, while I know you are a jQuery evangelist and while I know that Microsoft has a partnership with jQuery and thus this may be a tall order, I’d like to see more content about other libraries. Dojo’s data API, YUI’s testing tools, and the MooTools inheritance system all come to mind. We do well to learn from the kinds of problems other libraries are solving, and the patterns they are using to solve them.
Hey Rebecca, thanks for the feedback. In spite of being on the jQuery team, I’ve actually chatted with people from MooTools and Dojo about contributing and Pete Higgins and Thomas Aylott have both said they would.
To be honest, I’m more interested in producing articles about plain ole JavaScript than specific libraries. The current jQuery content you see on the site was generated prior to me joining MS.
If you notice, many of the advanced articles are produced by developers like Alex Sexton, Juriy Zaytsev, and Christian Heilmann and are purposely library-agnostic because I feel it’s incredibly important for developers to get a better understanding of the language.
I’m mentioning this because it’s important for everyone to understand my philosophy about Script Junkie. To me, it’s a medium for cross-browser development solutions without a specific focus on any library *but* a laser focus on JavaScript, HTML, & CSS. I can’t allow my participation in the jQuery project to be a factor in the content plan. Otherwise, I’d lose credibility.
With that said, I do plan on expanding the content to cover more libraries because there’s an obvious community value to that.
discussion, tutorials, and examples of nontrivial single page applications. In other words doing REAL quantities of programming in javascript in a single page. Not just throwing an animation or click event on the page, but a page that does something real, and something complex.
@Script_Junkie Patterns behind webapps like GMail, Bing Maps, etc. E.g. Google’s GWT Tech Talks that cover their idea of MVP.
The biggest problem I find are, using primarily jQuery
Unit testing
No structure for code (mvc or otherwise)
a lack of complex widget (ala extjs, YUI etc, jqueryui at this point is more of an effects / simple library of widgets and progress seems slow to dead on generating a close featureset to the two above and others)
Cheers,
Jay
one thing that is very painful according to me is:
suppose you create a new component for your site and that component requires some js and css.
now for this you either add your js to ur existing js file(some times file size increases to 1000 lines and more, so this thing i never prefer) or create new file and code in it.
now for making it live, i do merging of all files(to reduce network requests), then minify them and then upload them.
so this process of merging and then minifying is very painful. i am looking for something like compiling thing that does all this automatically.
One of the problems i haven’t been able to resolve is with displaying long content in a listbox. I can add panel or use Div tag to scroll horizontally. I can also add Title Text to show entire text as Tooltip during mouseover. Although this methods work under IE none of these methods work on IPAD/Iphone.
I have a lookup table which dynamically populates List box. The items in Listbox are long and I am unable to find any solution that would work under IPAD since horizontal scrolling is not supported by Ipad/iPhone.
Thanks.