Sie sind auf Seite 1von 11

University of Technology Jamaica W.

School of Computing and Information Technology

Analysis of Programming Languages

Tutor: David White

Date: April 3, 2018

Group Members: Tevon Wallace - 1307561

Shane Barrett - 1304014

Shemar Dobson - 1307559

Roland Layne - 1306830

Vincent Clarke - 1204488


Programming Languages
A programming language is a vocabulary and set of grammatical rules for instructing

a computer or computing device to perform specific tasks (Beal). In short programming languages

are sets of instructions designed to solve a dedicated problem. Programming languages entails both

high level and low level languages. Programming started out with the development of low level

languages being used to develop applications. Later low level languages were improved and high

level languages were developed. The first widespread high level language implemented was

FORTRAN developed in the 1950’s. High level languages are programming languages developed

bases off the English language using English like keywords to simply the development process. In

the development of high level languages inventers had to think of a way to bridge the gap between

high level languages and machine language as machine language is the only language the computer

understands. The way this was achieved was by the use of a compiler which converts high level

languages to machine language so the computer could understand. In the instance of java the code

java produces is converted to bytecode and not machine languages. The reason for this is the

portability which bytecode gives java. A java program can be transferred to different platforms

and complied and runs perfectly.


Software Frameworks

What are frameworks? Frameworks are like jet packs for development languages: They boost

performance, extend capabilities, and offer libraries of coding shortcuts so developers aren’t hand-

coding web applications from the ground up (Wodehouse). Simplifying the above definition a

framework is basically an enhanced version of a programming language which automates most of

the functions a developer would normally perform manually. Frameworks also includes a wide

variety of capabilities such as models, APIs (Advance Programming Interfaces) and other elements

which speeds up development and creates rich dynamic applications. Take for example

construction workers building an apartment, the workers would follow a detailed blueprint plan

and use pre-made materials (bricks, pre-mix etc) to fully construct the apartment. The blueprint

and pre-made materials would be considered the frameworks used in the construction of the

apartment. A more straight forward example would be viewing a framework as a skeleton, a

complete set of tools that was organized with the sole purpose of allowing you to focus on one or

more specific tasks. Software Frameworks are extremely useful and are being used more and more

every day for their amazing capability of simplifying the development process and cutting

development time in half. When developing an application a huge amount of time would have to

be dedicated to building the logic of the application and with time constraints of all sorts you don’t

want to be forced to program any kind of low level functionality. This is where software

frameworks come into play, they take care of all the low-level action. In a nutshell the purpose of

a software framework is to boost the efficiency of creating new software and programs.
Framework

1. What are the differences and similarities between a Programming Language and a

Framework?

• According to Devero, A, a programming language is an artificial language designed to

communicate instructions to a machine. It has two parts, the form of instructions (syntax)

and the semantics. Programming language can be used to create programs to control a

machine etc. On the other-hand, a framework is a collection of programs that can be used

to develop your own applications. Frameworks serve a guide for the building of

something useful and can include multiple libraries and application programming

interfaces, Devero. A.

2. Which one is better to be used for a new application, expanding an existing application, or

migrating an old application to a new language or platform?

• New Application - Framework, since a it basically enhanced version of a programming

language which automates most of the functions a developer would normally perform

manually.

• Expanding an Existing Application - Programming Language. It depends on the

complexity of the application. If the application is complex, then a programming

language would be ideal to continue the application. On the other-hand, if the application

is not as complex, the existing code can be converted to the new framework and then the

application can be expanded.

• Migrating an old application to a new language or platform - Framework. Framework

simplifies the programming process and reduce the amount of time it takes to develop
and application. Therefore, the new application would be developed in less time with

richer application features.

3. What is a scripting language and how does it relate to programming languages and

frameworks in general?

• According to Techopedia, a scripting language is a programming language designed for

integration and communication with other programming languages, eg. JavaScript,

Python and Ruby. Scripting languages are often interpreted rather than compiled. Yes it

does relate to programming languages and frameworks in the sense that they all perform

similar operations but operate using different mechanisms.

4. What is a library and how does it relate to programing languages and frameworks in general?

• According to Webopedia, a library is a collection of precompiled routines that a program

can use. These routines are sometimes called modules which are stored in object format.

These libraries are useful for frequently used routines since you don’t need to link them

to every program that uses them. The linker automatically looks in libraries for routines

that it does not find somewhere else. A library can relate to a programming language in

the sense that all the libraries needed for a programming language are precompiled and

can be included into a language. On the other-hand, frameworks can include libraries and

other tools to be successful in the development of a project.

Issues to consider and discuss in your project documentation

1. How does your chosen framework handle closure and typing?


• According to Abel (2016), a closures are used to help avoid most of the boilerplate code.

Closures avoid it by accessing the special properties of the component. These

components contain all the attributes passed into a component, including closure actions.

2. Can it cross-compile eg. Convert Java into JavaScript?

• No, Ember.js only understand and works with its modified version of javascript.

3. How does your framework deal with dead code, dangling pointers and garbage collection?

• According to Minichate (2017), dead code can be discovered using an add-on called

ember-cli-tree which uses a tree shaking infrastructure to discover dead code within

Ember applications.

• Dangling pointers

4. How scalable is your framework?

• Ember.js emphasizes scalabilty, its mainly developed for apps that plan to scale into

much bigger project. It enforces stricter rules to ensure that an application avoids

bottleneck and is primed for growth.

5. Can you call a routine, procedure, or API in one language from another in your framework?

• Routine - Yes, according to Webopedia

• Procedure - No

• API - Yes, according to Webopedia.

6. What operating systems are supported by your framework, and how popular are these

operating systems in turn?

• Supported Operating System - Microsoft Windows, macOS, according to

NetMarketShare (2017)
• Microsoft Windows owns 88.78% of the operating system market share, according to

NetMarketShare (2017)

• macOS owns 8.42% of the operating system market share, according to NetMarketShare

(2017)

7. What form factors does your framework support. eg. desktop, mobile, etc?

• EmberJS supports desktop and mobile applications

8. How well is your framework supported?

• EmberJS is well supported. The EmberJS team has been releasing updates earlier than or

equal to every 3 months since their initial release.

9. Is it extensible and easy to adapt?

• EmberJS is not extensible but it is easy to adapt.

10. Is your framework well documented?

• Yes, EmberJS is well documented.

11. How popular is your framework? Are there estimates of how many developers are using

your framework?

• EmberJS is quite popular, with developments from top websites such as LinkedIn, Vine,

Twitch, KickStarter, Fitbit, Yahoo, Microsoft and Netflix. No there are no estimated of

how many developers are using EmberJS, according to Ember.js.

12. Does your framework have a rich collection of tools and easily-obtainable libraries?

• Yes. A lot of tools and libraries are available for EmberJS, according to Treacy, F (2016).

13. How well does your framework support debugging, test automation and instrumentation?

• Yes, EmberJS does support Debugging, according to Ember (2017).


• Yes, EmberJS does support Test Automation, according to Ember (2017).

• Yes, EmberJS does support Instrumentation, according to Ember (2017).

14. Is your framework lightweight or heavyweight? How does this affect the types of

applications that can be developed using your framework?

• EmberJS is a single paged application. Meaning there exists one main html file and the

different parts of the application such as components are added/removed based on the

users input. This will not see a decrease in performance as it relates to large applications.

15. How easy is it to learn the framework?

• EmberJS is not an easy framework to learn/understand when compare to other

frameworks such as Vue.js.

16. Is the framework property or open-source code?

• EmberJS is an open-source javascript framework.

17. How does the cost and development time compare with other frameworks, and without using

a standard programming language without a framework?

18. Does your framework support the MVC coding pattern?

• No. EmberJS does not support MVC coding pattern. EmberJS uses MVVM (Model-

view-viewmodel) pattern to create scalable single-page web applications.

19. Is your framework modular?

• Yes, according to Shiotsu.

20. Describe the relative size of applications developed using your framework?
• A large number of applications were developed using EmberJS. They include: Microsoft,

Intercom, Netflix, Heroku, Skylight, LinkedIn, Square, Zendesk, Blue Apron,

KickStarter, Code School, Ibotta, Travis CI, TED, LivingSocial, Bustle, Groupon,

TimBuk2, Addepar, Tilde, BenefitCloud, Topicus, MHElabs, Yapp, Discourse, Gemfury,

Batterii, Instagrille, BlueTube, Mashape, Skovik, Twine, Tradegecko, GroupTalent,

Yahoo, Kohactive, CaptainTrain, WithAssociates, NedapHealthcare, Brainistic, Kabila,

Funding|Gates, Witsbits, Yesmail, Toushay, ShopItToMe, CrowdStrike, Playtin,

according to Ember (2017).

21. How easy is your framework to deploy?

• To deploy an Ember application, simply transfer the output from ember build to a web

server. This can be done with the standard Unix file transfer tool such as rsync or scp.

There are also services that will let you deploy easily.

22. Does it support the development of multi-threading applications?

• Yes, EmberJS does support multi-threading, NPM Inc (2016).

23. Does it support multiple developers and development teams?

• Yes. EmberJS does support multiple developers and development teams, Ember (2017).
References

Abel, R. (2016). Three Reasons Ember.js Closure Actions Rule. Retrieved from: https://

spin.atomicobject.com/2016/06/25/emberjs-closure-actions/

Baker, M. (2009). What is a Software Framework? And why should you like ‘em?. Retrieved

from: https://info.cimetrix.com/blog/bid/22339/what-is-a-software-framework-and-why-

should-you-like-em

Cristof, A. (2017). What exactly is a software framework?. Retrieved from: https://

www.quora.com/What-exactly-is-a-software-framework

Devero, A. Programming languages, libraries and frameworks. Retrieved from: https://

blog.alexdevero.com/programming-languages-libraries-and-frameworks/

Ember (2017). Class Ember Instrumentation. Retrieved from: https://www.emberjs.com/api/

ember/2.15/classes/Ember.Instrumentation?show=inherited%2Cprivate

Ember (2017). Debugging. Retrieved from:

https://guides.emberjs.com/v2.14.0/configuring-ember/debugging/

Ember (2017). Introduction: Retrieved from: https://guides.emberjs.com/v2.11.0/testing/

Ember. See Who’s Using Ember.js. Retrieved from: https://www.emberjs.com/ember-users/

Ember. Status Board. Retrieved from: https://www.emberjs.com/statusboard/

Ember (2017). The Team Behind Ember. Retrieved from: https://emberjs.com/team/

Minichate (2017). Ember-Cli-Tree-Shake. Retrieved from: https://www.npmjs.com/package/

ember-cli-tree-shake

NetMarketShare (2017). Operating System Market Share. Retrieved from:

https://netmarketshare.com/operating-system-market-share.aspx?
options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%

22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D

%7D%2C%22dateLabel%22%3A%22Trend%22%2C%22attributes%22%3A%22share

%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%2

2%3A-

1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%2

2Monthly%22%2C%22dateStart%22%3A%222017-

04%22%2C%22dateEnd%22%3A%222018-03%22%2C%22segments%22%3A%22-

1000%22%7D

NPM Inc (2016). Ember-MultiThread. Retrieved from: https://www.npmjs.com/package/ember-

multithread

Techopedia. Scripting Languages. Retrieved from: https://www.techopedia.com/definition/3873/

scripting-language

Traecy, F. (2016). 4 Essential Tools or Ember Developers. Retrieved from: https://

www.codeschool.com/blog/2016/07/18/4-essential-tools-for-ember-developers/

Webopedia. Library. Retrieved from: https://www.webopedia.com/TERM/L/library.html

Woodhouse, C. What is a Framework?. Retrieved from: https://www.upwork.com/hiring/

development/understanding-software-frameworks/

https://www.upwork.com/hiring/development/angularjs-vs-emberjs-javascript-frameworks/

Das könnte Ihnen auch gefallen