What other languages interest you?

:thumbsup: for rust! Though still get completely confused with lifetimes and the borrow system at times.

1 Like

Iā€™m currently learning about Pharo(Smalltalk) modern and elm.

1 Like

I thought Rust has generics already.

Rust has generics but those are not comparable to c++ templates (which may look similar on a first glance). C++ templates are turing complete language on their own.

But at the end most usage boils down to something like generics or fancy macros.

1 Like
  • Iā€™m using Ruby for my living.
  • Trying to force through Rust when I can in my company, but sadly Iā€™m alone because there is other team doing every async backend job in Go :cry: I really am in love with rust, because Itā€™s very low level, compared to Ruby, and I can read Rust and understand it :slight_smile: And when it compiles, I mean if ever my code compiles :joy: It just works, no bugs other than simple logical ones.
  • I like Elm for the same reason I like Rust, if it compiles it works, but there are problems with documentation and examples when it comes to doing something beside using core (Iā€™m not proficient in Haskelly languages at all :wink: )
  • Iā€™ve started to read Real World Ocaml so I can start to write frontend in Bucklescript/ReasonMLā€¦ instead of Elm, mostly due to @OvermindDL1 being very vocal about why itā€™s probably better choice than Elm, weā€™ll see how it works :stuck_out_tongue:
  • Iā€™ve done some tutorial in Racket (it comes from Scheme which comes from Lisp), and liked it, have it on my bucket lisp, I mean list :wink:
  • Same with Smallltalk, on my bucket list too
  • Year and a half ago Iā€™ve done most of my coding in Python, and would not mind switching from Ruby to Python as my main Income source. I think itā€™s the only language in which Iā€™m able to write big piece of code that simply runs. Python simply clicks with me, and it always clicked, from the very beginning. Although I think I wrote only like few hundred lines in Python in past year Iā€™m still very interested in it :slight_smile: http://mypy-lang.org/ FTW!

Iā€™ve also wrote some C, C++, Java, and C#, but to be honest they donā€™t really interest me. But if I was in need of writing GUI App these days, Iā€™d go with C# I think, because this language grows in a good direction IMHO.

4 Likes

/me does not understand why people think C++ templates are like generics, they are entirely two different things and although templates can do what generics can do, though far better, they can do significantly more as they are turing complete

Notice that, C++ Templates are Turing Complete, they are a full language built into the very type system of C++ itself that can do all manner of extremely useful code generation the likes of which Rust macroā€™s cannot get anywhere near yet, they are more akin to Lisp or Elixir Macroā€™s then they are anything remotely like generics. :slight_smile:

Heh, the Elm language is, quite literally, just trying to be another HM language like OCaml and Haskall, but significantly less, soā€¦ better to take its idioms elsewhere. ^.^

1 Like

Either I do read you wrong or you did meā€¦ I explicitely said, that C++ templates are superiour to Rust/Java generics. What I said though, is that I observed their usage often as a kind of generics in real world code.

1 Like

Oh I was primarily responding to @jeramyRR, I just added your quote as I was ā€˜extendingā€™ yours, it was meant as in ā€œI agree with NobbZā€. :slight_smile:

1 Like

Not only ā€œlooks likeā€. Etaā€™s stated goal is to port GHC 7.10.3 (for the time being, though their site mentions GHC8) to the JVM world.

In that respect, you also have Frege (https://github.com/Frege/frege) which is another, older and more mature, port of Haskell to the JVM with the specified goal of making a Haskell-2010 standard compliant port.
(The difference is mainly in using packages from Hackage natively. Eta claims their implementation allows using those packages with only the minor tweaks required to make Haskell types JVM-compliant, while Fregeā€™s implementation does not allow such usage out-of-the-box. Is it true? I donā€™t know, donā€™t understand the implementations and techs good enough to make an opininated claim).

2 Likes

Though Iā€™ve already replied once, taste change and my current interest lie with:

  • Haskell (my favorite, yet also my nemsis, ever since my days hacking on Mathematica).
  • Idris (If I only I had time to delve into it).
  • Eta (Time, precious time)
  • Frege
  • Crystal (Systemā€™s programming with Ruby syntax?! ā€œIā€™m the king of the world!ā€)
  • Nim (Systemā€™s programming with Python syntax?! Iā€™m the king of the world, squared!)
  • Rust (Cool, but makes my head hurt. And Iā€™m only on page 1 of the tutorial. :D)
  • Elm
  • PureScript
  • BuckleScript/OCaml
  • F# (And itā€™s lovely JS framework Fable).

But really, the one that really caugt my eye lately, and I hope to the invisible-pink-unicorn theyā€™ll pull it off is:

What I have time for, OTOH is some Elixir, little Haskell and a smudge of Bucklescript.
Such is life. :smiley: :smiley: :smiley:

4 Likes

Pony.

Statically typed, immutable, asynch methods, pattern matching with captures and guards. And highly readable!

3 Likes

Similarly, my interests have dabbled a bit from the past year.

Languages I really want to invest time on:

Take a look just for fun:

In my watchlist:

3 Likes

Iā€™m interested in the following:

  1. Crystal ā€“ I love the syntax, and the focus on concurrency, but itā€™s just too new. However, OOP is just ingraned in my head and I canā€™t get it out so sometimes I struggle with Elixir. For me Phoenix is the killer Elixir app (love it or hate it), but Crystal doesnā€™t have that yet.
  2. Rust ā€“ Deterministic GC seems really cool but in practice after a few days all I came out with is ā€œwow this is impossible to understand, thereā€™s no way that this is worth learning.ā€ The docs seem killer though.
  3. Pony ā€“ I actually love the Java type system besides a few quirks, and often find myself wishing for it in Elixir. I also love the BEAM!

Crystal is also not multi-core. It has a global lock currently so no matter the amount of threads it will only ever use one core until you spool up many processes.

2 Likes

Sure but I am pretty sure they are working on it over here on their GitHub. Like I said, itā€™s so new itā€™s not really much other than a novelty to me, but itā€™s a cool novelty to watch!

As OCaml then? :003:

They are, I even talk with the devs in irc on occasion, currently multi-core support is not yet even being thought of to be worked on, just ā€˜something in the futureā€™.

Exactly! Thus why I donā€™t use OCaml for servers yet. ^.^
Although, unlike Crystal, OCaml is working on removing itā€™s GIL-like lock and has PRā€™s being added quite routinely that fixup internals that rely on the GIL-like lock. :slight_smile:

2 Likes

Thatā€™s the important part. Languages donā€™t mean much by themselves. Elixir also has a few warts, but OTP and killer libraries are making it worth your while.

Itā€™s far from impossible and I am sure you know that. But I am with you, so far I donā€™t feel itā€™s worth the time and brain investment. IMO itā€™s too verbosive and already suffers from the problem of being able to do the same thing in several different ways. In that sense, and as much people hate it, Go is definitely better (if you have lots of patience in other areas though).

Pony makes an interesting promise: have an actor model concurrency like the BEAM but never copy data around. Combined with a much stricter compiler and a native binary output, it just sounds too good to be true. Itā€™s too raw right now but I am keeping an eye on it. If they deliver even the first 3 points theyā€™d have many other languages in a corner. :slight_smile:

4 Likes

To be fair, that might not be the best idea. History shows that if a tech has been made with the strong bias towards single-core, changing the underlying paradigmas and compromises is too much of an effort and usually the tech ends up in a much worse shape than it was before.

Iā€™d much prefer to spawn OCaml Ports in Elixir that do specialized and high-performance single-core work than having a broken OCaml whose multi-core works, but not always.

(Letā€™s go chat in IRC though, we started hijacking the thread.)

1 Like

It is very verbose, it got that from Haskell (the part I complain about quite a bit), though I definitely wouldnā€™t say Go is better at all as Go doesnā€™t have the typing protections that Rust has (it barely has typing protections at all considering how often people do either runtime reflection or typeless Interface{} casting), in addition it has no higher typing abilities whatsoever (go ahead, try to make a custom TreeMap type that can handle any type from the primitive integers to any user defined type). Go is ā€˜usefulā€™ for a very restricted style of programming, but itā€™s long-term maintainability is a little slice of hell from what Iā€™ve been reading (it seems to be designed to let someone program quickly, but not program well, where Rust enforces you to program well, though not as quickly, very different domains).

OCaml can actually do a good bit multi-core (itā€™s GIL is not ā€˜quiteā€™ ubiquitous), similar style to Python except you can actually release the Gil in-language if you really need to and know what you are doing, you just have to be careful. The main reason OCaml has the GIL is the GC, practically no other code relies on it other than GC related memory handling.

The MCOCaml branch is very much multi-core fully capable, so Iā€™m not sure where this broken bit comes from? They are primarily just finishing refining the API and bringing it in piecemeal to mainline so it is easy to reason about by Core.

Eh, this is a language interest thread though, seems relevant. ^.^

1 Like