Internet Programming
As an uts student, my major is Internetworking and Applications. When I first time started to learn Internet Programming was taking a subject called Web Service Development. In that subject, I learned how to use .jsp, .xls and .xml types of files to write some basic web apps, REST service and SOAP service. That was the first time I found it is interesting to program a web app by my own. That’s why I choose advanced Internet programming as my last elective for my last semester in UTS. I want to learn something new and interesting.
So far, I have learned something about angular, expressJS and mongoDB. In the first class of the subject, I had no idea what are those three things. After searching, taking online courses and exercise. I found angular is a excellent frame for Internet Programming. Compare to .jsp, .xls, .xml and even expressJS, angular has a better structure for the whole app. Angular has following advantages:
l It is more flexible than them and no need to use observable functions; Angular Angular analyses the page DOM and builds the bindings based on the Angular-specific element attributes. That requires less writing, the code is cleaner, easier to understand and less error prone.
l Angular has its own command line interface, which makes coding more convenience. And once you make some changes to your code, the website would directly update instead of restarting the service;it is more faster.
l Data binding occurs not on each control or value change (no change listeners) but at particular points of the JavaScript code execution. That dramatically improves performance as a single bulk Model/View update replaces hundreds of cascading data change events.
However, Angular also has its limitations (disadvantages) following:
l Angular is big and complicated. With multiple ways to do the same thing it is hard to tell which way is better for particular task. Mastering Angular over the “Hello world” level requires considerable efforts. Different developers’ coding styles and habits might complicate integration of different components into a whole solution.
l The lifecycle of Angular application is complex, and to master it you really need to read the code. Compile and link are not intuitive, and specific cases can be confusing (recursion in compile, collisions between directives etc.).
l As the project grows with time, you most likely will need to throw away existing implementations and create new versions using different approaches. Angular implementations scale poorly.
In my opinions, Angular is more suitable for our assignment 3 than others. So, I encourage my group members to be familiar with it. I believe we can build a great web app with it.