I was told IBM no-longer uses Dojo. Is this true? A small amount of web searching shows IBM is/was a member of the Dojo Foundation and is/was a code contributor... If it is true, approximately when did IBM stop using Dojo? If its not, to what extend is IBM still actively using and promoting the toolkit (use in their public web sites, product integration/bundling, etc)?
Disclosure: I am not an IBMer, but I am a Dojo Committer.
If IBM dropped Dojo, they do a good job hiding it. ;-) If anything, their rate of contributions sharply increased in the last year and continues to grow. Just in time for Dojo 1.5 I fielded at least a dozen IBM contributions to Charting. One of the major new features in 1.5 will be new Claro theme for widgets — developed and contributed by IBM.
A number of contributors and committers are employed by IBM, some of them were hired because they are Dojo experts. As far as I can tell (I am not privy to any IBM secrets) their jobs are still secure.
In any case, while IBM is probably the biggest sponsor of Dojo, it is not in the driver position, and Dojo can survive without their help. While sponsorship is nice and always appreciated, the main driving force behind Dojo is passionate programmers rather then corporations.
To sum it up: do not worry about IBM's position.
Timothy.
Yes, IBM actively uses and supports Dojo.
Don't ask why I know this. ;)
IBM's latest product offerings use dojo (Rational Team Concert / Jazz). I believe they are trying to move towards jDojo now though to help overcome refactoring barriers they have encountered.
This is an old post but came up with a high rank in Google. As of this date and going forward, IBM is still serious about Dojo. It has strong client support in WebSphere Application Server. It is now standardized internally with the IBM One UI IDX Toolkit for its own websites. Dojo has a growing footprint in the client components of many of its products. IBM remains a significant contributor.
Looking at http://bugs.dojotoolkit.org/timeline, I recognize names of IBMers: Bill, Peller, DouHays, ...
But you're right: Dojo+Domino (aka Dojomino) seems to be stopped...
Interesting question!
IBM's main website uses jQuery 1.3.2
#Ehsan, you put your finger on one of the biggest misconceptions in this field. Most companies' website has a separate team and set of requirements for their website. It has no relationship typically to the products the organization develops and ships, and the libraries and frameworks they choose to help them do that.
http://www.ibm.com/social/impact
IBM is a very large development organization with 5 separate and distinct software brands and many many products in each so to ask whether the entire organization still uses Dojo or not may a bit misleading. It could be the case that a certain team or product has stopped using Dojo but I can definitely tell you many still do. Aside from still being listed as a Dojo sponsor and contributor on the Dojo Foundation's website: there are active and very recent developments going on around Dojo.
One very interesting thing is JDojo, essentially a translator that lets you write Dojo in Java that then gets translated thus giving you strong typing and Eclipse IDE features. You can check out its wiki page here: https://jazz.net/wiki/bin/view/Main/JDojo (registration required) or google some blog posts or twitter (can't post links yet on this account)
Related
This question already has an answer here:
Does Adobe Flex have the ability to compile into HTML/JavaScript?
(1 answer)
Closed 6 years ago.
To give a brief background I am a C++ programmer who has worked mainly on back-end systems, but now has to develop a front-end gui (mainly an interactive dashboard with lots of charts and comparisons and so on) as well along with a back-end financial system.
Few years back I had worked on a similar project and used Flex to develop a dashboard. But searching the net, it seems that Flex is not well supported anymore (nobody pouring money on it) and will go out of fashion soon (Am I right???). So I continued searching and the names that popped up are ExtJS (which was prevalent few year back) and AngularJS (heard it for the first time now). Spent some time searching both and both seems fine. So can you dashboard developers please help answer the following questions (as well as provide important input that I may be overlooking right now):
Cross-Compatibility: Need to develop desktop and mobile apps along with web page.
Prevalence: I will need to learn the technologies. Would prefer it they are popular and widely used
Dashboard features: Stuff like ability to go into bar graph and pie charts and stuff.
Ease of programming: Quality of Editors/IDE available, speed of programming etc.
Anything important that I am missing
In my opinion, I would go with Flex, because:
You already know it
Flex is a "compact" solution to your problem. Web frameworks imply you to learn a lot of new things. AngularJS is certainly cool but every web tek require you to master JS, CSS (I hate it), HTML, FireBug, PhoneGap, .... Web teks are a mess (IMHO !!!)
Coming from C++, working with Flex is more comfortable than web tek. Dependency injection is cool but it's a new vision of the world. JS is really powerfull but is (also) a functional language and you will need to get a "lambda mind".
Two year ago I decided to try ExtJS to make a dashboard for an hospital. I gave up after some days when happened that finding and solving a simple bug in my simple app took me a full day! [I forgot a parenthesis. The page didn't open saying nothing at all).
I'm now trying to learn Flex because I need to produce a simple app for smartphone (I'm a newbie in that) that should be ready in a month and with Flex I think it's easier for me to succeed than with any web tech framework. I know that Flex future is obscure but I think it's too good to be killed even if Google's pressure is strong ;)
No-one seems to be keen to answer this question - I guess because it's a definitely going to be an opinon based answer. I'll give it a go...
To answer your first question - Flex is if not on the way out, at least on a low simmer. Adobe Flash Builder 4.7 (the main Flex tooling IDE) has not been updated for well over a year now and I can't see any updates on the horizon.
Apache, who now own the codebase are doing a nice job with updates, but progress is slow.
One possible bright area is FlexJS, a compiler that outputs Javascript and HTML. It's still alpha at the moment, but it could be an option.
I've never developed in ExtJS, but it seems it's time has come and gone - it's still used, but it's definitely been superseded by Angular and other frameworks such as Knockout.
Cross-Compatibility - AngularJS works is almost all browsers from IE8 up and that includes most modern mobile browsers. People often use JQuery Mobile in combo with Angular and Bootstrap to get the functionality they need. Bootstrap is responsive, so if you lay out your UI correctly, it should work for all devices.
Flex is also cross compatible in the form of Adobe Air, but it's less easy to get it onto people's devices - they need to download the Air framework.
AngularJS is the number one framework by a huge margin at the moment - and it's still growing. Check out this graph from google trends. The combination of technologies includes Javascript, CSS, Grunt, Bower, Node.js and concepts such as dependency injection, MVC and responsive layout - all this stuff is useful for other projects. Once you master Angularjs, you'll be ready for a lot of other stuff.
Learning Flex seems to be a bit of a dead end at the moment - you'll notice the absence of any recent Flex blog posts. It's not cool right now, and it's just too uncertain if it's going to survive.
Using Angularjs and D3 for example is reasonably straightforward - a web search will show lots of examples here. Plus you can do basic drawing using svg elements directly in your HTML code. Here's a nice article on the subject.
Since Angular is a Javascript framework, there are many many options here - you could use SublimeText, Atom, PhpStorm or one of many other choices. As I said earlier, your choices are much more limited if you choose Flex.
Finally, don't forget that this is all just my opinion, but Angularjs is just really fun to develop in - binding is just so cool. So are directives. Dependency injection just rocks. I think you'll like it!
Sorry for the bias here, but I can't help it!!
Hopefully this writeup helps you a little. Good luck.
AngularJS is a good choice for complex web application (both desktop and mobile).
There is a project that implements Dashboard/Widgets functionality with AngularJS.
GitHub source code https://github.com/DataTorrent/malhar-angular-dashboard
live demo http://datatorrent.github.io/malhar-angular-dashboard/#/
more advanced demo (charts, etc.) http://datatorrent.github.io/malhar-dashboard-webapp/#/
It targets desktop browsers so far but has a lot of features:
Adding/removing widgets
Widgets are instantiated dynamically (from corresponding directive or template)
Widgets drag and drop (with jQuery UI Sortable)
Horizontal and vertical widgets resize
Fluid layout (widgets can have percentage-based width, or have width set in any other unit)
Any directive or template can be a widget
Connecting widgets to real-time data (WebSocket, REST, etc.)
Changing widget data source dynamically (from widget options)
Saving widgets state to local storage
Multiple Dashboard Layouts
Disclaimer & Long Winding Question Approaching
I know topics like this have been beaten to death here so suffice to say I'm not asking about which framework is better, I don't really care about opinions on the better framework. They all do pretty amazing things.
The Question
Given that I have an existing web application, made of mostly regular HTML+CSS (jQuery where needed), which is the optimal framework to integrate a few "rich" pages into typically a regular stream of HTML.
Reason
I am trying to bring our proven application into the realm of awesome desktop like UI but I want to do it one small piece, one screen at time. But for our users, support personel and especially me taking it slow is the only option.
Also, with our branding requirements having a framework that just takes over the viewport isn't an option, it has to play nice with other HTML on the screen.
Imagine the example being a rich user manager in an otherwise plain HTML+CSS environment.
Experience Thus Far
Dojo + Dijit
Pros: The new 1.5 widgets plus the claro theme is the cure for what ails us. Dojo seems to be able to use markup to create the UI which is very appealing and has a fair amount of widgets.
Cons: Holy bloated lib Batman! Dojo seems to be enormous and I have to learn a custom build system to get it to stop requesting 4,800 javascript files. This complex empire of Javascript makes me believe I won't be able to create much that isn't already there.
ExtJS
Pros: Amazing set of widgets, does everything we could possibly want. Seems quick, every version brings new improvements.
Cons: I'm not sure how to use this without the entire display being EXT. I'm still building a web site, so I would prefer something that could integrate into what we already have. Some pointers here would be great.
YUI
Pros: Well, it's Yahoo isn't it? AWS console is downright wicked. Plenty of support and a giant community.
Cons: Well, it's Yahoo isn't it? AWS console is the only wicked thing. Complex for someone who's used to jQuery.
Help Me
I am willing to accept experience, links to ways to solve problems I've outlined, new toolkits (even though I'm pretty sure I've seen most by now) or even just advice.
Regarding ExtJS, it's pretty easy to start it in an existing div with something like this:
Ext.onReady(function() {
App = new Ext.Panel({...})
App.render('div-id')
});
The App panel can then have it's own layout manager.
This might be useful if you're familiar with jQuery, but not yet familiar with YUI 3 syntax: http://www.jsrosettastone.com/
Each of the libs you listed is excellent. When embarking on a larger scale project, the quality of a lib's documentation, community, and commitment to support become more relevant.
With Dojo, keep in mind that outside of dojo base, it only ever loads what you tell it to. But yes, without a built layer, that means it could easily end up requesting 50 JS files at startup for a large application using a bunch of widgets.
There are several pages in the reference guide documenting the build script: http://www.dojotoolkit.org/reference-guide/build/index.html
Rebecca Murphey wrote a nice blog post outlining an example app and build profile that you might find illuminative: http://blog.rebeccamurphey.com/scaffolding-a-buildable-dojo-application
If you get stuck, there's likely to be people in the Dojo IRC channel that can help.
RE ExtJS: I'm not sure what your exact situation is, but keep in mind that if you're intending to use it in commercial non-open-source software, you need to pay for licenses: http://www.sencha.com/store/js/
I'm a little curious as to why you think the size / number of requests is specifically an issue with Dojo though. I haven't used the others, but I'd expect it to be somewhat of a potential concern with any of them.
We are going to be producing a RIA that will also be available using Adobe AIR for database management and manipulation with a php back end.
In an effort to speed up development we have decided on using YUI or EXT JS.
It appears that EXT JS out of the box will produce a better looking application than YUI but being essentially 100% JS I can foresee the application being much slower on any computers that aren't...say...up to date.
I am looking for any benchmarks comparing the two frameworks for UI & AJAX operations or any input about the speed of real world RIA applications using either framework.
Thanks for your help.
EDIT So is the general consensus that for a RIA where speed of use is a primary concern YUI is the better option? Or is it essentially, either will work?
EDIT EDIT We decided to go with YUI2 thanks for your help!
Don't fall into the trap of premature optimization. If only a small percentage of your users will be using "older" browsers, they will just have to deal with the slowness of any modern js framework - whether you choose YUI or Ext JS. Choose based on features and ease of development and applicability to your project.
When it comes to library size and speed of download to the browser - whichever library you choose, it can be customized to only include the components you need. And in production, you'll be minimizing and compressing it, so I think library size is really NOT a good measuring stick for making these types of decisions.
I posted a topic at the Ext JS forum years ago asking why the Ext Js doesn't come in packages and we are forced to use the kitchen-sink (almost). Their answer was "Ext JS is for RIAS".
I don't know what this tells you but in terms of size Ext JS is "big enough". I would recommend it for intranet apps. If you are to use it for public sites use all optimization techniques available to achieve fast loading times, compression, etc.
I also used YUI for intranet applications and i can tell you that it was lighter since not all packages where required.
We used to work with a gwt wrapper for ExtJs (gwt-ext). We developed a lot of modules with that. At some point we experienced some slow performance, specially with grid when the data was huge. In addition some memory leak with IE. But after they changed their licence policy, we started looking to other options. Perhaps some of those problems are fixed now.
Any way, now we are developing with OpenLaszlo.
I hope it helps you
If you're thinking of using Ext JS be aware that the current version (4.0.XX) has been found to be significantly slower than version 3.4, see http://www.sencha.com/forum/showthread.php?140180.
I've used YUI. It's fast. The newest library is highly modularized, so you only load modules you need. Also you can refer libraries from publicly available hosting services provided by Yahoo; it offers CDN for free.
I've worked with YUI data tables (data grids) with over 4,000 records and it still performed at an acceptable level.
I am going to start a new application which mainly consist NavigationPane, Grid, Toolbar. Layout should look like this demo page http://www.gwt-ext.com/demo/
I am quite confused which one to use in terms of writing less code, more performant, etc..
Could someone tell the pros and cons of all these technologies.
All the while I coded in javascript, so that way ExtJs seems to be the easy one for me to code. But I am curios to try GWT Ext, Is it true that it could do a lot just by writing few lines of java code.
For eg: To achieve the layout ( given in above gwt ext demo url), which one should I opt ExtJs or GWT Ext.
I read SmartGWT is relatively slower than GwtEXT. Does it have any advantage over GWT EXT. I am also looking for hibernate based data modules ( as my application is going to have many database calls). Anyone of SmartGWT or GWTExt has support for such modules. I came to know that smartgwt doesn't offer all of smartclient enterprise version functionalities, that we are allowed only a few of smartclient features. Will it be an issue?
Your response is highly appreciated.
The GWT-Ext main page now says
"GWT-Ext is no longer under active development and has been superseded by Smart GWT. Assistance will be provided to existing users of GWT-Ext looking to migrate to Smart GWT."
so why would anyone use it?
To write the least code, use SmartGWT Pro. It provides a wizard that allows you to just pick from a list of Hibernate entities you've created, and instantly you have the ability to perform all CRUD operations on that entity, no code required. Then you can add business logic.
The wizard:
http://www.smartclient.com/smartgwtee/showcase/#tools_hibernate_wizard
The link about is just screenshots, but there are several Hibernate samples in the showcase. See especially the Master-Detail Batch Load and Save sample.
As far as performance, real-world performance of most enterprise apps is dictated by how often the application has to contact the server. In this area SmartGWT has a large lead because of features like Adaptive Filtering (see the Featured area in the SmartGWT showcase).
Almost all reports we receive of SmartGWT being "slow" are due to having Firebug enabled. Disable Firebug and performance is fine, so normal end users will never perceive slowness.
About 6 months ago, we studied whether we would use ExtJS or GWT-Ext for an internal application. We wanted the back-end to be J2EE standard frameworks (struts, spring, hibernate for persistence, etc.). We ended up choosing ExtJS because it seemed to us that GWT was not stable enough (too many changes in the API that is still recent), and Ext-GWT was always lagging behind in development.
application which mainly consist NavigationPane, Grid, Toolbar.
Well, this tells us a lot about your app, doesn't it :)
I think it comes down to how good you are at either Java or JavaScript. They are quite a different languages you know :) But if you are well-versed at both but only used Ext JS, then picking up Ext GWT (or GWT Ext, if you meant that), shouldn't be such a great deal. And if that application you are planning is going to be as simple and small as your description of it, then it's probably a perfect opportunity to try out something new.
I use GWT-Ext and it is quite good especially if you don't mind tweaking things with JSNI to customize the already existing Ext widgets it is incredibly powerful. Unfortunately development is stagnant, so my future projects will probably be either in SmartGWT or Ext-GWT. SmartGWT is written by Sanjiv Jivan (same guy who wrote GWT-Ext) and it has most of the widgets we need. I must say most of the skins are quite dated except the Enterprise skin which looks good, but you can always roll your own skin.
I'm a seasoned desktop developer working in C++/C#/WinForms/etc. Up until this point, I have done very little in terms of web development. I've come to the point in my career where I feel like I should start doing web development - not to replace my desktop experience but to become more well rounded as a developer.
I already know some HTML and JavaScript, but I am by no means proficient. I'm very comfortable with .NET.
So what is your opinion? Should I focus mastering HTML/CSS/JavaScript/JQuery (with ASP.NET or PHP on the back-end), or should I nurture my .NET experience and dive into Silverlight?
I'm curious about factors such as performance, adoption rate, etc. and any other advice that should guide my decision.
PS: And I have read this article, but it is slightly different from my question.
If you are truly looking to grow your skills as a developer and make the transition into the world of web development. I strongly recommend starting with the HTML, CSS, JavaScript, jQuery, ASP.NET AJAX route.
There are many reasons for this, but more than anything these are the fundamentals of web development. Everything in the end is rendered to the user in HTML, and Javascript/CSS are things that we have to deal with on a regular basis. CSS and cross browser functionality is still and issue and understanding how that works is a fundamental piece to being able to be a proficient developer.
Then the JavaScript/JQuery piece, this is also a now fundamental requirement in many ways as people expect rich, functional User Interfaces and understanding how to leverage these technologies is key.
Sliverlight is great to learn as well, however, I think that the base knowledge and getting experience with general web development techniques is needed first. Especially since silverlight in most cases is just a small portion of a website.
Occasionally you might use Silverlight, ubiquitously you'll use XHTML/JS/CSS. The choice should be self-evident.
Esp. if your primary goal is to become more well rounded as a developer you should IMO first try to get into the fundamental web technologies and only afterwards (if you find a problem that you can't solve with them) combine that with your knowledge about .NET.
While Silverlight and Flash are great tools that help solving certain problems, they shouldn't be your first choice when doing web development.
I'm in the same boat. My feeling is that catching up with a technology thats been going for years is pretty hard. There are developers who will always murder you on Javascript/Ajax etc... So I'd rather be an early adopter of technology. That way you get to be really good at something and get to learn/make mistakes without the pressure of everyone else being so much better than you because they've got a 3yr head start.
As to Silverlight/Flash approaching their expiry dates. I do not agree. 60% of the time spent making RIA apps in Ajax/Html is spent making thing look good (or just making them look like anything at all..). To most developers coming from Winforms or something similar , this is just not a good use of time. Spending time wondering whether your "div" panel is going to appear correctly is so 80's!
IMO, Silverlight is going to be massive for internal business apps. It's just EASIER! Cheaper to build, Cheaper to test and looks better! For a 30 second install on a corporate machine you can have zero-deployment issues and an app that looks like a desktop app in your browser. Why would you use Asp.net? It's also going to be easier to get a designer to skin your app because Silverlight is designed to split design/programming properly.
For the world outside of corporate desktops the adoption will be slower simply because developers are driven by accessibility and getting the most amount of people using their stuff (cos everyones trying to make that cash!). Being compatible with mobile devices would scare most companies away from using Silverlight or Flash so in that space,so I expect Ajax to be the most popular form of web app for a while.
At the moment I'm thinking I'd rather be amazing at a specific area of development than jack of all trades. And it looks like far more fun than spending my life stuck in firebug wondering why my css hasn't taken affect! :-)
Personally I'd go with bolstering your skills with XHTML/CSS/JS/some backend. While Silverlight is gaining speed on the web it's still going to be like Flash -- a small subset of overall web programming. XHTML/etc is everywhere, it's the foundation, and you'll find more use and demand for that.
If you're not looking for "learn something to help me get a job" and rather something to make you a stronger programming I'd highly recommend learning those in combination with PHP. It's going to be a very large difference from what you're used to. Learning completely different things makes you a much stronger programmer.
Ok, this is certainly an opinion question, but here's mine... Any developer today should be well versed in HTML, JavaScript, CSS and SQL.
I just finished a user-group tour where I was part of a panel on development technologies (.NET (me), PHP, Python and Java) and every one of us agreed, you need to know the web "languages" first. Even if you then end up in a silverlight engagement knowing the web languages will help you see how your silverlight stuff fits into the larger picture.
Don't limit yourself, learn the web.
I have a similar background to you and I have decided to concentrate on Silverlight 2 for web development. It really depends on the type of development you want to be doing. Some types of applications are better suited for one versus the other.
I have done a small amount of ASP.NET (with AJAX) and PHP. Personally, I don't like this type of development. Dealing with HTML/CSS issues in various browsers is for the birds. Debugging Silverlight 2 C# versus debugging HTML/CSS/JavaScript is a different world. While there are certainly some great web/AJAX applications out there, I can't help but feel that these are a stop-gap measures. Don't get me wrong, HTML/CSS/JavaScript/AJAX will always have a bigger presence on the net than Silverlight, Flash, etc. But I work on line-of-business applications and making the traditional web model work for these always results in huge UI compromises. I never got into Flash/Flex so Silverlight 2 is the first time I have been able to deliver a browser based application that I can build/debug/support in a similar way to desktop applications.
As for Rich B's comment about needing JavaScript/AJAX skills to use Silverlight, that may have been true for Silverlight 1 but is not true for Silverlight 2. Of course the capability to integrate Silverlight with traditional web development is there, but is not mandatory.
As everybody would say, answer depends on task on hand.
That said, I choose Silverlight 2. I am doing line-of-business apps. Last december, I started doing new app in ASP.NET MVC. Frustrated with wrangling with DIVs, CSS and JS, I did little stealth work over the holidays and reimplemented all already coded functionality of my small app in fraction in time.
It did help that I was already familiar with XAML (from WPF app I was doing earlier), but main winning point with my boss was speed and ease of development. Suddenly, I was not spending time tweaking my presentation layer, but coding business rules instead.
So far, everything looks great. My coding is chugging at steady pace, my job satisfaction is higher, I enjoy coding again :)
Point is, for LOBs, in controlled environment, Silverlight 2 wins hands down. I am not familiar with Flex, but I hear it is quite similar to SL2 in dev workflow kind of way.
I tend to believe that Silverlight/Flash development should be left to real designers... people who have not only a nack for graphic design but also have a solid understanding the flow of animation. When you work with web technologies (HTML and CSS particularly) you can work very well off of a designers comps in creating a beautiful web interface and working from that framework to make it come alive with Javascript/Jquery.
More importantly, the breadth and scope of web applications is so wide as to tackle a huge variety of concerns, where the applications of Silverlight and Flash are much more limited. While you do have a strong advantage jumping straight into Silverlight with your existing skill set, the installed base of Silverlight is light enough that you won't be able to easily have your work viewed by everybody.
Also, (coming from a ASP.NET MVC programmer) you have plenty of opportunity to nurture your .Net skills in an ASP.Net realm. What I love most about the MVC strategy is that I have full control over my HTML again (a plus for maintaining look and feel) and have a full range of tooling to allow me to build insanely complex data driven sites in a fraction of the time that it used to take me. The only difference between web development and winforms development is the medium that you use to interact with the user.
Microsoft's annual MIX conference starts on March 18th. This conference is focused on Microsoft's web technologies. Historically, the sessions have been posted online within 72 hours (http://visitmix.com/).
Considering we are so close to March 18th, I would recommend waiting to see what gets announced. There may be something there that gets you excited in regards to one technology or another. I think it will be more beneficial for you to find something you are excited about. This will make the learning process more enjoyable.
Chad Campbell
Author of Silverlight 2 in Action
I think that Silverlight (and Flash) are rapidly approaching their expiry dates. As JavaScript gets faster as JIT compilers start showing up (like in Chrome, Firefox 3.1 and Safari 4), and as HTML support gets better (HTML5), the need for plugins to display fancy rendered widgets will diminish. I am, even today, amazed at what is possible using HTML+CSS+JS, things I never would have imagined possible without something like Silverlight.
My cousin is a web designer/developer and he told me many people want you to know the action script behind flash, not only the design part. So on the flip side, to make the most of flash you need to be a decent programmer. Flash is basically a combination of design and programming....so obviously you have to be able to do both if you're going to master the program. A good designer can make it look pretty and that's it. You have to program in order to give it functionality.
Unless there is some magic flash action script writer that I have no idea about. =/