TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Eta – A powerful language for building scalable systems on the JVM

282 pointsby psibiover 8 years ago

37 comments

chubotover 8 years ago
FWIW the demo snippet is a toy and not the real quicksort, which is in-place, rather than copying the list &#x2F; creating garbage at every step.<p>Ironically it says &quot;A powerful language for building scalable systems on the JVM&quot; but this literally doesn&#x27;t scale as quicksort does.<p><a href="http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;7717691&#x2F;why-is-the-minimalist-example-haskell-quicksort-not-a-true-quicksort" rel="nofollow">http:&#x2F;&#x2F;stackoverflow.com&#x2F;questions&#x2F;7717691&#x2F;why-is-the-minima...</a><p><a href="https:&#x2F;&#x2F;wiki.haskell.org&#x2F;Introduction#Quicksort_in_Haskell" rel="nofollow">https:&#x2F;&#x2F;wiki.haskell.org&#x2F;Introduction#Quicksort_in_Haskell</a><p>This is related to the &quot;Genuine Sieve of Eratosthenes&quot;, which is also an imperative algorithm and NOT a functional one:<p><a href="https:&#x2F;&#x2F;www.cs.hmc.edu&#x2F;~oneill&#x2F;papers&#x2F;Sieve-JFP.pdf" rel="nofollow">https:&#x2F;&#x2F;www.cs.hmc.edu&#x2F;~oneill&#x2F;papers&#x2F;Sieve-JFP.pdf</a><p>This brings to mind the slur &quot;Haskell (Lisp) programmers know the value of everything but not the cost&quot;.
评论 #13379285 未加载
评论 #13375289 未加载
评论 #13378839 未加载
评论 #13376532 未加载
moominover 8 years ago
For people new to the party, this looks great. For those who had been following the GHCVM project, it&#x27;s a horrible disappointment.<p>Basically, this project used to be a fork of the Haskell compiler to support the JVM. Now it&#x27;s a fork of the Haskell compiler that may or may not be compatible for your use case depending on their opinion of GHC&#x27;s features.
评论 #13375496 未加载
评论 #13375275 未加载
评论 #13375908 未加载
评论 #13376635 未加载
swlkrover 8 years ago
The website is exactly what a programming language website should be. Syntax and features front and center.
jfeover 8 years ago
i feel like each &quot;new&quot; general-purpose language project is just nipping at the boot-heels of the much bigger problem of constructing large-scale systems that can be fully understood by a few (2-3) people.<p>VPRI&#x27;s research has shown that one important method for constructing large-scale systems that can be understood by small teams is to have a pipeline of problem-specific languages that express major portions of the system. they were able to reduce LOC for a typical OS with networking and graphics by 3 or 4 orders of magnitude.<p>general-purpose languages can&#x27;t compete with DSLs in terms of expression, and yet we keep inventing them. i think our lack of imagination is starting to show. compilation and language design will need to become much more common-place if we expect to continue scaling up.<p>a tower of babel in computing is <i>healthy</i>, no matter how much employers want us to be easily-replaceable cogs in an IT machine.
评论 #13376980 未加载
评论 #13377027 未加载
评论 #13381327 未加载
评论 #13377831 未加载
评论 #13377434 未加载
评论 #13377189 未加载
评论 #13378030 未加载
virtualwhysover 8 years ago
Awesome,<p>Haskell &lt;&gt; JVM with Eta[1]<p>Scala &lt;&gt; Native with Scala Native[2]<p>One language to rule them all. Personally am rooting for both becoming a success, though Eta may have the easier path given that it can piggy back on the JVM, while Scala Native will have to, for example, come up with a plausible GC solution (i.e. matching JVM&#x27;s world class GC is a tall task to say the least) along with porting myriad Java&#x2F;Scala libs to native.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;typelead&#x2F;eta" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;typelead&#x2F;eta</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;scala-native&#x2F;scala-native" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;scala-native&#x2F;scala-native</a>
评论 #13381261 未加载
psibiover 8 years ago
This is the relevant github repository: <a href="https:&#x2F;&#x2F;github.com&#x2F;typelead&#x2F;eta" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;typelead&#x2F;eta</a><p>And this is the blog post from the co-founder of Typelead (the company behind Eta) discussing about it: <a href="https:&#x2F;&#x2F;blog.typelead.com&#x2F;https-blog-typelead-com-introducing-typelead-14c4a1bf2df#.7zt3riywq" rel="nofollow">https:&#x2F;&#x2F;blog.typelead.com&#x2F;https-blog-typelead-com-introducin...</a>
taylodlover 8 years ago
Why do we need this? We&#x27;ve already had Frege (<a href="https:&#x2F;&#x2F;github.com&#x2F;Frege&#x2F;frege" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Frege&#x2F;frege</a>) filling this role for roughly three years now. Seems to me the DRY principal doesn&#x27;t just apply to personal projects but to public works as well.
评论 #13374927 未加载
omarantoover 8 years ago
Looks like they don&#x27;t acknowledge it on the landing page, but this is probably an implementation of Haskell, or of a dialect of Haskell.
评论 #13375461 未加载
评论 #13375508 未加载
lacampbellover 8 years ago
I&#x27;m interested in what the trade off between &quot;lazy by default&quot; and &quot;Eager by default, with some great lazy data structures you can use&quot; is?<p>Often programming language support for streams will feel a little second class, and I&#x27;d love to have something as first class seeming as Haskells lazy list - but that&#x27;s a minority of the time for me.
评论 #13379394 未加载
kaykayover 8 years ago
There is a bug in the code, unless the input is expected to be a set instead of a list.<p>I believe the right implementation should be something like:<p><pre><code> main :: IO () main = print $ quicksort [1, 123, 42, 90, 1, 23, 24, 12, 3] quicksort [] = [] quicksort (x:xs) = quicksort left ++ [x] ++ quicksort right where left = [ y | y &lt;- xs, y &lt; x ] right = [ y | y &lt;- xs, y &gt;= x ]</code></pre>
评论 #13379641 未加载
danielamover 8 years ago
There&#x27;s a bug in the quicksort implementation example (it assumes all values in the list are unique).
评论 #13375197 未加载
评论 #13375101 未加载
ww520over 8 years ago
Looks similar to Haskell.<p>Edit: Darn, I&#x27;m stupid. It&#x27;s a port of Haskell to JVM.
pyraleover 8 years ago
That&#x27;s great news !<p>I&#x27;m quite disapointed by the decision regarding GHC8, though. Overloaded record labels adresses a problem which the community was quite annoyed with, for instance.
评论 #13375296 未加载
danidiazover 8 years ago
I don&#x27;t really mind if Eta ends diverging from Haskell in the particulars but remains Haskell-like à la Purescript.<p>I&#x27;m curious about how the jvm will behave in regards to laziness and typeclasses (MTL-like libraries, in particular).
评论 #13376646 未加载
benolover 8 years ago
Does it come with a debugger of any kind?<p>I think this is the biggest gap in the Haskell ecosystem right now. Every time I try to write something in Haskell, I remember I cannot &quot;talk to my program&quot; easily and just give up.
评论 #13389505 未加载
评论 #13387167 未加载
cleover 8 years ago
How is this &quot;scalable&quot;? What does that mean?
omarantoover 8 years ago
The quicksort example seems oddly named, I would have called it &quot;unique&quot; or &quot;removeDuplicates&quot;.<p>If you change one of the inequalities, say &quot;&gt;&quot; to &quot;&gt;=&quot;, then it does sort (without removing duplicates). It still wouldn&#x27;t feel fair to call it &quot;quicksort&quot; because it isn&#x27;t in place.
sandGorgonover 8 years ago
Awesome! built in Bangalore - <a href="http:&#x2F;&#x2F;typelead.com&#x2F;contact-us&#x2F;index.html#our-office" rel="nofollow">http:&#x2F;&#x2F;typelead.com&#x2F;contact-us&#x2F;index.html#our-office</a><p>The stock image on the about-us page threw me off. Great going guys!<p>We have already been sold on Kotlin... but Eta looks interesting.
preordainedover 8 years ago
Hmmm...could get me back into Haskell (cough--mean Eta). I always hated the Haskell environment. A nice to work with port to JVM could inject some life back into that interest. There was Frege, but it just seemed fringe at the time...we&#x27;ll seem if this has any steam behind it.
MaxLeiterover 8 years ago
Has a gitter and slack but no IRC?
nnqover 8 years ago
This makes me wonder again: is there any such language but for people wanting an <i>eager</i> (not lazy) Haskell?<p>(and I don&#x27;t care for it to be JVM. but I do care for it to be be Haskell... OCaml is not Haskell and has too many weird dark corners imho)
评论 #13382127 未加载
geff82over 8 years ago
When you write about this new language, you&#x27;ll be on the no-fly list soon :)
评论 #13375581 未加载
blunteover 8 years ago
If they had any marketing sense, they would start by telling me why it&#x27;s better than Clojure. I&#x27;m sorry to offend the Scala guys, but if you want to be the best JVM language, you need to improve on Clojure.
评论 #13378329 未加载
评论 #13381252 未加载
评论 #13379085 未加载
ibejoebover 8 years ago
One of these must need some division...<p><pre><code> feet2Meters :: Feet -&gt; Meters feet2Meters (Feet ft) = Meters $ ft * 0.3048 meters2Feet :: Feet -&gt; Meters meters2Feet (Meters m) = Feet $ m * 0.3048</code></pre>
评论 #13378762 未加载
评论 #13379376 未加载
评论 #13378763 未加载
hyperpalliumover 8 years ago
Seems 99% written in haskell&#x2F;eta itself, with a little c.<p>So, the compiler won&#x27;t run on the JVM... if it did, there could be haskell dev on-the-device for Android...
评论 #13379636 未加载
评论 #13406281 未加载
catnaroekover 8 years ago
I&#x27;d like to know if the most scalable technique for reasoning about program data works: structural induction!<p>Is Eta strict or lazy?
评论 #13375938 未加载
Rapzidover 8 years ago
This looks really cool. How are the language services coming along? Can we expect something on par with F#&#x27;s?
hacker_9over 8 years ago
I really don&#x27;t understand the need to squeeze as much functionality as possible out of as few lines as possible, that the code makes no sense no read. How am I supposed to parse the cryptic beginning example which shows the 2048 game being played? It looks like a ton of stuff has just been hidden way, which is fine for the example but likely all falls apart when you try to add something new to the game.
评论 #13376231 未加载
评论 #13375886 未加载
mistakenover 8 years ago
I&#x27;d personally just support Frege more instead of reinventing the wheel. <a href="https:&#x2F;&#x2F;github.com&#x2F;Frege&#x2F;frege" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Frege&#x2F;frege</a>
评论 #13375772 未加载
andrzejszover 8 years ago
Does anybody knows about syntax highlighting support?
评论 #13389518 未加载
TurboHaskalover 8 years ago
What an unfortunate name.
评论 #13375207 未加载
评论 #13375803 未加载
etaover 8 years ago
nice
etaover 8 years ago
wow
the_dukeover 8 years ago
Yay, Haskell on the JVM.<p>Again.
general_aiover 8 years ago
Java&#x27;s hunger for memory, combined with Haskell&#x27;s unpredictability wrt memory allocations due to laziness. What could possibly go wrong.
popoboboover 8 years ago
Yet another JVM language. YAJVML
agounarisover 8 years ago
Its amazing that if you put down all the languages that consider themselves powerful and scalable you somehow reach what religion is...everybody thinks their god is the only one, and if one indeed exists all the rest are wrong by default!<p>Technology is fair and there is a reason why haskell is not used apart from niche or academic projects. If you want to use jvm to deliver functionality for your users just a &quot;boring&quot; technology. No user, never, cared about the programming paradigm.
评论 #13376680 未加载
评论 #13376723 未加载
评论 #13376655 未加载
评论 #13379720 未加载