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.

Lily Programming Language

210 pointsby alg0rithalmost 9 years ago

22 comments

chriswarboalmost 9 years ago
Looks very nice! The templating and server support makes Lily look like a nice &quot;next step&quot; for PHP developers&#x2F;shops&#x2F;projects. PHP&#x27;s &quot;installed everywhere&quot; feature is pretty hard to beat, especially for host-it-yourself projects like Wordpress. I could see such a language catching on for custom, in-house development though; for example to implement microservices.<p>It&#x27;s nice to see that there&#x27;s a trend for such small, (relatively) simple languages to include nice features like first-class functions, convenient lambda notation, sum types, type inference, etc. A few years ago it seemed most new languages were just nitpicking over syntax, without bringing much to the table. I&#x27;m glad to see we&#x27;re leaving the local minimum of &quot;class-based OO with slight different static method mechanism&quot;!
alkonautalmost 9 years ago
Love it. It&#x27;s like someone used C# a lot and got fed up with how much cermony goes into making a simple sum type and exhaustive handling of the variants.<p>A pet peeve of mine is the sloppyness by which .NET allocates things like iterators etc. I&#x27;d very much like to see zero-cost abstractions in a new language, so that there is no surprise differences between various ways of iterating over collections. I read it only quickly but couldn&#x27;t find anything related to how enumeration&#x2F;iteration works under the hood.
评论 #12015667 未加载
评论 #12017081 未加载
评论 #12019279 未加载
评论 #12017805 未加载
评论 #12034749 未加载
a_calmost 9 years ago
Hello jesse, it is one hell of an inspiring work!<p>I read from your blog that you are self-taught programmer. Would you mind sharing something about yourself? In particular, I&#x27;m interested in area like what do you do for your day job? Is it programming related? What resources did you come across that you find particularly useful in making lily? Anything would be appreciated!
评论 #12017620 未加载
ebbvalmost 9 years ago
I like some of the things they&#x27;re doing here but I have a big problem with the language design choice of having multiple valid syntax doing the same thing (e.g. declaring a new class as Cat(&#x27;Spike&#x27;), Cat.new(&#x27;Spike&#x27;) or &#x27;Spike&#x27; |&gt; Cat.)<p>I tend to subscribe to the philosophy that language designers should be as strict as possible; choose the &quot;best&quot; syntax for doing something and only allow that unless there&#x27;s really compelling reasons for alternatives.
评论 #12015699 未加载
评论 #12015741 未加载
评论 #12015535 未加载
mhdalmost 9 years ago
The language itself might be quite different, but a few of the design parameters remind me of Wren[1], another language that&#x27;s on my &quot;try to embed it somewhere&quot; list...<p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;munificent&#x2F;wren" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;munificent&#x2F;wren</a>
Profanalmost 9 years ago
I wish we had more actually decent statically typed interpreted languages (ones that are easily embeddable, to be precise), this looks very interesting.<p>And no, AngelScript REALLY does not count as anything interesting. (unless you really really like C++)
评论 #12024641 未加载
idankalmost 9 years ago
This is an impressive volume of work, especially for one person. How do you stay motivated?
评论 #12016069 未加载
rufusroflpunchalmost 9 years ago
I really dig the syntax of this language, I must say. Great job. I&#x27;m interested in the embeddability of this language. There doesn&#x27;t seem to be any documentation on the API features, short of looking through the source code. I would be greatly interested in this. Specifically, how to add calls that the Lily code can call, or how to call Lily code from within the interpreter.
评论 #12016956 未加载
perceptalmost 9 years ago
Is Lily a cat?<p>Anyway, somebody hire this guy. I&#x27;m sure someone that can do this is qualified to make web CRUD for lots of money (should he so desire).
评论 #12019960 未加载
akavelalmost 9 years ago
• Have you considered allowing returning multiple values, like in Lua and Go, and also returning errors through them? esp. instead of exceptions? (Though I suspect this could be problematic to match with the sweet |&gt; pipe operator)<p>• Have you considered supporting Lisp&#x2F;Scheme-like or Rust-like macros? or Rebol-like DSLs? (though I suppose the latter are probably strongly tied to Rebol&#x27;s minimalistic syntax)
评论 #12019986 未加载
rmsaksidaalmost 9 years ago
I love that there&#x27;s a focus on low memory usage.
评论 #12016212 未加载
wired_devilalmost 9 years ago
I don&#x27;t like this syntax: &quot;if: {&quot;. Using &quot;:&quot; for a one line statement is ok, but in most cases you have to use multiple lines and end up with two identifiers that represent the same thing. Maybe you can make the &quot;{&quot; for multiple lines and &quot;:&quot; for one line. I like to have an indentifier for one line statements, unlike the C approach.
评论 #12022365 未加载
0x54MUR41almost 9 years ago
Earlier submission: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11934295" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=11934295</a>
PeCaNalmost 9 years ago
I registered #lily on Freenode if you want it.<p>Impressive work! I think this is the first relatively conventional language that I&#x27;ve gotten really excited about in a while. It&#x27;s a really nice blend of features and a quality implementation. Definitely going to use it next time I embed a language.
S4Malmost 9 years ago
Does it support operator overloading? I tried it quickly (`define +(...){...}`) but it didn&#x27;t work. Maybe there is a notation for it but I couldn&#x27;t find it in the tutorial.
评论 #12015962 未加载
codezeroalmost 9 years ago
This looks pretty cool.<p>When ever I discover a new language, I try to find out why it was created.<p>Why did you make Lily? Are you aiming to solve any specific problems, or is it a fun project you wanted to do?
评论 #12017707 未加载
malciumalmost 9 years ago
Why did you name it Lily? That&#x27;s my daughter&#x27;s name so I&#x27;m genuinely curious.
评论 #12017668 未加载
arranfalmost 9 years ago
What can I go out and immediately build in Lily as a &quot;useful&quot; hello world program?
评论 #12016804 未加载
spriggan3almost 9 years ago
What about polymorphism ?<p>How does one deal with low coupling? For instance, in PHP I would have used interfaces to decouple collaborators.
评论 #12015942 未加载
hyperpapealmost 9 years ago
Is the speed of startup entirely based on the dynaloading, or are there other choices that make it faster than Lua?
malciumalmost 9 years ago
Why did you name it Lily?
评论 #12019743 未加载
tompalmost 9 years ago
<p><pre><code> print($&quot;My name is ^(@name).&quot;) </code></pre> I don&#x27;t understand why anyone would still require special notation for interpolated strings, when we have the awesome and unambiguous string interpolation syntax introduced by Swift (granted, this project was started in 2011, before Swift).<p>&gt; Reference counting has the benefit of giving consistent, and more easily measured performance. There&#x27;s no fear of the garbage collector suddenly leaping into action right at the worst time, or having to tune the collector to minimize pauses.<p>LoL. Refcounting can lead to just as long pauses as GC, if your reference is the last reference to a huge object graph.
评论 #12015902 未加载
评论 #12015933 未加载
评论 #12015943 未加载
评论 #12016290 未加载