本文目录一览:
哪种编程语言最先进?功能最多?(问题补充↓)
功能这个词语看你如何定义了。如果说计算能力的话,大部分语言都是图灵等价的,即他们的“能力”是一样的。打一个通俗的比方,c可以写出c++编译器,c++也可以写出c的编译器,因此c和c++的能力是一样的,同样,汇编与它们的能力也是等价的。事实上,图灵模型只需要几条基本指令。当然还有其他的计算模型,比如函数式计算,也只需要几个基本函数,已经证明能力和图灵机是等价的,函数式的语言最有代表的是lisp家族(严格来讲lisp不是纯函数式的)。(作为对比,c系列是命令式语言)
以上是从计算理论上来说的,实际上某种语言的能力还与其实现有关。比如c#虽然表达能力可以说是图灵完备的,但是C#不能写内核,在内核编写这一块,功能上可以说比c弱(或者说目前C#根本就没有写内核的能力,当然不排除以后有人写一个可以将c#编译成内核的编译器)。
因此要说功能,还是需要结合应用的,在矩阵科学计算领域,我相信很少人会说c比matlab功能多,在企业应用方面我相信java也许是一个比较好的选择。到了算法领域,选择c的情况还是占大多数的。
既然功能最多不太好说。我想楼主了解一下目前新语言相对于旧语言有哪些改进,引入了哪些概念,编程思维有哪些转变会比较有意义。旧时比较发达的语言大多与机器性能关系密切,比如以前的fortran,汇编,c,c++,大部分是命令式的,(lisp也很古老,但是由于性能在以前用得比较少)。现在的语言倾向于添加更多的函数式特性,同时引入项目管理,测试等内容。如python,ruby,clojure等。功能最多的语言,在给定了领域之后,这个问题或许会好回答一些。
以上是我的理解,可能有不正确的地方。给楼主推荐一些书,《计算理论》,《SICP》,《7天7语言》,《黑客与画家》。后边两本比较通俗,里边有对语言的讨论。
对Lisp 新手来说,学习哪种方言,使用哪些参考书和开发软件更适合
Common Lisp和Scheme是Lisp家族的两大主要方言,通用性比较好,ELisp和AutoLisp只能在特定的环境下使用,所以不推荐。
如果你只是想学习PF的思想,可以直接学习Scheme,FP的思想都有了,还比较简单,只不过库不太完备。如果追求CL的强大可以看看Racket,是PTL Scheme的进化版。
IDE推荐:
DrRacket
书籍推荐:
Teach Yourself Scheme Mit Press
Simply Scheme MIT Press
LISP in small pieces
r5rs
基本都有电子版,第三个Lisp in small pieces不能作为入门教程,它默认你已经学会了Scheme,并且着重讲如何实现一个Scheme的解释器或者编译器以及一些比较深层次的概念,不太好懂但是很开阔思路,而且经常将Scheme和CL进行对比,使你能够触类旁通。最后一个是Scheme的规范,也不适合作为入门教程,更适合作为reference,虽然它比较薄只有几十页。如果英文不太好,可以看看网上有没有中文版。
不过相对来说我还是推荐Common Lisp,原因三言两语也说不清,比较正统的Lisp,工业化程度高,如果你看过《黑客与画家》应该有所了解,但是缺点是学习难度大,虽然大家都说CL久经历练,但是糟粕也不少,这些别人说了没用,只有你学完了之后做两个项目才有体会。不过总起来说还是一门非常伟大的语言。首先由Lisp引进的编程思想包括if/then/else控制结构、递归函数调用、动态内存分配、垃圾收集、高阶函数、词法闭包、交互式编程、增量编译以及动态类型……
IDE推荐:
Lisp in a box
LispWorks(适合高薪阶层)
书籍推荐:
Practical Common Lisp
ANSI Common Lisp
我当初就是利用这两本书学习的,不过在学习过程中主要还参考了
Lisp Quick Reference
Common Lisp The Language
第一本参考用公式的方式把基本用法列出,基本上覆盖了整个ANSI Common Lisp标准,但是可能比较晦涩,不过习惯了就好了。第二本就不说了,类似牛津词典,一千多页,不懂的查查就行了,一般人看不下来,看下来也没啥意思。
当你读过这些书之后,基本上已经对Lisp有一个较深的了解,这时你可以自己写个项目练练手,或者直接到github上clone一个。另外还有些书不错,但是因为你已经有了比较扎实的基础,你可以随便看看,没必要像看课本那么仔细:
On Lisp(与Common Lisp The Language同一作者,相当于CLTL的进阶版)
Common Lisp A Gentle Introduction to Symbolic Computation
Land of Lisp(好多漫画!)
Successful Lisp
Tutorial on Good Lisp Programming Style
The Art of the Metaobject Protocol
这些书除了最后两本我都看得不是很仔细,因为很多和Practical Common Lisp、On Lisp有重复,所以我只是看一些有特点的部分。倒数第二本讲的是如何养成良好的Lisp编程风格,你可以当成散文来读。最后一本比较深,我也没有看完,主要讲的是CLOS相关的东西,可以用来开阔思路。
其实如果你想学习CL这门语言,这些足足足足足足够了,但是你还是觉得很无聊,好吧,再推荐两篇文章:
The Roots of Lisp
Recursive Functions of Symbolic Expressions and Their Computation by Machine Part I
建议把这两篇文章打印出来,一行行的看!一是因为都比较短,花不了你多少钱,二是因为都值得反复推敲,不是看一遍就扔了。第一篇文章是paul graham写的,就是那个ANSI Common Lisp、On Lisp以及《黑客与画家》的作者,主要内容是对第二篇论文的总结概括,探讨了Lisp的根基理论,难度较小,一共就十几页,看完了会有一些新的收获,这些是你看其它语言教程看不来的。第二篇我就不说了,Lisp的作者写的,好好看下,想想作者是如何设计出这样一门伟大的语言的,别说你数学不好,你不会学呀,再说这里用的数学也不难。
另外我不太清楚你学习Lisp的目的,上面说的可能比较适合一般的程序员,如果你是AI研究者你可以直接看下面的两本:
Paradigms of Artificial Intelligence Programming,Case Studies in Common Lisp
The Elements Of Artificial Intelligence(An Introduction Using Lisp)
黑客适合用什么语言?
黑客就是要不授权的情况下进入别人的电脑,做自己想做的事情。很多语言都可以编写,甚至最简单的dos也可以写高效率的黑客程序(批处理),脚本语言可以,java,c,c++,delphi,后三者是真编译,VB不是真编译,c语言编程很复杂,运行效率高。学习这个东西需要掌握很多东西,操作系统的原理,那些文件在系统的那个文件夹,功能是什么,进程的知识,注册表项的知识。网络知识。很多,学起来自然就知道要往哪方面努力了,操作系统的知识要掌握主流,XP系统虽然稳定正在慢慢退出,针对win7以及win8的编程知识也要掌握,因为肉鸡就是客户,你用XP编的程序要改的内容在win7已经被修补漏洞,工作白干了。