There are lots of programming languages out there, often each with their own niche and methods of doing things. I've learned so much from each language I've been exposed to, that it seems useful to learn more. Thus an idea - learn one lanaguage each month.
Generally, learning a new programming language takes no time at all. But what's useful often isn't simply the ability to program in the lanaguage, but to understand the kind of scenario's that particular language is right for, and learn about the kinds of features they employ to make things easier for programmers. You can see this when looking at just a few languages:
- Java - Provides the JVM, allowing it to run anywhere with memory managed
- Haskell - Makes primary use of lambda calculus, reducing imperative programming
- Go - Removes exceptions, and makes parallelism easier
- SQL - DSL that works entirely through rows and columns
- Prolog - Logic language which uses your statements to evaluate truth
- Scala - Integrates functional concepts to a high-level OOP language
- Python - Interpreted line at a time and lack of types
Thus, the plan is to release a specification of a problem to solve and what language I plan to use at the start of the month. At the end of the month I'll show off my solution as well as how it works and what I've learned on my blog at https://black-photon.github.io/
Create a Nuclear Reactor program in Ada
Read the specification and final notes here
You can build the project with gnatmake main
Investigate the secret of Lisp, comparing it to Python, Haskell and C
Read the specification and final notes here
You can build any of the files with clisp <file>
How difficult is it really to make an OpenGL application in Rust?
Read the specification and final notes here
You can build and run the project with cargo run --package graphics --bin graphics
from the graphics
directory