TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

I missed Nim (2014)

143 点作者 mapleoin超过 9 年前

14 条评论

jerf超过 9 年前
It seems to me that the evidence is that in the 2010s, it is exceedingly difficult for a new language to break into what I call the &quot;B-class language list&quot; (they aren&#x27;t in the Nobody Was Ever Fired For Choosing (Java&#x2F;C#) set, but the languages you can use pretty much anywhere but Big Enterprise without anybody raising an eyebrow, like Python or Ruby) with some sort of serious corporate backing.<p>There hasn&#x27;t even been much from the 200xs that has broken into that list. Looking at the Tiobe list for concreteness (yes, it may not be perfect but it isn&#x27;t completely wrong, either, so close enough), you have to go to 14 to Swift to find something not from the 20th century. At 17 (Groovy) you debateably have something that wasn&#x27;t pushed by a company (that&#x27;s actually a complicated question), and all the way down to 21 to get to D to find the first thing that clearly comes from a single person anytime recently. (I won&#x27;t go any farther because the list probably is getting to be just noise below that.)<p>I hypothesize that it is because we expect so much from our languages now. If you don&#x27;t have a solution for serving web pages from your new language, don&#x27;t even hope to make that list. But it could also be because developers are nervous about choosing something so obscure and having it just fade away when the competition that doesn&#x27;t have that problem is already pretty good. Compared to 20 years ago we are spoiled for choice, so perhaps getting your head about the rest even in a niche is simply harder than it used to be. But I really don&#x27;t know what it is.... but observationally, it seems to take a lot more than just &quot;being a good language&quot; nowadays to attain great success in the computer language area.<p>PS: This is the sort of thing that leads me to disagree strongly with the idea that the computer world moves quickly. When it requires more than half an average career for dominant language to shift, that&#x27;s not &quot;fast&quot;.
评论 #10948128 未加载
评论 #10948125 未加载
评论 #10947727 未加载
评论 #10949553 未加载
bluejekyll超过 9 年前
So this is an old article. I wonder if his perception of Rust has changed since it&#x27;s 1.0 debut.<p>&gt; Rust is “C syntax” and Nim is Python-ish. Nim wins this one hands down for me.<p>This is always going to be a really personal choice for most people. I actually prefer all the clarity I get from the curly brackets.<p>&gt; Nim has Exceptions with tracking (!) and Rust has explicit error handling via the return value. Personally… that feels like a big step backwards, much like error handling in Go. Again, for me, a clear win for Nim. I know others feel differently, but that is ok :)<p>Rust has made a plain distinction between expected error return behavior (like parse errors) that you can recover from, and panic! which is the closest thing to exceptions. If you come from languages and code bases that suffer from huge amounts of confusion b&#x2F;c of things like RuntimeExceptions vs. CheckedExceptions vs. Errors (Java) it&#x27;s a blessing to have strongly typed return values that require doing something with the error case.<p>Though, errors in rust could be easier to work with, they are a bit painful now. It looks like there is some stuff on the road map to do just this, based on a merge I saw recently.<p>&gt; Rust is pushed by Mozilla, Nim is a grass root “true open source” language. Having a “backer” might be good, but I like grass root efforts since they tend to be more open and easier to participate in as a “full” member.<p>Mozilla is a saint for backing this effort. Love them or hate them, it&#x27;s like Redhat&#x27;s support of Linux. It&#x27;s great that there are paychecks paying for this development.<p>The Rust community is really strong, and doesn&#x27;t (IMO) suffer from the issues related to BDFL and has open transparent discussions around requested changes.
评论 #10947993 未加载
评论 #10947897 未加载
评论 #10947770 未加载
评论 #10947822 未加载
评论 #10947761 未加载
aikah超过 9 年前
It&#x27;s crazy that in 2016, people are still seeking the holy grail of statically typed, memory safe, no VM programming languages that retains most of the advantages of dynamically typed languages. My point is it should be there already!<p>Well , I guess language design is just hard... Yet the demand exists, and it&#x27;s huge no question.<p>Out of all of these, i still think D is the most interesting one (I like C#, I want generics ...).<p>I don&#x27;t agree with some choices Nim made but it still look interesting. Go is way too rigid for my programming style. Yet Go set some expectations when it comes to developer experience, so it was a step in the right direction.
评论 #10949330 未加载
评论 #10948206 未加载
评论 #10950465 未加载
3pt14159超过 9 年前
Nim is great. It is fast and it works everywhere that C works or JavaScript works since it transpiles to either (and then compiles if transpiling to C). It is super fucking fast (usually faster than C) and it feels like it has none of the limitations that you normally find out there.<p>That being said, there are a couple of issues.<p>1. Like Crystal, Nim still doesn&#x27;t have HTTPS for its webserver, and with both, the default instructions are insecure. (Download this thing and run it in your shell, pay no attention to any MITM that can trivially root your machine).<p>2. The community is really pro, but the arguments are too tiring. We had a huge argument over the equivalent of Ruby&#x27;s chomp. Everyone is so afraid of bloat in the standard lib (which I don&#x27;t really understand, since I&#x27;ve never found myself wanting <i>less</i> string methods).<p>3. While the syntax is way better than Rust, Go, et al. It borrows some annoyingness from Python where it could have looked to Ruby for better guidance. For example, sort vs sorted. Sorted is the <i>safer</i> operation in Python. It returns a new sorted list. Now what normally happens in the real world is that programmers make the safe version <i>first</i> and <i>later</i> make the fast version. But imagine that the first version was called &quot;sort&quot; and it returned a new array, how are you to transition to a fast sort and a safe sorted? Error prone patching. Ruby&#x27;s array.sort vs array.sort! is much better during transition, more legible, just all around better. It means less mangling around and it means that 99.9% of the time you know the method you&#x27;re calling is safe if it doesn&#x27;t have the bang after it.<p>4. There is still some instability here and there when you try to do cute things. I can&#x27;t remember exactly what it was, but something along the lines of passing channels over channels segfaulted. This leaves you a little concerned about just how much abstraction you build up.<p>That being said, I fucking love Nim. It&#x27;s so fun to write, it&#x27;s super fast, it&#x27;s quite legible, and you can do literally <i>anything</i>. It&#x27;s had shared objects (dlls) since I started using it, so Ruby &lt;-&gt; Nim is possible and fun. It&#x27;s very debugable and once it hits 1.0 and gets more mainstream use I&#x27;m sure it&#x27;s going to be a really popular language.
评论 #10947891 未加载
评论 #10948360 未加载
Manishearth超过 9 年前
EDIT: I realized the post was written before Rust&#x27;s governance was diversified (<a href="https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rfcs&#x2F;blob&#x2F;master&#x2F;text&#x2F;1068-rust-governance.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;rust-lang&#x2F;rfcs&#x2F;blob&#x2F;master&#x2F;text&#x2F;1068-rust...</a>). Rust at that time was &quot;Mozilla led&quot;, but this isn&#x27;t really true now.<p>&gt; Rust is pushed by Mozilla, Nim is a grass root “true open source” language. Having a “backer” might be good, but I like grass root efforts since they tend to be more open and easier to participate in as a “full” member.<p>&gt; UPDATE 2014-11-08: I know both languages are open source and have communities. But it remains a fact that Rust is lead by Mozilla (I would be surprised if not) and Nim is lead by its community.<p>Whilst the majority (not all!) of the core team consists of Mozilla employees, the wider governance does not (<a href="http:&#x2F;&#x2F;rust-lang.org&#x2F;team.html" rel="nofollow">http:&#x2F;&#x2F;rust-lang.org&#x2F;team.html</a>). Anyone can participate in RfCs, and IIRC people can also request to join subteam meetings (not exactly sure how this works), though the main _discussion_ is out in the open on the RfC anyway. Additionally subteam composition may grow or change over time.<p>Mozilla certainly is backing a large chunk of Rust development, but as time passes this is becoming less and less true as large features are being written by community members. As far as decision making is done it&#x27;s pretty open now with a defined process and completely open.<p>So &quot;Rust is led by Mozilla&quot; isn&#x27;t exactly true anymore. The core team isn&#x27;t 100% Mozilla, and the overall governance is even less so.
jswrenn超过 9 年前
&gt; Most advanced statically typed languages completely SUCK in the programmability department. Unless you are some genius of course.<p>Is this a common opinion? I&#x27;ve certainly heard the criticism that statically typed languages slow you down because you&#x27;re fighting the compiler, but not that they&#x27;re the only for exceptionally smart people. That&#x27;s a troubling conclusion and potentially a self-fulfilling prophecy.<p>I&#x27;m curious how the author came to this opinion. Every &quot;advanced&quot; statically typed language I can think of isn&#x27;t exclusively complicated type constructs; it&#x27;s very much possible to write programs with simple type constraints. I wonder this opinion stems from a leak of Haskell&#x27;s popular reputation.
评论 #10948007 未加载
matt_wulfeck超过 9 年前
In my opinion, if a language really wants to compete with Go in my space (devops&#x2F;infrastructure), then it absolutely _must_ have static-linked binaries. This feature has been such a huge win, and I continue to appreciate it every time I go back to something else.<p>As far as I can tell Nim doesn&#x27;t have statically-linked and compiled binaries out-of-the-box. Even if it wins in other language-specific features, Go will continue charging on in the infra space.
评论 #10948173 未加载
评论 #10947937 未加载
评论 #10948559 未加载
评论 #10973997 未加载
评论 #10948382 未加载
cookiecaper超过 9 年前
I&#x27;m really excited to try Nim out in a project. It&#x27;s been at the top of my list for a while, despite the evident rise of Elixir as the next hot new thing. Really love the Pythonish syntax and the ability to compile down to C and run as a native program.<p>Edit: just noticed this was posted on Oct 20th, 2014. Nim has been evolving <i>a lot</i> over its short lifetime and it&#x27;s possible that some statements in this article are no longer pertinent.
评论 #10948560 未加载
jfb超过 9 年前
&quot;I ended up sifting out the 5 most interesting in my not so humble opinion - Go, Rust, Dart and Julia.&quot;<p>Five?
评论 #10947607 未加载
评论 #10948459 未加载
评论 #10974027 未加载
z3t4超过 9 年前
I seem to disregard languages that imports to global name-space by default, because such programs tend do create spaghetti nightmare inception.
kiliancs超过 9 年前
It&#x27;s interesting to see how some URLs are already invalid. For example the ones pointing to nimrod-lang.org
评论 #10974016 未加载
robohamburger超过 9 年前
I tried Nim last year after getting burnt out on rust beta. My impression is that it has a lot of the same issues Haxe has in that it seems to be a transpiler. The specific problem I hit was returning a list or vector particular way caused strange C++ code to get generated.<p>It would be cool if they redid the backend so it functions as a real compiler with llvm.<p>The transpiler issues + the smallish community pretty much scared me off. I am not sad I &quot;missed it&quot; even if it was a cool experiment.
评论 #10949221 未加载
评论 #10974040 未加载
k__超过 9 年前
Rust with Nim syntax and I&#x27;m sold!
评论 #10947950 未加载
评论 #10948606 未加载
systems超过 9 年前
my list of 5 most interesting languages would be<p><pre><code> * Rust * Perl6 * Clojure * F#</code></pre>