
Try these 4 languages from 4 corners of Programming - itsjzt
https://dev.to/itsjzt/try-these-4-languages-from-4-corners-of-programming-epm
======
eggy
How about adding APL and Forth and make it the 6 corners! An array-oriented
language and a stack-based language would make the round trip truly mind-
blowing. I have tried all of the languages mentioned, and I find myself always
using J (ASCII character, APL-like language) and Lisp without intending to do
so.

~~~
piinbinary
And Prolog and Erlang to round things out.

~~~
eggy
Definitely Prolog. I have barely played with Prolog except when it is included
in the PL as in picoLisp or Shen, but it's in its own category. I agree about
Erlang too, but it made me stop to think. Erlang without the BEAM or OTP is
pretty much a functional language like Haskell, no? I looked at Pony once.
Yeah, ok, Erlang too! I prefer the Lisp version: LFE!

------
mamp
Good article. I’ve been fortunate to try them all, even SmallTalk when it was
released for the Mac in the 80’s. Lots of code in Lisp and C. Not as much in
Haskell.

My favourite so far are the ML family and F# in particular. The only
language(s) I regret not learning earlier. Try F# or OCaml if you haven’t
already.

~~~
erk__
My university recently put a package manager for SML up on its GitHub page. So
there is still a chance for a comeback [https://github.com/diku-
dk/smlpkg](https://github.com/diku-dk/smlpkg)

------
codr7
Agree, and I've written substantial amounts of code in all of them; though I
strongly prefer Common Lisp to Clojure unless already chained to the JVM.

Besides Prolog & APL, I would add Forth to the list.

~~~
MaxBarraclough
What do you make of Joy, Forth's functional cousin?

~~~
dbcurtis
Is Joy getting any active development? The only resources I could find with a
quick search seem to be almost 20 years old.

~~~
MaxBarraclough
I think not, unfortunately. The official git repo hasn't been touched in 2
years. [0] More recently though, a brave functional programming adventurer has
been working on a Joy compiler written in Haskell, for what that's worth. [1]

I skimmed the 'overview' page [2] and it looks unusual enough that I might
give it a more serious go at some point.

I'm not especially au fait with functional programming, and have only a basic
familiarity with Forth, so it's rather alien. Which is of course the appeal.

[0] [https://github.com/joy-language/joy-lang.org](https://github.com/joy-
language/joy-lang.org)

[1] [https://github.com/owainlewis/joy](https://github.com/owainlewis/joy)

[2] [http://joy-lang.org/overview-of-joy/](http://joy-lang.org/overview-of-
joy/)

------
idsout
I really enjoyed the book, Seven More Languages in Seven Weeks and regularly
recommend that to people looking to expand their arsenal.

~~~
itsjzt
+1 seven language, seven database, seven concurrency models all are great
books

~~~
throw51319
Is the original 7 languages worth reading?

------
JoelMcCracken
At this point I think the most interesting thing in smalltalk is not the OO
aspects, but the integrated VM/image. Hacking around in smalltalk is such an
incredible difference.

~~~
itsjzt
Yeah

------
navdb
Try Nim too: [https://onlinetechinfo.com/pros-and-cons-of-
nim](https://onlinetechinfo.com/pros-and-cons-of-nim)

------
exdsq
If I had to come up with 4 languages I'd suggest C, Idris, Lisp, and Prolog.

~~~
myth_drannon
You need to be very familiar with Haskell to tackle Idris.

~~~
ska80
Actually no. Familiarity with Haskell can actually make learning Idris more
difficult :). It is better if you start from scratch when learning Idris.

------
vmchale
C and Lisp are pretty well-known!

I'd shill APL/J/etc.

~~~
ectoplasmaboiii
I would also shill one of the APL derivatives. I've gone from a happy Python
dev to a die hard k/q guy very quickly. These languages completely change the
way you approach a problem.

It's just a shame that q isn't free for commerical use (though it's free for
personal use) and there aren't many jobs outside of finance.

~~~
eggy
I didn't see your reply before I brought up APL and J here. I've tried k
several times, but I always fall back on J, then APL, and then k. I think it's
personal bias, since I found J first. I like the symbols of APL as I like
mathematical formulas, and now that Dyalog has adopted some J-isms, I've been
trying reimplement my J stuff in Dyalog APL. Also Roger Hui of J fame is a
Dyalog user too. I thought I would gravitate to k because of my Lisp
background, but J is sticking with me.

------
channel_t
While definitely not the same, it seems somewhat misinformed to put Lisp and
Haskell on 2 different corners.

~~~
em-bee
not at all. lisp and haskell are entirely different worlds. don't be fooled by
the claim that lisp and haskell are both functional languages. haskell is
functional to a fault, but lisp is anything you want it to be. it depends on
which lisp you choose. i believe that clojure is more on the functional side,
scheme somewhere in the middle, but common lisp (the language i am familiar
with), is barely more functional than python. functional programming is not
using functions as the main method for code organization.

------
Smaug123
The usual four corners I give as my examples are Haskell, C, Lisp, SQL. (That
is, I usually replace the author's Smalltalk with SQL.)

I then go further and describe languages as linear combinations of these:
Python as C minus Haskell plus Lisp; Mathematica as Lisp plus SQL; F# as
(Haskell plus C)/2.

------
jheriko
thats 2 corners...

------
kgwxd
I'd add a corner and include 6502 assembly. It's so fun, I think Atari 2600
specifically adds some more intimacy with the hardware compared to other
classic systems, but they're all fun to learn.

------
bluedays
Is lisp considered a functional language? I thought it more imperative

~~~
itsjzt
Paradigm Multi-paradigm: functional, procedural, reflective, meta

Actually it is both

~~~
fnordsensei
Though Clojure in particular probably leans heavily to the functional side.

------
non-entity
I still want to try smalltalk, just waiting on an idea where it makes sense to
use it.

~~~
itsjzt
You can try it in backend server for your pet peojects.

------
jancsika
If a mad scientist removed all the outermost parentheses in the clojure
example and made it work the same as the current example in the article, what
bad things would happen as a result?

~~~
itsjzt
You might discover ruby

------
brutt
C + Haskel = Rust.

~~~
smlckz
I think, C++ U OCaml ===> Rust.

Do you know about any language with as strong or stronger borrow checker than
that of Rust?

------
smlckz
>> Currently the most popular lisp variant is Clojure.

Really?

------
bhalp1
Great post

~~~
itsjzt
Thanks

