GithubHelp home page GithubHelp logo

ojd2 / ts-todo Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 29 KB

Simple Todo Application built using TypeScript & Angular JS

TypeScript 45.06% CSS 6.51% HTML 16.46% JavaScript 31.98%
typescript mvc-pattern mvc-application angularjs

ts-todo's Introduction

TypeScript Todo Application built with Angular JS

The following source code has been built to be used for an comparative analysis of Elm, TypeScript and Clojure in order to find alternatives to JavaScript for web development. JavaScript, although not by definition, is quickly becoming a flexible assembly language for the World Wide Web.

To put it simply, the browser has evolved into a small sophisticated compiler, with the ability to execute commands from a language that is so popular, it's become universal. Essentially, JavaScript is being used everywhere and anywhere it can reside and function within. Subsequently, the World Wide Web provides a vast backdrop for the language to operate within at a very concise low-level. Although the language design of JavaScript has come into question a number of times over the past 10 years, the language has become stretched, shaped and detached from its beginnings and has been an important link in the chain for modern web applications and software.

As time went by, web applications grew in complexity and both client side and server side slowly became obfuscated. As a result, the JavaScript ECMA library provided a head start for a number of organically grown languages to use JavaScript as its target language as well as its graphical layout. This opened the door for various languages to target JavaScript by compiling it from another entirely different language.

Soon, a number of imperative and declarative programming paradigms were integrated into new languages that targeted JavaScript. It provided a way of concatenating, compiling and minifying applications together into one clean and optimised file that could be executed into JavaScript byte code. As a result, these evolutionary practices changed the processes and paradigms of modern web development. What is more, there are now over a 100 languages that target JavaScript. Each language has its own language constructs, all imposing both syntactical and semantic abstractions as well as various type systems all efficiently designed for multiple arrangement across large networks such as the World Wide Web.

Many of these languages had a clear goal to try and address many of the weaknesses JavaScript imposes, and reduce paradigm complexity in order to enhance the language definition for a more universal system.

Dissertation Topic:

With hundreds of new languages compiling to JavaScript and being used throughout various web frameworks and development paradigms, very little has actually been done on analysing and comparing the languages themselves. Therefore, the following dissertation aims to look over three of these languages and to compare and analyse them The dissertation will include a small suite of web applications built in the three languages, along with an evaluation of their strengths and weaknesses.

Each language will be evaluated and graded using some dimensions. For example, how does the interoperability behave for the language or how easily can the language be learnt and implemented? Besides this, other constructs of the language design will be evaluated. For example, how has the language type system been designed and expressed? How does the language perform and execute to JavaScript? How much scoping functionality does the language provide?

The suite of web applications will contain small individual programs of a Todo List application built in the three languages. Reasons for building a Todo List application are because there is enough core functionality to express the languages design and performance without having to look at the explicit design of the languages themselves. It provides just enough for a critical evaluation.

Chosen Languages:

  1. Elm (Elm is a typed and purely functional programming language that compiles to JavaScript)
  2. TypeScript (TypeScript is a strict superset of JavaScript that implements a universal type checking system)
  3. Clojure (Clojure is an untyped purely functional programming language that compiles to JavaScript)

Load Commands

Run the following terminal commands from the root of the src folder:

npm install
npm run typings
npm run build

Reasons for running TypeScript & Angular JS locally are:

Provided for Informational Purposes Only


MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this 
software and associated documentation files (the "Software"), to deal in the Software 
without restriction, including without limitation the rights to use, copy, modify, merge, 
publish, distribute, sublicense, and/or sell copies of the Software, and to permit 
persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies 
or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
DEALINGS IN THE SOFTWARE.

Code Credit

Original structure @ https://github.com/arosh/angular-todo-ts

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.