Monday, 2 November 2015

Some advantages of using Dr. Racket over other programming languages

There are many programming languages such as BASIC, C, C++, COBOL, FORTRAN, etc. Each language is unique in its own way. In our course CSC104H1, we learn to use Dr. Racket and we should know the reason why we choose this rather than the other. 

Racket is important because it has unique features that can change the way you think about programming. The list of advantages are shown as following:
  • Racket enables the use of several different kinds of data including numbers, texts, lists, images, etc. It creates a new combination of using different datas and leads to a easier understanding of programming. 
  • Racket has advanced linguistic support for creating process-like abstractions within the language. What you had to go out to the operating system for, leading to less robustness and portability and much heavier weight, you can now do robustly, portably, and cheaply within the program. This again changes the way you architect systems.
  • Racket has delimited continuations. This gives you enormous power in creating control abstractions. This too changes the way you architect systems.
  • Racket has perhaps the most sophisticated yet practical contract system of any contemporary language. Building a cheap assertion system is trivial; anyone can do it in an afternoon. Building a rich contract system is very subtle and has taken a decade-and-a-half. Because this changes the kinds of statements you make about your program, this changes the way you think about describing your system.
  • Racket has a typed language, Typed Racket, which has a very powerful interoperation story with Racket (helping kick off the trend of “gradual typing”). This again changes the way you think about describing your system and splitting it into typed and untyped chunks.

So these are all things at which Racket is virtually unique, and their combination is even richer than the individual pieces. That's why Racket rewards study, and also enables the creation of very elegant and sophisticated systems with a good baseline of performance.

No comments:

Post a Comment