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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Programming Language Classification Table

8 点作者 r11t超过 15 年前

9 条评论

tetha超过 15 年前
Meh, this is not useful.<p>The first thing: static typing is not static typing (yes, twice) dynamic typing is not weak typing is not strong typing. C is borderline static typing. Certainly, you have to say 'yes, this foo is an integer, this bar is a char<i></i>' and the compiler will complain if you do foo = bar... but on the other hand, something like <i>((char</i>)(void<i>)(&#38;foo)) will probably work (untested). I am not aware of these such possibilities in Haskell.<p>Furthermore, Haskell (for example) is statically typed, but I don't have to annotate everything with types, compared to, say, C, C# (even though this comparision is unfair, as Type inference in OOP-Languages requires exponential time). This is also a pretty big difference in 'static languages'. (In fact, Haskell and Python programs appear to converge to a certain common structure, which is very interesting).<p>The second thing: dynamic typing vs dynamic typing. What about weak typing vs strong typing? Python is dynamically typed, by Python is strongly typed, so an Integer is an Integer and remains an Integer unless told otherwise. In weakly typed languages, this is not the case. So just 'dynamic' is not useful either.<p>And then, the paradigms. Argh. Those hurt my eyes by now. OCaml is functional, and Haskell is functional. Haskell is </i>pure<i>, Ocaml is not. This is a gigantic major difference, let alone the </i>functional subsets* of other languages. OOP? Hah. Just consider Icons inheritance vs Javas inheritance. Javas inheritance goes most specific towards least specific, overriding methods. Icon goes least specific towards most specific, giving the subclass implementor extension points where he can add further functionality. And don't even start to think about Common Lisps object orientation, or dylans, which is entirely different. Those terms, in my opinion, are far far too broad in order to describe a language well. Certainly, you might get a feeling what ML is, if I say "ML is functional", but overall, you know nothing about the code. (And don't even think about multi-paradigm languages).<p>So, overall: The table does not really tell anything, especially if you consider that major languages are missing. Even some toy example like faculty or fibonacci in each of these languages would tell everyone more than this.
评论 #854763 未加载
gdp超过 15 年前
This basically seems like a table to compare attributes of languages that are much less different from each other than they are from everything else. I don't think it usefully captures any attributes that people actually care about.
jrockway超过 15 年前
Most of my Perl code is OO or functional, but neither are listed under Perl's definition.<p>How is Smalltalk "unmanaged"?<p>Haskell is missing.<p>Common Lisp is missing.<p>Scheme is missing.<p>This chart is meaningless.
评论 #854639 未加载
评论 #854688 未加载
loup-vaillant超过 15 年前
No Haskell, no concatenative language, no distinction between explicit typing and implicit typing (one of the key differences between F# and C#)… That could use some improvement.
DrJokepu超过 15 年前
One correction: C# (beginning version 3) is a multiparadigm language; it supports functional programming (lambda expressions) just as much it supports imperative programming. Anything you can do in C# in an imperative style, you can do it the functional way as well.
mhansen超过 15 年前
Javascript not functional?!?
评论 #880895 未加载
mahmud超过 15 年前
defined "Managed" || die "don't shoot, I am only an MCSE!";
ilyak超过 15 年前
WTF is "Declarative" and how XSLT is declarative?<p>XSLT is functional!<p>XSLT/XPath can also be statically typed: XSLT compilers happily infer types of all expressions in their XPath.
评论 #854594 未加载
rick2047超过 15 年前
isnt groovy just java on steroids?and with no haskell or any of the Lisps this list is truely meaningless.
评论 #854634 未加载