for rust! Though still get completely confused with lifetimes and the borrow system at times.
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.
- 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 I really am in love with rust, because Itās very low level, compared to Ruby, and I can read Rust and understand it And when it compiles, I mean if ever my code compiles 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 )
- 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
- 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
- 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 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.
/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.
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. ^.^
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.
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ā.
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).
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:
- Luna (http://www.luna-lang.org/)
What I have time for, OTOH is some Elixir, little Haskell and a smudge of Bucklescript.
Such is life.
Pony.
Statically typed, immutable, asynch methods, pattern matching with captures and guards. And highly readable!
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:
Iām interested in the following:
- 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.
- 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.
- 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.
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?
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.
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.
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.)
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. ^.^