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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: What's the most underrated programming language?

49 点作者 mohitmun超过 7 年前
Recently I started reading about erlang[1][2], And I started feeling why its not widely popular as python or go. Though I have very little knowledge about functional language and tradeoffs when it comes to using them. Just wanted to know more about it and any other languages which are underrated<p>[1]blog.whatsapp.com&#x2F;index.php&#x2F;2012&#x2F;01&#x2F;1-million-is-so-2011&#x2F; [2]https:&#x2F;&#x2F;stackoverflow.com&#x2F;q&#x2F;2708033&#x2F;2577465

50 条评论

wizardofmysore超过 7 年前
Java is really underrated. It is popular but it isn&#x27;t thought of as powerful or cool as compared to python, haskell etc.. I disagree.<p>a. Object oriented code done right is the best way to handle production code.<p>b. Java has introduced streams, lambdas etc.. has any other language shown this type of adaptation to times ?<p>c. Python, Ruby etc.. don&#x27;t have equivalent performance<p>d. c++ obviously beats it on performance but I know the pain of porting c++ code<p>e. Most of the boilerplate code is either auto-generated or you can use Lombok type framework to generate them for you<p>f. Java made a really good comeback with Android<p>So the new kids in the block might not like Java because it isn&#x27;t cool but Java has stood the test of time.
评论 #16282779 未加载
评论 #16282748 未加载
评论 #16282773 未加载
评论 #16282708 未加载
评论 #16283218 未加载
评论 #16282746 未加载
评论 #16283026 未加载
评论 #16282971 未加载
评论 #16282754 未加载
评论 #16282683 未加载
评论 #16282928 未加载
评论 #16282696 未加载
banashark超过 7 年前
Not underrated, but F# gets a lot of flack for what has proven an extremely usable and productive language.<p>* It is functional and succinct by default, but allows you to go mutable and fast when needed (see the alioth benchmarks).<p>* Open source culture<p>* The tooling (thanks to kcieslak and others) is fantastic<p>* Web story is covered well by suave&#x2F;giraffe on the backend, with fable-elmish as a personal favorite if I need complex front-end functionality (most stuff I have is just regular pages though).<p>* Mobile story through Xamarin(Forms is not my favorite, but Native works fine) or Fable<p>* To mention javascript again, I think Fable has a ton of well thought out features compared to other transpiled languages<p>* Testing via expecto (and just github.com&#x2F;haf in general)<p>* A whole wealth of libraries through .net integration<p>* I can compile a binary to execute on linux for easy deployments, or target osx to create convenience command line applications for my coworkers<p>There are some negatives (some C# interop gets inelegant, some tooling is left to the community as a responsibility, other minor things), but overall it has all of the important things.
o2348diuu超过 7 年前
Nim. I understand some reasons for this, as I didn&#x27;t pay attention to it very much for awhile myself. I think it&#x27;s only the last year or two that it&#x27;s reached maturity. Its primary alternatives also have the advantage of huge existing resource bases.<p>I&#x27;m someone who thinks there is room for lots of good languages, and each has its role, so I don&#x27;t think languages should be pitted against one another necessarily.<p>However, with Nim you have something very similar to Python in its expressivity, but with performance comparable to things like Rust and C++. The metaprogramming is very well done as far as I&#x27;ve seen, and it seems very well thought out. It also has solid, useful compilation targets.<p>It just seems like the whole package for a lot of use cases and I&#x27;m not sure why it&#x27;s not getting a lot more attention.
评论 #16282797 未加载
评论 #16284930 未加载
jordigh超过 7 年前
D.<p>It really is a great successor to C++, with lots of new ideas taken from other languages too, and some very insightful language designers. I wish people would give it more of a chance and not stop at &quot;it has a GC&quot; and decide that this makes the whole language worthless.<p>It&#x27;s been around for a while but hasn&#x27;t gotten popular yet. I don&#x27;t know if the weird license for the reference compiler is what slowed down adoption. At least for me, that&#x27;s why I was hesitant to commit to D. After the license change, I&#x27;ve had so much fun with it.
评论 #16282788 未加载
评论 #16282767 未加载
notacoward超过 7 年前
I&#x27;m going to riff on what Null-Set said about Ada, which people like to criticize for its complexity but which actually solved a lot of hard problems in very creditable fashion for its day. The complexity complaints are a joke, considering that that both Java and C++ have since become more complex than Ada <i>ever</i> was by trying to solve some of the same problems -and in C++&#x27;s case largely failing. If Ada (or its relative Modula) were introduced today, it would seem like a breath of fresh air compared to those two.<p>Special runner-up: MOOcode, the native language of LambdaMOO. Still one of the most coherent and pleasant object-oriented languages I&#x27;ve used. It&#x27;s especially notable for its &quot;code runs as author not invoker&quot; protection model and call-stack introspection. People could learn a lot from that.<p>My first thought was Nim, and o2348diuu already explained why. Second thought was Lua, but a couple of people beat me to that. Haskell and Elixir are definitely <i>not</i> underrated. They&#x27;re under<i>used</i>, certainly, but that&#x27;s not the same thing and IMO Haskell is often <i>over</i>rated.
评论 #16289520 未加载
farnsworthy超过 7 年前
Can we call SQL a programming language, or no? (I was trying to think of someone who&#x27;s been around for a while, but maybe doesn&#x27;t receive his just due.)<p>SQL seems to power nearly everything at some level, has much code written in other languages for the sole purpose of interfacing with it (for better or worse), has inspired other concepts and technologies (even as they are defined against it as what they are <i>not</i>), etc.<p>I don&#x27;t think anybody mentioned C yet either, another foundational case…
评论 #16283076 未加载
评论 #16282817 未加载
评论 #16282812 未加载
TimJYoung超过 7 年前
Object Pascal (FreePascal&#x2F;Lazarus&#x2F;Delphi)<p>Many, many production applications have been written using these languages&#x2F;environments, but the language has fallen out of favor since the early 2000s.<p>- Code is easy to read and understand, and you can get a new developer up to speed quickly<p>- Can be used as a high-level language, a low-level language (you can even include in-line assembler), or both<p>- Blazing fast compilation<p>- Statically-typed, and includes classes, records (structs), reference-counted interfaces and strings<p>- Lots of implementations and platforms
评论 #16285023 未加载
评论 #16299234 未加载
danielvf超过 7 年前
There once was a language that compiled in milliseconds - you pressed a single button and your changes were instantly in front of you. What&#x27;s more a clever separation of data and code meant that this instant reload would show your newly compiled app with your data still in place, and you looking at the same screen as before, exactly where you had left it, except powered by your new code.<p>This separation between data and code also enabled trivial scaling for huge system, as well as the opposite - hundreds of apps, each belonging to a different customer could share the same system - decades before docker or k8 was born.<p>This language was written when Objects were the only thing people talked about. In a counter-cultural move, the language&#x27;s author wrote the entire standard library as only functions. The language could be easily learned - just look at the list of functions for the one that does what you want.<p>It&#x27;s cross platform - the user interfaces you build work on all platforms with a single codebase.<p>Its combination of scaling, quick development iterations, and ease of use powered the rise of fourth largest tech company in the world today. In fact, just a single app written in this language has more than a billion people using it every day.<p>Darkly, however, the name of this language may not be spoken here. Even by praising it obliquely, I risk censure, and my perceived value of my work being cut by eighty percent in penalty.<p>I will not name it.
评论 #16284714 未加载
评论 #16284812 未加载
评论 #16283229 未加载
评论 #16284863 未加载
评论 #16284237 未加载
评论 #16295841 未加载
评论 #16283020 未加载
评论 #16284584 未加载
friendly_chap超过 7 年前
I think it&#x27;s Haskell.<p>I know sometimes it gets some hype but Haskell and its ilk is just so above the quality of any other language it&#x27;s mind bending. Whenever a hard language design problem comes up in any new language, Haskell has solved it more than 2 decades ago.<p>The ecosystem (Hackage etc) is pretty bad though.
评论 #16282647 未加载
评论 #16282761 未加载
评论 #16282844 未加载
评论 #16282629 未加载
评论 #16282753 未加载
评论 #16283058 未加载
评论 #16282601 未加载
henrikeh超过 7 年前
Wolfram Language &#x2F; Mathematica. Probably not &quot;underrated&quot; since it is backed by an entire company with the sole purpose of developing it -- but as a programming language it is absolutely underappreciated.<p>* Essentially a Lisp. Data and program can be freely interchanged and is frequently done in completely normal code.<p>* The most impressive &quot;standard&quot; &quot;library&quot; in existence: everything from symbolic calculus, machine learning, UI building, graphics, signal processing, data import and export, foreign function interfaces and it just goes on and on.<p>* Incredible attention to consistency and interoperability. Everything behaves in predictable and orthogonal fashions. Right from the low-level pattern matching up to interacting with the build in database.<p>* The best documentation of any programming language. Nothing compares even slightly in breath, friendliness, consistency.
hluska超过 7 年前
I&#x27;ll say PHP because it&#x27;s so underrated that I&#x27;m somewhat afraid to mention it here.<p>It&#x27;s far from the most sane language I&#x27;ve ever used, and as much as I love it, I&#x27;ll admit there are parts of the syntax that straight up hurt my soul. Yet, despite all the drawbacks, if I need to write something fast, PHP and a micro-framework (I like Slim) is always my first choice.
评论 #16289859 未加载
评论 #16282961 未加载
评论 #16284932 未加载
评论 #16284466 未加载
dvfjsdhgfv超过 7 年前
D - it could be a replacement for many languages right now, and in many aspects is superior to Go, but since it lacks a big brand behind it, people are afraid to use it (although some do, successfully).<p>Another one is Nim, with great potential, but still some rough edges here and there.<p>Last but not least: Red. If this language gains momentum, it will change the game forever. The current implementation take the concept of cross-compilation to a new level (although the current lack of View on Linux is somehow disappointing.)
Philipp__超过 7 年前
Clojure. It’s built on top of JVM, it’s dynamically typed but it makes so much sense, it’s probably language that makes most sense out of dynamic type system. It really is language for solving problems, if you get past that initial brackets lisp barrier, it is amazing, very efficient and it feels really good to solve problems with it. I don’t know why but it just feels great to use it. Plus it has really nice tools for Emacs. I am learning it and really enjoy it, astonishingly powerful.
dsr_超过 7 年前
Nobody loves Perl<i>, but it holds the world together.<p>Perl is happily unoptimized for anything, and is usable for nearly everything. It&#x27;s easy to write and easy to make it hard to read.<p>You can write Lisp in Perl, and some people insist on it.<p>The CPAN repository has a module for nearly everything, and an amazingly high percentage are well documented.<p></i>There are some weirdos who love Perl.
评论 #16289527 未加载
评论 #16288134 未加载
评论 #16288004 未加载
lazyjones超过 7 年前
The whole Wirth family of languages. They had clean, readable syntax, proper modularity, fast compilation, good performance, safety, productivity, GNU compilers. But they were shunned because people apparently didn&#x27;t want to type &quot;begin&quot; and &quot;end&quot; and preferred unintelligible, clever tricks in C.
评论 #16282906 未加载
评论 #16286052 未加载
kangoo1707超过 7 年前
To me it&#x27;s Elixir. My company is a PHP shop, which results in complicated OOP stuffs (from most junior devs), as well as the inability to take advantage of concurrency. The syntax of PHP makes me sick just to look at.
评论 #16282952 未加载
jernfrost超过 7 年前
Probably not underrated but not very well known. I’d say Julia as it easily one of the best script languages.<p>But I’ve also wondered why D is not more widely used as it is a much nicer version of C++ and integrates fairly well with it.<p>Also a bit odd that OCaml and SML isn’t more widely used
评论 #16282814 未加载
hercynium超过 7 年前
This depends on your definition of &quot;underrated&quot; but I&#x27;d definitely throw Perl 5 into the ring here.<p>Edit: Specifically, Perl 5 + CPAN is what makes it so much better than many people think. The language itself is insanely flexible, which lends itself to extensions that greatly increase its expressiveness. IMO, if you start with Moose (from the CPAN) as part of your &quot;core library&quot; Perl 5 becomes a very powerful tool for writing very nice code, at any scale.
kamaal超过 7 年前
Lisp.<p>Its the most powerful language that has been in existence and yet most modern programmers haven&#x27;t heard about it or used it.<p>Almost everything to do with the ecosystem is magic, and its not even a programming language by many a measure, its a thinking paradigm so powerful that it could make many things that look impossible a walk in the park. I&#x27;ve only been learning it for more than a month now, and this is what I&#x27;ve seen.<p>1. Unmatchable features when it comes to modifying structured data of any kind. Many eons ago our foregeeks seemed to have imagined everything in computer science as either a list or combination of lists on somekind. Tree, Queues, Heaps, Stacks, Vectors, Graphs, Sequences, Sets... You name it, these are all lists or a combination of lists. The programs too are lists(abstract syntax trees). Most modern day data structures you will will deal with XML, JSON, Tables, Matrices are lists or a combination of lists. And lisp is list processing. Once you get a hold of lisp and its paradigm of thought, even difficult algorithms and data structures feel like a walk in the park. I used to struggle with white board coding and algorithm stuff, these day most of it comes to me naturally or little work, when I think of it in terms of lisp paradigm.<p>2. Recursion: For some reason, its very easy to think recursively in lisp. And that makes very easy to represent hard solutions.<p>3. Functional programming: Full functional programming features, no holds barred.<p>4. REPL: If you haven&#x27;t used the Lisp REPL, you haven&#x27;t seen a real REPL yet. I was completely blown away by the REPL. Combination of Emacs + SLIME is just too good. And you can hot swap code by attaching to a live process. Which is totally insane.<p>4. Continuations: Makes it very easy to express a variety backtracking problems.<p>5. Macros: Ability to extend and add any language feature and paradigm you want, at compile time at 0 costs. And anything you add becomes a part of the language.<p>6. Libraries: Most lisps these days have libraries for most of the needs.<p>7. Books: Lisp easily has the most eccentric, fun and enlightening books in all of CS history.<p>When you code in lisp it feels you are dropping tiny little recursive functions all over the place which grow like a small organism to a very intelligent being.<p>This is closest I have to come to programming Nirvana so far. The last time before this was when I used Perl.
评论 #16283265 未加载
protomyth超过 7 年前
NewtonScript was certainly underrated. Its use of frames with persistence (Soup) with queries was eye opening. I also loved the ease of UI development due to a proper prototype-based framework.<p>A further development of F-Script should have been the successor to Objective-C instead of Swift. It was fun and its APL influences really complemented the Objectice-C &#x2F; Smalltalk collections. It also respected Objective-C conventions.
lettergram超过 7 年前
I really enjoy Ruby, Lua, and Lisp.<p>I find it interesting none of them are really used a ton in industry, but I&#x27;ve written my own Civ V and Civ VI mods (and helped other people with theirs). Lua is pretty much a pleasure to work with everytime.<p>Lisp is one of those odd balls, that is both prelevant, but also rarely seen in industry. My primary interaction has been with Scheme, Racket, and elisp. Wiring modes for Emacs is always fun (in elisp) and amazingly short, consise, and powerful.<p>Ruby is a dream, mostly I use it for Rails, but the whole ecosystem is well thought out and worth the time (what little you need) to put in. I&#x27;ve setup websites at scale in Ruby on Rails, with components written in Ruby inline C to make it much faster, an NLP library and much more (<a href="https:&#x2F;&#x2F;projectpiglet.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;projectpiglet.com&#x2F;</a>). Better yet, I&#x27;ve seen non-programmers pick it up in a few weeks. Honestly, when I hear someone is developing an app in Springboot (Java) or some other webframework, I&#x27;ll often show them they can complete their whole app in a couple days with Rails.
segmondy超过 7 年前
Prolog, Prolog, Prolog.
评论 #16282741 未加载
SAI_Peregrinus超过 7 年前
Forth. It&#x27;s a procedural language stripped down to the absolute minimum amount of syntax. Somewhat like what lisp is to functional languages. Its low level and minimal overhead make it excellent for highly constrained embedded systems.
评论 #16285725 未加载
gargravarr超过 7 年前
I did some classes on the parallel language Occam-Pi back in uni. I really liked some of the designs - it&#x27;s designed like a circuit diagram, with data flowing between segments in channels, and if no data is flowing, the channel and its attached segment blocks without consuming resources. It&#x27;s also very easy to switch between series and parallel execution, and by designing it like an electrical circuit, it becomes possible to identify potential deadlocks and prove your program will function as expected. It&#x27;s mostly an academic language, but it&#x27;s worth looking at.
jib超过 7 年前
I would have said erlang as well, or possibly smalltalk, but I guess it depends on how you define underrated.
评论 #16282716 未加载
AboutTheWhisles超过 7 年前
<a href="http:&#x2F;&#x2F;claylabs.com&#x2F;clay&#x2F;" rel="nofollow">http:&#x2F;&#x2F;claylabs.com&#x2F;clay&#x2F;</a><p>Clay is a language that is no longer being developed, but it was a well designed substitute for C. It was built with templates in mind from the ground up and has modules, move semantics and no garbage collection.<p>Also Intel&#x27;s ISPC. If you want real speed, ISPC makes it much more practical to take advantage of SIMD, though it seems not many people know about it.
quickthrower2超过 7 年前
English.<p>You can write your requirements in this language, then send to a programmer to convert them to code.
rntz超过 7 年前
I think Racket is underrated. (Dunno about &quot;most underrated&quot;.)<p>It&#x27;s a batteries-included Scheme&#x2F;Lisp dialect with the best documentation I&#x27;ve ever seen, a state-of-the-art macro system, and a very friendly community. It has performance better than your typical dynamic language (Python, Ruby) though not as good as the highly optimized ones (Javascript V8, LuaJIT).
评论 #16283689 未加载
dblotsky超过 7 年前
C.<p>Often people don’t learn anything about a language’s internals, or a computer’s internals, when they learn a “nice” language with garbage collection and dynamic typing and massages. IMO for long-term software engineering that stuff is important to know.<p>Many see C as this old, outdated, uncool language, and never even realise that so many other languages are written in it.<p>But really, when it comes to perf and correctness, it’s still king:<p>- Often you can try to optimize a simple python program to make it run faster... or you can rewrite it in C and get a 1000x boost for free<p>- It has compilers that have proofs of correctness<p>- There are many tools that can prove a C program’s correctness<p>- It’s still the best way (IMO) to learn how the computer works while learning the language<p>- It doesn’t have OOP (which makes me sad), but you can get there by writing C++ as “C with classes”<p>- It probably has the most job security guarantees of any language: it will be a looooong time before C goes away<p>- It’s so standard and supported, programs from 40 years ago still run today; I don’t know if you can say that about any other language (except like, COBOL)
评论 #16283185 未加载
评论 #16282977 未加载
analognoise超过 7 年前
FreePascal&#x2F;Lazarus.
arethuza超过 7 年前
PostScript - just because I had some mind bending fun with it years ago in NeWS &amp; HyperNeWS
drKarl超过 7 年前
Have a look at Parallel U niverse&#x27;s Quasar. It&#x27;s q Java library that provides lightweight threads called fibers. They have some interesting older entries in their blog with benchmarka and comparisons to Akka etc
peterhi超过 7 年前
Icon was a language I used in my youth. It took me a long time to unlearn some of the very neat features of the language.<p>if 1 &lt;= x &lt; 99 rather than if 1 &lt;= x &amp;&amp; x &lt; 99 and a host of much more natural expressions
评论 #16299335 未加载
dintech超过 7 年前
The Q Language: <a href="http:&#x2F;&#x2F;code.kx.com&#x2F;q4m3&#x2F;0_Overview&#x2F;#00-the-evolution-of-q" rel="nofollow">http:&#x2F;&#x2F;code.kx.com&#x2F;q4m3&#x2F;0_Overview&#x2F;#00-the-evolution-of-q</a>
briankelly超过 7 年前
I would say Erlang and OCaml are compared to Go despite being in a similar space and having particular advantages. It seems like Go gained traction over them largely due to Google&#x27;s backing and having a Python-like philosophy of aesthetics - namely simplicity and readability over sophisticated features - and it seems like many Go developers came mostly from Python.<p>You can take my perception with a giant grain of salt though: I mostly write Scala these days, which has to be Go&#x27;s polar opposite of popular languages in terms of design philosophy.
KasianFranks超过 7 年前
Tcl
AstralStorm超过 7 年前
Fortran. 60+ years and still useful code used widely thanks to netlib and certain BLAS implementations.<p>Has many superb (proprietary) compilers and handles math like it is nobody business without having to drop into manual vectorization tricks like C and C++.<p>Given good variable naming convention it is quite readable too. It is still being developed and enhanced as a language.
评论 #16299364 未加载
drakmail超过 7 年前
I think it&#x27;s Crystal lang, it have a very nice syntax and performance compared to go &#x2F; rust &#x2F; c++
grawprog超过 7 年前
I liked lua when I used it. It didn&#x27;t seem to get much love at the time, though I think it&#x27;s more popular. It&#x27;s got a few neat things and it&#x27;s good for embedding. And I think maybe D doesn&#x27;t get the appreciation it deserves but there&#x27;s a bunch of reasons for that.
评论 #16282784 未加载
评论 #16282038 未加载
评论 #16280692 未加载
janeroe超过 7 年前
Did anyone mention parasail? It&#x27;s a statically typed programming language with region based memory management, builtin parallelism of every expression, and a number of other quite entertaining design decisions. I think it&#x27;s a shame nobody has heard about it.
thg超过 7 年前
Smalltalk
mping超过 7 年前
Programming language != runtime. Erlang-the-language is pretty flaky, but the VM where it runs (plus OTP) is pretty insane.<p>Same for Java, the language itself is pretty boring, but the runtime (JVM) is great.<p>C# is the opposite, the language is great but the tooling and runtime are not there yet.
IshKebab超过 7 年前
I would say Ceylon. Ok I never used it, but it looks like it has one of the cleanest type systems ever, and flow-based typing is a really clever idea that isn&#x27;t really in any other languages.<p>Sad that it has been abandoned by Red Hat.
brudgers超过 7 年前
Excel.
codewritinfool超过 7 年前
Delphi
Null-Set超过 7 年前
Ada
评论 #16282665 未加载
RandomSort超过 7 年前
I&#x27;m going to say Groovy. It allows you to do all the nifty things Java does, but you just feel infinitely more productive.
评论 #16292137 未加载
评论 #16289353 未加载
wdiamond超过 7 年前
javascript too pop to be noticed.
评论 #16282798 未加载
评论 #16282795 未加载
mhd超过 7 年前
Modula-3
logfromblammo超过 7 年前
Lisp, and dialects like Scheme, Emacs Lisp, and Clojure.