r/Racket • u/mgamal92 • Mar 09 '20
question Why using a different programming language rather than using any famous language ?
2
u/tcallred Mar 09 '20
Popularity of a language is a useful metric for some things, but not all. In my experience, some of the best languages are not very popular.
1
u/TeslaRealm Mar 10 '20 edited Mar 10 '20
Rather than compare to famous languages, how about a discussion of why any particular language is useful.
Python was designed with the intent of making programs easier to write by eliminating explicit types (type inference). There are many features that are useful for those knowledgeable in Python, but not necessarily other languages (list comprehensions, class iterables using the iter method, etc). Python's plethora of libraries is also a massive benefit and probably plays a huge role in why it's so popular. These concepts do not necessarily make Python programs easier to understand however. If you come across a for loop over an object (for item in objectName), you have to take a look at the class iter method to understand what the loop is actually doing unless the code is well documented.
Racket is a mostly functional programming language and is often chosen for students to design other languages. Writing code in a functional paradigm is tough for those starting out and who are accustomed to the iterative and mutable style. This does make it easier to learn about language constructs though. In particular, Racket's pattern matching ability is fantastic, and allows for fairly convenient parsing of custom languages. Racket also has a stronger macro interface as compared to say, a language like C. Racket's macros can occur at run time and there are many custom rule sets that you can apply (not necessarily easy to learn either).
There are many things that one might consider in their learning process and language applicability:
Ease of use when starting out
Ease of getting used to practical tools
The type checking system
Understanding what happens behind the scenes (understanding the parser to some extent can help you figure out why certain things do or do not work)
3
u/JimH10 Mar 09 '20
To learn.