Erlang
Why? Fun to use functional languages for solving puzzles. It also have some interesting concepts and differences compared to Haskell.
GPUs (CUDA/OpenCL)!
A Common Lisp dialect like SBCL.
Swift
Would love to see this language on codingame.com. Such a fun language to program in. It is strongly typed, but with type inferencing to keep it terse. I love the use of optionals to reduce run time errors. Not to mention powerful structs, enums, and pattern matching.
Extremely useful for professional development as it is the language of choice for iOS and OSX app development. codingdojo.com calls it the 8th most in demand programming language of 2015: http://www.codingdojo.com/blog/8-most-in-demand-programming-languages-of-2015/
I know itās not already on codingame because it canāt be compiled on linux. Apple announced plans to contribute ports to linux around the launch of Swift 2.0. Hopefully we can see support for it on codingame then.
Julia is becoming more and more popular in the dynamic language and scientific computing community. Itās only a matter of time until it is a very widely used programming language.
Julia dream, dreamboat queen, queen of all my dreams
Every night I turn the light out
I agree that Prolog would be a very nice option for some problems.
There are currently multiple functional languages, many procedural ones, many object oriented ones, scripting language ā¦
Prolog is not only just a missing option for languages, itās a missing programming paradigm !
I agree that rust should be added. It is a bit of a up and comer but would be nice to learn.
Lets add Kotlin as a programming language.
It is new language from JetBrains for JVM. It is even supported by default in Intellij IDEA, I think thatās enough for adding it.
I forgot to include Befunge on my previous list of April Fools languages.
How did I manage to have that oversight happen?
Common Lisp was already suggested by Iām going to elaborate.
I was actually very disappointed when I didnāt find a single language with simple syntax like Tcl, Common Lisp or Scheme (or Racket) while there are quite a few even less known languages like Dart, Groovy or OCaml. Iām going to make my pick and vote for Common Lisp.
Listing just the features missing in other languges you have:
- Nice and simple prefix syntax.
- Nice and simple syntax macros. Iām aware a few other languages like Scala have them too but they all look like kludges due to complex infix syntax.
- Strong but dynamic type system. Yes, it shares it with E.g. Ruby and Python and itās (IMO) the best trade-off between safety and ease of use unless you can infer all types statically like Haskell does.
- Both lexically-scoped and dynamically-scoped variables. No other language you support (I think) even has dynamiclly-scoped variables.
- Runtime interactive debuggerā¦ not sure if you can make it work or not butā¦
- The signal-restart error handling system will work regardless even if you canāt support interactive features.
So pick a supported implementation like CCL, SBCL or CLisp. Iād be glad to help you out.
Also @Jabberwockey SBCL is not a dialect of CL. CL has no dialects. SBCL is an implementation of CL.
EDIT: After solving a few puzzles three more points.
- CL is one of the few multiparadigm languages with Metaprogramming, FP, Structured programming and OOP all supported on a pretty good level and easy to mix. Not as good as specialised languages but still. Also its OOP system CLOS has enough unique ideas behind it.
- All puzzles I saw yet have a main loop and CLās LOOP macro is good for this.
- Miss COND too.
After solving the first two puzzles I couldnāt help but suggest Tcl too. Itās type system (or lack of it) would make input/output too easy and it generallyā¦ feels like the best langauge to solve these few first puzzles in. Bash is good too but it has too many corner-cases and, again, complex syntax.
EDIT: Of course Iād be glad to help with adding Tcl support too.
You could try Clojure, thatās a Lisp language. But itās not just another language, it has a very specific rationale (no uncontrolled mutation) that sets it appart from Common Lisp and has a lot of consequences.
Itās obviously not as mature as Common Lisp.
Clojure has dynamic variables but they are cumbersome, because most functions return lazy lists and that doesnāt work well together.
Sadly, Codingame doesnāt give you access to the Repl.
No signal-restart error handling system, only throw-catch error handling.
it has a very specific rationale (no uncontrolled mutation) that sets it appart from Common Lisp and has a lot of consequences.
Yep, one paradigm less. One thing putting me away from Clojure. CL allows you to shoot yourself in the foot and I generally prefer languages that do.
But why is that a good thing?
Update php5.x to php7 also would be great. It doesnāt have major BCs so no need to have separate ālanguageā as python3